From WikiSTEP
<?xml version="1.0"?>
<!DOCTYPE rdf:RDF [
<!ENTITY iso31 "http://www.s-ten.net/iso31.owl#">
<!ENTITY iso1000 "http://www.s-ten.net/iso1000.owl#">
<!ENTITY owl "http://www.w3.org/2002/07/owl#">
<!ENTITY step "http://www.s-ten.net/d3_1_basic_step_ontology.owl#">
<!ENTITY xsd "http://www.w3.org/2001/XMLSchema#">
<!ENTITY rdfs "http://www.w3.org/2000/01/rdf-schema#">
]>
<rdf:RDF
xmlns ="&step;"
xmlns:step ="&step;"
xmlns:iso31 ="&iso31;"
xmlns:iso1000 ="&iso1000;"
xmlns:owl ="http://www.w3.org/2002/07/owl#"
xmlns:rdf ="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:rdfs ="http://www.w3.org/2000/01/rdf-schema#"
xmlns:xsd ="http://www.w3.org/2001/XMLSchema#"
xml:base ="http://www.s-ten.net/d3_1_basic_step_ontology.owl"
>
<owl:Ontology rdf:about="">
<owl:imports>
<owl:Ontology rdf:about="&iso31;"/>
</owl:imports>
</owl:Ontology>
<!-- basic types from the support_resource_schema in ISO 10303-41 -->
<owl:DatatypeProperty rdf:ID="label">
<rdfs:range rdf:resource="&xsd;string"/>
<rdfs:comment>XA label is an alphanumeric string that represents the human-interpretable name of something and shall have a natural-language meaning.</rdfs:comment>
</owl:DatatypeProperty>
<owl:DatatypeProperty rdf:ID="text">
<rdfs:range rdf:resource="&xsd;string"/>
<rdfs:comment>A text is an alphanumeric string intended to be read and understood by a human being. It is for information purposes only.</rdfs:comment>
</owl:DatatypeProperty>
<owl:DatatypeProperty rdf:ID="identifier">
<rdfs:range rdf:resource="&xsd;string"/>
<rdfs:comment>An identifier is a string suitable for identifying some product data.</rdfs:comment>
</owl:DatatypeProperty>
<!-- typical string attributes used in many STEP Express schemas-->
<owl:DatatypeProperty rdf:ID="id">
<rdfs:subPropertyOf rdf:resource="#identifier"/>
</owl:DatatypeProperty>
<owl:DatatypeProperty rdf:ID="version_id">
<rdfs:subPropertyOf rdf:resource="#identifier"/>
</owl:DatatypeProperty>
<owl:DatatypeProperty rdf:ID="name">
<rdfs:subPropertyOf rdf:resource="#label"/>
</owl:DatatypeProperty>
<owl:DatatypeProperty rdf:ID="role">
<rdfs:subPropertyOf rdf:resource="#label"/>
</owl:DatatypeProperty>
<owl:DatatypeProperty rdf:ID="description">
<rdfs:subPropertyOf rdf:resource="#text"/>
</owl:DatatypeProperty>
<!-- Definition of meta levels -->
<owl:Class rdf:about="#Physical_object">
<rdfs:subClassOf rdf:resource="&owl;Class"/>
</owl:Class>
<owl:Class rdf:about="#Class_of_physical_object">
<owl:equivalentClass>
<owl:Restriction>
<owl:onProperty rdf:resource="&rdfs;subClassOf"/>
<owl:hasValue rdf:resource="#Physical_object"/>
</owl:Restriction>
</owl:equivalentClass>
</owl:Class>
<owl:Class rdf:about="#Class_of_class_of_physical_object">
<owl:equivalentClass>
<owl:Restriction>
<owl:onProperty rdf:resource="&rdfs;subClassOf"/>
<owl:hasValue rdf:resource="#Class_of_physical_object"/>
</owl:Restriction>
</owl:equivalentClass>
</owl:Class>
<!-- individuals of type Class_of_class_of_physical_object -->
<Class_of_class_of_physical_object rdf:ID="Product_class">
<rdfs:subClassOf rdf:resource="#Class_of_physical_object"/>
</Class_of_class_of_physical_object>
<owl:DatatypeProperty rdf:ID="market">
<rdfs:subPropertyOf rdf:resource="#name"/>
<rdfs:domain rdf:resource='#Product_class'/>
<rdfs:range rdf:resource="&xsd;string"/>
</owl:DatatypeProperty>
<Class_of_class_of_physical_object rdf:ID="Product_specification">
<rdfs:subClassOf rdf:resource="#Class_of_physical_object"/>
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="&rdfs;subClassOf"/>
<owl:allValuesFrom rdf:resource="#Product_class"/>
</owl:Restriction>
</rdfs:subClassOf>
<owl:disjointWith rdf:resource="#Product_class"/>
</Class_of_class_of_physical_object>
<Class_of_class_of_physical_object rdf:ID="Part">
<rdfs:subClassOf rdf:resource="#Class_of_physical_object"/>
<owl:disjointWith rdf:resource="#Product_class"/>
<owl:disjointWith rdf:resource="#Product_specification"/>
</Class_of_class_of_physical_object>
<Class_of_class_of_physical_object rdf:ID="Part_version">
<rdfs:subClassOf rdf:resource="#Class_of_physical_object"/>
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="&rdfs;subClassOf"/>
<owl:allValuesFrom rdf:resource="#Part"/>
</owl:Restriction>
</rdfs:subClassOf>
<owl:disjointWith rdf:resource="#Product_class"/>
<owl:disjointWith rdf:resource="#Product_specification"/>
<owl:disjointWith rdf:resource="#Part"/>
</Class_of_class_of_physical_object>
<owl:ObjectProperty rdf:ID='part_version_predecessor'>
<rdf:type rdf:resource="&owl;TransitiveProperty" />
<rdfs:domain rdf:resource='#Part_version'/>
<rdfs:range rdf:resource='#Part_version'/>
</owl:ObjectProperty>
<owl:ObjectProperty rdf:ID='part_version_successor'>
<owl:inverseOf rdf:resource='#part_version_predecessor'/>
<rdfs:domain rdf:resource='#Part_version'/>
<rdfs:range rdf:resource='#Part_version'/>
</owl:ObjectProperty>
<Class_of_class_of_physical_object rdf:ID="Part_view_definition">
<rdfs:subClassOf rdf:resource="#Class_of_physical_object"/>
<owl:disjointWith rdf:resource="#Product_class"/>
<owl:disjointWith rdf:resource="#Product_specification"/>
<owl:disjointWith rdf:resource="#Part"/>
<owl:disjointWith rdf:resource="#Part_version"/>
</Class_of_class_of_physical_object>
<Class_of_class_of_physical_object rdf:ID="Part_occurence">
<rdfs:subClassOf rdf:resource="#Class_of_physical_object"/>
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="&rdfs;subClassOf"/>
<owl:allValuesFrom rdf:resource="#Part_version"/>
</owl:Restriction>
</rdfs:subClassOf>
<owl:disjointWith rdf:resource="#Product_class"/>
<owl:disjointWith rdf:resource="#Product_specification"/>
<owl:disjointWith rdf:resource="#Part"/>
<owl:disjointWith rdf:resource="#Part_version"/>
<owl:disjointWith rdf:resource="#Part_view_definition"/>
</Class_of_class_of_physical_object>
<!-- individuals of type Class_of_physical_object -->
<Class_of_physical_object rdf:ID="Product_as_individual">
<rdfs:subClassOf rdf:resource="#Physical_object"/>
</Class_of_physical_object>
<owl:Class rdf:about="#ClassOf_Product_as_individual">
<owl:equivalentClass>
<owl:Restriction>
<owl:onProperty rdf:resource="&rdfs;subClassOf"/>
<owl:hasValue rdf:resource="#Product_as_individual"/>
</owl:Restriction>
</owl:equivalentClass>
</owl:Class>
<Class_of_physical_object rdf:ID="Product_as_individual_version">
<owl:unionOf rdf:parseType="Collection">
<owl:Class rdf:about="#Product_as_planned" />
<owl:Class rdf:about="#Product_as_realized" />
</owl:unionOf>
</Class_of_physical_object>
<Class_of_physical_object rdf:ID="Product_as_planned">
<rdfs:subClassOf rdf:resource="#Product_as_individual"/>
</Class_of_physical_object>
<Class_of_physical_object rdf:ID="Product_as_realized">
<rdfs:subClassOf rdf:resource="#Product_as_individual"/>
<owl:disjointWith rdf:resource="#Product_as_planned"/>
</Class_of_physical_object>
<owl:ObjectProperty rdf:ID='temporal_part'>
<rdfs:domain rdf:resource='#Product_as_individual_version'/>
<rdfs:range rdf:resource='#Product_as_individual'/>
</owl:ObjectProperty>
<owl:ObjectProperty rdf:ID='physical_assembly_relationship'>
<rdfs:domain rdf:resource='#Product_as_individual_version'/>
<rdfs:range rdf:resource='#Product_as_individual_version'/>
</owl:ObjectProperty>
<owl:Class rdf:about="#Physical_property_of_product_as_individual">
<owl:equivalentClass>
<owl:Class>
<owl:intersectionOf rdf:parseType="Collection"/>
<owl:Restriction>
<owl:onProperty rdf:resource="&rdfs;domain"/>
<owl:allValuesFrom>
<owl:Restriction>
<owl:onProperty rdf:resource="&rdfs;subClassOf"/>
<owl:hasValue rdf:resource="&step;Product_as_individual"/>
</owl:Restriction>
</owl:allValuesFrom>
</owl:Restriction>
<owl:Restriction>
<owl:onProperty rdf:resource="&rdfs;range"/>
<owl:allValuesFrom rdf:resource="&iso31;Physical_quantity_type"/>
</owl:Restriction>
</owl:intersectionOf>
</owl:Class>
</owl:equivalentClass>
</owl:Class>
<Class_of_physical_object rdf:ID="Person">
<rdfs:subClassOf rdf:resource="#Physical_object"/>
</Class_of_physical_object>
<Class_of_physical_object rdf:ID="Organization">
<rdfs:subClassOf rdf:resource="#Physical_object"/>
</Class_of_physical_object>
<owl:DatatypeProperty rdf:ID="last_name">
<rdfs:subPropertyOf rdf:resource="#label"/>
<rdfs:domain rdf:resource="#Person"/>
</owl:DatatypeProperty>
<owl:DatatypeProperty rdf:ID="first_name">
<rdfs:subPropertyOf rdf:resource="#label"/>
<rdfs:domain rdf:resource="#Person"/>
</owl:DatatypeProperty>
<owl:DatatypeProperty rdf:ID="middle_name">
<rdfs:subPropertyOf rdf:resource="#label"/>
<rdfs:domain rdf:resource="#Person"/>
</owl:DatatypeProperty>
<owl:DatatypeProperty rdf:ID="prefix_title">
<rdfs:subPropertyOf rdf:resource="#label"/>
<rdfs:domain rdf:resource="#Person"/>
</owl:DatatypeProperty>
<owl:DatatypeProperty rdf:ID="suffix_title">
<rdfs:subPropertyOf rdf:resource="#label"/>
<rdfs:domain rdf:resource="#Person"/>
</owl:DatatypeProperty>
<Class_of_physical_object rdf:ID="Person_and_organization">
<rdfs:subClassOf rdf:resource="#Physical_object"/>
</Class_of_physical_object>
<owl:ObjectProperty rdf:ID="the_person">
<rdfs:domain rdf:resource="#Person_and_organization"/>
<rdfs:range rdf:resource="#Person"/>
</owl:ObjectProperty>
<owl:ObjectProperty rdf:ID="the_organization">
<rdfs:domain rdf:resource="#Person_and_organization"/>
<rdfs:range rdf:resource="#Organization"/>
</owl:ObjectProperty>
<owl:ObjectProperty rdf:ID="id_owner_assignment">
<rdfs:range rdf:resource="#Person_and_organization"/>
</owl:ObjectProperty>
<!-- others -->
<owl:Class rdf:ID="Property">
</owl:Class>
<owl:Class rdf:ID="PropertyValue">
</owl:Class>
<owl:ObjectProperty rdf:ID='propertyRepresentation'>
<rdfs:domain rdf:resource='#PropertyValue'/>
<!--rdfs:range rdf:resource='#Part_version'/-->
</owl:ObjectProperty>
<owl:Class rdf:ID='Next_assembly_usage_occurrence'>
</owl:Class>
<owl:ObjectProperty rdf:ID='nextAssemblyUsageOccurrenceDefinition'>
<rdfs:domain rdf:resource='#Next_assembly_usage_occurrence'/>
<rdfs:range rdf:resource='#Part_occurence'/>
</owl:ObjectProperty>
</rdf:RDF>