From 9fc0caa567e2cfd5032317022a303bc9a7739ea8 Mon Sep 17 00:00:00 2001 From: Nataliya Keberle Date: Fri, 4 Apr 2025 16:28:06 +0300 Subject: [PATCH] Updated to have arbitrary baseURI, source and target files as input --- bin/soml2owl.py | 93 +- soml2owl/README.md | 7 +- soml2owl/bsdd-ontology.ttl | 1629 +++++++++++++++++++----------------- 3 files changed, 907 insertions(+), 822 deletions(-) diff --git a/bin/soml2owl.py b/bin/soml2owl.py index 84e04a2..ed7a35d 100644 --- a/bin/soml2owl.py +++ b/bin/soml2owl.py @@ -1,7 +1,7 @@ import yaml +import argparse from rdflib import Graph, Namespace, RDF, RDFS, OWL, XSD, Literal, BNode -# Recursive creation of rdf:parseType = "Collection" def collection_from_list(g, *rest): node_union = BNode() g.add((node_union, RDF.first, rest[0])) @@ -11,51 +11,45 @@ def collection_from_list(g, *rest): g.add((node_union, RDF.rest, RDF.nil)) return node_union -# Load SOML schema def load_soml_schema(file_path): with open(file_path, "r", encoding="utf-8") as file: return yaml.safe_load(file) -# Initialize RDF graph -def initialize_graph(): +def initialize_graph(base): g = Graph() - bsdd = Namespace("http://bsdd.buildingsmart.org/def#") + base_ont = Namespace(base) schema = Namespace("https://schema.org/") - g.bind("bsdd", bsdd) + g.bind("base_ont", base_ont) g.bind("schema", schema) g.bind("owl", OWL) g.bind("rdfs", RDFS) g.bind("xsd", XSD) - return g, bsdd, schema + return g, base_ont, schema -# Handle unionOf for properties with multiple class ranges def merge_object_property_ranges(graph): updated_graph = Graph() updated_graph += graph - # Find all owl:ObjectProperty with multiple rdfs:range values properties_to_update = {} - for s, p, o in graph.triples((None, RDF.type, OWL.ObjectProperty)): + for s, _, _ in graph.triples((None, RDF.type, OWL.ObjectProperty)): ranges = list(graph.objects(s, RDFS.range)) if len(ranges) > 1: properties_to_update[s] = ranges - # Remove old range declarations and replace with unionOf restriction for prop, ranges in properties_to_update.items(): for r in ranges: updated_graph.remove((prop, RDFS.range, r)) - - # Create an owl:unionOf restriction + union_bnode = BNode() restriction_bnode = BNode() updated_graph.add((restriction_bnode, RDF.type, OWL.Restriction)) - updated_graph.add((prop, RDFS.range, restriction_bnode)) + updated_graph.add((restriction_bnode, OWL.onProperty, prop)) updated_graph.add((restriction_bnode, OWL.unionOf, collection_from_list(updated_graph, *ranges))) - + updated_graph.add((prop, RDFS.range, restriction_bnode)) + return updated_graph -# Mapping of SOML types to RDF types -def get_rdf_type(soml_type, bsdd): +def get_rdf_type(soml_type, base_ont): xsd_mapping = { "string": XSD.string, "int": XSD.integer, @@ -66,44 +60,44 @@ def get_rdf_type(soml_type, bsdd): } if soml_type in xsd_mapping: return xsd_mapping[soml_type] - return bsdd[soml_type] if soml_type[0].isupper() else XSD.string + return base_ont[soml_type] if soml_type[0].isupper() else XSD.string -# Convert types to OWL enumerations -def convert_types(g, bsdd, types): +def convert_types(g, base_ont, types): for type_name, type_data in types.items(): - type_uri = bsdd[type_name] + type_uri = base_ont[type_name] g.add((type_uri, RDF.type, RDFS.Datatype)) list_items = [Literal(v["name"]) for v in type_data["values"]] - list_bnode = BNode() - equivalent_class_bnode = BNode() g.add((type_uri, OWL.equivalentClass, equivalent_class_bnode)) g.add((equivalent_class_bnode, RDF.type, RDFS.Datatype)) g.add((equivalent_class_bnode, OWL.oneOf, collection_from_list(g, *list_items))) -# Convert objects to OWL classes and properties -def convert_objects(g, bsdd, schema, objects): +def convert_objects(g, base_ont, schema, objects): for obj_name, obj_data in objects.items(): - obj_uri = bsdd[obj_name] + obj_uri = base_ont[obj_name] g.add((obj_uri, RDF.type, OWL.Class)) g.add((obj_uri, RDFS.comment, Literal(obj_data["label"]))) for prop_name, prop_data in obj_data.get("props", {}).items(): - prop_uri = bsdd[prop_name] - prop_range = get_rdf_type(prop_data.get("range", "string"), bsdd) - is_object_property = isinstance(prop_range, (str, Namespace)) and str(prop_range).startswith(str(bsdd)) + prop_uri = base_ont[prop_name] + prop_range = get_rdf_type(prop_data.get("range", "string"), base_ont) + is_object_property = isinstance(prop_range, (str, Namespace)) and str(prop_range).startswith(str(base_ont)) prop_type = OWL.ObjectProperty if is_object_property else OWL.DatatypeProperty g.add((prop_uri, RDF.type, prop_type)) g.add((prop_uri, RDFS.comment, Literal(prop_data["label"]))) g.add((prop_uri, RDFS.range, prop_range)) g.add((prop_uri, schema.domainIncludes, obj_uri)) - - # Apply cardinality and range restrictions at the class level + + # Add owl:inverseOf if inverseAlias exists + if "inverseAlias" in prop_data: + inverse_prop_uri = base_ont[prop_data["inverseAlias"]] + g.add((prop_uri, OWL.inverseOf, inverse_prop_uri)) + for prop_name, prop_data in obj_data.get("props", {}).items(): restriction_bnode = BNode() g.add((restriction_bnode, RDF.type, OWL.Restriction)) - g.add((restriction_bnode, OWL.onProperty, bsdd[prop_name])) - - prop_range = get_rdf_type(prop_data.get("range", "string"), bsdd) + g.add((restriction_bnode, OWL.onProperty, base_ont[prop_name])) + + prop_range = get_rdf_type(prop_data.get("range", "string"), base_ont) if "min" in prop_data and prop_data["min"] >= 1: g.add((restriction_bnode, OWL.someValuesFrom, prop_range)) g.add((restriction_bnode, OWL.minCardinality, Literal(prop_data["min"], datatype=XSD.integer))) @@ -111,18 +105,27 @@ def convert_objects(g, bsdd, schema, objects): g.add((restriction_bnode, OWL.maxCardinality, Literal(prop_data["max"], datatype=XSD.integer))) else: g.add((restriction_bnode, OWL.allValuesFrom, prop_range)) - + g.add((obj_uri, RDFS.subClassOf, restriction_bnode)) -# Convert SOML schema to RDF graph -def convert_soml_to_turtle(soml_schema): - g, bsdd, schema = initialize_graph() - convert_types(g, bsdd, soml_schema["types"]) - convert_objects(g, bsdd, schema, soml_schema["objects"]) +def convert_soml_to_turtle(soml_schema, base): + g, base_ont, schema = initialize_graph(base) + convert_types(g, base_ont, soml_schema["types"]) + convert_objects(g, base_ont, schema, soml_schema["objects"]) g = merge_object_property_ranges(g) - return g.serialize(format="turtle", base="http://bsdd.buildingsmart.org/def#") + return g.serialize(format="turtle", base=base) + +if __name__ == "__main__": + parser = argparse.ArgumentParser(description="Convert SOML YAML schema to OWL Turtle ontology.") + parser.add_argument("-i", "--input", required=True, help="Path to the input YAML file") + parser.add_argument("-o", "--output", required=True, help="Path to the output TTL file") + parser.add_argument("-b", "--base", required=True, help="Base URI for the ontology") + args = parser.parse_args() + + soml_schema = load_soml_schema(args.input) + turtle_output = convert_soml_to_turtle(soml_schema, args.base) + + with open(args.output, "w", encoding="utf-8") as f: + f.write(turtle_output) -# Load schema and convert to Turtle -soml_schema = load_soml_schema("bsdd-graphql-soml-refact.yaml") -turtle_output = convert_soml_to_turtle(soml_schema) -print(turtle_output) + print(f"Conversion complete. RDF Turtle saved to: {args.output}") diff --git a/soml2owl/README.md b/soml2owl/README.md index 4777517..6845d0a 100644 --- a/soml2owl/README.md +++ b/soml2owl/README.md @@ -9,9 +9,12 @@ Acknowledgement: this work was done by Nataliya Keberle (@nataschake) as part of that has received funding from the European Union's Horizon Europe research and innovation programme under grant agreement no. 101056973. Features -- TODO +- SOML `range` converts to `owl:allValuesFrom` restriction +- SOML `min>=1` converts to `owl:minCardinality`/`owl:someValuesFrom` pair of restrictions +- SOML `max bsdd-ontology.ttl +python soml2owl.py -i bsdd-soml.yaml -o bsdd-ontology.ttl -b "http://bsdd.buildingsmart.org/def#" ``` diff --git a/soml2owl/bsdd-ontology.ttl b/soml2owl/bsdd-ontology.ttl index 04aa174..bafa64e 100644 --- a/soml2owl/bsdd-ontology.ttl +++ b/soml2owl/bsdd-ontology.ttl @@ -1,1032 +1,1111 @@ -@prefix bsdd: . +@base . @prefix owl: . +@prefix rdf: . @prefix rdfs: . -@prefix schema1: . +@prefix schema: . @prefix xsd: . # Enumerations -bsdd:ClassificationType a rdfs:Datatype ; - owl:equivalentClass [ a rdfs:Datatype ; owl:oneOf ( "CLASS" "COMPOSED_PROPERTY" "DOMAIN" "GROUP_OF_PROPERTIES" "REFERENCE_DOCUMENT" "ALTERNATIVE_USE" "MATERIAL" ) ] . -bsdd:PropertyValueKind a rdfs:Datatype ; - owl:equivalentClass [ a rdfs:Datatype ; owl:oneOf ( "SINGLE" "RANGE" "LIST" "COMPLEX" "COMPLEX_LIST" ) ] . + a rdfs:Datatype ; + owl:equivalentClass [ a rdfs:Datatype ; + owl:oneOf ( "CLASS" "COMPOSED_PROPERTY" "DOMAIN" "GROUP_OF_PROPERTIES" "REFERENCE_DOCUMENT" "ALTERNATIVE_USE" "MATERIAL" ) ] . -# Properties - -bsdd:value a owl:DatatypeProperty ; - schema1:domainIncludes bsdd:PropertyValue ; - rdfs:range xsd:string . - -bsdd:childClassification a owl:ObjectProperty ; - schema1:domainIncludes bsdd:Classification ; - rdfs:range bsdd:Classification . - -bsdd:classificationType a owl:ObjectProperty ; - schema1:domainIncludes bsdd:Classification ; - rdfs:range bsdd:ClassificationType . - -bsdd:connectedPropertyCode a owl:DatatypeProperty ; - schema1:domainIncludes bsdd:Property ; - rdfs:range xsd:string . - -bsdd:copyrightNotice a owl:DatatypeProperty ; - schema1:domainIncludes bsdd:Domain ; - rdfs:range xsd:string . - -bsdd:date a owl:DatatypeProperty ; - schema1:domainIncludes bsdd:ReferenceDocument ; - rdfs:range xsd:dateTime . - -bsdd:domain a owl:ObjectProperty ; - schema1:domainIncludes bsdd:Classification ; - rdfs:range bsdd:Domain . + a rdfs:Datatype ; + owl:equivalentClass [ a rdfs:Datatype ; + owl:oneOf ( "SINGLE" "RANGE" "LIST" "COMPLEX" "COMPLEX_LIST" ) ] . -bsdd:dynamicParameterPropertyCode a owl:DatatypeProperty ; - schema1:domainIncludes bsdd:ClassificationProperty ; - rdfs:range xsd:string . - -bsdd:dynamicParameterPropertyCodes a owl:DatatypeProperty ; - schema1:domainIncludes bsdd:Property ; - rdfs:range xsd:string . - -bsdd:isRequired a owl:DatatypeProperty ; - schema1:domainIncludes bsdd:ClassificationProperty ; - rdfs:range xsd:boolean . - -bsdd:isWritable a owl:DatatypeProperty ; - schema1:domainIncludes bsdd:ClassificationProperty ; - rdfs:range xsd:boolean . +# Properties -bsdd:isocode a owl:DatatypeProperty ; - schema1:domainIncludes bsdd:Language ; - rdfs:range xsd:string . - -bsdd:languageCode a owl:DatatypeProperty ; - schema1:domainIncludes bsdd:Domain ; - rdfs:range xsd:string . - -bsdd:lastUpdatedUtc a owl:DatatypeProperty ; - schema1:domainIncludes bsdd:Domain ; - rdfs:range xsd:dateTime . - -bsdd:license a owl:DatatypeProperty ; - schema1:domainIncludes bsdd:Domain ; - rdfs:range xsd:string . - -bsdd:licenseUrl a owl:DatatypeProperty ; - schema1:domainIncludes bsdd:Domain ; - rdfs:range xsd:string . - -bsdd:moreInfoUrl a owl:DatatypeProperty ; - schema1:domainIncludes bsdd:Domain ; - rdfs:range xsd:string . - -bsdd:parentClassification a owl:ObjectProperty ; - schema1:domainIncludes bsdd:Classification ; - rdfs:range bsdd:Classification . - -bsdd:predefinedValue a owl:DatatypeProperty ; - schema1:domainIncludes bsdd:ClassificationProperty ; - rdfs:range xsd:string . - -bsdd:property a owl:ObjectProperty ; - schema1:domainIncludes bsdd:ClassificationProperty ; - rdfs:range bsdd:Property . - -bsdd:propertySet a owl:DatatypeProperty ; - schema1:domainIncludes bsdd:ClassificationProperty ; - rdfs:range xsd:string . - -bsdd:referenceCode a owl:DatatypeProperty ; - schema1:domainIncludes bsdd:Classification ; - rdfs:range xsd:string . - -bsdd:relatedIfcEntityName a owl:DatatypeProperty ; - schema1:domainIncludes bsdd:Classification ; - rdfs:range xsd:string . - -bsdd:releaseDate a owl:DatatypeProperty ; - schema1:domainIncludes bsdd:Domain ; - rdfs:range xsd:dateTime . - -bsdd:replacedObjectCodes a owl:DatatypeProperty ; - schema1:domainIncludes bsdd:Property ; - rdfs:range xsd:string . - -bsdd:replacingObjectCodes a owl:DatatypeProperty ; - schema1:domainIncludes bsdd:Property ; - rdfs:range xsd:string . - -bsdd:sortNumber a owl:DatatypeProperty ; - schema1:domainIncludes bsdd:PropertyValue ; - rdfs:range xsd:integer . - -bsdd:subdivisionsOfUse a owl:DatatypeProperty ; - schema1:domainIncludes bsdd:Property ; - rdfs:range xsd:string . - -bsdd:synonym a owl:DatatypeProperty ; - schema1:domainIncludes bsdd:Classification ; - rdfs:range xsd:string . - -bsdd:title a owl:DatatypeProperty ; - schema1:domainIncludes bsdd:ReferenceDocument ; - rdfs:range xsd:string . - -bsdd:version a owl:DatatypeProperty ; - schema1:domainIncludes bsdd:Domain ; - rdfs:range xsd:string . - -bsdd:allowedValue a owl:ObjectProperty ; - schema1:domainIncludes bsdd:ClassificationProperty, - bsdd:Property ; - rdfs:range bsdd:PropertyValue . - -bsdd:classification a owl:ObjectProperty ; - schema1:domainIncludes bsdd:ClassificationProperty, - bsdd:Domain ; - rdfs:range bsdd:Classification . - -bsdd:classificationProperty a owl:ObjectProperty ; - schema1:domainIncludes bsdd:Classification, - bsdd:Property ; - rdfs:range bsdd:ClassificationProperty . - -bsdd:dataType a owl:DatatypeProperty ; - schema1:domainIncludes bsdd:ClassificationProperty, - bsdd:Property ; - rdfs:range xsd:string . - -bsdd:dimension a owl:DatatypeProperty ; - schema1:domainIncludes bsdd:ClassificationProperty, - bsdd:Property ; - rdfs:range xsd:string . - -bsdd:dimensionAmountOfSubstance a owl:DatatypeProperty ; - schema1:domainIncludes bsdd:ClassificationProperty, - bsdd:Property ; - rdfs:range xsd:integer . - -bsdd:dimensionElectricCurrent a owl:DatatypeProperty ; - schema1:domainIncludes bsdd:ClassificationProperty, - bsdd:Property ; - rdfs:range xsd:integer . - -bsdd:dimensionLength a owl:DatatypeProperty ; - schema1:domainIncludes bsdd:ClassificationProperty, - bsdd:Property ; - rdfs:range xsd:integer . - -bsdd:dimensionLuminousIntensity a owl:DatatypeProperty ; - schema1:domainIncludes bsdd:ClassificationProperty, - bsdd:Property ; - rdfs:range xsd:integer . - -bsdd:dimensionMass a owl:DatatypeProperty ; - schema1:domainIncludes bsdd:ClassificationProperty, - bsdd:Property ; - rdfs:range xsd:integer . - -bsdd:dimensionThermodynamicTemperature a owl:DatatypeProperty ; - schema1:domainIncludes bsdd:ClassificationProperty, - bsdd:Property ; - rdfs:range xsd:integer . - -bsdd:dimensionTime a owl:DatatypeProperty ; - schema1:domainIncludes bsdd:ClassificationProperty, - bsdd:Property ; - rdfs:range xsd:integer . - -bsdd:example a owl:DatatypeProperty ; - schema1:domainIncludes bsdd:ClassificationProperty, - bsdd:Property ; - rdfs:range xsd:string . - -bsdd:isDynamic a owl:DatatypeProperty ; - schema1:domainIncludes bsdd:ClassificationProperty, - bsdd:Property ; - rdfs:range xsd:boolean . - -bsdd:maxExclusive a owl:DatatypeProperty ; - schema1:domainIncludes bsdd:ClassificationProperty, - bsdd:Property ; - rdfs:range xsd:decimal . - -bsdd:maxInclusive a owl:DatatypeProperty ; - schema1:domainIncludes bsdd:ClassificationProperty, - bsdd:Property ; - rdfs:range xsd:decimal . - -bsdd:methodOfMeasurement a owl:DatatypeProperty ; - schema1:domainIncludes bsdd:ClassificationProperty, - bsdd:Property ; - rdfs:range xsd:string . - -bsdd:minExclusive a owl:DatatypeProperty ; - schema1:domainIncludes bsdd:ClassificationProperty, - bsdd:Property ; - rdfs:range xsd:decimal . - -bsdd:minInclusive a owl:DatatypeProperty ; - schema1:domainIncludes bsdd:ClassificationProperty, - bsdd:Property ; - rdfs:range xsd:decimal . - -bsdd:pattern a owl:DatatypeProperty ; - schema1:domainIncludes bsdd:ClassificationProperty, - bsdd:Property ; - rdfs:range xsd:string . - -bsdd:physicalQuantity a owl:DatatypeProperty ; - schema1:domainIncludes bsdd:ClassificationProperty, - bsdd:Property ; - rdfs:range xsd:string . - -bsdd:propertyValueKind a owl:ObjectProperty ; - schema1:domainIncludes bsdd:ClassificationProperty, - bsdd:Property ; - rdfs:range bsdd:PropertyValueKind . - -bsdd:related a owl:ObjectProperty ; - schema1:domainIncludes bsdd:ClassificationRelation, - bsdd:PropertyRelation ; - rdfs:range [ a owl:Restriction ; owl:unionOf ( bsdd:Classification - bsdd:Property )]. - -bsdd:relation a owl:ObjectProperty ; - schema1:domainIncludes bsdd:Classification, - bsdd:Property ; - rdfs:range [ a owl:Restriction ; owl:unionOf (bsdd:ClassificationRelation - bsdd:PropertyRelation )]. - -bsdd:relationType a owl:DatatypeProperty ; - schema1:domainIncludes bsdd:ClassificationRelation, - bsdd:PropertyRelation ; - rdfs:range xsd:string . - -bsdd:replacedObjectCode a owl:DatatypeProperty ; - schema1:domainIncludes bsdd:Classification, - bsdd:ClassificationProperty ; - rdfs:range xsd:string . - -bsdd:replacingObjectCode a owl:DatatypeProperty ; - schema1:domainIncludes bsdd:Classification, - bsdd:ClassificationProperty ; - rdfs:range xsd:string . - -bsdd:subdivisionOfUse a owl:DatatypeProperty ; - schema1:domainIncludes bsdd:Classification, - bsdd:ClassificationProperty ; - rdfs:range xsd:string . - -bsdd:symbol a owl:DatatypeProperty ; - schema1:domainIncludes bsdd:ClassificationProperty, - bsdd:Unit ; - rdfs:range xsd:string . - -bsdd:textFormat a owl:DatatypeProperty ; - schema1:domainIncludes bsdd:ClassificationProperty, - bsdd:Property ; - rdfs:range xsd:string . - -bsdd:unit a owl:DatatypeProperty ; - schema1:domainIncludes bsdd:ClassificationProperty, - bsdd:Property ; - rdfs:range xsd:string . - -bsdd:activationDateUtc a owl:DatatypeProperty ; - schema1:domainIncludes bsdd:Classification, - bsdd:ClassificationProperty, - bsdd:Property ; - rdfs:range xsd:dateTime . - -bsdd:countryOfOrigin a owl:DatatypeProperty ; - schema1:domainIncludes bsdd:Classification, - bsdd:ClassificationProperty, - bsdd:Property ; - rdfs:range xsd:string . - -bsdd:countryOfUse a owl:DatatypeProperty ; - schema1:domainIncludes bsdd:Classification, - bsdd:ClassificationProperty, - bsdd:Property ; - rdfs:range xsd:string . - -bsdd:creatorLanguageCode a owl:DatatypeProperty ; - schema1:domainIncludes bsdd:Classification, - bsdd:ClassificationProperty, - bsdd:Property ; - rdfs:range xsd:string . - -bsdd:deActivationDateUtc a owl:DatatypeProperty ; - schema1:domainIncludes bsdd:Classification, - bsdd:ClassificationProperty, - bsdd:Property ; - rdfs:range xsd:dateTime . - -bsdd:definition a owl:DatatypeProperty ; - schema1:domainIncludes bsdd:Classification, - bsdd:ClassificationProperty, - bsdd:Property ; - rdfs:range xsd:string . - -bsdd:deprecationExplanation a owl:DatatypeProperty ; - schema1:domainIncludes bsdd:Classification, - bsdd:ClassificationProperty, - bsdd:Property ; - rdfs:range xsd:string . - -bsdd:description a owl:DatatypeProperty ; - schema1:domainIncludes bsdd:ClassificationProperty, - bsdd:Property, - bsdd:PropertyValue ; - rdfs:range xsd:string . - -bsdd:documentReference a owl:DatatypeProperty ; - schema1:domainIncludes bsdd:Classification, - bsdd:ClassificationProperty, - bsdd:Property ; - rdfs:range xsd:string . - -bsdd:revisionDateUtc a owl:DatatypeProperty ; - schema1:domainIncludes bsdd:Classification, - bsdd:ClassificationProperty, - bsdd:Property ; - rdfs:range xsd:dateTime . - -bsdd:revisionNumber a owl:DatatypeProperty ; - schema1:domainIncludes bsdd:Classification, - bsdd:ClassificationProperty, - bsdd:Property ; - rdfs:range xsd:integer . - -bsdd:uid a owl:DatatypeProperty ; - schema1:domainIncludes bsdd:Classification, - bsdd:ClassificationProperty, - bsdd:Property ; - rdfs:range xsd:string . - -bsdd:versionDateUtc a owl:DatatypeProperty ; - schema1:domainIncludes bsdd:Classification, - bsdd:ClassificationProperty, - bsdd:Property ; - rdfs:range xsd:dateTime . - -bsdd:versionNumber a owl:DatatypeProperty ; - schema1:domainIncludes bsdd:Classification, - bsdd:ClassificationProperty, - bsdd:Property ; - rdfs:range xsd:integer . - -bsdd:visualRepresentationUri a owl:DatatypeProperty ; - schema1:domainIncludes bsdd:Classification, - bsdd:ClassificationProperty, - bsdd:Property ; - rdfs:range xsd:anyURI . - -bsdd:status a owl:DatatypeProperty ; - schema1:domainIncludes bsdd:Classification, - bsdd:ClassificationProperty, - bsdd:Domain, - bsdd:Property ; - rdfs:range xsd:string . - -bsdd:code a owl:DatatypeProperty ; - schema1:domainIncludes bsdd:Classification, - bsdd:ClassificationProperty, - bsdd:Country, - bsdd:Property, - bsdd:PropertyValue, - bsdd:Unit ; - rdfs:range xsd:string . - -bsdd:name a owl:DatatypeProperty ; - schema1:domainIncludes bsdd:Classification, - bsdd:ClassificationProperty, - bsdd:Country, - bsdd:Domain, - bsdd:Language, - bsdd:Property, - bsdd:ReferenceDocument, - bsdd:Unit ; - rdfs:range xsd:string . + a owl:ObjectProperty ; + rdfs:comment "classificationType" ; + rdfs:range ; + schema:domainIncludes . + + a owl:DatatypeProperty ; + rdfs:comment "List of codes of connected properties" ; + rdfs:range xsd:string ; + schema:domainIncludes . + + a owl:DatatypeProperty ; + rdfs:comment "The domain copyright" ; + rdfs:range xsd:string ; + schema:domainIncludes . + + a owl:DatatypeProperty ; + rdfs:comment "Reference document date" ; + rdfs:range xsd:dateTime ; + schema:domainIncludes . + + a owl:ObjectProperty ; + rdfs:comment "The domain" ; + rdfs:range ; + owl:inverseOf ; + schema:domainIncludes . + + a owl:DatatypeProperty ; + rdfs:comment "List of codes of the properties which are parameters of the function for a dynamic property. Only applicable for dynamic properties (IsDynamic)" ; + rdfs:range xsd:string ; + schema:domainIncludes . + + a owl:DatatypeProperty ; + rdfs:comment "List of codes of the properties which are parameters of the function for a dynamic property. Only applicable for dynamic properties (IsDynamic)" ; + rdfs:range xsd:string ; + schema:domainIncludes . + + a owl:DatatypeProperty ; + rdfs:comment "Indicates if the property is required to be filled for this classification" ; + rdfs:range xsd:boolean ; + schema:domainIncludes . + + a owl:DatatypeProperty ; + rdfs:comment "Indicates if the property value can be changed" ; + rdfs:range xsd:boolean ; + schema:domainIncludes . + + a owl:DatatypeProperty ; + rdfs:comment "Unique identification of the language" ; + rdfs:range xsd:string ; + schema:domainIncludes . + + a owl:DatatypeProperty ; + rdfs:comment "The language the results will be returned in if no language specified or if specified language is not available" ; + rdfs:range xsd:string ; + schema:domainIncludes . + + a owl:DatatypeProperty ; + rdfs:comment "UTC date this domain was last updated" ; + rdfs:range xsd:dateTime ; + schema:domainIncludes . + + a owl:DatatypeProperty ; + rdfs:comment "The type of license for using data of this domain" ; + rdfs:range xsd:string ; + schema:domainIncludes . + + a owl:DatatypeProperty ; + rdfs:comment "Url with more info about the license" ; + rdfs:range xsd:string ; + schema:domainIncludes . + + a owl:DatatypeProperty ; + rdfs:comment "Url with more info about the domain" ; + rdfs:range xsd:string ; + schema:domainIncludes . + + a owl:ObjectProperty ; + rdfs:comment "Parent classification" ; + rdfs:range ; + owl:inverseOf ; + schema:domainIncludes . + + a owl:DatatypeProperty ; + rdfs:comment "Predefined value for the property" ; + rdfs:range xsd:string ; + schema:domainIncludes . + + a owl:DatatypeProperty ; + rdfs:comment "Name of the property set" ; + rdfs:range xsd:string ; + schema:domainIncludes . + + a owl:DatatypeProperty ; + rdfs:comment "Optional code for domain specific use" ; + rdfs:range xsd:string ; + schema:domainIncludes . + + a owl:DatatypeProperty ; + rdfs:comment "relatedIfcEntityName" ; + rdfs:range xsd:string ; + schema:domainIncludes . + + a owl:DatatypeProperty ; + rdfs:comment "releaseDate" ; + rdfs:range xsd:dateTime ; + schema:domainIncludes . + + a owl:DatatypeProperty ; + rdfs:comment "List of codes of the replaced items" ; + rdfs:range xsd:string ; + schema:domainIncludes . + + a owl:DatatypeProperty ; + rdfs:comment "List of codes of the replacing items" ; + rdfs:range xsd:string ; + schema:domainIncludes . + + a owl:DatatypeProperty ; + rdfs:comment "Sort number (if sorting of the values has been specified)" ; + rdfs:range xsd:integer ; + schema:domainIncludes . + + a owl:DatatypeProperty ; + rdfs:comment "List of subdivisions (e.g. states) where used" ; + rdfs:range xsd:string ; + schema:domainIncludes . + + a owl:DatatypeProperty ; + rdfs:comment "Synonym for the classification" ; + rdfs:range xsd:string ; + schema:domainIncludes . + + a owl:DatatypeProperty ; + rdfs:comment "Unique identification of the reference document" ; + rdfs:range xsd:string ; + schema:domainIncludes <ReferenceDocument> . + +<value> a owl:DatatypeProperty ; + rdfs:comment "The value (unique within the property)" ; + rdfs:range xsd:string ; + schema:domainIncludes <PropertyValue> . + +<version> a owl:DatatypeProperty ; + rdfs:comment "The version of the domain" ; + rdfs:range xsd:string ; + schema:domainIncludes <Domain> . + +<allowedValue> a owl:ObjectProperty ; + rdfs:comment "Allowed value", + "List of allowed values" ; + rdfs:range <PropertyValue> ; + schema:domainIncludes <ClassificationProperty>, + <Property> . + +<childClassification> a owl:ObjectProperty ; + rdfs:comment "Child classification" ; + rdfs:range <Classification> ; + schema:domainIncludes <Classification> . + +<dataType> a owl:DatatypeProperty ; + rdfs:comment "Format for expressing the value of the property: Boolean, Character, Date, Enumeration, Integer, Real, String, Time" ; + rdfs:range xsd:string ; + schema:domainIncludes <ClassificationProperty>, + <Property> . + +<dimension> a owl:DatatypeProperty ; + rdfs:comment """Dimension of the physical quantity in format 'L M T I Θ N J', for example '-2 1 0 0 0 0 0'. + With + L Length + M Mass + T Time + I Electric current + Θ Thermodynamic Temperature + N Amount of substance + J Luminous intensity +""" ; + rdfs:range xsd:string ; + schema:domainIncludes <ClassificationProperty>, + <Property> . + +<dimensionAmountOfSubstance> a owl:DatatypeProperty ; + rdfs:comment "The Amount Of Substance value of the dimension", + "The Amount of substance value of the dimension" ; + rdfs:range xsd:integer ; + schema:domainIncludes <ClassificationProperty>, + <Property> . + +<dimensionElectricCurrent> a owl:DatatypeProperty ; + rdfs:comment "The Electric Current value of the dimension", + "The Electric current value of the dimension" ; + rdfs:range xsd:integer ; + schema:domainIncludes <ClassificationProperty>, + <Property> . + +<dimensionLength> a owl:DatatypeProperty ; + rdfs:comment "The Length value of the dimension" ; + rdfs:range xsd:integer ; + schema:domainIncludes <ClassificationProperty>, + <Property> . + +<dimensionLuminousIntensity> a owl:DatatypeProperty ; + rdfs:comment "The Luminous Intensity value of the dimension" ; + rdfs:range xsd:integer ; + schema:domainIncludes <ClassificationProperty>, + <Property> . + +<dimensionMass> a owl:DatatypeProperty ; + rdfs:comment "The Mass value of the dimension" ; + rdfs:range xsd:integer ; + schema:domainIncludes <ClassificationProperty>, + <Property> . + +<dimensionThermodynamicTemperature> a owl:DatatypeProperty ; + rdfs:comment "The Thermodynamic Temperature value of the dimension", + "The Thermodynamic temperature value of the dimension" ; + rdfs:range xsd:integer ; + schema:domainIncludes <ClassificationProperty>, + <Property> . + +<dimensionTime> a owl:DatatypeProperty ; + rdfs:comment "The Time value of the dimension" ; + rdfs:range xsd:integer ; + schema:domainIncludes <ClassificationProperty>, + <Property> . + +<example> a owl:DatatypeProperty ; + rdfs:comment "Illustrate possible use or values of the Property" ; + rdfs:range xsd:string ; + schema:domainIncludes <ClassificationProperty>, + <Property> . + +<isDynamic> a owl:DatatypeProperty ; + rdfs:comment "True if the value of this property is dependent on other properties (as provided in DynamicParameterPropertyCodes)" ; + rdfs:range xsd:boolean ; + schema:domainIncludes <ClassificationProperty>, + <Property> . + +<maxExclusive> a owl:DatatypeProperty ; + rdfs:comment "Maximum value of the property, exclusive" ; + rdfs:range xsd:decimal ; + schema:domainIncludes <ClassificationProperty>, + <Property> . + +<maxInclusive> a owl:DatatypeProperty ; + rdfs:comment "Maximum value of the property, inclusive" ; + rdfs:range xsd:decimal ; + schema:domainIncludes <ClassificationProperty>, + <Property> . + +<methodOfMeasurement> a owl:DatatypeProperty ; + rdfs:comment "Description of the method of measurement" ; + rdfs:range xsd:string ; + schema:domainIncludes <ClassificationProperty>, + <Property> . + +<minExclusive> a owl:DatatypeProperty ; + rdfs:comment "Minimum value of the property, exclusive" ; + rdfs:range xsd:decimal ; + schema:domainIncludes <ClassificationProperty>, + <Property> . + +<minInclusive> a owl:DatatypeProperty ; + rdfs:comment "Minimum value of the property, inclusive" ; + rdfs:range xsd:decimal ; + schema:domainIncludes <ClassificationProperty>, + <Property> . + +<pattern> a owl:DatatypeProperty ; + rdfs:comment "An XML Schema Regular expression for the property value. See for explanation: https://www.regular-expressions.info/xml.html." ; + rdfs:range xsd:string ; + schema:domainIncludes <ClassificationProperty>, + <Property> . + +<physicalQuantity> a owl:DatatypeProperty ; + rdfs:comment "The quantity in plain text" ; + rdfs:range xsd:string ; + schema:domainIncludes <ClassificationProperty>, + <Property> . + +<property> a owl:ObjectProperty ; + rdfs:comment "General property this ClassificationProperty is based on" ; + rdfs:range <Property> ; + schema:domainIncludes <ClassificationProperty> . + +<propertyValueKind> a owl:ObjectProperty ; + rdfs:comment "Indicates kind of value: Single, Range (2 values expected), List (multiple values expected), Complex (use in combination with ConnectedProperties), ComplexList" ; + rdfs:range <PropertyValueKind> ; + schema:domainIncludes <ClassificationProperty>, + <Property> . + +<relationType> a owl:DatatypeProperty ; + rdfs:comment "Type of the relation with the reference property", + "relationType" ; + rdfs:range xsd:string ; + schema:domainIncludes <ClassificationRelation>, + <PropertyRelation> . + +<replacedObjectCode> a owl:DatatypeProperty ; + rdfs:comment "Code of replaced item", + "Code of the replaced item" ; + rdfs:range xsd:string ; + schema:domainIncludes <Classification>, + <ClassificationProperty> . + +<replacingObjectCode> a owl:DatatypeProperty ; + rdfs:comment "Code of replacing item", + "Code of the replacing item" ; + rdfs:range xsd:string ; + schema:domainIncludes <Classification>, + <ClassificationProperty> . + +<subdivisionOfUse> a owl:DatatypeProperty ; + rdfs:comment "Subdivision (e.g. state) where used" ; + rdfs:range xsd:string ; + schema:domainIncludes <Classification>, + <ClassificationProperty> . + +<symbol> a owl:DatatypeProperty ; + rdfs:comment "Symbol of the property", + "Unit symbol" ; + rdfs:range xsd:string ; + schema:domainIncludes <ClassificationProperty>, + <Unit> . + +<textFormat> a owl:DatatypeProperty ; + rdfs:comment "The text type, e.g. UTF-8" ; + rdfs:range xsd:string ; + schema:domainIncludes <ClassificationProperty>, + <Property> . + +<unit> a owl:DatatypeProperty ; + rdfs:comment "Unit of measure" ; + rdfs:range xsd:string ; + schema:domainIncludes <ClassificationProperty>, + <Property> . + +<activationDateUtc> a owl:DatatypeProperty ; + rdfs:comment "Date of activation" ; + rdfs:range xsd:dateTime ; + schema:domainIncludes <Classification>, + <ClassificationProperty>, + <Property> . + +<classification> a owl:ObjectProperty ; + rdfs:comment "Classification in which this ClassificationProperty resides", + "Classifications in the domain" ; + rdfs:range <Classification> ; + owl:inverseOf <classificationProperty> ; + schema:domainIncludes <ClassificationProperty>, + <Domain> . + +<classificationProperty> a owl:ObjectProperty ; + rdfs:comment "ClassificationProperties that use this general property", + "classification property" ; + rdfs:range <ClassificationProperty> ; + owl:inverseOf <property> ; + schema:domainIncludes <Classification>, + <Property> . + +<countryOfOrigin> a owl:DatatypeProperty ; + rdfs:comment "Country of origin" ; + rdfs:range xsd:string ; + schema:domainIncludes <Classification>, + <ClassificationProperty>, + <Property> . + +<countryOfUse> a owl:DatatypeProperty ; + rdfs:comment "Country where used", + "List of countries where used" ; + rdfs:range xsd:string ; + schema:domainIncludes <Classification>, + <ClassificationProperty>, + <Property> . + +<creatorLanguageCode> a owl:DatatypeProperty ; + rdfs:comment "Language code of the creator" ; + rdfs:range xsd:string ; + schema:domainIncludes <Classification>, + <ClassificationProperty>, + <Property> . + +<deActivationDateUtc> a owl:DatatypeProperty ; + rdfs:comment "Date of deactivation" ; + rdfs:range xsd:dateTime ; + schema:domainIncludes <Classification>, + <ClassificationProperty>, + <Property> . + +<definition> a owl:DatatypeProperty ; + rdfs:comment "Definition" ; + rdfs:range xsd:string ; + schema:domainIncludes <Classification>, + <ClassificationProperty>, + <Property> . + +<deprecationExplanation> a owl:DatatypeProperty ; + rdfs:comment "Explanation of the deprecation" ; + rdfs:range xsd:string ; + schema:domainIncludes <Classification>, + <ClassificationProperty>, + <Property> . + +<description> a owl:DatatypeProperty ; + rdfs:comment "Description of the value", + "Plain language description of the property" ; + rdfs:range xsd:string ; + schema:domainIncludes <ClassificationProperty>, + <Property>, + <PropertyValue> . + +<documentReference> a owl:DatatypeProperty ; + rdfs:comment "Reference to a(n official) document" ; + rdfs:range xsd:string ; + schema:domainIncludes <Classification>, + <ClassificationProperty>, + <Property> . + +<related> a owl:ObjectProperty ; + rdfs:comment "Related classification", + "Related property" ; + rdfs:range [ a owl:Restriction ; + owl:onProperty <related> ; + owl:unionOf ( <Classification> <Property> ) ] ; + schema:domainIncludes <ClassificationRelation>, + <PropertyRelation> . + +<relation> a owl:ObjectProperty ; + rdfs:comment "Related properties", + "relation" ; + rdfs:range [ a owl:Restriction ; + owl:onProperty <relation> ; + owl:unionOf ( <ClassificationRelation> <PropertyRelation> ) ] ; + schema:domainIncludes <Classification>, + <Property> . + +<revisionDateUtc> a owl:DatatypeProperty ; + rdfs:comment "Date of the revision" ; + rdfs:range xsd:dateTime ; + schema:domainIncludes <Classification>, + <ClassificationProperty>, + <Property> . + +<revisionNumber> a owl:DatatypeProperty ; + rdfs:comment "Revision number" ; + rdfs:range xsd:integer ; + schema:domainIncludes <Classification>, + <ClassificationProperty>, + <Property> . + +<uid> a owl:DatatypeProperty ; + rdfs:comment "Alternative unique global identification" ; + rdfs:range xsd:string ; + schema:domainIncludes <Classification>, + <ClassificationProperty>, + <Property> . + +<versionDateUtc> a owl:DatatypeProperty ; + rdfs:comment "Date of the version" ; + rdfs:range xsd:dateTime ; + schema:domainIncludes <Classification>, + <ClassificationProperty>, + <Property> . + +<versionNumber> a owl:DatatypeProperty ; + rdfs:comment "Version number" ; + rdfs:range xsd:integer ; + schema:domainIncludes <Classification>, + <ClassificationProperty>, + <Property> . + +<visualRepresentationUri> a owl:DatatypeProperty ; + rdfs:comment "Visual representation" ; + rdfs:range xsd:anyURI ; + schema:domainIncludes <Classification>, + <ClassificationProperty>, + <Property> . + +<status> a owl:DatatypeProperty ; + rdfs:comment "Status, can be: Preview, Active or Inactive", + "status" ; + rdfs:range xsd:string ; + schema:domainIncludes <Classification>, + <ClassificationProperty>, + <Domain>, + <Property> . + +<code> a owl:DatatypeProperty ; + rdfs:comment "Code of the value (unique within the property)", + "Code used originally by the domain", + "Unique identification of the country", + "Unique identification of the unit" ; + rdfs:range xsd:string ; + schema:domainIncludes <Classification>, + <ClassificationProperty>, + <Country>, + <Property>, + <PropertyValue>, + <Unit> . + +<name> a owl:DatatypeProperty ; + rdfs:comment "Country name", + "Language name", + "Plain name of the classification", + "Plain name of the property", + "Reference document name", + "The name of the domain", + "Unit name" ; + rdfs:range xsd:string ; + schema:domainIncludes <Classification>, + <ClassificationProperty>, + <Country>, + <Domain>, + <Language>, + <Property>, + <ReferenceDocument>, + <Unit> . # Classes -bsdd:Country a owl:Class ; +<Country> a owl:Class ; rdfs:comment "Country" ; rdfs:subClassOf [ a owl:Restriction ; + owl:allValuesFrom xsd:string ; owl:minCardinality 1 ; - owl:onProperty bsdd:code ], - [ a owl:Restriction ; - owl:someValuesFrom xsd:string ; - owl:onProperty bsdd:code ] , + owl:onProperty <code> ; + owl:someValuesFrom xsd:string ], [ a owl:Restriction ; + owl:allValuesFrom xsd:string ; owl:minCardinality 1 ; - owl:onProperty bsdd:name ] , - [ a owl:Restriction ; - owl:someValuesFrom xsd:string ; - owl:onProperty bsdd:name ] . + owl:onProperty <name> ; + owl:someValuesFrom xsd:string ] . -bsdd:Language a owl:Class ; +<Language> a owl:Class ; rdfs:comment "Language" ; rdfs:subClassOf [ a owl:Restriction ; + owl:allValuesFrom xsd:string ; owl:minCardinality 1 ; - owl:onProperty bsdd:name ], - [ a owl:Restriction ; - owl:someValuesFrom xsd:string ; - owl:onProperty bsdd:name ] , + owl:onProperty <isocode> ; + owl:someValuesFrom xsd:string ], [ a owl:Restriction ; + owl:allValuesFrom xsd:string ; owl:minCardinality 1 ; - owl:onProperty bsdd:isocode ] , - [ a owl:Restriction ; - owl:someValuesFrom xsd:string ; - owl:onProperty bsdd:isocode ] . + owl:onProperty <name> ; + owl:someValuesFrom xsd:string ] . -bsdd:ClassificationRelation a owl:Class ; - rdfs:comment "Attributes of a relation of a classification with another classification, can be from a different domain." ; +<ReferenceDocument> a owl:Class ; + rdfs:comment "ReferenceDocument" ; rdfs:subClassOf [ a owl:Restriction ; - owl:maxCardinality 2 ; - owl:minCardinality 2 ; - owl:onProperty bsdd:related ], - [ a owl:Restriction ; - owl:someValuesFrom bsdd:Classification ; - owl:onProperty bsdd:related ] , - [ a owl:Restriction ; + owl:allValuesFrom xsd:string ; owl:minCardinality 1 ; - owl:onProperty bsdd:relationType ] , - [ a owl:Restriction ; - owl:someValuesFrom xsd:string ; - owl:onProperty bsdd:relationType ] . - -bsdd:PropertyRelation a owl:Class ; - rdfs:comment "Attributes of a relation of a property with another property, can be from a different domain." ; - rdfs:subClassOf [ a owl:Restriction ; - owl:maxCardinality 2 ; - owl:minCardinality 2 ; - owl:onProperty bsdd:related ], - [ a owl:Restriction ; - owl:someValuesFrom bsdd:Property ; - owl:onProperty bsdd:related ] , + owl:onProperty <name> ; + owl:someValuesFrom xsd:string ], [ a owl:Restriction ; + owl:allValuesFrom xsd:dateTime ; owl:minCardinality 1 ; - owl:onProperty bsdd:relationType ] , + owl:onProperty <date> ; + owl:someValuesFrom xsd:dateTime ], [ a owl:Restriction ; - owl:someValuesFrom xsd:string ; - owl:onProperty bsdd:relationType ] . + owl:allValuesFrom xsd:string ; + owl:minCardinality 1 ; + owl:onProperty <title> ; + owl:someValuesFrom xsd:string ] . -bsdd:ReferenceDocument a owl:Class ; - rdfs:comment "ReferenceDocument" ; +<Unit> a owl:Class ; + rdfs:comment "Unit" ; rdfs:subClassOf [ a owl:Restriction ; - owl:minCardinality 1 ; - owl:onProperty bsdd:name ], - [ a owl:Restriction ; - owl:someValuesFrom xsd:string ; - owl:onProperty bsdd:name ] , + owl:allValuesFrom xsd:string ; + owl:onProperty <symbol> ], [ a owl:Restriction ; + owl:allValuesFrom xsd:string ; owl:minCardinality 1 ; - owl:onProperty bsdd:title ] , - [ a owl:Restriction ; - owl:someValuesFrom xsd:string ; - owl:onProperty bsdd:title ] , + owl:onProperty <name> ; + owl:someValuesFrom xsd:string ], [ a owl:Restriction ; + owl:allValuesFrom xsd:string ; owl:minCardinality 1 ; - owl:onProperty bsdd:date ] , - [ a owl:Restriction ; - owl:someValuesFrom xsd:dateTime ; - owl:onProperty bsdd:date ] . + owl:onProperty <code> ; + owl:someValuesFrom xsd:string ] . -bsdd:Unit a owl:Class ; - rdfs:comment "Unit" ; +<ClassificationRelation> a owl:Class ; + rdfs:comment "Attributes of a relation of a classification with another classification, can be from a different domain." ; rdfs:subClassOf [ a owl:Restriction ; + owl:allValuesFrom xsd:string ; owl:minCardinality 1 ; - owl:onProperty bsdd:code ], - [ a owl:Restriction ; - owl:someValuesFrom xsd:string ; - owl:onProperty bsdd:code ] , + owl:onProperty <relationType> ; + owl:someValuesFrom xsd:string ], [ a owl:Restriction ; + owl:maxCardinality 2 ; + owl:minCardinality 2 ; + owl:onProperty <related> ; + owl:someValuesFrom <Classification> ] . + +<PropertyRelation> a owl:Class ; + rdfs:comment "Attributes of a relation of a property with another property, can be from a different domain." ; + rdfs:subClassOf [ a owl:Restriction ; + owl:allValuesFrom xsd:string ; owl:minCardinality 1 ; - owl:onProperty bsdd:name ], - [ a owl:Restriction ; - owl:someValuesFrom xsd:string ; - owl:onProperty bsdd:name ] , + owl:onProperty <relationType> ; + owl:someValuesFrom xsd:string ], [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty bsdd:symbol ] . + owl:maxCardinality 2 ; + owl:minCardinality 2 ; + owl:onProperty <related> ; + owl:someValuesFrom <Property> ] . -bsdd:PropertyValue a owl:Class ; +<PropertyValue> a owl:Class ; rdfs:comment "Possible values of a Property or ClassificationProperty." ; - rdfs:subClassOf [a owl:Restriction ; - owl:allValuesFrom xsd:integer ; - owl:onProperty bsdd:sortNumber ], + rdfs:subClassOf [ a owl:Restriction ; + owl:allValuesFrom xsd:string ; + owl:onProperty <description> ], [ a owl:Restriction ; owl:allValuesFrom xsd:integer ; - owl:onProperty bsdd:title ] , + owl:onProperty <sortNumber> ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; - owl:onProperty bsdd:code ], - [ a owl:Restriction ; owl:minCardinality 1 ; - owl:onProperty bsdd:value ], - [ a owl:Restriction ; - owl:someValuesFrom xsd:string ; - owl:onProperty bsdd:value ], + owl:onProperty <value> ; + owl:someValuesFrom xsd:string ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; - owl:onProperty bsdd:description ] . + owl:onProperty <code> ] . -bsdd:Domain a owl:Class ; +<Domain> a owl:Class ; rdfs:comment "Contains general information about the domain and the delivered data." ; rdfs:subClassOf [ a owl:Restriction ; owl:allValuesFrom xsd:string ; - owl:onProperty bsdd:licenseUrl ], - [ a owl:Restriction ; - owl:allValuesFrom xsd:dateTime ; - owl:onProperty bsdd:releaseDate ], - [ a owl:Restriction ; - owl:minCardinality 1 ; - owl:onProperty bsdd:lastUpdatedUtc ], - [ a owl:Restriction ; - owl:someValuesFrom xsd:dateTime ; - owl:onProperty bsdd:lastUpdatedUtc ] , + owl:onProperty <status> ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; - owl:onProperty bsdd:moreInfoUrl ], + owl:onProperty <copyrightNotice> ], [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty bsdd:license ], - [ a owl:Restriction ; - owl:minCardinality 1 ; - owl:onProperty bsdd:name ], + owl:allValuesFrom xsd:dateTime ; + owl:onProperty <releaseDate> ], [ a owl:Restriction ; - owl:someValuesFrom xsd:string ; - owl:onProperty bsdd:name ], + owl:allValuesFrom <Classification> ; + owl:onProperty <classification> ], [ a owl:Restriction ; + owl:allValuesFrom xsd:dateTime ; owl:minCardinality 1 ; - owl:onProperty bsdd:version ], + owl:onProperty <lastUpdatedUtc> ; + owl:someValuesFrom xsd:dateTime ], [ a owl:Restriction ; - owl:someValuesFrom xsd:string ; - owl:onProperty bsdd:version ], + owl:allValuesFrom xsd:string ; + owl:onProperty <moreInfoUrl> ], [ a owl:Restriction ; + owl:allValuesFrom xsd:string ; owl:minCardinality 1 ; - owl:onProperty bsdd:languageCode ], + owl:onProperty <languageCode> ; + owl:someValuesFrom xsd:string ], [ a owl:Restriction ; - owl:someValuesFrom xsd:string ; - owl:onProperty bsdd:languageCode ], + owl:allValuesFrom xsd:string ; + owl:onProperty <license> ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; - owl:onProperty bsdd:copyrightNotice ], + owl:onProperty <licenseUrl> ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; - owl:onProperty bsdd:status ], + owl:minCardinality 1 ; + owl:onProperty <version> ; + owl:someValuesFrom xsd:string ], [ a owl:Restriction ; - owl:allValuesFrom bsdd:Classification ; - owl:onProperty bsdd:classification ] . + owl:allValuesFrom xsd:string ; + owl:minCardinality 1 ; + owl:onProperty <name> ; + owl:someValuesFrom xsd:string ] . -bsdd:Classification a owl:Class ; +<Classification> a owl:Class ; rdfs:comment "A classification can be any (abstract) object (e.g. “IfcWall”), abstract concept (e.g. “Costing”) or process (e.g. “Installation”). Classifications can be organized in a tree like structure. For example: “IfcCurtainWall” is a more specific classification of “IfcWall”. We use the term “parent” to identify this relation: the parent of “IfcCurtainWall” is “IfcWall”." ; rdfs:subClassOf [ a owl:Restriction ; owl:allValuesFrom xsd:string ; - owl:onProperty bsdd:documentReference ], - [ a owl:Restriction ; - owl:allValuesFrom xsd:dateTime ; - owl:onProperty bsdd:revisionDateUtc ], - [ a owl:Restriction ; - owl:minCardinality 1 ; - owl:onProperty bsdd:name ], - [ a owl:Restriction ; - owl:someValuesFrom xsd:string ; - owl:onProperty bsdd:name ], - [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty bsdd:parentClassification ], - [ a owl:Restriction ; - owl:someValuesFrom bsdd:Classification ; - owl:onProperty bsdd:parentClassification ], - [ a owl:Restriction ; - owl:allValuesFrom bsdd:ClassificationType ; - owl:onProperty bsdd:classificationType ], - [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty bsdd:synonym ], + owl:onProperty <documentReference> ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; - owl:onProperty bsdd:relatedIfcEntityName ], + owl:minCardinality 1 ; + owl:onProperty <name> ; + owl:someValuesFrom xsd:string ], [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty bsdd:replacedObjectCode ], + owl:allValuesFrom <Domain> ; + owl:minCardinality 1 ; + owl:onProperty <domain> ; + owl:someValuesFrom <Domain> ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; - owl:onProperty bsdd:referenceCode ], + owl:onProperty <creatorLanguageCode> ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; - owl:onProperty bsdd:definition ], + owl:onProperty <uid> ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; - owl:onProperty bsdd:deprecationExplanation ], + owl:minCardinality 1 ; + owl:onProperty <code> ; + owl:someValuesFrom xsd:string ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; - owl:onProperty bsdd:subdivisionOfUse ], - [ a owl:Restriction ; - owl:allValuesFrom xsd:anyURI ; - owl:onProperty bsdd:visualRepresentationUri ], + owl:onProperty <synonym> ], [ a owl:Restriction ; owl:allValuesFrom xsd:dateTime ; - owl:onProperty bsdd:versionDateUtc ], + owl:onProperty <revisionDateUtc> ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; - owl:onProperty bsdd:relation ], + owl:onProperty <replacedObjectCode> ], [ a owl:Restriction ; + owl:allValuesFrom xsd:dateTime ; owl:minCardinality 1 ; - owl:onProperty bsdd:code ], - [ a owl:Restriction ; - owl:someValuesFrom xsd:string ; - owl:onProperty bsdd:code ], + owl:onProperty <activationDateUtc> ; + owl:someValuesFrom xsd:dateTime ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; - owl:onProperty bsdd:countryOfOrigin ], + owl:onProperty <replacingObjectCode> ], [ a owl:Restriction ; - owl:allValuesFrom bsdd:ClassificationProperty ; - owl:onProperty bsdd:classificationProperty ], + owl:allValuesFrom xsd:string ; + owl:onProperty <subdivisionOfUse> ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; - owl:onProperty bsdd:creatorLanguageCode ], + owl:onProperty <definition> ], + [ a owl:Restriction ; + owl:allValuesFrom <ClassificationRelation> ; + owl:onProperty <relation> ], [ a owl:Restriction ; - owl:allValuesFrom bsdd:Classification ; - owl:onProperty bsdd:childClassification ], + owl:maxCardinality 1 ; + owl:onProperty <parentClassification> ], [ a owl:Restriction ; + owl:allValuesFrom xsd:string ; owl:minCardinality 1 ; - owl:onProperty bsdd:domain ], + owl:onProperty <status> ; + owl:someValuesFrom xsd:string ], [ a owl:Restriction ; - owl:someValuesFrom bsdd:Domain ; - owl:onProperty bsdd:domain ], + owl:allValuesFrom xsd:string ; + owl:onProperty <relatedIfcEntityName> ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; - owl:onProperty bsdd:replacingObjectCode ], + owl:onProperty <countryOfUse> ], [ a owl:Restriction ; - owl:allValuesFrom xsd:dateTime ; - owl:onProperty bsdd:deActivationDateUtc ], + owl:allValuesFrom <ClassificationProperty> ; + owl:onProperty <classificationProperty> ], + [ a owl:Restriction ; + owl:allValuesFrom <ClassificationType> ; + owl:onProperty <classificationType> ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; - owl:onProperty bsdd:countryOfUse ], + owl:onProperty <countryOfOrigin> ], [ a owl:Restriction ; - owl:allValuesFrom xsd:integer ; - owl:onProperty bsdd:revisionNumber ], + owl:allValuesFrom xsd:dateTime ; + owl:onProperty <deActivationDateUtc> ], [ a owl:Restriction ; - owl:minCardinality 1 ; - owl:onProperty bsdd:activationDateUtc ], + owl:allValuesFrom xsd:dateTime ; + owl:onProperty <versionDateUtc> ], [ a owl:Restriction ; - owl:someValuesFrom xsd:dateTime ; - owl:onProperty bsdd:activationDateUtc ], + owl:allValuesFrom xsd:string ; + owl:onProperty <deprecationExplanation> ], [ a owl:Restriction ; - owl:minCardinality 1 ; - owl:onProperty bsdd:status ], + owl:allValuesFrom <Classification> ; + owl:onProperty <childClassification> ], [ a owl:Restriction ; - owl:someValuesFrom xsd:string ; - owl:onProperty bsdd:status ], + owl:allValuesFrom xsd:anyURI ; + owl:onProperty <visualRepresentationUri> ], [ a owl:Restriction ; owl:allValuesFrom xsd:integer ; - owl:onProperty bsdd:versionNumber ], + owl:onProperty <versionNumber> ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; - owl:onProperty bsdd:uid ] . + owl:onProperty <referenceCode> ], + [ a owl:Restriction ; + owl:allValuesFrom xsd:integer ; + owl:onProperty <revisionNumber> ] . -bsdd:Property a owl:Class ; +<Property> a owl:Class ; rdfs:comment "Property" ; rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:dateTime ; - owl:onProperty bsdd:revisionDateUtc ], + owl:allValuesFrom xsd:string ; + owl:onProperty <countryOfOrigin> ], [ a owl:Restriction ; - owl:allValuesFrom bsdd:PropertyRelation ; - owl:onProperty bsdd:relation ], + owl:allValuesFrom xsd:integer ; + owl:onProperty <dimensionThermodynamicTemperature> ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; - owl:onProperty bsdd:definition ], + owl:onProperty <description> ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; - owl:onProperty bsdd:physicalQuantity ], + owl:onProperty <dataType> ], + [ a owl:Restriction ; + owl:allValuesFrom xsd:anyURI ; + owl:onProperty <visualRepresentationUri> ], + [ a owl:Restriction ; + owl:allValuesFrom xsd:string ; + owl:onProperty <dimension> ], [ a owl:Restriction ; owl:allValuesFrom xsd:integer ; - owl:onProperty bsdd:versionNumber ], + owl:onProperty <dimensionLength> ], + [ a owl:Restriction ; + owl:allValuesFrom xsd:boolean ; + owl:minCardinality 1 ; + owl:onProperty <isDynamic> ; + owl:someValuesFrom xsd:boolean ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; - owl:onProperty bsdd:allowedValue ], + owl:onProperty <unit> ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; - owl:onProperty bsdd:connectedPropertyCode ], + owl:onProperty <subdivisionsOfUse> ], [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty bsdd:dimension ], + owl:allValuesFrom xsd:string ; + owl:onProperty <documentReference> ], [ a owl:Restriction ; - owl:allValuesFrom xsd:integer ; - owl:onProperty bsdd:dimensionThermodynamicTemperature ], + owl:allValuesFrom xsd:integer ; + owl:onProperty <dimensionAmountOfSubstance> ], [ a owl:Restriction ; owl:allValuesFrom xsd:dateTime ; - owl:onProperty bsdd:deActivationDateUtc ], - [ a owl:Restriction ; owl:minCardinality 1 ; - owl:onProperty bsdd:name ], + owl:onProperty <activationDateUtc> ; + owl:someValuesFrom xsd:dateTime ], [ a owl:Restriction ; - owl:someValuesFrom xsd:string ; - owl:onProperty bsdd:name ], + owl:allValuesFrom xsd:dateTime ; + owl:onProperty <revisionDateUtc> ], + [ a owl:Restriction ; + owl:allValuesFrom xsd:integer ; + owl:onProperty <dimensionMass> ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; - owl:onProperty bsdd:replacingObjectCodes ], + owl:onProperty <creatorLanguageCode> ], [ a owl:Restriction ; owl:allValuesFrom xsd:decimal ; - owl:onProperty bsdd:maxExclusive ], - [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty bsdd:dimensionElectricCurrent ], + owl:onProperty <maxExclusive> ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; - owl:onProperty bsdd:dataType ], + owl:onProperty <methodOfMeasurement> ], [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty bsdd:countryOfUse ], + owl:allValuesFrom xsd:integer ; + owl:onProperty <revisionNumber> ], [ a owl:Restriction ; - owl:minCardinality 1 ; - owl:onProperty bsdd:activationDateUtc ], - [ a owl:Restriction ; - owl:someValuesFrom xsd:dateTime ; - owl:onProperty bsdd:activationDateUtc ], + owl:allValuesFrom xsd:decimal ; + owl:onProperty <minExclusive> ], [ a owl:Restriction ; - owl:allValuesFrom xsd:dateTime ; - owl:onProperty bsdd:versionDateUtc ], + owl:allValuesFrom xsd:string ; + owl:onProperty <definition> ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; - owl:onProperty bsdd:subdivisionsOfUse ], + owl:onProperty <connectedPropertyCode> ], [ a owl:Restriction ; - owl:allValuesFrom bsdd:ClassificationProperty ; - owl:onProperty bsdd:classificationProperty ], + owl:allValuesFrom xsd:string ; + owl:onProperty <example> ], [ a owl:Restriction ; - owl:allValuesFrom xsd:integer ; - owl:onProperty bsdd:revisionNumber ], + owl:allValuesFrom <PropertyValueKind> ; + owl:onProperty <propertyValueKind> ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; - owl:onProperty bsdd:uid ], - [ a owl:Restriction ; - owl:allValuesFrom bsdd:PropertyValueKind ; - owl:onProperty bsdd:propertyValueKind ], + owl:onProperty <pattern> ], [ a owl:Restriction ; + owl:allValuesFrom xsd:string ; owl:minCardinality 1 ; - owl:onProperty bsdd:status ], + owl:onProperty <status> ; + owl:someValuesFrom xsd:string ], [ a owl:Restriction ; - owl:someValuesFrom xsd:string ; - owl:onProperty bsdd:status ], - [ a owl:Restriction ; - owl:minCardinality 1 ; - owl:onProperty bsdd:code ], + owl:allValuesFrom xsd:dateTime ; + owl:onProperty <deActivationDateUtc> ], [ a owl:Restriction ; - owl:someValuesFrom xsd:string ; - owl:onProperty bsdd:code ], + owl:allValuesFrom xsd:integer ; + owl:onProperty <dimensionTime> ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; - owl:onProperty bsdd:dimensionAmountOfSubstance ], - [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty bsdd:countryOfOrigin ], + owl:onProperty <deprecationExplanation> ], [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty bsdd:textFormat ], + owl:allValuesFrom xsd:integer ; + owl:onProperty <dimensionElectricCurrent> ], [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty bsdd:dynamicParameterPropertyCodes ], + owl:allValuesFrom <ClassificationProperty> ; + owl:onProperty <classificationProperty> ], [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty bsdd:dimensionLength ], + owl:allValuesFrom xsd:decimal ; + owl:onProperty <maxInclusive> ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; - owl:onProperty bsdd:creatorLanguageCode ], + owl:onProperty <dynamicParameterPropertyCodes> ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; - owl:onProperty bsdd:methodOfMeasurement ], + owl:onProperty <replacingObjectCodes> ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; - owl:onProperty bsdd:pattern ], + owl:minCardinality 1 ; + owl:onProperty <code> ; + owl:someValuesFrom xsd:string ], [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty bsdd:dimensionLuminousIntensity ], + owl:allValuesFrom <PropertyValue> ; + owl:onProperty <allowedValue> ], [ a owl:Restriction ; - owl:allValuesFrom xsd:decimal ; - owl:onProperty bsdd:maxInclusive ], + owl:allValuesFrom xsd:dateTime ; + owl:onProperty <versionDateUtc> ], [ a owl:Restriction ; owl:allValuesFrom xsd:integer ; - owl:onProperty bsdd:dimensionTime ], + owl:onProperty <dimensionLuminousIntensity> ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; - owl:onProperty bsdd:deprecationExplanation ], + owl:onProperty <textFormat> ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; - owl:onProperty bsdd:documentReference ], + owl:onProperty <uid> ], [ a owl:Restriction ; - owl:allValuesFrom xsd:anyURI ; - owl:onProperty bsdd:visualRepresentationUri ], + owl:allValuesFrom <PropertyRelation> ; + owl:onProperty <relation> ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; - owl:onProperty bsdd:replacedObjectCodes ], + owl:onProperty <physicalQuantity> ], [ a owl:Restriction ; - owl:allValuesFrom xsd:decimal ; - owl:onProperty bsdd:minExclusive ], + owl:allValuesFrom xsd:string ; + owl:onProperty <replacedObjectCodes> ], [ a owl:Restriction ; owl:allValuesFrom xsd:integer ; - owl:onProperty bsdd:dimensionMass ], + owl:onProperty <versionNumber> ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; - owl:onProperty bsdd:description ], + owl:minCardinality 1 ; + owl:onProperty <name> ; + owl:someValuesFrom xsd:string ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; - owl:onProperty bsdd:unit ], + owl:onProperty <countryOfUse> ], [ a owl:Restriction ; owl:allValuesFrom xsd:decimal ; - owl:onProperty bsdd:minInclusive ], - [ a owl:Restriction ; - owl:minCardinality 1 ; - owl:onProperty bsdd:isDynamic ], - [ a owl:Restriction ; - owl:someValuesFrom xsd:boolean ; - owl:onProperty bsdd:isDynamic ], - [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty bsdd:example ] . + owl:onProperty <minInclusive> ] . -bsdd:ClassificationProperty a owl:Class ; +<ClassificationProperty> a owl:Class ; rdfs:comment "Attributes of a property of a classification. A property can be part of many classifications but the restrictions for the property can differ per classification" ; rdfs:subClassOf [ a owl:Restriction ; + owl:allValuesFrom xsd:decimal ; + owl:onProperty <minInclusive> ], + [ a owl:Restriction ; owl:allValuesFrom xsd:string ; - owl:onProperty bsdd:propertySet ], + owl:minCardinality 1 ; + owl:onProperty <textFormat> ; + owl:someValuesFrom xsd:string ], [ a owl:Restriction ; - owl:allValuesFrom xsd:decimal ; - owl:onProperty bsdd:minExclusive ], + owl:allValuesFrom xsd:dateTime ; + owl:minCardinality 1 ; + owl:onProperty <activationDateUtc> ; + owl:someValuesFrom xsd:dateTime ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; - owl:onProperty bsdd:predefinedValue ], + owl:onProperty <uid> ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; - owl:onProperty bsdd:pattern ], + owl:onProperty <dataType> ], [ a owl:Restriction ; + owl:allValuesFrom xsd:string ; owl:minCardinality 1 ; - owl:onProperty bsdd:status ], + owl:onProperty <status> ; + owl:someValuesFrom xsd:string ], [ a owl:Restriction ; - owl:someValuesFrom xsd:string ; - owl:onProperty bsdd:status ], - [ a owl:Restriction ; - owl:allValuesFrom bsdd:PropertyValueKind ; - owl:onProperty bsdd:propertyValueKind ], + owl:allValuesFrom xsd:string ; + owl:onProperty <definition> ], [ a owl:Restriction ; - owl:allValuesFrom xsd:integer ; - owl:onProperty bsdd:dimensionThermodynamicTemperature ], + owl:allValuesFrom xsd:boolean ; + owl:onProperty <isRequired> ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; - owl:onProperty bsdd:subdivisionOfUse ], + owl:onProperty <countryOfOrigin> ], [ a owl:Restriction ; - owl:allValuesFrom xsd:dateTime ; - owl:onProperty bsdd:versionDateUtc ], + owl:allValuesFrom xsd:string ; + owl:onProperty <physicalQuantity> ], [ a owl:Restriction ; owl:allValuesFrom xsd:integer ; - owl:onProperty bsdd:dimensionMass ], + owl:onProperty <revisionNumber> ], + [ a owl:Restriction ; + owl:allValuesFrom <PropertyValue> ; + owl:onProperty <allowedValue> ], + [ a owl:Restriction ; + owl:allValuesFrom xsd:boolean ; + owl:minCardinality 1 ; + owl:onProperty <isDynamic> ; + owl:someValuesFrom xsd:boolean ], [ a owl:Restriction ; owl:allValuesFrom xsd:integer ; - owl:onProperty bsdd:dimensionTime ], + owl:onProperty <dimensionAmountOfSubstance> ], + [ a owl:Restriction ; + owl:allValuesFrom xsd:string ; + owl:onProperty <subdivisionOfUse> ], [ a owl:Restriction ; owl:allValuesFrom xsd:integer ; - owl:onProperty bsdd:dimensionLength ], + owl:onProperty <dimensionLength> ], + [ a owl:Restriction ; + owl:allValuesFrom xsd:decimal ; + owl:onProperty <maxInclusive> ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; - owl:onProperty bsdd:replacedObjectCode ], + owl:onProperty <example> ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; - owl:onProperty bsdd:dimension ], + owl:onProperty <predefinedValue> ], + [ a owl:Restriction ; + owl:allValuesFrom <PropertyValueKind> ; + owl:onProperty <propertyValueKind> ], + [ a owl:Restriction ; + owl:allValuesFrom xsd:integer ; + owl:onProperty <dimensionMass> ], + [ a owl:Restriction ; + owl:allValuesFrom xsd:boolean ; + owl:onProperty <isWritable> ], + [ a owl:Restriction ; + owl:allValuesFrom xsd:decimal ; + owl:onProperty <maxExclusive> ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; - owl:onProperty bsdd:uid ], + owl:onProperty <methodOfMeasurement> ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; - owl:onProperty bsdd:unit ], + owl:onProperty <propertySet> ], [ a owl:Restriction ; owl:allValuesFrom xsd:dateTime ; - owl:onProperty bsdd:revisionDateUtc ], + owl:onProperty <deActivationDateUtc> ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; - owl:onProperty bsdd:creatorLanguageCode ], + owl:onProperty <replacingObjectCode> ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; - owl:onProperty bsdd:allowedValue ], + owl:onProperty <description> ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; - owl:onProperty bsdd:dataType ], + owl:onProperty <dimension> ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; - owl:onProperty bsdd:countryOfOrigin ], + owl:onProperty <documentReference> ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; - owl:onProperty bsdd:symbol ], + owl:onProperty <dynamicParameterPropertyCode> ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; - owl:onProperty bsdd:description ], + owl:onProperty <symbol> ], [ a owl:Restriction ; - owl:minCardinality 1 ; - owl:onProperty bsdd:classification ], + owl:allValuesFrom xsd:integer ; + owl:onProperty <dimensionLuminousIntensity> ], [ a owl:Restriction ; - owl:someValuesFrom bsdd:Classification ; - owl:onProperty bsdd:classification ], + owl:allValuesFrom xsd:dateTime ; + owl:onProperty <versionDateUtc> ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; - owl:onProperty bsdd:methodOfMeasurement ], - [ a owl:Restriction ; - owl:allValuesFrom xsd:boolean ; - owl:onProperty bsdd:isWritable ], + owl:onProperty <deprecationExplanation> ], [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty bsdd:definition ], - [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty bsdd:dimensionAmountOfSubstance ], + owl:allValuesFrom xsd:string ; + owl:onProperty <unit> ], [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty bsdd:deprecationExplanation ], + owl:allValuesFrom xsd:string ; + owl:onProperty <countryOfUse> ], [ a owl:Restriction ; - owl:allValuesFrom xsd:decimal ; - owl:onProperty bsdd:maxInclusive ], + owl:allValuesFrom xsd:string ; + owl:onProperty <replacedObjectCode> ], [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty bsdd:dimensionLuminousIntensity ], + owl:allValuesFrom <Property> ; + owl:minCardinality 1 ; + owl:onProperty <property> ; + owl:someValuesFrom <Property> ], [ a owl:Restriction ; + owl:allValuesFrom <Classification> ; owl:minCardinality 1 ; - owl:onProperty bsdd:isDynamic ], + owl:onProperty <classification> ; + owl:someValuesFrom <Classification> ], [ a owl:Restriction ; - owl:someValuesFrom xsd:boolean ; - owl:onProperty bsdd:isDynamic ], + owl:allValuesFrom xsd:integer ; + owl:onProperty <dimensionElectricCurrent> ], [ a owl:Restriction ; owl:allValuesFrom xsd:dateTime ; - owl:onProperty bsdd:deActivationDateUtc ], - [ a owl:Restriction ; - owl:allValuesFrom xsd:decimal ; - owl:onProperty bsdd:minInclusive ], + owl:onProperty <revisionDateUtc> ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; - owl:onProperty bsdd:countryOfUse ], - [ a owl:Restriction ; - owl:allValuesFrom xsd:integer ; - owl:onProperty bsdd:revisionNumber ], - [ a owl:Restriction ; owl:minCardinality 1 ; - owl:onProperty bsdd:property ], - [ a owl:Restriction ; - owl:someValuesFrom bsdd:Property ; - owl:onProperty bsdd:property ], - [ a owl:Restriction ; - owl:allValuesFrom xsd:boolean ; - owl:onProperty bsdd:isRequired ], + owl:onProperty <name> ; + owl:someValuesFrom xsd:string ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; - owl:onProperty bsdd:documentReference ], - [ a owl:Restriction ; - owl:allValuesFrom xsd:decimal ; - owl:onProperty bsdd:maxExclusive ], - [ a owl:Restriction ; owl:minCardinality 1 ; - owl:onProperty bsdd:activationDateUtc ], + owl:onProperty <code> ; + owl:someValuesFrom xsd:string ], [ a owl:Restriction ; - owl:someValuesFrom xsd:dateTime ; - owl:onProperty bsdd:activationDateUtc ], - [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty bsdd:dynamicParameterPropertyCode ], + owl:allValuesFrom xsd:anyURI ; + owl:onProperty <visualRepresentationUri> ], [ a owl:Restriction ; owl:allValuesFrom xsd:integer ; - owl:onProperty bsdd:versionNumber ], + owl:onProperty <dimensionThermodynamicTemperature> ], [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty bsdd:physicalQuantity ], + owl:allValuesFrom xsd:integer ; + owl:onProperty <dimensionTime> ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; - owl:onProperty bsdd:replacingObjectCode ], - [ a owl:Restriction ; - owl:minCardinality 1 ; - owl:onProperty bsdd:name ], - [ a owl:Restriction ; - owl:someValuesFrom xsd:string ; - owl:onProperty bsdd:name ], - [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty bsdd:dimensionElectricCurrent ], - [ a owl:Restriction ; - owl:minCardinality 1 ; - owl:onProperty bsdd:textFormat ], - [ a owl:Restriction ; - owl:someValuesFrom xsd:string ; - owl:onProperty bsdd:textFormat ], + owl:onProperty <pattern> ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; - owl:onProperty bsdd:example ], - [ a owl:Restriction ; - owl:allValuesFrom xsd:anyURI ; - owl:onProperty bsdd:visualRepresentationUri ], + owl:onProperty <creatorLanguageCode> ], [ a owl:Restriction ; - owl:minCardinality 1 ; - owl:onProperty bsdd:code ] , + owl:allValuesFrom xsd:decimal ; + owl:onProperty <minExclusive> ], [ a owl:Restriction ; - owl:someValuesFrom xsd:string ; - owl:onProperty bsdd:code ] . + owl:allValuesFrom xsd:integer ; + owl:onProperty <versionNumber> ] .