@prefix : <https://ontology.flandersmake.be/observable/ontology#> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix xml: <http://www.w3.org/XML/1998/namespace> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@base <https://ontology.flandersmake.be/observable/ontology#> .

<https://ontology.flandersmake.be/observable/ontology> rdf:type owl:Ontology ;
                                                        owl:versionIRI <https://ontology.flandersmake.be/observable/ontology/1.2.0> ;
                                                        <http://purl.org/dc/elements/1.1/abstract> """
An observation is a set of data points. Each point is associated to an instance of some Class. 
Each instance is then associated 
to values through a given set of Properties. An Observation is thus specified by a Class 
(the set of instances) and a collection of Properties.
The set of Classes supporting Observations is the Class Observable, a subclass of owl:Class.
The set of Properties that are observed is the Class Dimension, a subclass of rdf:Property.
"""@en ;
                                                        <http://purl.org/dc/elements/1.1/description> """
The Observable Ontology allows to describe Observations, 
specified by a contextual class (an Observable) 
and a set of observed properties (the Dimensions)

## Concepts Observable and Observation

The following concepts are formalized:
- **Observable**: a Class whose elements are observed
- **Dimension**: an observed property 
- **Observation**: an Observable with some observed Dimensions

```mermaid
classDiagram
  class Class:::owl {
  }
  class Property:::owl {
  }
  class Observable {
  }
  class Observation {
  }
  class Dimension {
  }
  Class <|-- Observable
  Property <|-- Dimension
  Observable <-- Observation : observationObservable
  Dimension <-- Observation : observedDimension
  Class <-- Property : range
  Class <-- Property : domain

  classDef default fill:#f96,color:black
  classDef owl fill:#e9edc9,color:black
```

## Concepts Navigation Path and Element

The following concepts are formalized:
- **NavigationPath**: specifies a path of navigation.
- **NavigationPathElement**: an element of a NavigationPath.
- **NavigationPathElementDirect**: is a NavigationPathElement specifying a property to be navigated in the direct way.
- **NavigationPathElementReverse**: is a NavigationPathElement specifying a property to be navigated in the reverse way.
- **NavigationPathElementDowncast**: is a NavigationPathElement specifying a type to downcast to.
- **NavigationPathElementCondition**: is a Navigation specifying a condition to be satisfied by the navigated instance

```mermaid
classDiagram
  direction BT
  class Class:::owl
  class Property:::owl
  Class <-- Property : range
  Class <-- Property : domain
  class ObjectProperty:::owl
  ObjectProperty --|> Property 
  
  class NavigationPath

  class NavigationPathElement {}
  NavigationPathElement <--o NavigationPath : elements

  NavigationPathElementDowncast --|> NavigationPathElement 
  NavigationPathElementDowncast -->  Class : downcastTo

  NavigationPathElementCondition --|> NavigationPathElement
  NavigationPathElementCondition --> Property: conditionProperty
  class NavigationPathElementCondition {
    value
  }

  NavigationPathElementProperty --|> NavigationPathElement 
  class NavigationPathElementProperty{
    direct: boolean
  }
  NavigationPathElementProperty --> ObjectProperty: navigatedProperty

  NavigationPathElementDirect --|> NavigationPathElementProperty
  class NavigationPathElementDirect{
    direct: true
  }
  NavigationPathElementReverse --|> NavigationPathElementProperty
  class NavigationPathElementReverse{
    direct: false
  }
  

  classDef default fill:#f96,color:black
  classDef owl fill:#e9edc9,color:black
```

## Concepts ObservableContext and DimensionContext

The following concepts are formalized:
- **ObservableContextNavigationPath**: is an ObservableContext defined by a NavigationPath
- **DimensionContext**: is an Dimension defined by an ObjectProperty and a DatatypeProperty

```mermaid
classDiagram
  direction BT
  class Property:::owl
  class ObjectProperty:::owl
  ObjectProperty --|> Property 
  class DatatypeProperty:::owl
  DatatypeProperty --|> Property 
  
  ObservableContext --|> ObjectProperty 
  
  ObservableContextNavigationPath --|> ObservableContext 
  ObservableContextNavigationPath  o--> NavigationPath : navigationPath

  Dimension --|> DatatypeProperty
  
  DimensionContext --|> Dimension 
  Class DimensionContext
  DimensionContext --> ObjectProperty : context
  DimensionContext --> DatatypeProperty: property

  classDef default fill:#f96,color:black
  classDef owl fill:#e9edc9,color:black
```
"""@en ;
                                                        <http://purl.org/dc/elements/1.1/title> "The Observable ontology"@en ;
                                                        <http://purl.org/dc/terms/created> "2025-01-01"^^xsd:date ;
                                                        <http://purl.org/dc/terms/issued> "2025-11-13"^^xsd:date ;
                                                        <http://purl.org/dc/terms/modified> "2025-11-13"^^xsd:date ;
                                                        <http://purl.org/vocab/vann/preferredNamespacePrefix> "obs" ;
                                                        <http://purl.org/vocab/vann/preferredNamespaceUri> "https://ontology.flandersmake.be/observable/ontology#" ;
                                                        rdfs:comment "An ontology of Observations, allowing to associate Properties to Classes" ;
                                                        rdfs:label "The Observable ontology"@en ;
                                                        owl:versionInfo "1.2.0" ;
                                                        <https://w3id.org/widoco/vocab#introduction> """
The Observable ontology allows to associate and/or define properties (Dimensions) to classes (Observable).

The ontology was originally created to specify histograms and scattered (correlation) plots. Every plot specification is
an Observation. The application [KGExplore](https://github.com/Flanders-Make-vzw/Ontology-based-KG-Viz2), allows to author Observations, and display
them for some tripe store (form some RDF dataset, for some knowledge graph).

The present ontology is an evolution of the original ontology, implemented in KGExplore version 2.5 onward. Following problems are resolved in this newer version:
- *observable context* becomes first class citizen
- reuse navigation paths over the dimensions
- reuse the dimensions by other dimensions

This ontology allows to describe and reason on mutually (possibly) dependent properties, so on dependencies.
"""@en .

#################################################################
#    Annotation properties
#################################################################

###  http://purl.org/dc/elements/1.1/abstract
<http://purl.org/dc/elements/1.1/abstract> rdf:type owl:AnnotationProperty .


###  http://purl.org/dc/elements/1.1/description
<http://purl.org/dc/elements/1.1/description> rdf:type owl:AnnotationProperty .


###  http://purl.org/dc/elements/1.1/title
<http://purl.org/dc/elements/1.1/title> rdf:type owl:AnnotationProperty .


###  http://purl.org/dc/terms/created
<http://purl.org/dc/terms/created> rdf:type owl:AnnotationProperty .


###  http://purl.org/dc/terms/issued
<http://purl.org/dc/terms/issued> rdf:type owl:AnnotationProperty .


###  http://purl.org/dc/terms/modified
<http://purl.org/dc/terms/modified> rdf:type owl:AnnotationProperty .


###  http://purl.org/vocab/vann/example
<http://purl.org/vocab/vann/example> rdf:type owl:AnnotationProperty .


###  http://purl.org/vocab/vann/preferredNamespacePrefix
<http://purl.org/vocab/vann/preferredNamespacePrefix> rdf:type owl:AnnotationProperty .


###  http://purl.org/vocab/vann/preferredNamespaceUri
<http://purl.org/vocab/vann/preferredNamespaceUri> rdf:type owl:AnnotationProperty .


###  http://www.linkedmodel.org/schema/vaem#rationale
<http://www.linkedmodel.org/schema/vaem#rationale> rdf:type owl:AnnotationProperty .


###  http://www.w3.org/2003/06/sw-vocab-status/ns#status
<http://www.w3.org/2003/06/sw-vocab-status/ns#status> rdf:type owl:AnnotationProperty .


###  http://www.w3.org/2004/02/skos/core#editorialNote
<http://www.w3.org/2004/02/skos/core#editorialNote> rdf:type owl:AnnotationProperty .


###  http://www.w3.org/2004/02/skos/core#scopeNote
<http://www.w3.org/2004/02/skos/core#scopeNote> rdf:type owl:AnnotationProperty .


###  https://ontology.flandersmake.be/observable/ontology#navigationPathElementConditionValue
:navigationPathElementConditionValue rdfs:label "Condition value"@en ;
                                     rdf:type owl:AnnotationProperty ;
                                     rdfs:domain :NavigationPathElementCondition .


###  https://ontology.flandersmake.be/observable/ontology#navigationPathElementPropertyDirect
:navigationPathElementPropertyDirect rdf:type owl:AnnotationProperty ;
                                     rdfs:domain :NavigationPathElementPropertyDirect .


###  https://ontology.flandersmake.be/observable/ontology#navigationPathElementPropertyReverse
:navigationPathElementPropertyReverse rdf:type owl:AnnotationProperty ;
                                      rdfs:domain :NavigationPathElementPropertyReverse .


###  https://ontology.flandersmake.be/observable/ontology#observationDimensionProperty
:observationDimensionProperty rdf:type owl:AnnotationProperty .


###  https://ontology.flandersmake.be/observable/ontology#observationInstanceProperty
:observationInstanceProperty rdf:type owl:AnnotationProperty .


###  https://ontology.flandersmake.be/observable/ontology#restDimensions
:restDimensions rdf:type owl:AnnotationProperty ;
                rdfs:subPropertyOf rdf:rest .


###  https://w3id.org/widoco/vocab#introduction
<https://w3id.org/widoco/vocab#introduction> rdf:type owl:AnnotationProperty .


#################################################################
#    Datatypes
#################################################################

###  http://www.w3.org/2001/XMLSchema#date
xsd:date rdf:type rdfs:Datatype .


#################################################################
#    Object Properties
#################################################################

###  http://www.w3.org/1999/02/22-rdf-syntax-ns#first
rdf:first rdf:type owl:ObjectProperty .


###  http://www.w3.org/2000/01/rdf-schema#range
rdfs:range rdf:type owl:ObjectProperty .


###  https://ontology.flandersmake.be/observable/ontology#binaryObservationDimension1
:binaryObservationDimension1 rdf:type owl:ObjectProperty ;
                             rdfs:subPropertyOf :observedDimension ;
                             rdfs:domain :BinaryObservation ;
                             rdfs:range :Dimension ;
                             :observationDimensionProperty :binaryObservationDimension1Value .


###  https://ontology.flandersmake.be/observable/ontology#binaryObservationDimension2
:binaryObservationDimension2 rdf:type owl:ObjectProperty ;
                             rdfs:subPropertyOf :observedDimension ;
                             rdfs:domain :BinaryObservation ;
                             rdfs:range :Dimension ;
                             :observationDimensionProperty :binaryObservationDimension2Value .


###  https://ontology.flandersmake.be/observable/ontology#dimensionContext
:dimensionContext rdf:type owl:ObjectProperty ;
                  rdfs:domain :DimensionContext ;
                  rdfs:range :ObservableContext .


###  https://ontology.flandersmake.be/observable/ontology#dimensionProperty
:dimensionProperty rdf:type owl:ObjectProperty ;
                   rdfs:domain :DimensionContext ;
                   rdfs:range rdf:Property .


###  https://ontology.flandersmake.be/observable/ontology#enumerationRank
:enumerationRank rdf:type owl:ObjectProperty ;
                 rdfs:domain :EnumerationValue .


###  https://ontology.flandersmake.be/observable/ontology#enumerationValue
:enumerationValue rdf:type owl:ObjectProperty ;
                  rdfs:domain :EnumerationValue .


###  https://ontology.flandersmake.be/observable/ontology#enumerationValues
:enumerationValues rdf:type owl:ObjectProperty ;
                   rdfs:domain :EnumerationDimension ;
                   rdfs:range :EnumerationValues .


###  https://ontology.flandersmake.be/observable/ontology#firstDimension
:firstDimension rdf:type owl:ObjectProperty ;
                rdfs:subPropertyOf rdf:first ;
                rdfs:domain :Dimensions ;
                rdfs:range :Dimension .


###  https://ontology.flandersmake.be/observable/ontology#navigationPathElementConditionProperty
:navigationPathElementConditionProperty rdf:type owl:ObjectProperty ;
                                        rdfs:domain :NavigationPathElementCondition ;
                                        rdfs:range rdf:Property ;
                                        rdfs:label "Condition property"@en .


###  https://ontology.flandersmake.be/observable/ontology#navigationPathElementDowncast
:navigationPathElementDowncast rdf:type owl:ObjectProperty ;
                               rdfs:domain :NavigationPathElementDowncast ;
                               rdfs:range owl:Class .


###  https://ontology.flandersmake.be/observable/ontology#navigationPathElementProperty
:navigationPathElementProperty rdf:type owl:ObjectProperty ;
                               rdfs:domain :NavigationPathElementProperty ;
                               rdfs:range owl:ObjectProperty ;
                               rdfs:comment "The navigated property of a property navigation element"@en ;
                               rdfs:label "property"@en .


###  https://ontology.flandersmake.be/observable/ontology#navigationPathElementPropertyDirect
:navigationPathElementPropertyDirect rdf:type owl:ObjectProperty ;
                                     rdfs:subPropertyOf :navigationPathElementProperty .


###  https://ontology.flandersmake.be/observable/ontology#navigationPathElementPropertyReverse
:navigationPathElementPropertyReverse rdf:type owl:ObjectProperty ;
                                      rdfs:subPropertyOf :navigationPathElementProperty .


###  https://ontology.flandersmake.be/observable/ontology#navigationPathFirst
:navigationPathFirst rdf:type owl:ObjectProperty ;
                     rdfs:subPropertyOf rdf:first ;
                     rdfs:domain :NavigationPath ;
                     rdfs:range :NavigationPathElement ;
                     owl:propertyChainAxiom ( :selfNavigationPath
                                              rdf:first
                                            ) .


###  https://ontology.flandersmake.be/observable/ontology#navigationPathRest
:navigationPathRest rdf:type owl:ObjectProperty ;
                    rdfs:subPropertyOf rdf:rest ;
                    rdfs:domain :NavigationPath ;
                    rdfs:range :NavigationPath ;
                    owl:propertyChainAxiom ( :selfNavigationPath
                                             rdf:rest
                                           ) .


###  https://ontology.flandersmake.be/observable/ontology#observableContextNavigationPath
:observableContextNavigationPath rdf:type owl:ObjectProperty ;
                                 rdfs:domain :ObservableContextNavigationPath ;
                                 rdfs:range :NavigationPath .


###  https://ontology.flandersmake.be/observable/ontology#observableObservation
:observableObservation rdf:type owl:ObjectProperty ;
                       owl:inverseOf :observationObservable ;
                       rdfs:comment "The Observations associated to this Observable" .


###  https://ontology.flandersmake.be/observable/ontology#observationGroupingDimensions
:observationGroupingDimensions rdf:type owl:ObjectProperty ;
                               rdfs:subPropertyOf :observedDimension ;
                               rdfs:domain :Observation ;
                               rdfs:range :Dimension .


###  https://ontology.flandersmake.be/observable/ontology#observationObservable
:observationObservable rdf:type owl:ObjectProperty ;
                       rdfs:domain :Observation ;
                       rdfs:range :Observable ;
                       rdfs:comment "The observation context, or Observable"@en .


###  https://ontology.flandersmake.be/observable/ontology#observedDimension
:observedDimension rdf:type owl:ObjectProperty ;
                   rdfs:domain :Observation ;
                   rdfs:range :Dimension .


###  https://ontology.flandersmake.be/observable/ontology#restDimensions
:restDimensions rdf:type owl:ObjectProperty ;
                rdfs:domain :Dimensions ;
                rdfs:range :Dimensions .


###  https://ontology.flandersmake.be/observable/ontology#selfNavigationPath
:selfNavigationPath rdf:type owl:ObjectProperty .


###  https://ontology.flandersmake.be/observable/ontology#unaryObservationDimension
:unaryObservationDimension rdf:type owl:ObjectProperty ;
                           rdfs:subPropertyOf :observedDimension ;
                           rdfs:domain :UnaryObservation ;
                           rdfs:range :Dimension .


#################################################################
#    Data properties
#################################################################

###  https://ontology.flandersmake.be/observable/ontology#enumerationRank
:enumerationRank rdf:type owl:DatatypeProperty ;
                 rdfs:range xsd:decimal .


###  https://ontology.flandersmake.be/observable/ontology#navigationPathElementDirect
:navigationPathElementDirect rdf:type owl:DatatypeProperty ;
                             rdfs:domain :NavigationPathElementProperty ;
                             rdfs:range xsd:boolean ;
                             rdfs:comment "Indicate if the property is navigated in the direct or the reverse way"@en ;
                             rdfs:label "direct"@en .


###  https://ontology.flandersmake.be/observable/ontology#observationArity
:observationArity rdf:type owl:DatatypeProperty ;
                  rdfs:domain :Observation ;
                  rdfs:range xsd:integer .


#################################################################
#    Classes
#################################################################

###  http://www.w3.org/1999/02/22-rdf-syntax-ns#List
rdf:List rdf:type owl:Class .


###  http://www.w3.org/1999/02/22-rdf-syntax-ns#Property
rdf:Property rdf:type owl:Class .


###  http://www.w3.org/2002/07/owl#Class
owl:Class rdf:type owl:Class .


###  http://www.w3.org/2002/07/owl#DatatypeProperty
owl:DatatypeProperty rdf:type owl:Class .


###  http://www.w3.org/2002/07/owl#ObjectProperty
owl:ObjectProperty rdf:type owl:Class .


###  https://ontology.flandersmake.be/observable/ontology#BinaryObservation
:BinaryObservation rdf:type owl:Class ;
                   rdfs:subClassOf :Observation ;
                   rdfs:comment "An Observation with two observed dimensions"@en ;
                   :observationInstanceProperty :binaryObservationInstance .


###  https://ontology.flandersmake.be/observable/ontology#BooleanDimension
:BooleanDimension rdf:type owl:Class ;
                  rdfs:subClassOf owl:DatatypeProperty ,
                                  :Dimension ,
                                  [ rdf:type owl:Restriction ;
                                    owl:onProperty rdfs:range ;
                                    owl:hasValue xsd:Boolean
                                  ] .


###  https://ontology.flandersmake.be/observable/ontology#Dimension
:Dimension rdf:type owl:Class ;
           rdfs:subClassOf rdf:Property ,
                           :DimensionOrNull ;
           rdfs:comment "A Dimension is just an rdf:Property, associating contextual class instances with its observable values"@en .


###  https://ontology.flandersmake.be/observable/ontology#DimensionContext
:DimensionContext rdf:type owl:Class ;
                  rdfs:subClassOf :Dimension ;
                  rdfs:comment "A DimensionContext associates a value to an Observable via an ObservableContext and a property"@en .


###  https://ontology.flandersmake.be/observable/ontology#DimensionOrNull
:DimensionOrNull rdf:type owl:Class .


###  https://ontology.flandersmake.be/observable/ontology#Dimensions
:Dimensions rdf:type owl:Class ;
            rdfs:subClassOf rdf:List .


###  https://ontology.flandersmake.be/observable/ontology#EnumerationDimension
:EnumerationDimension rdf:type owl:Class ;
                      rdfs:subClassOf :Dimension .


###  https://ontology.flandersmake.be/observable/ontology#EnumerationValue
:EnumerationValue rdf:type owl:Class .


###  https://ontology.flandersmake.be/observable/ontology#EnumerationValues
:EnumerationValues rdf:type owl:Class ;
                   rdfs:subClassOf rdf:List .


###  https://ontology.flandersmake.be/observable/ontology#ExogenousDimension
:ExogenousDimension rdf:type owl:Class ;
                    rdfs:subClassOf :Dimension .


###  https://ontology.flandersmake.be/observable/ontology#NavigationPath
:NavigationPath rdf:type owl:Class ;
                rdfs:subClassOf rdf:List ,
                                [ rdf:type owl:Restriction ;
                                  owl:onProperty :selfNavigationPath ;
                                  owl:hasSelf "true"^^xsd:boolean
                                ] ;
                rdfs:comment "An navigation path"@en ;
                rdfs:label "Path"@en .


###  https://ontology.flandersmake.be/observable/ontology#NavigationPathElement
:NavigationPathElement rdf:type owl:Class ;
                       rdfs:comment "A navigation element of a navigation path"@en ;
                       rdfs:label "Element"@en .


###  https://ontology.flandersmake.be/observable/ontology#NavigationPathElementCondition
:NavigationPathElementCondition rdf:type owl:Class ;
                                rdfs:subClassOf :NavigationPathElement ;
                                rdfs:comment "A navigation path element setting a necessary conditon on the navigated instance"@en ;
                                rdfs:label "Condition"@en .


###  https://ontology.flandersmake.be/observable/ontology#NavigationPathElementDowncast
:NavigationPathElementDowncast rdf:type owl:Class ;
                               rdfs:subClassOf :NavigationPathElement ;
                               rdfs:comment "A navigation path element allowing elements belonging to a given class"@en ;
                               rdfs:label "Downcast"@en .


###  https://ontology.flandersmake.be/observable/ontology#NavigationPathElementProperty
:NavigationPathElementProperty rdf:type owl:Class ;
                               rdfs:subClassOf :NavigationPathElement ;
                               rdfs:comment "A navigation element using 1 property for navigation"@en ;
                               rdfs:label "Property"@en .


###  https://ontology.flandersmake.be/observable/ontology#NavigationPathElementPropertyDirect
:NavigationPathElementPropertyDirect rdf:type owl:Class ;
                                     rdfs:subClassOf :NavigationPathElementProperty ,
                                                     [ rdf:type owl:Restriction ;
                                                       owl:onProperty :navigationPathElementDirect ;
                                                       owl:hasValue "true"^^xsd:boolean
                                                     ] ;
                                     rdfs:comment "A property navigation element navigated in the direct way"@en ;
                                     rdfs:label "Direct property"@en .


###  https://ontology.flandersmake.be/observable/ontology#NavigationPathElementPropertyReverse
:NavigationPathElementPropertyReverse rdf:type owl:Class ;
                                      rdfs:subClassOf :NavigationPathElementProperty ,
                                                      [ rdf:type owl:Restriction ;
                                                        owl:onProperty :navigationPathElementDirect ;
                                                        owl:hasValue "false"^^xsd:boolean
                                                      ] ;
                                      rdfs:comment "A property navigation element navigated in the reverse way"@en ;
                                      rdfs:label "Reverse property"@en .


###  https://ontology.flandersmake.be/observable/ontology#NumericalDimension
:NumericalDimension rdf:type owl:Class ;
                    rdfs:subClassOf owl:DatatypeProperty ,
                                    :Dimension ,
                                    [ rdf:type owl:Restriction ;
                                      owl:onProperty rdfs:range ;
                                      owl:hasValue xsd:decimal
                                    ] .


###  https://ontology.flandersmake.be/observable/ontology#ObjectEnumerationDimension
:ObjectEnumerationDimension rdf:type owl:Class ;
                            rdfs:subClassOf owl:ObjectProperty ,
                                            :EnumerationDimension .


###  https://ontology.flandersmake.be/observable/ontology#Observable
:Observable rdf:type owl:Class ;
            rdfs:subClassOf owl:Class ;
            rdfs:comment "Observable is the set of owl:Class's supporting Observations, that is, providing Dimensions"@en ;
            rdfs:isDefinedBy <https://www.fm.codesigns.org/observable/ontology> .


###  https://ontology.flandersmake.be/observable/ontology#ObservableContext
:ObservableContext rdf:type owl:Class ;
                   rdfs:subClassOf owl:ObjectProperty ;
                   rdfs:comment "An ObservableContext provides a context to be observed from a contextual class" .


###  https://ontology.flandersmake.be/observable/ontology#ObservableContextNavigationPath
:ObservableContextNavigationPath rdf:type owl:Class ;
                                 rdfs:subClassOf :ObservableContext ;
                                 rdfs:comment "An ObservableContextNavigationPath provides the observed context via a navigation path"@en .


###  https://ontology.flandersmake.be/observable/ontology#Observation
:Observation rdf:type owl:Class ;
             <http://purl.org/vocab/vann/example> "The breakstress related to the curing temperature of my sample."@en ;
             <http://www.linkedmodel.org/schema/vaem#rationale> "This is a solution for associating properties (Dimensions) to a class (Observable) with some purpose (correlation, to be plotted, dependency, ...)."@en ;
             rdfs:comment "An Observation is a set of observed properties (Dimensions) in some observed context (Observable)" ;
             rdfs:isDefinedBy <https://ontology.flandersmake.be/observable/ontology> ;
             rdfs:label "Observation"@en ;
             <http://www.w3.org/2003/06/sw-vocab-status/ns#status> "stable" ;
             <http://www.w3.org/2004/02/skos/core#editorialNote> """
Related mechanism are rdfs:domain/range, schema:domain/rangeIncludes, mm:ownedProperty.
An Observation is broader, as it allows to associate several dimenstions to one class;
furthermore, it allows to make different Observations for the same Class and the same Properties
but with different purpose or meaning.
""" ;
             <http://www.w3.org/2004/02/skos/core#scopeNote> "This concept is meant to be used at the upper level" .


###  https://ontology.flandersmake.be/observable/ontology#UnaryObservation
:UnaryObservation rdf:type owl:Class ;
                  rdfs:subClassOf :Observation ;
                  rdfs:comment "An Observation with one single observed dimension"@en .


#################################################################
#    Individuals
#################################################################

###  http://www.w3.org/2001/XMLSchema#Boolean
xsd:Boolean rdf:type owl:NamedIndividual .


###  http://www.w3.org/2001/XMLSchema#decimal
xsd:decimal rdf:type owl:NamedIndividual .


###  https://ontology.flandersmake.be/observable/ontology#null
:null rdf:type owl:NamedIndividual ,
               :DimensionOrNull .


###  Generated by the OWL API (version 5.1.18) https://github.com/owlcs/owlapi/
