The Observable ontology
type: Ontology
version IRI: https://ontology.flandersmake.be/observable/ontology/1.2.0
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.
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 …
created: 2025-01-01
issued: 2025-11-13
modified: 2025-11-13
preferred namespace prefix: obs
preferred namespace uri: https://ontology.flandersmake.be/observable/ontology#
comment: An ontology of Observations, allowing to associate Properties to Classes
version info: 1.2.0
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.

Condition value
type: AnnotationProperty
domain: Condition

observationInstanceProperty
type: AnnotationProperty
comment: Associate a Observation with a property, to use between the observation instance and the observed instance
domain: Class

obs:observationDimensionProperty
type: AnnotationProperty
comment: Associate a observedDimension with a property, to use between the observation instance and the observed value
domain: Property

Condition property
type: ObjectProperty
domain: Condition
range: Property

property
type: ObjectProperty
domain: Property
range: ObjectProperty
comment: The navigated property of a property navigation element

observableObservation
type: ObjectProperty
inverse of: observationObservable
comment: The Observations associated to this Observable

observationObservable
type: ObjectProperty
domain: Observation
range: Observable
comment: The observation context, or Observable

direct
type: DatatypeProperty
domain: Property
range: boolean
comment: Indicate if the property is navigated in the direct or the reverse way

BinaryObservation
type: Class
subclass of: Observation
comment: An Observation with two observed dimensions
observation instance property: binaryObservationInstance

Dimension
type: Class
subclass of: Property
subclass of: DimensionOrNull
comment: A Dimension is just an rdf:Property, associating contextual class instances with its observable values

DimensionContext
type: Class
subclass of: Dimension
comment: A DimensionContext associates a value to an Observable via an ObservableContext and a property

Path
type: Class
subclass of: List
subclass of: Restriction
  on property: selfNavigationPath
  has self: true
comment: An navigation path

Element
type: Class
comment: A navigation element of a navigation path

Condition
type: Class
subclass of: Element
comment: A navigation path element setting a necessary conditon on the navigated instance

Downcast
type: Class
subclass of: Element
comment: A navigation path element allowing elements belonging to a given class

Property
type: Class
subclass of: Element
comment: A navigation element using 1 property for navigation

Direct property
type: Class
subclass of: Property
subclass of: Restriction
  on property: direct
  has value: true
comment: A property navigation element navigated in the direct way

Reverse property
type: Class
subclass of: Property
subclass of: Restriction
  on property: direct
  has value: false
comment: A property navigation element navigated in the reverse way

Observable
type: Class
subclass of: Class
comment: Observable is the set of owl:Class's supporting Observations, that is, providing Dimensions

ObservableContext
type: Class
subclass of: ObjectProperty
comment: An ObservableContext provides a context to be observed from a contextual class

ObservableContextNavigationPath
type: Class
subclass of: ObservableContext
comment: An ObservableContextNavigationPath provides the observed context via a navigation path

Observation
type: Class
example: The breakstress related to the curing temperature of my sample.
rationale: This is a solution for associating properties (Dimensions) to a class (Observable) with some purpose (correlation, to be plotted, dependency, ...).
comment: An Observation is a set of observed properties (Dimensions) in some observed context (Observable)
status: stable
editorial note: 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.
scope note: This concept is meant to be used at the upper level

UnaryObservation
type: Class
subclass of: Observation
comment: An Observation with one single observed dimension