INCOSE MBSE Putting Ontologies to Work, MESA, AZ Feb'2010

53
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

description

Presentation on Ontologies for Model-Based System Engineering covering some aspects of NExIOM relating to QUDT and controlled vocabularies and the SysMO/SysML Ontologies.

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 Ontology

INCOSE Feb 2010 MBSE Workshop2/9/2010 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.

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, Ports and Connectors

2/9/2010 19INCOSE Feb 2010 MBSE Workshop

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>

….

SysML FlowPort

INCOSE Feb 2010 MBSE Workshop2/9/2010 22

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

QUDT Model Example

INCOSE Feb 2010 MBSE Workshop2/9/2010 28

Units are partitioned into Sub-Classes

INCOSE Feb 2010 MBSE Workshop2/9/2010 29

SI Base Quantities and Units

Slide 30

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

Backup

INCOSE Feb 2010 MBSE Workshop2/9/2010 43

Semantic XML and XMI Transformers

INCOSE Feb 2010 MBSE Workshop2/9/2010 44

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

Semantic XML translation of SysML using TopBraid Composer

INCOSE Feb 2010 MBSE Workshop2/9/2010 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 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)) .}

Ends

INCOSE Feb 2010 MBSE Workshop2/9/2010 53