From 60e1e51227ad835d8fcde600e587af25c78773c6 Mon Sep 17 00:00:00 2001 From: Jesper Friis Date: Tue, 6 Apr 2021 22:08:37 +0200 Subject: [PATCH 1/5] Added Object (= data instance) to the ontology and made the object attributes more generic and EMMO complient. --- ontology/entity_soft7.ttl | 492 ++++++++++++++++++++++++++++++-------- 1 file changed, 395 insertions(+), 97 deletions(-) diff --git a/ontology/entity_soft7.ttl b/ontology/entity_soft7.ttl index 048ef64..d3fd8f4 100644 --- a/ontology/entity_soft7.ttl +++ b/ontology/entity_soft7.ttl @@ -12,98 +12,124 @@ # Object Properties ################################################################# -### http://www.quaat.com/ontologies#hasDimension -:hasDimension rdf:type owl:ObjectProperty ; - rdfs:domain :Entity ; - rdfs:range :Dimension ; - rdfs:label "hasDimension"@en . - - -### http://www.quaat.com/ontologies#hasDimensionExpression -:hasDimensionExpression rdf:type owl:ObjectProperty ; - rdfs:domain :Shape ; - rdfs:range :DimensionExpression ; - rdfs:label "hasDimensionExpression"@en . - - -### http://www.quaat.com/ontologies#hasNextShape -:hasNextShape rdf:type owl:ObjectProperty , - owl:FunctionalProperty , - owl:InverseFunctionalProperty , - owl:AsymmetricProperty , - owl:IrreflexiveProperty ; - rdfs:domain :Shape ; - rdfs:range :Shape ; - rdfs:label "hasNextShape"@en . - - -### http://www.quaat.com/ontologies#hasProperty -:hasProperty rdf:type owl:ObjectProperty ; - rdfs:domain :Entity ; - rdfs:range :Property ; - rdfs:label "hasProperty"@en . - - -### http://www.quaat.com/ontologies#hasShape -:hasShape rdf:type owl:ObjectProperty , - owl:FunctionalProperty ; - rdfs:domain :Property ; - rdfs:range :Shape ; - rdfs:label "hasShape"@en . - - -### http://www.quaat.com/ontologies#hasType -:hasType rdf:type owl:ObjectProperty , - owl:FunctionalProperty ; - rdfs:domain :Property ; - rdfs:range :Type ; - rdfs:label "hasType"@en . - - -### http://www.quaat.com/ontologies#hasUnit -:hasUnit rdf:type owl:ObjectProperty , - owl:FunctionalProperty ; - rdfs:domain :Property ; - rdfs:range :Unit ; - rdfs:label "hasUnit"@en . +### http://www.quaat.com/ontologies#hasDirectPart +:hasDirectPart rdf:type owl:ObjectProperty ; + rdfs:subPropertyOf :hasPart ; + rdf:type owl:InverseFunctionalProperty , + owl:AsymmetricProperty , + owl:IrreflexiveProperty ; + rdfs:comment "A non-transitive parthood relation."@en , + "Direct parthood allows to build strict parthood hierarchies. It also enables countability. By combining it with the topological isConnectedWith, ordering can be defined."@en , + "The whole cannot be a direct part of itself (direct parthood is a proper)."@en ; + rdfs:label "hasDirectPart"@en . + + +### http://www.quaat.com/ontologies#hasFirstElement +:hasFirstElement rdf:type owl:ObjectProperty ; + rdfs:subPropertyOf :hasDirectPart ; + rdf:type owl:InverseFunctionalProperty , + owl:AsymmetricProperty , + owl:IrreflexiveProperty ; + rdfs:domain :Arrangement ; + rdfs:range :OrderedElement ; + rdfs:comment "The first of an ordered set of direct parts."@en ; + rdfs:label "hasFirstElement"@en . + + +### http://www.quaat.com/ontologies#hasNextElement +:hasNextElement rdf:type owl:ObjectProperty ; + rdfs:subPropertyOf :isConnectedWith ; + rdf:type owl:AsymmetricProperty , + owl:IrreflexiveProperty ; + rdfs:domain :OrderedElement ; + rdfs:range :OrderedElement ; + rdfs:comment "The next element in an ordered list."@en ; + rdfs:label "hasNextElement"@en . + + +### http://www.quaat.com/ontologies#hasPart +:hasPart rdf:type owl:ObjectProperty , + owl:TransitiveProperty ; + rdfs:comment "Generic parthood relation. Defines parts of a whole."@en , + "The whole may be a part of itself."@en ; + rdfs:label "hasPart"@en . + + +### http://www.quaat.com/ontologies#hasSign +:hasSign rdf:type owl:ObjectProperty ; + rdfs:comment "A sign is a real world object that stands for another real world object."@en , + "Example: the size of a type (a label stored in memory of a computer) is a real world object that stands for the number of bytes used by one element of the type (a symbolic), which is another real world object."@en ; + rdfs:label "hasSign"@en . + + +### http://www.quaat.com/ontologies#isConnectedWith +:isConnectedWith rdf:type owl:ObjectProperty , + owl:SymmetricProperty ; + rdfs:comment "Generic topological relation. Defines how things are connected with each other."@en ; + rdfs:label "isConnectedWith"@en . ################################################################# # Data properties ################################################################# +### http://www.quaat.com/ontologies#hasBoolValue +:hasBoolValue rdf:type owl:DatatypeProperty ; + rdfs:range xsd:boolean ; + rdfs:comment "hasBoolValue"@en . + + ### http://www.quaat.com/ontologies#hasDescription -:hasDescription rdf:type owl:DatatypeProperty , - owl:FunctionalProperty ; +:hasDescription rdf:type owl:DatatypeProperty ; + rdfs:subPropertyOf :hasStringValue ; + rdf:type owl:FunctionalProperty ; rdfs:domain [ rdf:type owl:Class ; owl:unionOf ( :Dimension - :Entity + :Object :Property ) ] ; rdfs:range xsd:string ; - rdfs:comment "An human readable description."@en ; + rdfs:comment "A human readable description."@en ; rdfs:label "hasDescription"@en . ### http://www.quaat.com/ontologies#hasDimensionRef :hasDimensionRef rdf:type owl:DatatypeProperty ; + rdfs:subPropertyOf :hasStringValue ; rdfs:domain :DimensionExpression ; rdfs:range xsd:string ; rdfs:comment "Refers to a label of a dimension belonging to the same entity."@en ; rdfs:label "hasDimensionRef"@en . -### http://www.quaat.com/ontologies#hasExpressionString -:hasExpressionString rdf:type owl:DatatypeProperty ; - rdfs:domain :Shape ; - rdfs:range xsd:string ; - rdfs:label "hasExpressionString"@en . +### http://www.quaat.com/ontologies#hasDimensionString +:hasDimensionString rdf:type owl:DatatypeProperty ; + rdfs:subPropertyOf :hasStringValue ; + rdfs:domain :Shape ; + rdfs:range xsd:string ; + rdfs:comment "A mathematical expression for the shape of a property along one dimension. It is expressed as a function of the entity dimension names."@en ; + rdfs:label "hasDimensionString"@en . + + +### http://www.quaat.com/ontologies#hasFloatValue +:hasFloatValue rdf:type owl:DatatypeProperty ; + rdfs:comment "Floats are a subset of reals that can be written as `i * 2^n`, where `i` and `n` are integers."@en , + "Has a floating point value."@en , + "There is not exact match for floats with arbitrary precision in the xsd namespace, but xsd:decimal is close. xsd:double may in most cases be a good substitute."@en ; + rdfs:label "hasFloatValue"@en . + + +### http://www.quaat.com/ontologies#hasIntegerValue +:hasIntegerValue rdf:type owl:DatatypeProperty ; + rdfs:range xsd:integer ; + rdfs:label "hasIntegerValue"@en . ### http://www.quaat.com/ontologies#hasLabel -:hasLabel rdf:type owl:DatatypeProperty , - owl:FunctionalProperty ; +:hasLabel rdf:type owl:DatatypeProperty ; + rdfs:subPropertyOf :hasStringValue ; + rdf:type owl:FunctionalProperty ; rdfs:domain [ rdf:type owl:Class ; owl:unionOf ( :Dimension :Property @@ -115,17 +141,62 @@ rdfs:label "hasLabel"@en . +### http://www.quaat.com/ontologies#hasMeta +:hasMeta rdf:type owl:DatatypeProperty ; + rdfs:domain :Object ; + rdfs:range xsd:anyURI ; + rdfs:comment "An URI that uniquely identifies the metadata of the Object."@en ; + rdfs:label "hasMeta"@en . + + +### http://www.quaat.com/ontologies#hasObject +:hasObject rdf:type owl:DatatypeProperty ; + rdfs:subPropertyOf :hasStringValue ; + rdfs:comment "Refers to the object of a relation."@en ; + rdfs:label "hasObject"@en . + + +### http://www.quaat.com/ontologies#hasPredicate +:hasPredicate rdf:type owl:DatatypeProperty ; + rdfs:subPropertyOf :hasStringValue ; + rdfs:comment "Refers to the predicate of a relation."@en ; + rdfs:label "hasPredicate"@en . + + +### http://www.quaat.com/ontologies#hasStringValue +:hasStringValue rdf:type owl:DatatypeProperty ; + rdfs:range xsd:string ; + rdfs:label "hasStringValue"@en . + + +### http://www.quaat.com/ontologies#hasSubject +:hasSubject rdf:type owl:DatatypeProperty ; + rdfs:subPropertyOf :hasStringValue ; + rdfs:comment "Refers to the subject of a relation."@en ; + rdfs:label "hasSubject"@en . + + ### http://www.quaat.com/ontologies#hasURI :hasURI rdf:type owl:DatatypeProperty , owl:FunctionalProperty ; - rdfs:domain :Entity ; + rdfs:domain :Object ; rdfs:range xsd:anyURI ; rdfs:label "hasURI"@en . +### http://www.quaat.com/ontologies#hasUUID +:hasUUID rdf:type owl:DatatypeProperty ; + rdfs:subPropertyOf :hasStringValue ; + rdfs:domain :Object ; + rdfs:range xsd:string ; + rdfs:comment "An UUID that uniquely identifies an object."@en ; + rdfs:label "hasUUID"@en . + + ### http://www.quaat.com/ontologies#hasUnitSymbol -:hasUnitSymbol rdf:type owl:DatatypeProperty , - owl:FunctionalProperty ; +:hasUnitSymbol rdf:type owl:DatatypeProperty ; + rdfs:subPropertyOf :hasStringValue ; + rdf:type owl:FunctionalProperty ; rdfs:domain :Unit ; rdfs:range xsd:string ; rdfs:comment """Examples: @@ -138,21 +209,85 @@ m/s"""@en , # Classes ################################################################# +### http://www.quaat.com/ontologies#Arrangement +:Arrangement rdf:type owl:Class ; + rdfs:subClassOf [ rdf:type owl:Restriction ; + owl:onProperty :hasDirectPart ; + owl:someValuesFrom :OrderedElement + ] , + [ rdf:type owl:Restriction ; + owl:onProperty :hasFirstElement ; + owl:someValuesFrom :OrderedElement + ] ; + rdfs:comment "A container whos direct parts are ordered elements."@en ; + rdfs:label "Arrangement"@en . + + +### http://www.quaat.com/ontologies#Array +:Array rdf:type owl:Class ; + rdfs:subClassOf :Arrangement , + [ rdf:type owl:Restriction ; + owl:onProperty :hasDirectPart ; + owl:someValuesFrom [ rdf:type owl:Class ; + owl:unionOf ( :Array + :Type + ) + ] + ] , + [ rdf:type owl:Restriction ; + owl:onProperty :hasFirstElement ; + owl:someValuesFrom [ rdf:type owl:Class ; + owl:unionOf ( :Array + :Type + ) + ] + ] , + [ rdf:type owl:Restriction ; + owl:onProperty :hasPart ; + owl:someValuesFrom :Type + ] ; + rdfs:comment "An ordered, possible multi-dimensional, container of data values - all of the same type."@en . + + ### http://www.quaat.com/ontologies#Blob :Blob rdf:type owl:Class ; + owl:equivalentClass [ rdf:type owl:Restriction ; + owl:onProperty :hasStringValue ; + owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ; + owl:onDataRange xsd:string + ] ; rdfs:subClassOf :Type ; + rdfs:comment "A binary blob who's length is specified by Size."@en ; rdfs:label "Blob"@en . ### http://www.quaat.com/ontologies#Bool :Bool rdf:type owl:Class ; + owl:equivalentClass [ rdf:type owl:Restriction ; + owl:onProperty :hasBoolValue ; + owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ; + owl:onDataRange xsd:boolean + ] ; rdfs:subClassOf :Type ; + rdfs:comment "A boolian: true or false."@en ; rdfs:label "Bool"@en . +### http://www.quaat.com/ontologies#DataModel +:DataModel rdf:type owl:Class ; + rdfs:comment "The superclass of all individuals that are part of a data model."@en ; + rdfs:label "DataModel"@en . + + ### http://www.quaat.com/ontologies#Dimension :Dimension rdf:type owl:Class ; - rdfs:subClassOf [ rdf:type owl:Restriction ; + rdfs:subClassOf :Type , + [ rdf:type owl:Restriction ; + owl:onProperty :hasNextElement ; + owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; + owl:onClass :Dimension + ] , + [ rdf:type owl:Restriction ; owl:onProperty :hasLabel ; owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ; owl:onDataRange xsd:string @@ -162,17 +297,19 @@ m/s"""@en , owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; owl:onDataRange xsd:string ] ; + rdfs:comment "Describes a dimension - characterised by a label and a human description."@en ; rdfs:label "Dimension"@en . ### http://www.quaat.com/ontologies#DimensionExpression :DimensionExpression rdf:type owl:Class ; - rdfs:subClassOf [ rdf:type owl:Restriction ; + rdfs:subClassOf :DataModel , + [ rdf:type owl:Restriction ; owl:onProperty :hasDimensionRef ; owl:someValuesFrom xsd:string ] , [ rdf:type owl:Restriction ; - owl:onProperty :hasExpressionString ; + owl:onProperty :hasDimensionString ; owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ; owl:onDataRange xsd:string ] ; @@ -185,58 +322,145 @@ The `hasDimensionRef` restrictions relates to the dimension reference variables. rdfs:label "DimensionExpression"@en . +### http://www.quaat.com/ontologies#DimensionValue +:DimensionValue rdf:type owl:Class ; + rdfs:subClassOf :DataModel , + :Integer ; + rdfs:comment "The value of a dimension. It corresponds to the number of elements along a given dimension."@en ; + rdfs:label "DimensionValue"@en . + + ### http://www.quaat.com/ontologies#Entity :Entity rdf:type owl:Class ; - rdfs:subClassOf [ rdf:type owl:Restriction ; - owl:onProperty :hasDimension ; + rdfs:subClassOf :Object , + [ rdf:type owl:Restriction ; + owl:onProperty :hasDirectPart ; owl:someValuesFrom :Dimension ] , [ rdf:type owl:Restriction ; - owl:onProperty :hasProperty ; + owl:onProperty :hasDirectPart ; owl:someValuesFrom :Property ] , [ rdf:type owl:Restriction ; - owl:onProperty :hasURI ; + owl:onProperty :hasFirstElement ; owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onDataRange xsd:anyURI + owl:onClass :Dimension + ] , + [ rdf:type owl:Restriction ; + owl:onProperty :hasFirstElement ; + owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ; + owl:onClass :Property ] , [ rdf:type owl:Restriction ; owl:onProperty :hasDescription ; owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; owl:onDataRange xsd:string ] ; + rdfs:comment "Metadata describing data objects (instances of the entity)."@en ; rdfs:label "Entity"@en . ### http://www.quaat.com/ontologies#Float :Float rdf:type owl:Class ; + owl:equivalentClass [ rdf:type owl:Restriction ; + owl:onProperty :hasFloatValue ; + owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ; + owl:onDataRange xsd:double + ] ; rdfs:subClassOf :Type ; + rdfs:comment "A floating point number with unspecified precision."@en ; rdfs:label "Float"@en . ### http://www.quaat.com/ontologies#Integer :Integer rdf:type owl:Class ; + owl:equivalentClass [ rdf:type owl:Restriction ; + owl:onProperty :hasIntegerValue ; + owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ; + owl:onDataRange xsd:integer + ] ; rdfs:subClassOf :Type ; + rdfs:comment "An integer represented by an unspecified number of bytes."@en ; rdfs:label "Integer"@en . +### http://www.quaat.com/ontologies#Object +:Object rdf:type owl:Class ; + rdfs:subClassOf :Arrangement , + :DataModel , + [ rdf:type owl:Restriction ; + owl:onProperty :hasDirectPart ; + owl:someValuesFrom :DimensionValue + ] , + [ rdf:type owl:Restriction ; + owl:onProperty :hasDirectPart ; + owl:someValuesFrom :PropertyValue + ] , + [ rdf:type owl:Restriction ; + owl:onProperty :hasFirstElement ; + owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ; + owl:onClass :DimensionValue + ] , + [ rdf:type owl:Restriction ; + owl:onProperty :hasFirstElement ; + owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ; + owl:onClass :PropertyValue + ] , + [ rdf:type owl:Restriction ; + owl:onProperty :hasMeta ; + owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ; + owl:onDataRange xsd:anyURI + ] , + [ rdf:type owl:Restriction ; + owl:onProperty :hasURI ; + owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ; + owl:onDataRange xsd:anyURI + ] , + [ rdf:type owl:Restriction ; + owl:onProperty :hasUUID ; + owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ; + owl:onDataRange xsd:string + ] ; + rdfs:comment "An instance of a data item or metadata."@en , + "An object is described by an entity (metadata). Entities themselves are objects described by a meta-entity (schema or meta-metadata)."@en , + "It is an Arrangement because its dimension and property values are ordered."@en ; + rdfs:label "Object"@en . + + +### http://www.quaat.com/ontologies#OrderedElement +:OrderedElement rdf:type owl:Class ; + rdfs:subClassOf [ rdf:type owl:Restriction ; + owl:onProperty :hasNextElement ; + owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; + owl:onClass :OrderedElement + ] ; + rdfs:comment "An element in an ordered list of elements."@en ; + rdfs:label "OrderedElement"@en . + + ### http://www.quaat.com/ontologies#Property :Property rdf:type owl:Class ; - rdfs:subClassOf [ rdf:type owl:Restriction ; - owl:onProperty :hasType ; + rdfs:subClassOf :Type , + [ rdf:type owl:Restriction ; + owl:onProperty :hasDirectPart ; owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ; owl:onClass :Type ] , [ rdf:type owl:Restriction ; - owl:onProperty :hasUnit ; + owl:onProperty :hasDirectPart ; owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ; owl:onClass :Unit ] , [ rdf:type owl:Restriction ; - owl:onProperty :hasShape ; + owl:onProperty :hasDirectPart ; owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; owl:onClass :Shape ] , + [ rdf:type owl:Restriction ; + owl:onProperty :hasNextElement ; + owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; + owl:onClass :Property + ] , [ rdf:type owl:Restriction ; owl:onProperty :hasLabel ; owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ; @@ -247,47 +471,122 @@ The `hasDimensionRef` restrictions relates to the dimension reference variables. owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; owl:onDataRange xsd:string ] ; + rdfs:comment "Describes a property, characterised by a label, type, unit, shape and a human description. The unit, shape and description are optional."@en ; rdfs:label "Property"@en . +### http://www.quaat.com/ontologies#PropertyValue +:PropertyValue rdf:type owl:Class ; + rdfs:subClassOf :DataModel , + [ rdf:type owl:Class ; + owl:unionOf ( :Array + :Type + ) + ] ; + rdfs:comment "The value of a property. It can either be a scalar (type) or an array of scalars."@en ; + rdfs:label "PropertyValue"@en . + + ### http://www.quaat.com/ontologies#Relation :Relation rdf:type owl:Class ; - rdfs:subClassOf :Type ; + rdfs:subClassOf :Type , + [ rdf:type owl:Restriction ; + owl:onProperty :hasObject ; + owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ; + owl:onDataRange xsd:string + ] , + [ rdf:type owl:Restriction ; + owl:onProperty :hasPredicate ; + owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ; + owl:onDataRange xsd:string + ] , + [ rdf:type owl:Restriction ; + owl:onProperty :hasSubject ; + owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ; + owl:onDataRange xsd:string + ] ; + rdfs:comment "A (subject-predicate-object) triple."@en ; rdfs:label "Relation"@en . ### http://www.quaat.com/ontologies#Shape :Shape rdf:type owl:Class ; - rdfs:subClassOf [ rdf:type owl:Restriction ; - owl:onProperty :hasDimensionExpression ; - owl:someValuesFrom :DimensionExpression + rdfs:subClassOf :Arrangement , + [ rdf:type owl:Restriction ; + owl:onProperty :hasDirectPart ; + owl:someValuesFrom :ShapeElement ] , [ rdf:type owl:Restriction ; - owl:onProperty :hasNextShape ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass :Shape + owl:onProperty :hasFirstElement ; + owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ; + owl:onClass :ShapeElement ] ; + rdfs:comment "Shape of a property. It is an ordered list of shape values."@en ; rdfs:label "Shape"@en . +### http://www.quaat.com/ontologies#ShapeElement +:ShapeElement rdf:type owl:Class ; + rdfs:subClassOf :DataModel , + :OrderedElement , + [ rdf:type owl:Restriction ; + owl:onProperty :hasDirectPart ; + owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ; + owl:onClass :DimensionExpression + ] , + [ rdf:type owl:Restriction ; + owl:onProperty :hasNextElement ; + owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; + owl:onClass :ShapeElement + ] ; + rdfs:comment "Element in a list of shapes."@en ; + rdfs:label "ShapeElement"@en . + + +### http://www.quaat.com/ontologies#Size +:Size rdf:type owl:Class ; + rdfs:subClassOf :Integer ; + rdfs:comment "The number of bytes used by an element of a given type."@en ; + rdfs:label "Size"@en . + + ### http://www.quaat.com/ontologies#String :String rdf:type owl:Class ; + owl:equivalentClass [ rdf:type owl:Restriction ; + owl:onProperty :hasStringValue ; + owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ; + owl:onDataRange xsd:string + ] ; rdfs:subClassOf :Type ; + rdfs:comment """An UTF-encoded and NUL-terminated string. + +The Size can be calculated from the length of initial sequence of non-NUL characters plus the terminating NUL character."""@en ; rdfs:label "String"@en . ### http://www.quaat.com/ontologies#Type :Type rdf:type owl:Class ; + rdfs:subClassOf :DataModel , + [ rdf:type owl:Restriction ; + owl:onProperty :hasSign ; + owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ; + owl:onClass :Size + ] ; + rdfs:comment "A data type whos individual are the actual values. It is characterised by its subclasses and its size (number of bytes one element of this type occupies in memory)."@en ; rdfs:label "Type"@en . ### http://www.quaat.com/ontologies#Unit :Unit rdf:type owl:Class ; - rdfs:subClassOf [ rdf:type owl:Restriction ; - owl:onProperty :hasUnitSymbol ; - owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onDataRange xsd:string - ] ; + owl:equivalentClass [ rdf:type owl:Restriction ; + owl:onProperty :hasUnitSymbol ; + owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ; + owl:onDataRange xsd:string + ] ; + rdfs:subClassOf :DataModel ; + rdfs:comment """Examples: +\"m\" +\"m/s\""""@en ; rdfs:label "Unit"@en . @@ -296,10 +595,11 @@ The `hasDimensionRef` restrictions relates to the dimension reference variables. ################################################################# [ rdf:type owl:AllDisjointClasses ; - owl:members ( :Blob - :Bool + owl:members ( :Bool + :Dimension :Float :Integer + :Property :Relation :String ) @@ -307,9 +607,7 @@ The `hasDimensionRef` restrictions relates to the dimension reference variables. [ rdf:type owl:AllDisjointClasses ; - owl:members ( :Dimension - :Entity - :Property + owl:members ( :Object :Shape :Type :Unit From 98503794d9fc478c0b7c1f69534005c7c60d94b0 Mon Sep 17 00:00:00 2001 From: Jesper Friis Date: Wed, 7 Apr 2021 12:29:43 +0200 Subject: [PATCH 2/5] More updates and cleanup. --- ontology/entity_soft7.ttl | 125 ++++++++++++++++++++------------------ 1 file changed, 67 insertions(+), 58 deletions(-) diff --git a/ontology/entity_soft7.ttl b/ontology/entity_soft7.ttl index d3fd8f4..5d445cf 100644 --- a/ontology/entity_soft7.ttl +++ b/ontology/entity_soft7.ttl @@ -24,6 +24,23 @@ rdfs:label "hasDirectPart"@en . +### http://www.quaat.com/ontologies#hasFirstDimension +:hasFirstDimension rdf:type owl:ObjectProperty ; + rdfs:subPropertyOf :hasFirstElement ; + rdfs:domain :Entity ; + rdfs:range :Dimension ; + rdfs:comment "Refers to the first dimension of an entity."@en ; + rdfs:label "hasFirstDimension"@en . + + +### http://www.quaat.com/ontologies#hasFirstDimensionValue +:hasFirstDimensionValue rdf:type owl:ObjectProperty ; + rdfs:subPropertyOf :hasFirstElement ; + rdfs:domain :Object ; + rdfs:range :DimensionValue ; + rdfs:comment "Refers to the first dimension value of a data object."@en . + + ### http://www.quaat.com/ontologies#hasFirstElement :hasFirstElement rdf:type owl:ObjectProperty ; rdfs:subPropertyOf :hasDirectPart ; @@ -36,6 +53,22 @@ rdfs:label "hasFirstElement"@en . +### http://www.quaat.com/ontologies#hasFirstProperty +:hasFirstProperty rdf:type owl:ObjectProperty ; + rdfs:subPropertyOf :hasFirstElement ; + rdfs:domain :Entity ; + rdfs:range :Property ; + rdfs:comment "Refers to the first property value of an entity."@en . + + +### http://www.quaat.com/ontologies#hasFirstPropertyValue +:hasFirstPropertyValue rdf:type owl:ObjectProperty ; + rdfs:subPropertyOf :hasFirstElement ; + rdfs:domain :Object ; + rdfs:range :PropertyValue ; + rdfs:comment "Refers to the first property value of a data object."@en . + + ### http://www.quaat.com/ontologies#hasNextElement :hasNextElement rdf:type owl:ObjectProperty ; rdfs:subPropertyOf :isConnectedWith ; @@ -55,13 +88,6 @@ rdfs:label "hasPart"@en . -### http://www.quaat.com/ontologies#hasSign -:hasSign rdf:type owl:ObjectProperty ; - rdfs:comment "A sign is a real world object that stands for another real world object."@en , - "Example: the size of a type (a label stored in memory of a computer) is a real world object that stands for the number of bytes used by one element of the type (a symbolic), which is another real world object."@en ; - rdfs:label "hasSign"@en . - - ### http://www.quaat.com/ontologies#isConnectedWith :isConnectedWith rdf:type owl:ObjectProperty , owl:SymmetricProperty ; @@ -163,6 +189,15 @@ rdfs:label "hasPredicate"@en . +### http://www.quaat.com/ontologies#hasSize +:hasSize rdf:type owl:DatatypeProperty ; + rdfs:subPropertyOf :hasIntegerValue ; + rdfs:domain :Type ; + rdfs:range xsd:integer ; + rdfs:label "The size of one element of a given type."@en , + "hasSize"@en . + + ### http://www.quaat.com/ontologies#hasStringValue :hasStringValue rdf:type owl:DatatypeProperty ; rdfs:range xsd:string ; @@ -193,16 +228,16 @@ rdfs:label "hasUUID"@en . -### http://www.quaat.com/ontologies#hasUnitSymbol -:hasUnitSymbol rdf:type owl:DatatypeProperty ; - rdfs:subPropertyOf :hasStringValue ; - rdf:type owl:FunctionalProperty ; - rdfs:domain :Unit ; - rdfs:range xsd:string ; - rdfs:comment """Examples: +### http://www.quaat.com/ontologies#hasUnit +:hasUnit rdf:type owl:DatatypeProperty ; + rdfs:subPropertyOf :hasStringValue ; + rdf:type owl:FunctionalProperty ; + rdfs:range xsd:string ; + rdfs:comment """Examples: m m/s"""@en , - "Refer to a valid unit symbol."@en . + "Refer to a valid unit symbol."@en ; + rdfs:label "hasUnit"@en . ################################################################# @@ -226,6 +261,7 @@ m/s"""@en , ### http://www.quaat.com/ontologies#Array :Array rdf:type owl:Class ; rdfs:subClassOf :Arrangement , + :DataModel , [ rdf:type owl:Restriction ; owl:onProperty :hasDirectPart ; owl:someValuesFrom [ rdf:type owl:Class ; @@ -281,7 +317,8 @@ m/s"""@en , ### http://www.quaat.com/ontologies#Dimension :Dimension rdf:type owl:Class ; - rdfs:subClassOf :Type , + rdfs:subClassOf :OrderedElement , + :Type , [ rdf:type owl:Restriction ; owl:onProperty :hasNextElement ; owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; @@ -342,12 +379,12 @@ The `hasDimensionRef` restrictions relates to the dimension reference variables. owl:someValuesFrom :Property ] , [ rdf:type owl:Restriction ; - owl:onProperty :hasFirstElement ; + owl:onProperty :hasFirstDimension ; owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ; owl:onClass :Dimension ] , [ rdf:type owl:Restriction ; - owl:onProperty :hasFirstElement ; + owl:onProperty :hasFirstProperty ; owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ; owl:onClass :Property ] , @@ -397,12 +434,12 @@ The `hasDimensionRef` restrictions relates to the dimension reference variables. owl:someValuesFrom :PropertyValue ] , [ rdf:type owl:Restriction ; - owl:onProperty :hasFirstElement ; + owl:onProperty :hasFirstDimensionValue ; owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ; owl:onClass :DimensionValue ] , [ rdf:type owl:Restriction ; - owl:onProperty :hasFirstElement ; + owl:onProperty :hasFirstPropertyValue ; owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ; owl:onClass :PropertyValue ] , @@ -440,17 +477,13 @@ The `hasDimensionRef` restrictions relates to the dimension reference variables. ### http://www.quaat.com/ontologies#Property :Property rdf:type owl:Class ; - rdfs:subClassOf :Type , + rdfs:subClassOf :OrderedElement , + :Type , [ rdf:type owl:Restriction ; owl:onProperty :hasDirectPart ; owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ; owl:onClass :Type ] , - [ rdf:type owl:Restriction ; - owl:onProperty :hasDirectPart ; - owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass :Unit - ] , [ rdf:type owl:Restriction ; owl:onProperty :hasDirectPart ; owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; @@ -466,6 +499,11 @@ The `hasDimensionRef` restrictions relates to the dimension reference variables. owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ; owl:onDataRange xsd:string ] , + [ rdf:type owl:Restriction ; + owl:onProperty :hasUnit ; + owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ; + owl:onDataRange xsd:string + ] , [ rdf:type owl:Restriction ; owl:onProperty :hasDescription ; owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; @@ -521,6 +559,7 @@ The `hasDimensionRef` restrictions relates to the dimension reference variables. owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ; owl:onClass :ShapeElement ] ; + owl:disjointWith :Type ; rdfs:comment "Shape of a property. It is an ordered list of shape values."@en ; rdfs:label "Shape"@en . @@ -543,13 +582,6 @@ The `hasDimensionRef` restrictions relates to the dimension reference variables. rdfs:label "ShapeElement"@en . -### http://www.quaat.com/ontologies#Size -:Size rdf:type owl:Class ; - rdfs:subClassOf :Integer ; - rdfs:comment "The number of bytes used by an element of a given type."@en ; - rdfs:label "Size"@en . - - ### http://www.quaat.com/ontologies#String :String rdf:type owl:Class ; owl:equivalentClass [ rdf:type owl:Restriction ; @@ -568,28 +600,14 @@ The Size can be calculated from the length of initial sequence of non-NUL charac :Type rdf:type owl:Class ; rdfs:subClassOf :DataModel , [ rdf:type owl:Restriction ; - owl:onProperty :hasSign ; + owl:onProperty :hasSize ; owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass :Size + owl:onDataRange xsd:integer ] ; rdfs:comment "A data type whos individual are the actual values. It is characterised by its subclasses and its size (number of bytes one element of this type occupies in memory)."@en ; rdfs:label "Type"@en . -### http://www.quaat.com/ontologies#Unit -:Unit rdf:type owl:Class ; - owl:equivalentClass [ rdf:type owl:Restriction ; - owl:onProperty :hasUnitSymbol ; - owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onDataRange xsd:string - ] ; - rdfs:subClassOf :DataModel ; - rdfs:comment """Examples: -\"m\" -\"m/s\""""@en ; - rdfs:label "Unit"@en . - - ################################################################# # General axioms ################################################################# @@ -606,13 +624,4 @@ The Size can be calculated from the length of initial sequence of non-NUL charac ] . -[ rdf:type owl:AllDisjointClasses ; - owl:members ( :Object - :Shape - :Type - :Unit - ) -] . - - ### Generated by the OWL API (version 4.5.9.2019-02-01T07:24:44Z) https://github.com/owlcs/owlapi From 20b3a8dedd78a54a224304a8417671b0f995c48e Mon Sep 17 00:00:00 2001 From: Jesper Friis Date: Thu, 8 Apr 2021 18:15:36 +0200 Subject: [PATCH 3/5] Yet an update. Added an example of the entity schema as individuals in a separate turtle file. --- ontology/catalog-v001.xml | 6 + ontology/entity_soft7.ttl | 128 ++++++++++++++------ ontology/example_individual.ttl | 208 ++++++++++++++++++++++++++++++++ 3 files changed, 303 insertions(+), 39 deletions(-) create mode 100644 ontology/catalog-v001.xml create mode 100644 ontology/example_individual.ttl diff --git a/ontology/catalog-v001.xml b/ontology/catalog-v001.xml new file mode 100644 index 0000000..8d8432d --- /dev/null +++ b/ontology/catalog-v001.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/ontology/entity_soft7.ttl b/ontology/entity_soft7.ttl index 5d445cf..c03c829 100644 --- a/ontology/entity_soft7.ttl +++ b/ontology/entity_soft7.ttl @@ -3,6 +3,7 @@ @prefix rdf: . @prefix xml: . @prefix xsd: . +@prefix emmo: . @prefix rdfs: . @base . @@ -69,6 +70,13 @@ rdfs:comment "Refers to the first property value of a data object."@en . +### http://www.quaat.com/ontologies#hasModel +:hasModel rdf:type owl:ObjectProperty ; + rdfs:subPropertyOf :hasSign ; + rdfs:comment "The object of 'hasModel' is a model that is a simplified representation of the subject aimed to assist describing the subject or to predict its behaviour."@en ; + rdfs:label "hasModel"@en . + + ### http://www.quaat.com/ontologies#hasNextElement :hasNextElement rdf:type owl:ObjectProperty ; rdfs:subPropertyOf :isConnectedWith ; @@ -88,6 +96,31 @@ rdfs:label "hasPart"@en . +### http://www.quaat.com/ontologies#hasShape +:hasShape rdf:type owl:ObjectProperty ; + rdfs:subPropertyOf :hasDirectPart ; + rdfs:domain :Property ; + rdfs:range :Shape ; + rdfs:comment "The shape of a property."@en ; + rdfs:label "hasShape"@en . + + +### http://www.quaat.com/ontologies#hasSign +:hasSign rdf:type owl:ObjectProperty ; + rdfs:comment "In EMMO, a sign would relate to what it stand for through a semiotic process."@en , + "The object of the 'hasSign' relation is a sign that stands for the subject."@en ; + rdfs:label "hasSign"@en . + + +### http://www.quaat.com/ontologies#hasType +:hasType rdf:type owl:ObjectProperty ; + rdfs:subPropertyOf :hasDirectPart ; + rdfs:domain :Property ; + rdfs:range :Type ; + rdfs:comment "The type of a property."@en ; + rdfs:label "hasType"@en . + + ### http://www.quaat.com/ontologies#isConnectedWith :isConnectedWith rdf:type owl:ObjectProperty , owl:SymmetricProperty ; @@ -95,6 +128,12 @@ rdfs:label "isConnectedWith"@en . +### http://www.quaat.com/ontologies#isInstanceOf +:isInstanceOf rdf:type owl:ObjectProperty ; + rdfs:subPropertyOf :hasModel ; + rdfs:label "isInstanceOf"@en . + + ################################################################# # Data properties ################################################################# @@ -120,22 +159,13 @@ rdfs:label "hasDescription"@en . -### http://www.quaat.com/ontologies#hasDimensionRef -:hasDimensionRef rdf:type owl:DatatypeProperty ; - rdfs:subPropertyOf :hasStringValue ; - rdfs:domain :DimensionExpression ; - rdfs:range xsd:string ; - rdfs:comment "Refers to a label of a dimension belonging to the same entity."@en ; - rdfs:label "hasDimensionRef"@en . - - -### http://www.quaat.com/ontologies#hasDimensionString -:hasDimensionString rdf:type owl:DatatypeProperty ; - rdfs:subPropertyOf :hasStringValue ; - rdfs:domain :Shape ; - rdfs:range xsd:string ; - rdfs:comment "A mathematical expression for the shape of a property along one dimension. It is expressed as a function of the entity dimension names."@en ; - rdfs:label "hasDimensionString"@en . +### http://www.quaat.com/ontologies#hasExpression +:hasExpression rdf:type owl:DatatypeProperty ; + rdfs:subPropertyOf :hasStringValue ; + rdfs:domain :Shape ; + rdfs:range xsd:string ; + rdfs:comment "A mathematical expression for the shape of a property along one dimension. It is expressed as a function of the entity dimension names."@en ; + rdfs:label "hasExpression"@en . ### http://www.quaat.com/ontologies#hasFloatValue @@ -233,7 +263,7 @@ rdfs:subPropertyOf :hasStringValue ; rdf:type owl:FunctionalProperty ; rdfs:range xsd:string ; - rdfs:comment """Examples: + rdfs:comment """Examples: m m/s"""@en , "Refer to a valid unit symbol."@en ; @@ -342,19 +372,13 @@ m/s"""@en , :DimensionExpression rdf:type owl:Class ; rdfs:subClassOf :DataModel , [ rdf:type owl:Restriction ; - owl:onProperty :hasDimensionRef ; - owl:someValuesFrom xsd:string - ] , - [ rdf:type owl:Restriction ; - owl:onProperty :hasDimensionString ; + owl:onProperty :hasExpression ; owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ; owl:onDataRange xsd:string ] ; rdfs:comment """A mathematical expression that has dimension references as variables. The name of these variables should equal an existing dimension label of the current Entity. -The `hasExpressionString` restriction relates to the expression itself as a string. - -The `hasDimensionRef` restrictions relates to the dimension reference variables."""@en , +The `hasExpression` restriction relates to the expression itself as a string."""@en , "Valid examples include \"N\", \"N+1\" and \"N*M\" given that `N` and `M` are dimension labels of the current Entity."@en ; rdfs:label "DimensionExpression"@en . @@ -362,7 +386,17 @@ The `hasDimensionRef` restrictions relates to the dimension reference variables. ### http://www.quaat.com/ontologies#DimensionValue :DimensionValue rdf:type owl:Class ; rdfs:subClassOf :DataModel , - :Integer ; + :Integer , + [ rdf:type owl:Restriction ; + owl:onProperty :isInstanceOf ; + owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ; + owl:onClass :Dimension + ] , + [ rdf:type owl:Restriction ; + owl:onProperty :hasNextElement ; + owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; + owl:onClass :DimensionValue + ] ; rdfs:comment "The value of a dimension. It corresponds to the number of elements along a given dimension."@en ; rdfs:label "DimensionValue"@en . @@ -389,11 +423,12 @@ The `hasDimensionRef` restrictions relates to the dimension reference variables. owl:onClass :Property ] , [ rdf:type owl:Restriction ; - owl:onProperty :hasDescription ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onDataRange xsd:string + owl:onProperty :hasURI ; + owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ; + owl:onDataRange xsd:anyURI ] ; - rdfs:comment "Metadata describing data objects (instances of the entity)."@en ; + rdfs:comment "Entities should have a human description. However, this description would be a PropertyValue of the Entity defined by a Property of the meta-metadata (or metadata schema) that the Entity is an instance of. Hence, the description is not explicitely declared in the ontology."@en , + "Metadata describing data objects (instances of the entity)."@en ; rdfs:label "Entity"@en . @@ -444,12 +479,12 @@ The `hasDimensionRef` restrictions relates to the dimension reference variables. owl:onClass :PropertyValue ] , [ rdf:type owl:Restriction ; - owl:onProperty :hasMeta ; + owl:onProperty :isInstanceOf ; owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onDataRange xsd:anyURI + owl:onClass :Entity ] , [ rdf:type owl:Restriction ; - owl:onProperty :hasURI ; + owl:onProperty :hasMeta ; owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ; owl:onDataRange xsd:anyURI ] , @@ -457,6 +492,11 @@ The `hasDimensionRef` restrictions relates to the dimension reference variables. owl:onProperty :hasUUID ; owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ; owl:onDataRange xsd:string + ] , + [ rdf:type owl:Restriction ; + owl:onProperty :hasURI ; + owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; + owl:onDataRange xsd:anyURI ] ; rdfs:comment "An instance of a data item or metadata."@en , "An object is described by an entity (metadata). Entities themselves are objects described by a meta-entity (schema or meta-metadata)."@en , @@ -480,19 +520,19 @@ The `hasDimensionRef` restrictions relates to the dimension reference variables. rdfs:subClassOf :OrderedElement , :Type , [ rdf:type owl:Restriction ; - owl:onProperty :hasDirectPart ; + owl:onProperty :hasType ; owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ; owl:onClass :Type ] , [ rdf:type owl:Restriction ; - owl:onProperty :hasDirectPart ; + owl:onProperty :hasNextElement ; owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass :Shape + owl:onClass :Property ] , [ rdf:type owl:Restriction ; - owl:onProperty :hasNextElement ; + owl:onProperty :hasShape ; owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass :Property + owl:onClass :Shape ] , [ rdf:type owl:Restriction ; owl:onProperty :hasLabel ; @@ -520,6 +560,16 @@ The `hasDimensionRef` restrictions relates to the dimension reference variables. owl:unionOf ( :Array :Type ) + ] , + [ rdf:type owl:Restriction ; + owl:onProperty :isInstanceOf ; + owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ; + owl:onClass :Property + ] , + [ rdf:type owl:Restriction ; + owl:onProperty :hasNextElement ; + owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; + owl:onClass :PropertyValue ] ; rdfs:comment "The value of a property. It can either be a scalar (type) or an array of scalars."@en ; rdfs:label "PropertyValue"@en . @@ -590,7 +640,7 @@ The `hasDimensionRef` restrictions relates to the dimension reference variables. owl:onDataRange xsd:string ] ; rdfs:subClassOf :Type ; - rdfs:comment """An UTF-encoded and NUL-terminated string. + rdfs:comment """An UTF-encoded and NUL-terminated string. The Size can be calculated from the length of initial sequence of non-NUL characters plus the terminating NUL character."""@en ; rdfs:label "String"@en . diff --git a/ontology/example_individual.ttl b/ontology/example_individual.ttl new file mode 100644 index 0000000..a359c50 --- /dev/null +++ b/ontology/example_individual.ttl @@ -0,0 +1,208 @@ +@prefix : . +@prefix owl: . +@prefix rdf: . +@prefix xml: . +@prefix xsd: . +@prefix rdfs: . +@base . + + rdf:type owl:Ontology ; + owl:versionIRI ; + owl:imports ; + rdfs:comment "An example of how to express the entity schema using the datamodel ontology."@en . + +################################################################# +# Annotation properties +################################################################# + +### http://www.quaat.com/ontologies/example_individual#hasDescription +:hasDescription rdf:type owl:AnnotationProperty . + + +### http://www.quaat.com/ontologies/example_individual#hasDirectPart +:hasDirectPart rdf:type owl:AnnotationProperty . + + +### http://www.quaat.com/ontologies/example_individual#hasExpression +:hasExpression rdf:type owl:AnnotationProperty . + + +### http://www.quaat.com/ontologies/example_individual#hasFirstDimension +:hasFirstDimension rdf:type owl:AnnotationProperty . + + +### http://www.quaat.com/ontologies/example_individual#hasFirstElement +:hasFirstElement rdf:type owl:AnnotationProperty . + + +### http://www.quaat.com/ontologies/example_individual#hasFirstProperty +:hasFirstProperty rdf:type owl:AnnotationProperty . + + +### http://www.quaat.com/ontologies/example_individual#hasLabel +:hasLabel rdf:type owl:AnnotationProperty . + + +### http://www.quaat.com/ontologies/example_individual#hasMeta +:hasMeta rdf:type owl:AnnotationProperty . + + +### http://www.quaat.com/ontologies/example_individual#hasNextElement +:hasNextElement rdf:type owl:AnnotationProperty . + + +### http://www.quaat.com/ontologies/example_individual#hasShape +:hasShape rdf:type owl:AnnotationProperty . + + +### http://www.quaat.com/ontologies/example_individual#hasType +:hasType rdf:type owl:AnnotationProperty . + + +### http://www.quaat.com/ontologies/example_individual#hasURI +:hasURI rdf:type owl:AnnotationProperty . + + +### http://www.quaat.com/ontologies/example_individual#hasUUID +:hasUUID rdf:type owl:AnnotationProperty . + + +################################################################# +# Individuals +################################################################# + +### http://www.quaat.com/ontologies/example_individual#dimension +:dimension rdf:type owl:NamedIndividual , + :Dimension . + + +### http://www.quaat.com/ontologies/example_individual#entity_schema +:entity_schema rdf:type owl:NamedIndividual , + :Entity ; + :hasFirstDimension :entity_schema_dim0 ; + :hasFirstProperty :entity_schema_prop0 ; + :hasMeta "http://meta.sintef.no/0.1/BasicMetadataSchema" ; + :hasURI "http://meta.sintef.no/0.3/EntitySchema" ; + :hasUUID "57742a73-ba65-5797-aebf-c1a270c4d02b" . + + +### http://www.quaat.com/ontologies/example_individual#entity_schema_dim0 +:entity_schema_dim0 rdf:type owl:NamedIndividual , + :Dimension ; + :hasDescription "Number of dimensions."@en ; + :hasLabel "ndimensions" ; + :hasNextElement :entity_schema_dim1 . + + +### http://www.quaat.com/ontologies/example_individual#entity_schema_dim1 +:entity_schema_dim1 rdf:type owl:NamedIndividual , + :Dimension ; + :hasDescription "Number of properties."@en ; + :hasLabel "nproperties" . + + +### http://www.quaat.com/ontologies/example_individual#entity_schema_prop0 +:entity_schema_prop0 rdf:type owl:NamedIndividual , + :Property ; + :hasDescription "Entity name."@en ; + :hasLabel "name" ; + :hasNextElement :entity_schema_prop1 ; + :hasType :string ; + rdfs:comment "The name can be inferred from the URI of the entity described. Hence, this property is redundant."@en . + + +### http://www.quaat.com/ontologies/example_individual#entity_schema_prop1 +:entity_schema_prop1 rdf:type owl:NamedIndividual , + :Property ; + :hasDescription "Entity version. Ex: \"0.2.3\""@en ; + :hasLabel "version" ; + :hasNextElement :entity_schema_prop2 ; + :hasType :string ; + rdfs:comment "The version can be inferred from the URI of the entity described. Hence, this property is redundant."@en . + + +### http://www.quaat.com/ontologies/example_individual#entity_schema_prop2 +:entity_schema_prop2 rdf:type owl:NamedIndividual , + :Property ; + :hasDescription "Entity namespace. Ex: \"http://sintef.no/meta\""@en ; + :hasLabel "namespace" ; + :hasNextElement :entity_schema_prop3 ; + :hasType :string ; + rdfs:comment "The namespace can be inferred from the URI of the entity described. Hence, this property is redundant."@en . + + +### http://www.quaat.com/ontologies/example_individual#entity_schema_prop3 +:entity_schema_prop3 rdf:type owl:NamedIndividual , + :Property ; + :hasDescription "Human description of the entity."@en ; + :hasLabel "description" ; + :hasNextElement :entity_schema_prop4 ; + :hasType :string . + + +### http://www.quaat.com/ontologies/example_individual#entity_schema_prop4 +:entity_schema_prop4 rdf:type owl:NamedIndividual , + :Property ; + :hasDescription "List of entity dimensions."@en ; + :hasLabel "dimensions" ; + :hasNextElement :entity_schema_prop5 ; + :hasShape :entity_schema_prop4_shape ; + :hasType :dimension . + + +### http://www.quaat.com/ontologies/example_individual#entity_schema_prop4_dimexpr0 +:entity_schema_prop4_dimexpr0 rdf:type owl:NamedIndividual , + :DimensionExpression ; + :hasExpression "ndimensions" . + + +### http://www.quaat.com/ontologies/example_individual#entity_schema_prop4_shape +:entity_schema_prop4_shape rdf:type owl:NamedIndividual , + :Shape ; + :hasFirstElement :entity_schema_prop4_shape0 . + + +### http://www.quaat.com/ontologies/example_individual#entity_schema_prop4_shape0 +:entity_schema_prop4_shape0 rdf:type owl:NamedIndividual , + :ShapeElement ; + :hasDirectPart :entity_schema_prop4_dimexpr0 . + + +### http://www.quaat.com/ontologies/example_individual#entity_schema_prop5 +:entity_schema_prop5 rdf:type owl:NamedIndividual , + :Property ; + :hasDescription "List of entity properties."@en ; + :hasLabel "properties" ; + :hasShape :entity_schema_prop5_shape ; + :hasType :property . + + +### http://www.quaat.com/ontologies/example_individual#entity_schema_prop5_dimexpr0 +:entity_schema_prop5_dimexpr0 rdf:type owl:NamedIndividual , + :DimensionExpression ; + :hasExpression "ndimensions" . + + +### http://www.quaat.com/ontologies/example_individual#entity_schema_prop5_shape +:entity_schema_prop5_shape rdf:type owl:NamedIndividual , + :Shape ; + :hasFirstElement :entity_schema_prop5_shape0 . + + +### http://www.quaat.com/ontologies/example_individual#entity_schema_prop5_shape0 +:entity_schema_prop5_shape0 rdf:type owl:NamedIndividual , + :ShapeElement ; + :hasDirectPart :entity_schema_prop5_dimexpr0 . + + +### http://www.quaat.com/ontologies/example_individual#property +:property rdf:type owl:NamedIndividual , + :Property . + + +### http://www.quaat.com/ontologies/example_individual#string +:string rdf:type owl:NamedIndividual , + :String . + + +### Generated by the OWL API (version 4.5.9.2019-02-01T07:24:44Z) https://github.com/owlcs/owlapi From f452a2ada248783424591a2c84377c08fdd09598 Mon Sep 17 00:00:00 2001 From: Jesper Friis Date: Thu, 22 Apr 2021 09:53:46 +0200 Subject: [PATCH 4/5] Cleaned up the ontology --- ontology/entity_soft7.ttl | 27 +++++------- ontology/example_individual.ttl | 78 ++++++++++++++++++++------------- 2 files changed, 59 insertions(+), 46 deletions(-) diff --git a/ontology/entity_soft7.ttl b/ontology/entity_soft7.ttl index c03c829..f6a0bd5 100644 --- a/ontology/entity_soft7.ttl +++ b/ontology/entity_soft7.ttl @@ -219,15 +219,6 @@ rdfs:label "hasPredicate"@en . -### http://www.quaat.com/ontologies#hasSize -:hasSize rdf:type owl:DatatypeProperty ; - rdfs:subPropertyOf :hasIntegerValue ; - rdfs:domain :Type ; - rdfs:range xsd:integer ; - rdfs:label "The size of one element of a given type."@en , - "hasSize"@en . - - ### http://www.quaat.com/ontologies#hasStringValue :hasStringValue rdf:type owl:DatatypeProperty ; rdfs:range xsd:string ; @@ -270,6 +261,13 @@ m/s"""@en , rdfs:label "hasUnit"@en . +### http://www.quaat.com/ontologies#hasValue +:hasValue rdf:type owl:DatatypeProperty ; + rdfs:range rdf:PlainLiteral ; + rdfs:label "Generic literal value."@en , + "hasValue"@en . + + ################################################################# # Classes ################################################################# @@ -570,6 +568,10 @@ The `hasExpression` restriction relates to the expression itself as a string.""" owl:onProperty :hasNextElement ; owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; owl:onClass :PropertyValue + ] , + [ rdf:type owl:Restriction ; + owl:onProperty :hasValue ; + owl:someValuesFrom rdf:PlainLiteral ] ; rdfs:comment "The value of a property. It can either be a scalar (type) or an array of scalars."@en ; rdfs:label "PropertyValue"@en . @@ -648,12 +650,7 @@ The Size can be calculated from the length of initial sequence of non-NUL charac ### http://www.quaat.com/ontologies#Type :Type rdf:type owl:Class ; - rdfs:subClassOf :DataModel , - [ rdf:type owl:Restriction ; - owl:onProperty :hasSize ; - owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onDataRange xsd:integer - ] ; + rdfs:subClassOf :DataModel ; rdfs:comment "A data type whos individual are the actual values. It is characterised by its subclasses and its size (number of bytes one element of this type occupies in memory)."@en ; rdfs:label "Type"@en . diff --git a/ontology/example_individual.ttl b/ontology/example_individual.ttl index a359c50..bfca47e 100644 --- a/ontology/example_individual.ttl +++ b/ontology/example_individual.ttl @@ -15,68 +15,84 @@ # Annotation properties ################################################################# -### http://www.quaat.com/ontologies/example_individual#hasDescription +### http://www.quaat.com/ontologies#hasDescription :hasDescription rdf:type owl:AnnotationProperty . -### http://www.quaat.com/ontologies/example_individual#hasDirectPart +### http://www.quaat.com/ontologies#hasDirectPart :hasDirectPart rdf:type owl:AnnotationProperty . -### http://www.quaat.com/ontologies/example_individual#hasExpression +### http://www.quaat.com/ontologies#hasExpression :hasExpression rdf:type owl:AnnotationProperty . -### http://www.quaat.com/ontologies/example_individual#hasFirstDimension +### http://www.quaat.com/ontologies#hasFirstDimension :hasFirstDimension rdf:type owl:AnnotationProperty . -### http://www.quaat.com/ontologies/example_individual#hasFirstElement +### http://www.quaat.com/ontologies#hasFirstElement :hasFirstElement rdf:type owl:AnnotationProperty . -### http://www.quaat.com/ontologies/example_individual#hasFirstProperty +### http://www.quaat.com/ontologies#hasFirstProperty :hasFirstProperty rdf:type owl:AnnotationProperty . -### http://www.quaat.com/ontologies/example_individual#hasLabel +### http://www.quaat.com/ontologies#hasLabel :hasLabel rdf:type owl:AnnotationProperty . -### http://www.quaat.com/ontologies/example_individual#hasMeta +### http://www.quaat.com/ontologies#hasMeta :hasMeta rdf:type owl:AnnotationProperty . -### http://www.quaat.com/ontologies/example_individual#hasNextElement +### http://www.quaat.com/ontologies#hasNextElement :hasNextElement rdf:type owl:AnnotationProperty . -### http://www.quaat.com/ontologies/example_individual#hasShape +### http://www.quaat.com/ontologies#hasShape :hasShape rdf:type owl:AnnotationProperty . -### http://www.quaat.com/ontologies/example_individual#hasType +### http://www.quaat.com/ontologies#hasType :hasType rdf:type owl:AnnotationProperty . -### http://www.quaat.com/ontologies/example_individual#hasURI +### http://www.quaat.com/ontologies#hasURI :hasURI rdf:type owl:AnnotationProperty . -### http://www.quaat.com/ontologies/example_individual#hasUUID +### http://www.quaat.com/ontologies#hasUUID :hasUUID rdf:type owl:AnnotationProperty . +################################################################# +# Classes +################################################################# + +### http://www.quaat.com/ontologies#DimensionExpression +:DimensionExpression rdf:type owl:Class . + + +### http://www.quaat.com/ontologies#ShapeElement +:ShapeElement rdf:type owl:Class . + + +### http://www.quaat.com/ontologies#String +:String rdf:type owl:Class . + + ################################################################# # Individuals ################################################################# -### http://www.quaat.com/ontologies/example_individual#dimension +### http://www.quaat.com/ontologies#dimension :dimension rdf:type owl:NamedIndividual , :Dimension . -### http://www.quaat.com/ontologies/example_individual#entity_schema +### http://www.quaat.com/ontologies#entity_schema :entity_schema rdf:type owl:NamedIndividual , :Entity ; :hasFirstDimension :entity_schema_dim0 ; @@ -86,7 +102,7 @@ :hasUUID "57742a73-ba65-5797-aebf-c1a270c4d02b" . -### http://www.quaat.com/ontologies/example_individual#entity_schema_dim0 +### http://www.quaat.com/ontologies#entity_schema_dim0 :entity_schema_dim0 rdf:type owl:NamedIndividual , :Dimension ; :hasDescription "Number of dimensions."@en ; @@ -94,14 +110,14 @@ :hasNextElement :entity_schema_dim1 . -### http://www.quaat.com/ontologies/example_individual#entity_schema_dim1 +### http://www.quaat.com/ontologies#entity_schema_dim1 :entity_schema_dim1 rdf:type owl:NamedIndividual , :Dimension ; :hasDescription "Number of properties."@en ; :hasLabel "nproperties" . -### http://www.quaat.com/ontologies/example_individual#entity_schema_prop0 +### http://www.quaat.com/ontologies#entity_schema_prop0 :entity_schema_prop0 rdf:type owl:NamedIndividual , :Property ; :hasDescription "Entity name."@en ; @@ -111,7 +127,7 @@ rdfs:comment "The name can be inferred from the URI of the entity described. Hence, this property is redundant."@en . -### http://www.quaat.com/ontologies/example_individual#entity_schema_prop1 +### http://www.quaat.com/ontologies#entity_schema_prop1 :entity_schema_prop1 rdf:type owl:NamedIndividual , :Property ; :hasDescription "Entity version. Ex: \"0.2.3\""@en ; @@ -121,7 +137,7 @@ rdfs:comment "The version can be inferred from the URI of the entity described. Hence, this property is redundant."@en . -### http://www.quaat.com/ontologies/example_individual#entity_schema_prop2 +### http://www.quaat.com/ontologies#entity_schema_prop2 :entity_schema_prop2 rdf:type owl:NamedIndividual , :Property ; :hasDescription "Entity namespace. Ex: \"http://sintef.no/meta\""@en ; @@ -131,7 +147,7 @@ rdfs:comment "The namespace can be inferred from the URI of the entity described. Hence, this property is redundant."@en . -### http://www.quaat.com/ontologies/example_individual#entity_schema_prop3 +### http://www.quaat.com/ontologies#entity_schema_prop3 :entity_schema_prop3 rdf:type owl:NamedIndividual , :Property ; :hasDescription "Human description of the entity."@en ; @@ -140,7 +156,7 @@ :hasType :string . -### http://www.quaat.com/ontologies/example_individual#entity_schema_prop4 +### http://www.quaat.com/ontologies#entity_schema_prop4 :entity_schema_prop4 rdf:type owl:NamedIndividual , :Property ; :hasDescription "List of entity dimensions."@en ; @@ -150,25 +166,25 @@ :hasType :dimension . -### http://www.quaat.com/ontologies/example_individual#entity_schema_prop4_dimexpr0 +### http://www.quaat.com/ontologies#entity_schema_prop4_dimexpr0 :entity_schema_prop4_dimexpr0 rdf:type owl:NamedIndividual , :DimensionExpression ; :hasExpression "ndimensions" . -### http://www.quaat.com/ontologies/example_individual#entity_schema_prop4_shape +### http://www.quaat.com/ontologies#entity_schema_prop4_shape :entity_schema_prop4_shape rdf:type owl:NamedIndividual , :Shape ; :hasFirstElement :entity_schema_prop4_shape0 . -### http://www.quaat.com/ontologies/example_individual#entity_schema_prop4_shape0 +### http://www.quaat.com/ontologies#entity_schema_prop4_shape0 :entity_schema_prop4_shape0 rdf:type owl:NamedIndividual , :ShapeElement ; :hasDirectPart :entity_schema_prop4_dimexpr0 . -### http://www.quaat.com/ontologies/example_individual#entity_schema_prop5 +### http://www.quaat.com/ontologies#entity_schema_prop5 :entity_schema_prop5 rdf:type owl:NamedIndividual , :Property ; :hasDescription "List of entity properties."@en ; @@ -177,30 +193,30 @@ :hasType :property . -### http://www.quaat.com/ontologies/example_individual#entity_schema_prop5_dimexpr0 +### http://www.quaat.com/ontologies#entity_schema_prop5_dimexpr0 :entity_schema_prop5_dimexpr0 rdf:type owl:NamedIndividual , :DimensionExpression ; :hasExpression "ndimensions" . -### http://www.quaat.com/ontologies/example_individual#entity_schema_prop5_shape +### http://www.quaat.com/ontologies#entity_schema_prop5_shape :entity_schema_prop5_shape rdf:type owl:NamedIndividual , :Shape ; :hasFirstElement :entity_schema_prop5_shape0 . -### http://www.quaat.com/ontologies/example_individual#entity_schema_prop5_shape0 +### http://www.quaat.com/ontologies#entity_schema_prop5_shape0 :entity_schema_prop5_shape0 rdf:type owl:NamedIndividual , :ShapeElement ; :hasDirectPart :entity_schema_prop5_dimexpr0 . -### http://www.quaat.com/ontologies/example_individual#property +### http://www.quaat.com/ontologies#property :property rdf:type owl:NamedIndividual , :Property . -### http://www.quaat.com/ontologies/example_individual#string +### http://www.quaat.com/ontologies#string :string rdf:type owl:NamedIndividual , :String . From ad3ef6fc708c8b0211e4e427f4ecf96ed6bcf882 Mon Sep 17 00:00:00 2001 From: Jesper Friis Date: Thu, 22 Apr 2021 16:11:18 +0200 Subject: [PATCH 5/5] Made subject and predicate of relations URIs instead of strings --- ontology/catalog-v001.xml | 2 +- ontology/entity_soft7.ttl | 7 +++---- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/ontology/catalog-v001.xml b/ontology/catalog-v001.xml index 8d8432d..7e627fc 100644 --- a/ontology/catalog-v001.xml +++ b/ontology/catalog-v001.xml @@ -1,6 +1,6 @@ - + diff --git a/ontology/entity_soft7.ttl b/ontology/entity_soft7.ttl index f6a0bd5..0b428d1 100644 --- a/ontology/entity_soft7.ttl +++ b/ontology/entity_soft7.ttl @@ -3,7 +3,6 @@ @prefix rdf: . @prefix xml: . @prefix xsd: . -@prefix emmo: . @prefix rdfs: . @base . @@ -588,12 +587,12 @@ The `hasExpression` restriction relates to the expression itself as a string.""" [ rdf:type owl:Restriction ; owl:onProperty :hasPredicate ; owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onDataRange xsd:string + owl:onDataRange xsd:anyURI ] , [ rdf:type owl:Restriction ; owl:onProperty :hasSubject ; owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onDataRange xsd:string + owl:onDataRange xsd:anyURI ] ; rdfs:comment "A (subject-predicate-object) triple."@en ; rdfs:label "Relation"@en . @@ -671,4 +670,4 @@ The Size can be calculated from the length of initial sequence of non-NUL charac ] . -### Generated by the OWL API (version 4.5.9.2019-02-01T07:24:44Z) https://github.com/owlcs/owlapi +### Generated by the OWL API (version 4.2.8.20170104-2310) https://github.com/owlcs/owlapi