# baseURI: https://w3id.org/ops
# prefix: ops
@prefix ops: .
@prefix owl: .
@prefix rdf: .
@prefix rdfs: .
@prefix schema: .
@prefix xsd: .
@prefix dcterms: .
@prefix vann: .
rdf:type owl:Ontology ;
dcterms:creator ;
dcterms:description """The OPS serves as a connector ontology for parametric systems. To obtain the flexibility to chose how the parametric constraints are described, the OPS does not consider the definition of constraints, but suggests to link to RDF-based or non-RDF constraint descriptions. To allow the evaluation of parametric systems in accordance to the Constraint Satisfaction Problem (CSP) approach, the OPS introduces concepts for variables, variable boundaries and systems of constraints that have to hold true at the same time.
This work is part of the research project Semantic Construction Project Engineering (www.projekt-bpo.de), founded by the German Federal Ministry for Economic Affairs and Energy (BMWi)."""@en ;
dcterms:issued "2019-03-02"^^xsd:date ;
dcterms:license ;
dcterms:modified "2020-03-23"^^xsd:date ;
dcterms:title "Ontology for Parametric Systems"@en ;
vann:preferredNamespacePrefix "ops" ;
vann:preferredNamespaceUri ops: ;
owl:versionInfo "1.1" ;
.
ops:Constant
rdf:type owl:Class ;
rdfs:label "constant"@en ;
rdfs:subClassOf ops:Parameter ;
rdfs:subClassOf [
rdf:type owl:Restriction ;
owl:cardinality "1"^^xsd:nonNegativeInteger ;
owl:onProperty schema:value ;
] ;
owl:disjointWith ops:Variable ;
rdfs:comment "A constant is a parameter with a static value that is not part of the non-parametric description, e.g. properties of the parametric product. The constant's value cannot be changed by the constraint solutions." ;
.
ops:Constraint
rdf:type owl:Class ;
rdfs:label "constraint"@en ;
rdfs:subClassOf owl:Thing ;
rdfs:subClassOf [
rdf:type owl:Restriction ;
owl:minCardinality "2"^^xsd:nonNegativeInteger ;
owl:onProperty ops:hasParameter ;
] ;
owl:disjointWith ops:Parameter ;
owl:disjointWith ops:System ;
owl:disjointWith ops:VariableBoundary ;
rdfs:comment "The constraint class represents singular constraints, e.g. of a constraint solution problem. A constraint can be a formal definition of valid value combinations of the variables that are considered in the constraint or defined as mathematical equation or inequation, respectively." ;
.
ops:Parameter
rdf:type owl:Class ;
rdfs:label "parameter"@en ;
rdfs:subClassOf owl:Thing ;
rdfs:subClassOf [
rdf:type owl:Restriction ;
owl:maxCardinality "1"^^xsd:nonNegativeInteger ;
owl:onProperty ops:hasParameterSymbol ;
] ;
owl:disjointWith ops:Constraint ;
owl:disjointWith ops:System ;
owl:disjointWith ops:VariableBoundary ;
rdfs:comment "A parameter is a generalised term that can represent both variables and constants that are part of constraints and parametric systems. A parameter can be described with its symbol that is used in constraint descriptions that are not based on RDF, e.g. MathML snippets or files." ;
.
ops:System
rdf:type owl:Class ;
rdfs:label "system"@en ;
rdfs:subClassOf owl:Thing ;
rdfs:subClassOf [
rdf:type owl:Restriction ;
owl:minCardinality "1"^^xsd:nonNegativeInteger ;
owl:onProperty ops:includesConstraint ;
] ;
owl:disjointWith ops:Constraint ;
owl:disjointWith ops:Parameter ;
owl:disjointWith ops:VariableBoundary ;
rdfs:comment "A parametric system groups all relevant constraints for a certain configuration problem, e.g. constraint solution problem. It exist in addition to the non-parametric description(s), e.g. product and geometry descriptions." ;
.
ops:Variable
rdf:type owl:Class ;
rdfs:label "variable"@en ;
rdfs:subClassOf ops:Parameter ;
rdfs:subClassOf [
rdf:type owl:Class ;
owl:intersectionOf (
[
rdf:type owl:Restriction ;
owl:maxCardinality "1"^^xsd:nonNegativeInteger ;
owl:onProperty ops:isBoundBy ;
]
[
rdf:type owl:Restriction ;
owl:maxCardinality "1"^^xsd:nonNegativeInteger ;
owl:onProperty ops:representsIndividual ;
]
[
rdf:type owl:Restriction ;
owl:maxCardinality "1"^^xsd:nonNegativeInteger ;
owl:onProperty ops:representsProperty ;
]
[
rdf:type owl:Restriction ;
owl:maxCardinality "1"^^xsd:nonNegativeInteger ;
owl:onProperty ops:prefersValue ;
]
[
rdf:type owl:Restriction ;
owl:maxCardinality "1"^^xsd:nonNegativeInteger ;
owl:onProperty ops:toleratesDeviation ;
]
) ;
] ;
owl:disjointWith ops:Constant ;
rdfs:comment "A variable is a parameter with a value that originates from the non-parametric description, e.g. properties of a parametric product or geometry description. Depending on the relation between a constraint and variable, the variable value may be changed by the constraint solution or has to be treated as a fixed value, similar to a constant value." ;
.
ops:VariableBoundary
rdf:type owl:Class ;
rdfs:label "variable boundary"@en ;
rdfs:subClassOf owl:Thing ;
rdfs:subClassOf [
rdf:type owl:Class ;
owl:intersectionOf (
[
rdf:type owl:Restriction ;
owl:maxCardinality "1"^^xsd:nonNegativeInteger ;
owl:onProperty ops:bindsMaxValue ;
]
[
rdf:type owl:Restriction ;
owl:maxCardinality "1"^^xsd:nonNegativeInteger ;
owl:onProperty ops:bindsMinValue ;
]
) ;
] ;
owl:disjointWith ops:Constraint ;
owl:disjointWith ops:Parameter ;
owl:disjointWith ops:System ;
rdfs:comment "A variable boundary defines the acceptable range of a variable in terms of minimum and maximum values as well as a group of distinct acceptable values." ;
.
ops:bindsMaxValue
rdf:type rdf:Property ;
rdfs:label "binds maximum value"@en ;
rdfs:subPropertyOf schema:maxValue ;
rdfs:domain ops:VariableBoundary ;
rdfs:comment "The binds maximum value property defines the maximum value of a variable boundary in case the variable value is continuous." ;
.
ops:bindsMinValue
rdf:type rdf:Property ;
rdfs:label "binds minimum value"@en ;
rdfs:subPropertyOf schema:minValue ;
rdfs:domain ops:VariableBoundary ;
rdfs:comment "The binds minimum value property defines the minimum value of a variable boundary in case the variable value is continuous." ;
.
ops:hasAdjustableVariable
rdf:type owl:ObjectProperty ;
rdfs:label "has adjustable variable"@en ;
rdfs:range ops:Variable ;
rdfs:subPropertyOf ops:hasParameter ;
rdfs:comment "With the has adjustable variable, variables can be linked to constraints with the additional information that the variable value may be changed by the constraints' solution, i.e. the variable value is not fixed." ;
.
ops:hasComplexConstraintDefinition
rdf:type owl:InverseFunctionalProperty ;
rdf:type owl:ObjectProperty ;
rdfs:domain ops:Constraint ;
rdfs:label "has comlex constraint definition"@en ;
rdfs:comment "The has complex constraint definition property attaches an RDF-based constraint definition to a constraint node, e.g. in form of a formal definition of allowable value combinations or a technical definition of a mathematical equation/inequation. Due to the property's generic nature, the property may range to any RDF-based description for constraints. Since a constraint represents exactly one situation, this property is modelled to be inverse functional." ;
.
ops:hasConstant
rdf:type owl:ObjectProperty ;
rdfs:label "has constant"@en ;
rdfs:range ops:Constant ;
rdfs:subPropertyOf ops:hasParameter ;
rdfs:comment "The has constant property links a constraint to a constant that is considered within the constraint definition." ;
.
ops:hasFixedVariable
rdf:type owl:ObjectProperty ;
rdfs:label "has fixed variable"@en ;
rdfs:range ops:Variable ;
rdfs:subPropertyOf ops:hasParameter ;
rdfs:comment "The has fixed variable property establishes a link between a constraint and a variable that is considered within the constraint's definition but cannot be changed in its value by the constraint's solution. To define a variable not to be adjustable, this property must be applied, as not specifically defined variables are assumed to be adjustable." ;
.
ops:hasParameter
rdf:type owl:ObjectProperty ;
rdfs:domain ops:Constraint ;
rdfs:label "has parameter"@en ;
rdfs:range ops:Parameter ;
rdfs:comment "The has parameter property is a generic property to establish a link between a constraint and any parameters, i.e. constants and variables, that are considered by the constraint. This property does not give insights on the adjustability of the related variables, per default it is to be assumed that a variable may be changed in its value." ;
.
ops:hasParameterSymbol
rdf:type owl:DatatypeProperty ;
rdfs:domain ops:Parameter ;
rdfs:label "has parameter symbol"@en ;
rdfs:comment "The has parameter symbol property adds the symbol of a parameter with which the parameter is represented in a (non-RDF) constraint description." ;
.
ops:hasSimpleConstraintDefinition
rdf:type owl:DatatypeProperty ;
rdfs:domain ops:Constraint ;
rdfs:label "has simple constraint definition"@en ;
rdfs:comment "The has simple constraint definition property attaches an non-RDF constraint definition to a constraint node, e.g. in form of a formal definition of allowable value combinations or a technical definition of a mathematical equation/inequation (MathML snippet or file)." ;
.
ops:includesConstraint
rdf:type owl:ObjectProperty ;
rdfs:domain ops:System ;
rdfs:label "includes constraint"@en ;
rdfs:range ops:Constraint ;
rdfs:comment "The includes constraint property can be applied to relate a parametric system to constraints that are part of the overall system." ;
.
ops:includesValue
rdf:type rdf:Property ;
rdfs:label "includes value"@en ;
rdfs:domain ops:VariableBoundary ;
rdfs:comment "The includes value property can be applied to variable boundaries to attach valid variable values to the boundary in case the variable value is discrete." ;
.
ops:isBoundBy
rdf:type owl:InverseFunctionalProperty ;
rdf:type owl:ObjectProperty ;
rdfs:domain ops:Variable ;
rdfs:label "is bound by"@en ;
rdfs:range ops:VariableBoundary ;
rdfs:comment "With the is bound by property, a variable can be related to a variable boundary to define the variable's acceptable value range. As a functional property is dedicated to describe the acceptable value range of one singular variable, this property is modelled to be inverse functional." ;
.
ops:prefersValue
rdf:type owl:DatatypeProperty ;
rdfs:domain ops:Variable ;
rdfs:label "prefers value"@en ;
rdfs:comment "The prefers value property defines the ideal value of a variable to enable constraint optimisation problems. A preferred variable value is -- in contrast to a variable boundary -- not restricting the range of acceptable values but serves to optimise the solution output." ;
.
ops:representsIndividual
rdf:type owl:ObjectProperty ;
rdfs:domain ops:Variable ;
rdfs:label "representy individual"@en ;
rdfs:range owl:NamedIndividual ;
rdfs:comment "The represents individual property creates a link between a variable and the individual of the non-parametric description, e.g. a product or geometry description, that is the domain of the variable's considered property. Together with the represents individual property, the represents property property can be used in a SPARQL query to extract the given value that is represented by the variable, which serves as a default value, in case the variable is adjustable." ;
.
ops:representsProperty
rdf:type owl:ObjectProperty ;
rdfs:domain ops:Variable ;
rdfs:label "representy property"@en ;
rdfs:range owl:DatatypeProperty ;
rdfs:comment "With the represents property property, a variable can be related to the datatype property that points to the considered value of the non-parametric description, e.g. product or geometry description. Together with the represents individual property, the represents property property can be used in a SPARQL query to extract the given value that is represented by the variable, which serves as a default value, in case the variable is adjustable." ;
.
ops:representsValueAtIndex
rdf:type owl:DatatypeProperty ;
rdfs:domain ops:Variable ;
rdfs:label "represents value at index" ;
rdfs:range xsd:nonNegativeInteger ;
rdfs:comment "In case the corresponding value of a variable is part of an ordered list, the represents value at index property can be applied to define the index of the corresponding value within its list." ;
.
ops:toleratesDeviation
rdf:type owl:DatatypeProperty ;
rdfs:domain ops:Variable ;
rdfs:label "tolerates deviation"@en ;
rdfs:comment "The tolerates deviation property defines how far the variable value may deviate from the defined preferred variable value before a penalty is given to the system's solution, e.g. in form of weights. While the tolerated deviation of individual variables may vary, the assigned weight for overstepping the tolerance is uniform throughout the system. The penalty should be given for every multiple of the tolerance that has been overstepped. E.g. if the preferred value is defined to be '3' and the toleratable deviation is '1', a solution with a value of '4' may get one penalty, while a solution with a value of '6' may get three penalties." ;
.