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.
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 ```
The Observable ontology
An ontology of Observations, allowing to associate Properties to Classes
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.
Condition value
Condition property
The navigated property of a property navigation element
property
The Observations associated to this Observable
The observation context, or Observable
Indicate if the property is navigated in the direct or the reverse way
direct
An Observation with two observed dimensions
A Dimension is just an rdf:Property, associating contextual class instances with its observable values
A DimensionContext associates a value to an Observable via an ObservableContext and a property
An navigation path
Path
A navigation element of a navigation path
Element
A navigation path element setting a necessary conditon on the navigated instance
Condition
A navigation path element allowing elements belonging to a given class
Downcast
A navigation element using 1 property for navigation
Property
A property navigation element navigated in the direct way
Direct property
A property navigation element navigated in the reverse way
Reverse property
Observable is the set of owl:Class's supporting Observations, that is, providing Dimensions
An ObservableContext provides a context to be observed from a contextual class
An ObservableContextNavigationPath provides the observed context via a navigation path
The breakstress related to the curing temperature of my sample.
This is a solution for associating properties (Dimensions) to a class (Observable) with some purpose (correlation, to be plotted, dependency, ...).
An Observation is a set of observed properties (Dimensions) in some observed context (Observable)
Observation
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.
This concept is meant to be used at the upper level
An Observation with one single observed dimension