Systems Modeling Ontologies
INCOSE Model Based Systems Engineering (MBSE)
MESA, AZ Workshop
(February 5-8, 2010)
Ralph Hodgson,
CTO, TopQuadrant Inc.
NASA NExIOM Ontology Lead
System Model Ontologies Working Group
Meeting Summary Report 2009
• Background and Motivation
– How can ontologies help with MBSE? Can they help with modeling multiple
aspects of a problem using different tools?
– Educational outreach on Ontologies - what they are, how they are used
– Connect with relevant MBSE Challenge problems
• Work to-date
– NASA Constellation Program (CxP) and NExIOM Ontologies established
modeling principles, Name and Identifier Rules and the framework for the
Ontology Architecture of the SysMO Ontologies
– NASA XML Controlled Vocabularies for Units, Data Types, Properties and
other Space System terminologies were generated from the NExIOM OWL
Models, proving co-existence strategies for OWL and XML
– First SysMO Ontology was manually created from SysML 1.0 and integrated
with the NASA System Ontology based on SBFI formalism
• Next Objectives
– Complete SysMO 1.1 generation from SysML 1.1 using TopQuadrant’s
Semantic XML, XMI Ontology and, SPIN, a Rules Language based on
W3C’s SPARQL
– Document 3 Use Cases: (1) Data Exchange between SysML tools,. (2) A
Use Case that explores the role of controlled vocabularies for data
interoperability, (3) Aggregation of information from multiple tools.
– Team with a Challenge Team to demonstrate SysMO-based interoperability
between tools
2/9/2010 INCOSE Feb 2010 MBSE Workshop 2
Work to date (1 of 2)
INCOSE Presentation January 2008
Introduced OWL
NASA NExIOM Work
SysMO – an OWL model of SysML
DoD NATO Presentation November 2008
Semantic Interoperability using Ontologies
DoD C2 Presentation January 2009
Command and Control Ontologies
NASA NExIOM Work
2/9/2010 INCOSE Feb 2010 MBSE Workshop 3
Work to date (2 of 2)
PDE 2009
Product Data Exchange Meeting
Boeing, WA
QUDT http://www.qudt.org
Quantites, Units, Dimensions and Types
Release of some NASA Foundation Models
XML SchemaPlus http://www.xspl.us
Specification Language for XML Schema
Retains OWL Semantics
NASA Work on Ontology-Driven Generation
of XML Schema and Controlled Vocabularies
Distributed Simulation
Telemetry, Commands and Messages
2/9/2010 INCOSE Feb 2010 MBSE Workshop 4
OWL – think of it as XML++
• OWL = Web Ontology Language
– A language for describing a domain of
interest
– Classes of things, properties of things,
relationships between things
– A standard defined by the World-Wide
Web Consortium (W3C)
• How does it relate to XML?
– OWL can be serialized in XML
– OWL is built on the Resource
Description Framework (RDF)
– OWL constructs allow us to say things
that XML Schema does not allow
2/9/2010 INCOSE Feb 2010 MBSE Workshop 5
Reminder:
3 Powerful Ideas about OWL
1. Subject-Predicate-Object Triples
2. Identifiers Æ Composition Construct
3. Model Schema also expressed in Triples
2/9/2010 INCOSE Feb 2010 MBSE Workshop 6
OWL Key Idea # 1 –
“Think Triples”: Subject Predicate Object
Subject Predicate Object
hasSubSystem Reaction
Vehicle Control
system
hasComponent
Reaction
Thruster
Control
Jet
system
hasParameter
Thruster
Parameter
Jet
hasUnits
Parameter Unit
hasDatatype
Parameter DataType
2/9/2010 INCOSE Feb 2010 MBSE Workshop 7
OWL Key Idea # 2 –
Identifiers not Names (“Everything has a URI”)
Subject Predicate Object
subsystem Reaction Control
ORION
system
subsystem Guidance &
ORION Navigation Control
System
cev:ORION rdf:type nasa:Vehicle;
cev:ORION sys:subsystem cx:RCS
+ cev:ORION
cev:ORION
rdf:type
sys:subsystem
nasa:Vehicle;
cx:GNCS
Æ Statements in different models but same URIs means
more information about the same things
2/9/2010 INCOSE Feb 2010 MBSE Workshop 8
OWL Key Idea #3: Schema uses Triples -
queried with same Language as the models
SPARQL Query for the Namespace URI of every Class:
SELECT ?class ?ns
WHERE {
?class rdf:type owl:Class .
LET (?ns := afn:namespace(?class)).
}
2/9/2010 INCOSE Feb 2010 MBSE Workshop 9
Capability Case: Ontology-Based Data
Exchange between Tools
Each tool’s model is converted to triples using SPIN. Triples can be related through
a unified SysMO Model. Data exchange and other operations are then possible.
SysML Tool Unified Models Another TOOL
SysML Model 1 Domain Models
SPIN SPIN OWL Model Domain Models
SysML Model Domain Models
Vehicle
+ +
System Block SpaceVehicle
Port
Component
System Block
Port + Vehicle
SubSystem
SubSystem
Param
Mapping Parameter Mapping Parameter
Rules Rules
XMI Import XMI Import
SPIN Controlled SPIN
Semantic XML Vocabularies Semantic XML
Name and Identifier Alignment
Alignment
Rules
SysML Tool 2
Tool 1 Units Data Types
Properties +
2/9/2010 INCOSE Feb 2010 MBSE Workshop 10
Capability Case: Ontology-Driven PLM
A model that knows what information objects are consumed and produced at
different points in the lifecycle
C3I* LCS*
Test &
MS
Eval GS
Maintain
Upgrade
System
Manufacture Lifecycle
Cx Data Arch
model Lessons
Learned
Learn SIL, CAIL,
Design CxTF
Cos Ris
NExIOM
Perf
t k *
2/9/2010 INCOSE Feb 2010 MBSE Workshop 11
Capability Case: Ontology-Driven PLM
– NASA Lifecycle Ontology Example
2/9/2010 INCOSE Feb 2010 MBSE Workshop 12
SysMO Ontology
2/9/2010 INCOSE Feb 2010 MBSE Workshop 13
SysMO is a formal Ontology
• SysML Ontology is pure
– no UML constructs
– Think of it as “Precise SysML”
• Superset of SysML
• Uses an SBFI Formalism
• Uses QUDT Ontologies
– Quantities, Units, Dimensions and Types
– Data Types for Vectors, Matrices, Time-series
Arrays, etc.
QUDT – http://www.qudt.org (August 2009)
SysMO – http://www.sysmo.org (March 2010)
2/9/2010 INCOSE Feb 2010 MBSE Workshop 14
Transforming SysML from XMI to an
OWL Model
UML4SysML. TopBriadComposer
OWL Model
merged.uml UML Importer
Retains UML Metamodel -
only recommended as a
‘Proxy’ Ontology
2/9/2010 INCOSE Feb 2010 MBSE Workshop 15
Formal SysMO Ontologies
Named Graph Graphs import other Graphs
An Ontology has a
Namespace
Graphs contribute
to one or more
Ontologies
2/9/2010 INCOSE Feb 2010 MBSE Workshop 16
SysMO in TopBraidComposer
Class Form Properties
Classes
SPARQL
Engine
2/9/2010 INCOSE Feb 2010 MBSE Workshop 17
SysML Requirement
Class
Properties
Subclass
Relation
Association
2/9/2010 INCOSE Feb 2010 MBSE Workshop 18
SysML Block, Ports and Connectors
2/9/2010 INCOSE Feb 2010 MBSE Workshop 19
SysML Block Serialization (N3/Turtle)
Subject Predicate Object
sysml:Block
a owl:Class ;
rdfs:label "Block"^^xsd:string ;
rdfs:subClassOf owl:Thing ;
rdfs:subClassOf
[a owl:Restriction ;
owl:allValuesFrom sysmo:Connector ;
owl:onProperty sysmo:connector
];
….
The ‘Object’ of this SPO is a ‘Restriction’ specifying that all values
of the ‘connector’ association must be ‘Connector’ instances.
2/9/2010 INCOSE Feb 2010 MBSE Workshop 20
SysML Block Serialization (RDF/XML)
<owl:Class rdf:about="http://www.sysmo.org/mbse/system/sysml.owl#Block">
<rdfs:label rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
>Block</rdfs:label>
<rdfs:subClassOf>
<owl:Restriction>
<owl:allValuesFrom
rdf:resource="http://www.sysmo.org/mbse/system/sysmo.owl#Connector"/>
<owl:onProperty
rdf:resource="http://www.sysmo.org/mbse/system/sysmo.owl#connector"/>
</owl:Restriction>
….
2/9/2010 INCOSE Feb 2010 MBSE Workshop 21
SysML FlowPort
2/9/2010 INCOSE Feb 2010 MBSE Workshop 22
FlowPort in Turtle/N3 Format
sysml:FlowPort rdfs:subClassOf
a owl:Class ; [a owl:Restriction ;
rdfs:label "Flow port"^^xsd:string ; owl:maxCardinality "1"^^xsd:int ;
rdfs:subClassOf sysml:Port ; owl:onProperty sysml:hasFlowSpecification
rdfs:subClassOf ];
[a owl:Restriction ; rdfs:subClassOf
dc:description "Indicates the direction in which an Atomic FlowPort [a owl:Restriction ;
relays its items. If the direction is set to in then the items are relayed owl:allValuesFrom sysml:Connector ;
from an external connector via the FlowPort into the FlowPort's owner owl:onProperty sysml:isSinkFor
(or one of its Parts). If the direction is set to out, then the items are
];
relayed from the FlowPort's owner, via the FlowPort, through an
external connector attached to the FlowPort, and if the direction is set to rdfs:subClassOf
inout then items can flow both ways. By default, the value is inout." ; [a owl:Restriction ;
owl:allValuesFrom sysml:FlowDirection ; owl:cardinality "1"^^xsd:int ;
owl:onProperty sysml:hasDirection owl:onProperty sysml:hasDirection
]; ];
rdfs:subClassOf dc:description "Flow Ports are interaction points through
[a owl:Restriction ; which input and/or output of items such as data, material
or some property such as torque, pressure or energy
owl:allValuesFrom sysml:FlowSpecification ;
may flow. This enables the owning block to declare
owl:onProperty sysml:hasFlowSpecification which items it may exchange with its environment and
]; what are the interaction points through which the
rdfs:subClassOf exchange is made. A FlowPort specifies the input and
[a owl:Restriction ; output items that may flow between a Block and its
environment. FlowPorts are interaction points through
owl:allValuesFrom sysml:InOutFlowProperty ;
which data, material or energy 'can' enter or leave the
owl:onProperty sysml:bidirectionalFlow owning Block. The specification of what can flow is
]; achieved by typing the FlowPort with a specification of
rdfs:subClassOf things that flow. In general, flow ports are intended to be
[a owl:Restriction ; used for asynchronous, broadcast, or send and forget
owl:allValuesFrom sysml:Connector ; interactions." .
owl:onProperty sysml:isSourceFor
];
2/9/2010 INCOSE Feb 2010 MBSE Workshop 23
Ontology Architecture Example:
QUDT Ontologies for Units of Measure
Ontology
Imports relation
An Ontology is a namespace – a named graph can contribute to
more than one ontology
2/9/2010 INCOSE Feb 2010 MBSE Workshop 24
NASA NExIOM Modular Ontologies
Simulation Distributed Simulation
Tool
Temporal QUDT
Some foundation Ontologies may be available subject to a NASA license
2/9/2010 INCOSE Feb 2010 MBSE Workshop 25
Dimensions of Ontology Architecture
Organization
Domain
Discipline
Specificity
Ontologies are partitioned according to domains, disciplines,
organizations and levels of specificity. Named graphs are
aggregated through configuration ontologies according to specific
needs.
2/9/2010 INCOSE Feb 2010 MBSE Workshop 26
NExIOM Standard Vocabulary (NSV)
Basic physical quantities, forces & moments examples
Data-Name Identifier Description Definition Symbol (Units) Units Data-Name Identifier Description Units
ForceX Fx = F ڄex ML/T2
ForceY Fy = F ڄey ML/T2
Potential Potential φ = q L2/T SI
ForceZ Fz = F ڄez ML/T2
StreamFunction Stream function (2-D) × ψ= q L2/T SI
ForceR Fr = F ڄer ML/T2
Density Static density (ρ) M/L3 SI
ForceTheta Fθ = F ڄeθ ML/T2
Pressure Static pressure (p) M/(LT2) SI ForcePhi Fφ = F ڄeφ ML/T2
Temperature Static temperature (T) Θ SI
Static internal energy per unit Lift L or L' ML/T2
EnergyInternal
mass (e) L2/T2 SI
Drag D or D' ML/T2
Enthalpy Static enthalpy per unit mass (h) L2/T2 SI
Entropy
MomentX Mx = M ڄex ML2/T
Entropy (s) ML2/(T2Θ) SI
EntropyApprox MomentY My = M ڄey ML2/T
Approximate entropy (sapp = p / ργ) (L(3γ-1))/((M(γ-1)).T2) SI
MomentZ Mz = M ڄez ML2/T
DensityStagnation Stagnation density (ρ0) M/L3 SI MomentR Mr = M ڄer ML2/T
PressureStagnation Stagnation pressure (p0) M/(LT2) SI MomentTheta Mθ = M ڄeθ ML2/T
TemperatureStagnation Stagnation temperature (T0) Θ SI MomentPhi Mφ = M ڄeφ ML2/T
EnergyStagnation Stagnation energy per unit mass (e0) L2/T2 SI MomentXi Mξ = M ڄeξ ML2/T
EnthalpyStagnation Stagnation enthalpy per unit mass (h0) L2/T2 SI MomentEta Mη = M ڄeη ML2/T
EnergyStagnationDensity Stagnation energy per unit volume (ρe0) M/(LT2) SI MomentZeta Mζ = r ڄeζ ML2/T
VelocityX x-component of velocity (u = q · ex) L/T SI Moment_CenterX x0 = r0 ڄex L
VelocityY y-component of velocity (v = q . ey) L/T SI
Moment_CenterY y0 = r0 ڄey L
VelocityZ z-component of velocity (w = q . ez) L/T SI
Moment_CenterZ z0 = r0 ڄez L
VelocityR Radial velocity component (q . er) L/T SI
PDE2009 - NExIOM Slide 27 4/30/2009
QUDT Model Example
2/9/2010 INCOSE Feb 2010 MBSE Workshop 28
Units are partitioned into Sub-Classes
2/9/2010 INCOSE Feb 2010 MBSE Workshop 29
SI Base Quantities and Units
Slide 30
Quantities and Units – Partitioning by
Discipline
QUD Classes
Unit Instances
2/9/2010 INCOSE Feb 2010 MBSE Workshop 31
QUDT Controlled Vocabulary:
Units Example
<units:NExIOM xmlns:cx="https://nst.nasa.gov/esmd/cx/cx.owl"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:nc="https://nst.nasa.gov/esmd/cx/nc.owl"
xmlns:nexiom="https://nst.nasa.gov/esmd/cx/collections/nexiom-n1-n2-schema.owl"
xmlns:owl11="http://www.w3.org/2006/12/owl11"
xmlns:property="https://nst.nasa.gov/esmd/cx/property.owl"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
xmlns:units="https://nst.nasa.gov/esmd/cx/n2units.owl"
xmlns:xi="http://www.w3.org/2001/XInclude"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="https://nst.nasa.gov/esmd/cx/units.owl ../Schemas/XSD_NEXIOM-units-v1.33.xsd">
<units:AbsorbedDose nc:abbreviation="Gy" nc:code="0775“ rdf:type="units:Derived,units:Si" rdf:ID="units:Gray" rdfs:label="Gray"/>
<units:AbsorbedDose nc:abbreviation="rad" nc:code="1550” rdf:type="units:NotUsedWithSi" rdf:ID="units:Rad" rdfs:label="Rad"/>
<units:AbsorbedDoseRate nc:abbreviation="Gy/s" nc:code="0780“ rdf:type="units:Derived,units:Si"
rdf:ID="units:GrayPerSecond" rdfs:label="Gray per second"/>
<units:Acceleration nc:abbreviation="ft/s^2" nc:code="0660“ rdf:type="units:Derived,units:NotUsedWithSi"
rdf:ID="units:FootPerSecondSquared" rdfs:label="Foot per second squared"/>
<units:Acceleration nc:abbreviation="Gal" nc:code="0705“ rdf:type="units:NotUsedWithSi" rdf:ID="units:Gal" rdfs:label="Gal"/>
<units:Acceleration nc:abbreviation="G" nc:code="2100” rdf:type="units:NotUsedWithSi" rdf:ID="units:Gravity" rdfs:label="Gravity"/>
<units:Acceleration nc:abbreviation="in/s^2" nc:code="1111“ rdf:type="units:Derived,units:NotUsedWithSi"
rdf:ID="units:InchPerSecondSquared" rdfs:label="Inch per second squared"/>
<units:Acceleration nc:abbreviation="kt/s" nc:code="2115“ rdf:type="units:Derived,units:NotUsedWithSi"
rdf:ID="units:KnotPerSecond" rdfs:label="Knot per second"/>
<units:Acceleration nc:abbreviation="m/s^2" nc:code="1110“ rdf:type="units:Derived,units:Si"
rdf:ID="units:MeterPerSecondSquared" rdfs:label="Meter per second squared"/>
<units:Acceleration nc:abbreviation="microG" nc:code="2110“ rdf:type="units:NotUsedWithSi" rdf:ID="units:Microgravity" rdfs:label="Microgravity"/>
<units:Acceleration nc:abbreviation="mG" nc:code="2105“ rdf:type="units:Derived,units:NotUsedWithSi"
rdf:ID="units:Milligravity" rdfs:label="Milligravity"/>
…
32
QUDT: Time Series Array
Root for all Structured Root for all Structured Data Types
Data Instances
Making the connection
between a data value
and its parameter
A TimeSeries State Vector
Array Data Separation of Type Specifications
Structure Specifications from define number
Data of elements
33
Example of Orion XML – Parameters
<orion:ORION rdf:ID="orion:ORION">
<orion:Property cx:cxCUI="TBD"
cx:cxFUI="orion:ORN.Acceleration_0"
cx:cxCUI="TBD“
data:type="type:FLOAT-DP"
rdf:ID="orion:ORN.Acceleration_0“
rdf:type="vehicle:Acceleration" sysml:propertyType="property:Acceleration"
units:units="units:MeterPerSecondSquared"/>
<orion:Property cx:cxCUI="TBD" cx:cxID="orion:ORN.Force_0" cx:cxCUI="TBD"
data:type="type:FLOAT-DP" rdf:ID="orion:ORN.Force_0" rdf:type="vehicle:Force“
sysml:propertyType="property:Acceleration" units:units="units:Newton"/>
<orion:Property cx:cxCUI="TBD" cx:cxID="orion:ORN.Inertia_0" cx:cxCUI="TBD“
data:type="type:Tensor3x3-FLOAT-DP" rdf:ID="orion:ORN.Inertia_0" rdf:type="vehicle:Inertia“
sysml:propertyType="property:ProductOfInertiaXY-Axis"
units:units="units:KilogramMeterSquared"/>
<orion:Property cx:cxCUI="TBD" cx:cxID="orion:ORN.Mass_0" cx:cxCUI="TBD“
data:type="type:FLOAT-DP" rdf:ID="orion:ORN.Mass_0" rdf:type="vehicle:Mass“
sysml:propertyType="property:Mass" units:units="units:Kilogram"/>
<orion:Property cx:cxCUI="TBD" cx:cxID="orion:ORN.Position_0" cx:cxCUI="TBD“
data:type="type:GlobalPositionVector" rdf:ID="orion:ORN.Position_0" rdf:type="vehicle:Position“
sysml:propertyType="property:Location" units:units="units:Meter"/>
……
34
Ontologies for Specifications – Generating
XML Schemas and Controlled Vocabularies
GRDDL XSLT
Going from XML to OWL Generator
XSLT
Processor
2/9/2010 INCOSE Feb 2010 MBSE Workshop 35
XML SchemaPlus – a language for
specifying XML Document Structure
<?xml version="1.0" encoding="UTF-8"?>
<SchemaPlus xmlns:xsi="http://www.w3.org/2001/XMLSchema-
instance" xsi:noNamespaceSchemaLocation=“SchemaPlus.xsd">
<RootElement name="TrainingExample"/>
<ScalarElement name="SimulationTitle"></ScalarElement>
<ReferenceElement name="Unit"></ReferenceElement>
<NestedElement
name="scenario“ type="ScenarioType">
</NestedElement>
<ObjectType name="ScenarioType">
<Attribute name=“provenance”></Attribute>
<CollectionElement
name="simulationConfigurationParameter"
type="SimulationConfigurationParameterType">
</CollectionElement>
</ObjectType>
</SchemaPlus>
Retaining OWL Semantics
2/9/2010 INCOSE Feb 2010 MBSE Workshop 36
Example of SchemaPlus:
Sensor Specification
Sensor is a ‘NestedElement at the Root level
<NestedElement name="Sensor" type="sysml:SensorType"></NestedElement>
<ObjectType name="SensorType" namespace="system" baseType="sysml:DeviceType">
<Attribute ref="data:bitsPerSample" type="xs:int"></Attribute>
<Attribute ref="data:bitsPerSecond" type="xs:int"></Attribute> Specification of an
<Attribute ref="data:samplePerSecond"></Attribute> Attribute with semantics
<Attribute ref="device:accuracy"></Attribute> from the model
<Attribute ref="device:frequencyResponse"></Attribute>
<Attribute ref="device:lowerRange"></Attribute>
<Attribute ref="device:resolution"></Attribute>
<Attribute ref="device:upperRange"></Attribute>
<Attribute ref="sysml:io_device" type="xs:string"></Attribute>
<Attribute ref="sysml:sharedSensor" type="xs:boolean" use="required"></Attribute>
<Attribute ref="sysml:tolerancePressureMax" type="xs:float" use="required"></Attribute>
<Attribute ref="sysml:tolerancePressureMin" type="xs:float" use="required"></Attribute>
<Attribute ref="sysml:toleranceTemperatureMax" type="xs:float” use="required"></Attribute>
<Attribute ref="sysml:toleranceTemperatureMin" type="xs:float" use="required"></Attribute>
<Attribute ref="sysml:toleranceVibrationMax" type="xs:float" use="required"></Attribute>
<ReferenceElement name="measures" minOccurs="1" maxOccurs="1"
type="sysml:ParameterType"></ReferenceElement> Specification of a
</ObjectType> Reference Element
2/9/2010 INCOSE Feb 2010 MBSE Workshop 37
Example: XSD for Sensor Specification
The Sensor becomes
<xs:complexType xmlns="system" name="SensorType">
<xs:annotation> an XSD Complex Type
<xs:documentation>An Object Type</xs:documentation>
</xs:annotation>
<xs:complexContent> Sensor extends Device
<xs:extension base="sysml:DeviceType">
<xs:sequence>
<xs:element name="measures" minOccurs="1" maxOccurs="1">
<xs:annotation>
Sensor
<xs:documentation>Reference Element. Attribute nc:ref is used to point to the referenced value, which must be of type ‘measures’
sysml:ParameterType</xs:documentation>
</xs:annotation> Parameter
<xs:complexType>
<xs:annotation><xs:documentation>A Reference Element Type</xs:documentation>
</xs:annotation>
<xs:attributeGroup ref="nc:W3C-AttributeGroup"/>
<xs:attributeGroup ref="nc:NC-AttributeGroup"/>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute ref="data:bitsPerSample">
<xs:annotation>
<xs:documentation>An Attribute. <xs:annotation>
<xs:documentation>Value of this attribute should be of type xs:int</xs:documentation>
</xs:annotation>
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute ref="data:bitsPerSecond">
<xs:annotation>
Attribute definition
<xs:documentation>An Attribute. <xs:annotation>
<xs:documentation>Value of this attribute should be of type xs:int</xs:documentation>
</xs:annotation>
</xs:documentation>
</xs:annotation>
</xs:attribute>
…
2/9/2010 INCOSE Feb 2010 MBSE Workshop 38
NASA Modeling and Simulation - tools can
interoperate through the use of OWL-compliant XML
schemas and controlled vocabularies
Community Of Practice - 2
Community Of Practice - 1
Subsystem Team 4
Subsystem Team 3
Subsystem Team 2
Subsystem Team 1
Developer Developer Developer Developer
Domain Specific Tool Performance Tool Risk Tool Cost Tool
Tool 1 Tool 2 Tool 3 Tool 4
inputs outputs inputs outputs inputs outputs inputs outputs
• Assumptions • Assumptions • Assumptions • Assumptions
• Caveats • Caveats • Caveats • Caveats
• V&V • V&V • V&V • V&V
Horizontal Integration among Capabilities within each Subsystem
Shared Vocabularies and Semantics Analyst
Decision Support Tool
Analyst Trades
inputs Support Tool outputs
Decision
• Assumptions
Trades
• FOMs
inputs outputs
• Budget
• Assumptions
• FOMs
• Budget
Aggregate
Results
2/9/2010 INCOSE Feb 2010 MBSE Workshop 39
How can ontologies be put to work?
• Model-Based Specifications
– Schemas and Controlled Vocabularies
• Data Interoperability
• Generative Documentation
• Registries
• Metadata Management
• Semantic SOA
• Ontology-Driven Systems
• Second Generation SysML tooling
2/9/2010 INCOSE Feb 2010 MBSE Workshop 40
Concluding Remarks
• Ontologies can be used for specifications as well as
inferencing
• Ontology Architecture and Namespace management are
key to success
• OWL + Rules (SPIN) provides expressive support for
knowledge modeling, transformations and documentation
• OWL can interoperate using XML technologies through the
use of XML SchemaPlus and controlled vocabularies
• Data Quality requires compliance to Naming and Identifier
Rules
• Other presentations at http://www.scribd.com/ralphtq
2/9/2010 INCOSE Feb 2010 MBSE Workshop 41
Thank You
Ralph Hodgson
E-mail: rhodgson at topquadrant.com,
Ralph.Hodgson at nasa.gov
http://twitter.com/ralphtq
http://www.scribd.com/ralphtq
2/9/2010 INCOSE Feb 2010 MBSE Workshop 42
Backup
2/9/2010 INCOSE Feb 2010 MBSE Workshop 43
Semantic XML and XMI Transformers
2/9/2010 INCOSE Feb 2010 MBSE Workshop 44
Semantic XML:
OWL representation of XML document
• XML can be modeled in OWL as a Composite Pattern
• Elements contain Elements
composite:child relations
• Elements have attributes
UBL CreditNote
2/9/2010 INCOSE Feb 2010 MBSE Workshop 45
Importing XMI.XSD file into TopBraid
Composer provided the start for XMI Ontology
2/9/2010 INCOSE Feb 2010 MBSE Workshop 46
Ontology Architecture for SysMO Model
Creation
SysML Metamodel in XMI
SPIN Inferencing
Semantic XML
Composite Pattern
SPIN SPARQL Syntax
2/9/2010 INCOSE Feb 2010 MBSE Workshop 47
Semantic XML translation of SysML
using TopBraid Composer
2/9/2010 INCOSE Feb 2010 MBSE Workshop 48
SPIN – using SPARQL as a Rules
Language
• SPIN – SPARQL Inferencing Notation
– A Rules Language based on SPARQL
– define constraints and inference rules on Semantic Web models
– http://spinrdf.org
• Specification for representing SPARQL with RDF
– RDF syntax for SPARQL queries
• Modeling vocabulary
– constraints, constructors, rules
– templates, functions
• Standard Modules Library
– small set of frequently
needed SPARQL queries
more at www.spinRDF.org
2/9/2010 INCOSE Feb 2010 MBSE Workshop 49
SPIN Example: Kennedy Family Rules –
Using SPARQL as a Rules Language
Person Class
SPIN Rule using
SPARQL Construct
2/9/2010 INCOSE Feb 2010 MBSE Workshop 50
SPIN Example: Kennedy Family Rules
(Template Version)
Template for Rule
Class invokes rules
by passing arguments
to templates
2/9/2010 INCOSE Feb 2010 MBSE Workshop 51
Example of a NExIOM SPIN Rule for
XML Generation from NASA Ontologies
CONSTRUCT {
?genlib_rootType sxml:element ?genlib_rootElement .
?genlib_xmlnsType a owl:DatatypeProperty .
?genlib_xmlnsType sxml:attribute ?genlib_rootTypeAttr .
?genlib_root ?genlib_xmlnsType ?genlib_baseURI .
?genlib_root genxml:xsiSchemaLocation ?genlib_location . }
WHERE {
?genlib_root a ?genlib_rootType .
?genlib_rootElement tops:constructString ( "{0}:NExIOM" ?genlib_nsQName ) .
?genlib_rootTypeAttr tops:constructString ( "xmlns:{0}" ?genlib_nsQName ) .
LET (?genlib_xmlnsType := smf:buildURI("{?genlib_nsQName}:baseNSAttribute")) .
?genlib_locationSimple tops:constructString ( "{0} ../NExIOM_XSP_XSD-{1}"
?genlib_baseURI ?genlib_nsQName ) .
?genlib_locationNoNumber tops:constructString ( "{0}.xsd" ?genlib_locationSimple ) .
OPTIONAL {
FILTER (?genlib_revisionNumber != "0") .
?genlib_locationNumber tops:constructString ( "{0}-(v{1}).xsd" ?genlib_locationSimple
?genlib_revisionNumber ) . } .
LET (?genlib_location := smf:if((!bound(?genlib_locationNumber)),
?genlib_locationNoNumber, ?genlib_locationNumber)) .
}
2/9/2010 INCOSE Feb 2010 MBSE Workshop 52
Ends
2/9/2010 INCOSE Feb 2010 MBSE Workshop 53