INCOSE MBSE Putting Ontologies to Work, MESA, AZ Feb'2010
description
Transcript of INCOSE MBSE Putting Ontologies to Work, MESA, AZ Feb'2010
Systems Modeling OntologiesINCOSE 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 2INCOSE Feb 2010 MBSE Workshop
DoD NATO Presentation November 2008Semantic Interoperability using Ontologies
Work to date (1 of 2)
INCOSE Presentation January 2008Introduced OWLNASA NExIOM WorkSysMO – an OWL model of SysML
INCOSE Feb 2010 MBSE Workshop2/9/2010 3
DoD C2 Presentation January 2009Command and Control OntologiesNASA NExIOM Work
QUDTQuantites, Units, Dimensions and TypesRelease of some NASA Foundation Models
Work to date (2 of 2)
PDE 2009Product Data Exchange MeetingBoeing, WA
INCOSE Feb 2010 MBSE Workshop2/9/2010 4
XML SchemaPlusSpecification Language for XML SchemaRetains OWL Semantics
http://www.qudt.org
NASA Work on Ontology-Driven Generation of XML Schema and Controlled Vocabularies
Distributed SimulationTelemetry, Commands and Messages
http://www.xspl.us
OWL – think of it as XML++
INCOSE Feb 2010 MBSE Workshop2/9/2010 5
• 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
Reminder:3 Powerful Ideas about OWL
1. Subject-Predicate-Object Triples2. Identifiers Composition Construct3. Model Schema also expressed in Triples
INCOSE Feb 2010 MBSE Workshop2/9/2010 6
OWL Key Idea # 1 –“Think Triples”: Subject Predicate Object
VehicleReaction Control system
hasSubSystem
Reaction Control system
Thruster Jet
hasComponent
Thruster Jet Parameter
hasParameter
ParameterhasDatatype
Parameter UnithasUnits
DataType
Subject ObjectPredicate
2/9/2010 7INCOSE Feb 2010 MBSE Workshop
OWL Key Idea # 2 –Identifiers not Names (“Everything has a URI”)
ORION Reaction Control system
subsystem
Subject ObjectPredicate
ORIONGuidance &
Navigation Control System
subsystem
cev:ORION rdf:type nasa:Vehicle;cev:ORION sys:subsystem cx:RCS
cev:ORION rdf:type nasa:Vehicle;cev:ORION sys:subsystem cx:GNCS+Statements in different models but same URIs means more information about the same things
2/9/2010 8INCOSE Feb 2010 MBSE Workshop
OWL Key Idea #3: Schema uses Triples -queried with same Language as the models
INCOSE Feb 2010 MBSE Workshop2/9/2010 9
SPARQL Query for the Namespace URI of every Class:
SELECT ?class ?nsWHERE {
?class rdf:type owl:Class .LET (?ns := afn:namespace(?class)).
}
Capability Case: Ontology-Based Data Exchange between Tools
SysML Tool 1
Semantic XMLSPIN
2/9/2010 10INCOSE Feb 2010 MBSE Workshop
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.
Mapping Rules
SPIN
Tool 2
SysML Tool
XMI Import
SysML Model 1
SystemPort
Block
Domain Models
Vehicle
Param
Component+
Another TOOL
XMI Import
OWL Model Domain Models
SpaceVehicle
Parameter
SubSystem+
Unified ModelsSysML Model
SystemPort
Block
Domain ModelsVehicle
Parameter
SubSystem+Mapping
Rules
SPIN
Semantic XMLSPINControlled
Vocabularies
Units Data Types
Properties +
Alignment AlignmentName and IdentifierRules
Capability Case: Ontology-Driven PLM
2/9/2010 11INCOSE Feb 2010 MBSE Workshop
A model that knows what information objects are consumed and produced at different points in the lifecycle
System Lifecycle
MS
Upgrade
Design
Manufacture
Test & Eval
Learn
C3I* LCS*
SIL, CAIL, CxTF
Cost
Risk
Perf NExIOM*
Cx Data Arch model Lessons Learned
GSMaintain
Capability Case: Ontology-Driven PLM – NASA Lifecycle Ontology Example
2/9/2010 12INCOSE Feb 2010 MBSE Workshop
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.
INCOSE Feb 2010 MBSE Workshop2/9/2010 14
QUDT – http://www.qudt.org (August 2009)SysMO – http://www.sysmo.org (March 2010)
Transforming SysML from XMI to an OWL Model
INCOSE Feb 2010 MBSE Workshop2/9/2010 15
Retains UML Metamodel -only recommended as a ‘Proxy’ Ontology
TopBriadComposerUML Importer
UML4SysML.merged.uml OWL Model
Formal SysMO Ontologies
INCOSE Feb 2010 MBSE Workshop2/9/2010 16
Named Graph Graphs import other Graphs
Graphs contribute to one or more Ontologies
An Ontology has a Namespace
SysMO in TopBraidComposer
INCOSE Feb 2010 MBSE Workshop2/9/2010 17
Classes PropertiesClass Form
SPARQL Engine
SysML Requirement
INCOSE Feb 2010 MBSE Workshop2/9/2010 18
Class
PropertiesSubclass Relation
Association
SysML Block Serialization (N3/Turtle)
2/9/2010 20INCOSE Feb 2010 MBSE Workshop
sysml:Blocka owl:Class ;rdfs:label "Block"^^xsd:string ;rdfs:subClassOf owl:Thing ;rdfs:subClassOf
[ a owl:Restriction ;owl:allValuesFrom sysmo:Connector ;owl:onProperty sysmo:connector] ;
….
Subject Predicate Object
The ‘Object’ of this SPO is a ‘Restriction’ specifying that all values of the ‘connector’ association must be ‘Connector’ instances.
SysML Block Serialization (RDF/XML)
2/9/2010 21INCOSE Feb 2010 MBSE Workshop
<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>
….
FlowPort in Turtle/N3 Formatsysml:FlowPort
a owl:Class ;rdfs:label "Flow port"^^xsd:string ;rdfs:subClassOf sysml:Port ;rdfs:subClassOf
[ a owl:Restriction ;dc:description "Indicates the direction in which an Atomic FlowPort
relays its items. If the direction is set to in then the items are relayed from an external connector via the FlowPort into the FlowPort's owner (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 inout then items can flow both ways. By default, the value is inout." ;
owl:allValuesFrom sysml:FlowDirection ;owl:onProperty sysml:hasDirection
] ;rdfs:subClassOf
[ a owl:Restriction ;owl:allValuesFrom sysml:FlowSpecification ;owl:onProperty sysml:hasFlowSpecification
] ;rdfs:subClassOf
[ a owl:Restriction ;owl:allValuesFrom sysml:InOutFlowProperty ;owl:onProperty sysml:bidirectionalFlow
] ;rdfs:subClassOf
[ a owl:Restriction ;owl:allValuesFrom sysml:Connector ;owl:onProperty sysml:isSourceFor
] ;
rdfs:subClassOf[ a owl:Restriction ;owl:maxCardinality "1"^^xsd:int ;owl:onProperty sysml:hasFlowSpecification
] ;rdfs:subClassOf
[ a owl:Restriction ;owl:allValuesFrom sysml:Connector ;owl:onProperty sysml:isSinkFor
] ;rdfs:subClassOf
[ a owl:Restriction ;owl:cardinality "1"^^xsd:int ;owl:onProperty sysml:hasDirection
] ;dc:description "Flow Ports are interaction points through
which input and/or output of items such as data, material or some property such as torque, pressure or energy may flow. This enables the owning block to declare which items it may exchange with its environment and what are the interaction points through which the exchange is made. A FlowPort specifies the input and output items that may flow between a Block and its environment. FlowPorts are interaction points through which data, material or energy 'can' enter or leave the owning Block. The specification of what can flow is achieved by typing the FlowPort with a specification of things that flow. In general, flow ports are intended to be used for asynchronous, broadcast, or send and forget interactions." .
2/9/2010 23INCOSE Feb 2010 MBSE Workshop
Ontology Architecture Example:QUDT Ontologies for Units of Measure
Imports relation
An Ontology is a namespace – a named graph can contribute to more than one ontology
Ontology
2/9/2010 24INCOSE Feb 2010 MBSE Workshop
NASA NExIOM Modular Ontologies
Some foundation Ontologies may be available subject to a NASA license
2/9/2010 25INCOSE Feb 2010 MBSE Workshop
Distributed SimulationSimulationTool
Temporal QUDT
Dimensions of Ontology Architecture
INCOSE Feb 2010 MBSE Workshop2/9/2010 26
Ontologies are partitioned according to domains, disciplines, organizations and levels of specificity. Named graphs are aggregated through configuration ontologies according to specific needs.
Domain
Discipline
Organization
Specificity
NExIOM Standard Vocabulary (NSV)Basic physical quantities, forces & moments examples
Slide 27
Data-Name Identifier Description Definition Symbol (Units) Units
Potential Potential φ = q L2/T SIStreamFunction Stream function (2-D) × ψ= q L2/T SI
Density Static density (ρ) M/L3 SIPressure Static pressure (p) M/(LT2) SITemperature Static temperature (T) Θ SI
EnergyInternal Static internal energy per unit mass (e) L2/T2 SI
Enthalpy Static enthalpy per unit mass (h) L2/T2 SIEntropy Entropy (s) ML2/(T2Θ) SIEntropyApprox Approximate entropy (sapp = p / ργ) (L(3γ-1))/((M(γ-1)).T2) SI
DensityStagnation Stagnation density (ρ0) M/L3 SIPressureStagnation Stagnation pressure (p0) M/(LT2) SITemperatureStagnation Stagnation temperature (T0) Θ SIEnergyStagnation Stagnation energy per unit mass (e0) L2/T2 SIEnthalpyStagnation Stagnation enthalpy per unit mass (h0) L2/T2 SIEnergyStagnationDensity Stagnation energy per unit volume (ρe0) M/(LT2) SI
VelocityX x-component of velocity (u = q · ex) L/T SIVelocityY y-component of velocity (v = q . ey) L/T SIVelocityZ z-component of velocity (w = q . ez) L/T SIVelocityR Radial velocity component (q . er) L/T SI
Data-Name Identifier Description UnitsForceX Fx = F ex ML/T2
ForceY Fy = F ey ML/T2
ForceZ Fz = F ez ML/T2
ForceR Fr = F er ML/T2
ForceTheta Fθ = F eθ ML/T2
ForcePhi Fφ = F eφ ML/T2
Lift L or L' ML/T2
Drag D or D' ML/T2
MomentX Mx = M ex ML2/TMomentY My = M ey ML2/TMomentZ Mz = M ez ML2/TMomentR Mr = M er ML2/TMomentTheta Mθ = M eθ ML2/TMomentPhi Mφ = M eφ ML2/TMomentXi Mξ = M eξ ML2/TMomentEta Mη = M eη ML2/TMomentZeta Mζ = r eζ ML2/T
Moment_CenterX x0 = r0 ex LMoment_CenterY y0 = r0 ey LMoment_CenterZ z0 = r0 ez L
4/30/2009PDE2009 - NExIOM
Quantities and Units – Partitioning by Discipline
INCOSE Feb 2010 MBSE Workshop2/9/2010 31
Unit InstancesQUD Classes
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
33
Making the connection between a data value and its parameter
A TimeSeriesArray Data Structure
Separation of Type Specifications from Data
State Vector Specifications define number of elements
Root for all Structured Data TypesRoot for all Structured Data Instances
Example of Orion XML – Parameters
34
<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"/>
……
Ontologies for Specifications – Generating XML Schemas and Controlled Vocabularies
INCOSE Feb 2010 MBSE Workshop2/9/2010 35
GRDDL XSLT Generator
XSLT Processor
Going from XML to OWL
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 Semantics2/9/2010 36INCOSE Feb 2010 MBSE Workshop
Example of SchemaPlus:Sensor Specification
<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><Attribute ref="data:samplePerSecond"></Attribute><Attribute ref="device:accuracy"></Attribute><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></ObjectType>
Sensor is a ‘NestedElement at the Root level
Specification of an Attribute with semantics from the model
Specification of a Reference Element
2/9/2010 37INCOSE Feb 2010 MBSE Workshop
Example: XSD for Sensor Specification
<xs:complexType xmlns="system" name="SensorType"><xs:annotation>
<xs:documentation>An Object Type</xs:documentation></xs:annotation><xs:complexContent>
<xs:extension base="sysml:DeviceType"><xs:sequence>
<xs:element name="measures" minOccurs="1" maxOccurs="1"><xs:annotation>
<xs:documentation>Reference Element. Attribute nc:ref is used to point to the referenced value, which must be of typesysml:ParameterType</xs:documentation>
</xs:annotation><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><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>…
The Sensor becomes an XSD Complex Type
Sensor extends Device
Sensor ‘measures’ Parameter
Attribute definition
2/9/2010 38INCOSE Feb 2010 MBSE Workshop
NASA Modeling and Simulation - tools can interoperate through the use of OWL-compliant XML schemas and controlled vocabularies
INCOSE Feb 2010 MBSE Workshop2/9/2010 39
Analyst
• Assumptions• FOMs• Budget
inputs outputsTrades
Decision Support Tool
Community Of Practice - 2Community Of Practice - 1
Subsystem Team 4Subsystem Team 3
Subsystem Team 2Subsystem Team 1
Developer
• Assumptions• Caveats• V&V
Developer
• Assumptions• Caveats• V&V
Developer
• Assumptions• Caveats• V&V
Developer
• Assumptions• Caveats• V&V
inputs outputs inputs outputs inputs outputs inputs outputsTool 1 Tool 2 Tool 3 Tool 4
Horizontal Integration among Capabilities within each Subsystem
Cost ToolRisk ToolPerformance ToolDomain Specific Tool
Shared Vocabularies and Semantics
Analyst
• Assumptions• FOMs• Budget
inputs outputsTrades
Decision Support Tool
Aggregate Results
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
INCOSE Feb 2010 MBSE Workshop2/9/2010 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 41INCOSE Feb 2010 MBSE Workshop
Thank You
Ralph Hodgson E-mail: rhodgson at topquadrant.com,
Ralph.Hodgson at nasa.govhttp://twitter.com/ralphtqhttp://www.scribd.com/ralphtq
2/9/2010 42INCOSE Feb 2010 MBSE Workshop
Semantic XML: OWL representation of XML document
INCOSE Feb 2010 MBSE Workshop2/9/2010 45
• XML can be modeled in OWL as a Composite Pattern• Elements contain Elements• Elements have attributes composite:child relations
UBL CreditNote
Importing XMI.XSD file into TopBraid Composer provided the start for XMI Ontology
INCOSE Feb 2010 MBSE Workshop2/9/2010 46
Ontology Architecture for SysMO Model Creation
INCOSE Feb 2010 MBSE Workshop2/9/2010 47
SysML Metamodel in XMI
Semantic XML
Composite Pattern
SPIN Inferencing
SPIN SPARQL Syntax
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 49INCOSE Feb 2010 MBSE Workshop
SPIN Example: Kennedy Family Rules –Using SPARQL as a Rules Language
Person Class
SPIN Rule using SPARQL Construct
2/9/2010 50INCOSE Feb 2010 MBSE Workshop
SPIN Example: Kennedy Family Rules (Template Version)
Class invokes rules by passing arguments to templates
Template for Rule
2/9/2010 51INCOSE Feb 2010 MBSE Workshop
Example of a NExIOM SPIN Rule for XML Generation from NASA Ontologies
INCOSE Feb 2010 MBSE Workshop2/9/2010 52
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)) .}