The Dependency Ontology
type: Ontology
version IRI: https://ontology.flandersmake.be/dependency/ontology/1.0.0
abstract: A Dependency specifies a derived property - the outputDimension - as a function of other properties - the inputDimensions. An OperatorDependency is a Dependency specifying the derivation logic with an Operator (builtin, or conform to the Expression ontology). A Constraint is a Dependency specifying the feasibility of an instance with a boolean outputDimension. An Aggregation is a Dependency gathering the inputs from a set of associated instances: the Aggregation scope.
description: The Dependency ontology allows to specify derived properties and their derivations. ## Concept Dependency The following concepts are formalized: - **Dependency**: specifies a derived Dimension of an Observable - **InputsDependency**: specifies the derivation from a set of Dimensions - **Aggregation**: specifies the derivation from a scope of associated objects ```mermaid classDiagram direction TB namespace observable { class Observation:::obs class Dimension:::obs } Observation --> Dimension :observedDimensions class Dependency { operator: Operator } Dependency --|> Observation class InputsDependency class Aggregation { scope } Dependency <|-- Aggregation Dependency <|-- InputsDependency Dimension <-- InputsDependency : inputDimensions Dimension <-- Dependency : outputDimension Dimension <-- Aggregation : inputDimensionScope Dimension <-- Aggregation : inputDimensionThis classDef default fill:#f96,color:black classDef obs fill:#e9edc9,color:black ``` ## Concept Constraint The following concepts are formalized: - **Constraint**: a Dependency specifying the feasibility of the Observable - **ConstrainedObservable**: the class of Observables with Constraints - **Constrained**: the base class of ConstrainedObservable's ```mermaid classDiagram direction BT namespace UpperOntology { class Constraint class Dependency class Observable class ConstrainedObservable class Observation } Observable <-- Observation : observationObservable Dependency --|> Observation Constraint --|> Dependency ConstrainedObservable --|> Observable namespace DomainOntology{ class Constrained{ feasible: boolean } class aConstrained:::user class aConstraint:::user } aConstraint --> Constraint : type aConstrained --> ConstrainedObservable : type aConstrained --|> Constrained Constrained --> Constraint: violatingConstraint namespace DomainData{ class aConstrainedInstance:::user{ feasible: false } } aConstrainedInstance --> aConstrained : type classDef default fill:#f96,color:black classDef owl fill:#e9ed…
created: 2026-01-02
issued: 2026-01-02
modified: 2026-01-02
preferred namespace prefix: dep
preferred namespace uri: https://ontology.flandersmake.be/dependency/ontology#
comment: An ontology of dependencies, allowing specify to derived properties and their derivations
version info: 1.0.0
introduction: The Dependency ontology allows to specify derived properties and their derivations. A derived property is a property of an Observable that depends (is derived from) on other Dimensions of that Observable. The Dimensions the derived property depends on can be a given set of Dimensions, or a given Dimension on a set of associated instances (the scope of the aggregation). A particular case of Dependency is a Constraint, where the derived property is a boolean specifying the validity (or feasibility) of the Observable.

inputDimensionScope
type: AnnotationProperty
sub property of: observedDimension
type: ObjectProperty
domain: Aggregation
range: Dimension
comment: The aggregated Dimension (over the scope)

inputDimensionThis
type: AnnotationProperty
sub property of: observedDimension
type: ObjectProperty
domain: Aggregation
range: DimensionOrNull
comment: An extra Dimension on the Observable that will be considered in the aggregation

inputDimensions
type: AnnotationProperty
sub property of: observedDimensions
type: ObjectProperty
domain: InputsDependency
range: Dimensions
comment: The Dimensions the derived Dimension depends on

outputDimension
type: AnnotationProperty
sub property of: observedDimension
type: ObjectProperty
domain: Dependency
range: Dimension
comment: The derived Dimension specified by the Dependency

aggregationScope
type: ObjectProperty
domain: Aggregation
range: ObjectProperty
type: Class
subclass of: ObjectProperty
comment: The property specifying the scope of the aggregation

Aggregation
type: Class
subclass of: Dependency
comment: A Dependency specifying its inputs wiht a scope and a Dimension in that scope

Constrained
type: Class
comment: The class of instances with constraints. The base class of ConstrainedObservable's

ConstrainedObservable
type: Class
subclass of: SubClassOfConstrained
subclass of: Observable
comment: The class ConstrainedObservable is the subset of Observables with Constraints

SubClassOfConstrained
type: Class
comment: Members of ConstrainedObservable are subClassOf Constrained

Constraint
type: Class
subclass of: InputsDependency
comment: A Constraint is an Dependency with observed dimensions as inputs and BooleanDimension as ouput

Dependency
type: Class
subclass of: Observation
comment: An Observation specifying a derived Dimension

InputsDependency
type: Class
subclass of: Dependency
comment: A Dependency with a set of input Dimensions

OperatorDependency
type: Class
subclass of: Dependency
comment: A Dependency specifying the derivation logic with an Operator

comment: Observable with Constraints are members of ConsrainedObservable