AP scope | AP module | AP contents | AP index | |
Application module: State based behaviour | ISO/WD 10303-1371 |
Implementations of this part of ISO 10303 shall make use of the capability to classify an entity type using Classification_assignment (see ISO 10303-1114), Class (see ISO 10303-1070) and External_class (see ISO 10303-1275). This annex contains a subclause for each entity type defined in or used by this part of ISO 10303 for which that capability shall be applied. The specified Uniform Resource Identifier (URI) is used to identify each class.
For the purpose of diagramming possible classifications of EXPRESS entity types, UML 1.4 or later class diagrams with stereotypes are used. The W3C OWL Web Ontology Language is used to represent the classes that may be applied to an EXPRESS entity type both in the diagrams and as example OWL files.
NOTE The standards related to the specification of reference data are:
The diagram notation is interpreted as follows:
<<expressEntityType>>
stereotype applied to a UML Class denotes an EXPRESS entity type;
<<owlClass>>
stereotype applied to a UML Class denotes the related class(es);
<<classificationAssignment>>
stereotype applied to a UML Generalization denotes
the fact that the EXPRESS entity type can be classified
using the more specific class;
<<disjointWith>>
stereotype applied to a UML constraint note is included where appropriate
to specify the set of OWL classes are mutually exclusive
subClassOf
relationship between OWL classes is denoted using unstereotyped generalizations
between the stereotyped UML classes;
A State_definition may be classified in order to specify its detailed semantics. For the purpose of specifying those semantics, the OMG UML 2.1 concept of a State Machine is used. The following terms represent the same concepts from the UML 2.1 specification and are referenced using the specified URIs.
URI Specification
http://schema.omg.org/spec/UML/2.1/ConnectionPointReference
URI Specification
http://schema.omg.org/spec/UML/2.1/FinalState
URI Specification
http://schema.omg.org/spec/UML/2.1/Pseudostate
URI Specification
http://schema.omg.org/spec/UML/2.1/Pseudostate-initial
URI Specification
http://schema.omg.org/spec/UML/2.1/Pseudostate-deepHistory
URI Specification
http://schema.omg.org/spec/UML/2.1/Pseudostate-shallowHistory
URI Specification
http://schema.omg.org/spec/UML/2.1/Pseudostate-join
URI Specification
http://schema.omg.org/spec/UML/2.1/Pseudostate-fork
URI Specification
http://schema.omg.org/spec/UML/2.1/Pseudostate-junction
URI Specification
http://schema.omg.org/spec/UML/2.1/Pseudostate-choice
URI Specification
http://schema.omg.org/spec/UML/2.1/Pseudostate-entryPoint
URI Specification
http://schema.omg.org/spec/UML/2.1/Pseudostate-exitPoint
URI Specification
http://schema.omg.org/spec/UML/2.1/Pseudostate-terminate
URI Specification
http://schema.omg.org/spec/UML/2.1/Region
EXAMPLE The following shows how the four direction kinds would appear in an ISO 10303-21 instance data file.
#1=EXTERNAL_CLASS_LIBRARY('http://schema.omg.org/spec/UML/2.1','OMG UML 2.1'); #2=EXTERNAL_CLASS('http://schema.omg.org/spec/UML/2.1/FinalState','Final State',$,#1); #3=EXTERNAL_CLASS('http://schema.omg.org/spec/UML/2.1/Pseudostate-initial','intial Pseudostate',$,#1); #4=EXTERNAL_CLASS('http://schema.omg.org/spec/UML/2.1/Pseudostate-deepHistory','deepHistory Pseudostate',$,#1); #5=EXTERNAL_CLASS('http://schema.omg.org/spec/UML/2.1/Pseudostate-shallowHistory','shallowHistory Pseudostate',$,#1); #6=EXTERNAL_CLASS('http://schema.omg.org/spec/UML/2.1/Pseudostate-join','join Pseudostate',$,#1); #7=EXTERNAL_CLASS('http://schema.omg.org/spec/UML/2.1/Pseudostate-fork','fork Pseudostate',$,#1); #8=EXTERNAL_CLASS('http://schema.omg.org/spec/UML/2.1/Pseudostate-junction','junction Pseudostate',$,#1); #9=EXTERNAL_CLASS('http://schema.omg.org/spec/UML/2.1/Pseudostate-choice','choice Pseudostate',$,#1); #10=EXTERNAL_CLASS('http://schema.omg.org/spec/UML/2.1/Pseudostate-entryPoint','entryPoint Pseudostate',$,#1); #11=EXTERNAL_CLASS('http://schema.omg.org/spec/UML/2.1/Pseudostate-exitPoint','exitPoint Pseudostate',$,#1); #12=EXTERNAL_CLASS('http://schema.omg.org/spec/UML/2.1/Pseudostate-terminate','terminate Pseudostate',$,#1); #13=EXTERNAL_CLASS('http://schema.omg.org/spec/UML/2.1/ConnectionPointReference','Connection Point Reference',$,#1); #14=EXTERNAL_CLASS('http://schema.omg.org/spec/UML/2.1/Region','Region',$,#1); #50=CLASSIFICATION_ASSIGNMENT(#2,#51,$); #51=STATE_DEFINITION('state one',$);
EXAMPLE The following shows how the UML 2.1 State Machine concepts can be represented using an OWL ontology and the related RDF/XML Abbreviated syntax.
<?xml version="1.0"?> <rdf:RDF xmlns="http://schema.omg.org/spec/UML/2.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:xsd="http://www.w3.org/2001/XMLSchema#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:owl="http://www.w3.org/2002/07/owl#" xml:base="http://schema.omg.org/spec/UML/2.1/"> <owl:Ontology rdf:about=""/> <owl:Class rdf:about="http://schema.omg.org/spec/UML/2.1/Region"/> <owl:Class rdf:about="http://schema.omg.org/spec/UML/2.1/FinalState"/> <owl:Class rdf:about="http://schema.omg.org/spec/UML/2.1/ConnectionPointReference"/> <owl:Class rdf:about="http://schema.omg.org/spec/UML/2.1/Pseudostate"/> <owl:Class rdf:about="http://schema.omg.org/spec/UML/2.1/Pseudostate-deepHistory"> <rdfs:subClassOf rdf:resource="http://schema.omg.org/spec/UML/2.1/Pseudostate"/> </owl:Class> <owl:Class rdf:about="http://schema.omg.org/spec/UML/2.1/Pseudostate-shallowHistory"> <rdfs:subClassOf rdf:resource="http://schema.omg.org/spec/UML/2.1/Pseudostate"/> </owl:Class> <owl:Class rdf:about="http://schema.omg.org/spec/UML/2.1/Pseudostate-join"> <rdfs:subClassOf rdf:resource="http://schema.omg.org/spec/UML/2.1/Pseudostate"/> </owl:Class> <owl:Class rdf:about="http://schema.omg.org/spec/UML/2.1/Pseudostate-fork"> <rdfs:subClassOf rdf:resource="http://schema.omg.org/spec/UML/2.1/Pseudostate"/> </owl:Class> <owl:Class rdf:about="http://schema.omg.org/spec/UML/2.1/Pseudostate-junction"> <rdfs:subClassOf rdf:resource="http://schema.omg.org/spec/UML/2.1/Pseudostate"/> </owl:Class> <owl:Class rdf:about="http://schema.omg.org/spec/UML/2.1/Pseudostate-choice"> <rdfs:subClassOf rdf:resource="http://schema.omg.org/spec/UML/2.1/Pseudostate"/> </owl:Class> <owl:Class rdf:about="http://schema.omg.org/spec/UML/2.1/Pseudostate-entryPoint"> <rdfs:subClassOf rdf:resource="http://schema.omg.org/spec/UML/2.1/Pseudostate"/> </owl:Class> <owl:Class rdf:about="http://schema.omg.org/spec/UML/2.1/Pseudostate-exitPoint"> <rdfs:subClassOf rdf:resource="http://schema.omg.org/spec/UML/2.1/Pseudostate"/> </owl:Class> <owl:Class rdf:about="http://schema.omg.org/spec/UML/2.1/Pseudostate-terminate"> <rdfs:subClassOf rdf:resource="http://schema.omg.org/spec/UML/2.1/Pseudostate"/> </owl:Class> <owl:Class rdf:about="http://schema.omg.org/spec/UML/2.1/Pseudostate-initial"> <rdfs:subClassOf rdf:resource="http://schema.omg.org/spec/UML/2.1/Pseudostate"/> </owl:Class> </rdf:RDF>
A state_type may be classified in order to specify its detailed semantics. For the purpose of specifying those semantics, the OMG UML 2.1 concept of a State Machine is used. The same terms and URIs as specified for State_definition are applicable.
© ISO 2006 — All rights reserved