diff --git a/ontology/catalog-v001.xml b/ontology/catalog-v001.xml new file mode 100644 index 0000000..7e627fc --- /dev/null +++ b/ontology/catalog-v001.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/ontology/entity_soft7.ttl b/ontology/entity_soft7.ttl index 048ef64..0b428d1 100644 --- a/ontology/entity_soft7.ttl +++ b/ontology/entity_soft7.ttl @@ -12,98 +12,179 @@ # 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#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#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 ; + 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#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#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 ; + 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#hasShape -:hasShape rdf:type owl:ObjectProperty , - owl:FunctionalProperty ; +: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 , - owl:FunctionalProperty ; +: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#hasUnit -:hasUnit rdf:type owl:ObjectProperty , - owl:FunctionalProperty ; - rdfs:domain :Property ; - rdfs:range :Unit ; - rdfs:label "hasUnit"@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 . + + +### http://www.quaat.com/ontologies#isInstanceOf +:isInstanceOf rdf:type owl:ObjectProperty ; + rdfs:subPropertyOf :hasModel ; + rdfs:label "isInstanceOf"@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: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#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 +: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#hasExpressionString -:hasExpressionString rdf:type owl:DatatypeProperty ; - rdfs:domain :Shape ; - rdfs:range xsd:string ; - rdfs:label "hasExpressionString"@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,44 +196,162 @@ 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#hasUnitSymbol -:hasUnitSymbol rdf:type owl:DatatypeProperty , - owl:FunctionalProperty ; - rdfs:domain :Unit ; - rdfs:range xsd:string ; - rdfs:comment """Examples: +### 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#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 . + + +### http://www.quaat.com/ontologies#hasValue +:hasValue rdf:type owl:DatatypeProperty ; + rdfs:range rdf:PlainLiteral ; + rdfs:label "Generic literal value."@en , + "hasValue"@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 , + :DataModel , + [ 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 :OrderedElement , + :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,75 +361,170 @@ 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 ; - owl:onProperty :hasDimensionRef ; - owl:someValuesFrom xsd:string - ] , + rdfs:subClassOf :DataModel , [ rdf:type owl:Restriction ; - owl:onProperty :hasExpressionString ; + 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 . +### http://www.quaat.com/ontologies#DimensionValue +:DimensionValue rdf:type owl:Class ; + rdfs:subClassOf :DataModel , + :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 . + + ### 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 :hasFirstDimension ; owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onDataRange xsd:anyURI + owl:onClass :Dimension ] , [ rdf:type owl:Restriction ; - owl:onProperty :hasDescription ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onDataRange xsd:string + owl:onProperty :hasFirstProperty ; + owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ; + owl:onClass :Property + ] , + [ rdf:type owl:Restriction ; + owl:onProperty :hasURI ; + owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ; + owl:onDataRange xsd:anyURI ] ; + 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 . ### 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 :hasFirstDimensionValue ; + owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ; + owl:onClass :DimensionValue + ] , + [ rdf:type owl:Restriction ; + owl:onProperty :hasFirstPropertyValue ; + owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ; + owl:onClass :PropertyValue + ] , + [ rdf:type owl:Restriction ; + owl:onProperty :isInstanceOf ; + owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ; + owl:onClass :Entity + ] , + [ rdf:type owl:Restriction ; + owl:onProperty :hasMeta ; + 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 + ] , + [ 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 , + "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 ; + rdfs:subClassOf :OrderedElement , + :Type , + [ rdf:type owl:Restriction ; owl:onProperty :hasType ; owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ; owl:onClass :Type ] , [ rdf:type owl:Restriction ; - owl:onProperty :hasUnit ; - owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass :Unit + owl:onProperty :hasNextElement ; + owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; + owl:onClass :Property ] , [ rdf:type owl:Restriction ; owl:onProperty :hasShape ; @@ -242,79 +536,138 @@ 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 ; 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 + ) + ] , + [ 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 + ] , + [ 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 . + + ### 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:anyURI + ] , + [ rdf:type owl:Restriction ; + owl:onProperty :hasSubject ; + owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ; + owl:onDataRange xsd:anyURI + ] ; + 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 ] ; + owl:disjointWith :Type ; + 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#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 ; + 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 - ] ; - rdfs:label "Unit"@en . - - ################################################################# # General axioms ################################################################# [ rdf:type owl:AllDisjointClasses ; - owl:members ( :Blob - :Bool + owl:members ( :Bool + :Dimension :Float :Integer + :Property :Relation :String ) ] . -[ rdf:type owl:AllDisjointClasses ; - owl:members ( :Dimension - :Entity - :Property - :Shape - :Type - :Unit - ) -] . - - -### 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 diff --git a/ontology/example_individual.ttl b/ontology/example_individual.ttl new file mode 100644 index 0000000..bfca47e --- /dev/null +++ b/ontology/example_individual.ttl @@ -0,0 +1,224 @@ +@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#hasDescription +:hasDescription rdf:type owl:AnnotationProperty . + + +### http://www.quaat.com/ontologies#hasDirectPart +:hasDirectPart rdf:type owl:AnnotationProperty . + + +### http://www.quaat.com/ontologies#hasExpression +:hasExpression rdf:type owl:AnnotationProperty . + + +### http://www.quaat.com/ontologies#hasFirstDimension +:hasFirstDimension rdf:type owl:AnnotationProperty . + + +### http://www.quaat.com/ontologies#hasFirstElement +:hasFirstElement rdf:type owl:AnnotationProperty . + + +### http://www.quaat.com/ontologies#hasFirstProperty +:hasFirstProperty rdf:type owl:AnnotationProperty . + + +### http://www.quaat.com/ontologies#hasLabel +:hasLabel rdf:type owl:AnnotationProperty . + + +### http://www.quaat.com/ontologies#hasMeta +:hasMeta rdf:type owl:AnnotationProperty . + + +### http://www.quaat.com/ontologies#hasNextElement +:hasNextElement rdf:type owl:AnnotationProperty . + + +### http://www.quaat.com/ontologies#hasShape +:hasShape rdf:type owl:AnnotationProperty . + + +### http://www.quaat.com/ontologies#hasType +:hasType rdf:type owl:AnnotationProperty . + + +### http://www.quaat.com/ontologies#hasURI +:hasURI rdf:type owl:AnnotationProperty . + + +### 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#dimension +:dimension rdf:type owl:NamedIndividual , + :Dimension . + + +### http://www.quaat.com/ontologies#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#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#entity_schema_dim1 +:entity_schema_dim1 rdf:type owl:NamedIndividual , + :Dimension ; + :hasDescription "Number of properties."@en ; + :hasLabel "nproperties" . + + +### http://www.quaat.com/ontologies#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#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#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#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#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#entity_schema_prop4_dimexpr0 +:entity_schema_prop4_dimexpr0 rdf:type owl:NamedIndividual , + :DimensionExpression ; + :hasExpression "ndimensions" . + + +### 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#entity_schema_prop4_shape0 +:entity_schema_prop4_shape0 rdf:type owl:NamedIndividual , + :ShapeElement ; + :hasDirectPart :entity_schema_prop4_dimexpr0 . + + +### http://www.quaat.com/ontologies#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#entity_schema_prop5_dimexpr0 +:entity_schema_prop5_dimexpr0 rdf:type owl:NamedIndividual , + :DimensionExpression ; + :hasExpression "ndimensions" . + + +### 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#entity_schema_prop5_shape0 +:entity_schema_prop5_shape0 rdf:type owl:NamedIndividual , + :ShapeElement ; + :hasDirectPart :entity_schema_prop5_dimexpr0 . + + +### http://www.quaat.com/ontologies#property +:property rdf:type owl:NamedIndividual , + :Property . + + +### http://www.quaat.com/ontologies#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