# baseURI: https://w3id.org/ops
# prefix: ops
@prefix dcterms: .
@prefix foaf: .
@prefix ops: .
@prefix owl: .
@prefix rdf: .
@prefix rdfs: .
@prefix schema: .
@prefix vann: .
@prefix xsd: .
rdf:type owl:Ontology ;
dcterms:creator [
rdf:type foaf:Person ;
foaf:name "Anna Wagner" ;
] ;
dcterms:description """The Ontology for Parametric Systems (OPS) aims to create a meta structure for parametric systems described in RDF without predefining the definition schema of the parametric dependencies themselves. OPS introduces concepts to define parameters as constants and variables and relate them to constraints that make use of the variables, as well as concepts to attach the description of the parametric dependencies to the singular constraints and group constraints in systems.
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-11-12"^^xsd:date ;
dcterms:license ;
dcterms:modified "2019-11-12"^^xsd:date ;
dcterms:title "Ontology for Parametric Systems"@en ;
vann:preferredNamespacePrefix "ops" ;
vann:preferredNamespaceUri ;
owl:versionIRI ;
owl:versionInfo "1.0" ;
.
ops:Constant
rdf:type owl:Class ;
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."@en ;
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 ;
.
ops:Constraint
rdf:type owl:Class ;
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."@en ;
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 ;
.
ops:Parameter
rdf:type owl:Class ;
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."@en ;
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 ;
.
ops:System
rdf:type owl:Class ;
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."@en ;
rdfs:label "parametric 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 ;
.
ops:Variable
rdf:type owl:Class ;
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."@en ;
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 ;
.
ops:VariableBoundary
rdf:type owl:Class ;
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."@en ;
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 ;
.
ops:bindsMaxValue
rdf:type rdf:Property ;
rdfs:comment "The binds maximum value property links a variable boundary to the upper limit of the acceptably value range. The limit can be represented by a (fixed) variable, as well, in case the limit is part of the non-parametric description."@en ;
rdfs:domain ops:VariableBoundary ;
rdfs:label "binds maximum value"@en ;
rdfs:subPropertyOf schema:maxValue ;
.
ops:bindsMinValue
rdf:type rdf:Property ;
rdfs:comment "The binds minimum value property links a variable boundary to the lower limit of the acceptably value range. The limit can be represented by a (fixed) variable, as well, in case the limit is part of the non-parametric description."@en ;
rdfs:domain ops:VariableBoundary ;
rdfs:label "binds minimum value"@en ;
rdfs:subPropertyOf schema:minValue ;
.
ops:hasAdjustableVariable
rdf:type owl:ObjectProperty ;
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."@en ;
rdfs:label "has adjustable variable"@en ;
rdfs:range ops:Variable ;
rdfs:subPropertyOf ops:hasParameter ;
.
ops:hasComplexConstraintDefinition
rdf:type owl:InverseFunctionalProperty ;
rdf:type owl:ObjectProperty ;
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."@en ;
rdfs:domain ops:Constraint ;
rdfs:label "has complex constraint definition"@en ;
.
ops:hasConstant
rdf:type owl:ObjectProperty ;
rdfs:comment "The has constant property links a constraint to a constant that is considered within the constraint definition."@en ;
rdfs:label "has constant"@en ;
rdfs:range ops:Constant ;
rdfs:subPropertyOf ops:hasParameter ;
.
ops:hasFixedVariable
rdf:type owl:ObjectProperty ;
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."@en ;
rdfs:label "has fixed variable"@en ;
rdfs:range ops:Variable ;
rdfs:subPropertyOf ops:hasParameter ;
.
ops:hasParameter
rdf:type owl:ObjectProperty ;
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."@en ;
rdfs:domain ops:Constraint ;
rdfs:label "has parameter"@en ;
rdfs:range ops:Parameter ;
.
ops:hasParameterSymbol
rdf:type owl:DatatypeProperty ;
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."@en ;
rdfs:domain ops:Parameter ;
rdfs:label "has parameter symbol"@en ;
.
ops:hasSimpleConstraintDefinition
rdf:type owl:DatatypeProperty ;
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)."@en ;
rdfs:domain ops:Constraint ;
rdfs:label "has simple constraint definition"@en ;
.
ops:includesConstraint
rdf:type owl:ObjectProperty ;
rdfs:comment "The includes constraint property can be applied to relate a parametric system to constraints that are part of the overall system."@en ;
rdfs:domain ops:System ;
rdfs:label "includes constraint"@en ;
rdfs:range ops:Constraint ;
.
ops:includesValue
rdf:type rdf:Property ;
rdfs:comment "The inclused value property attaches acceptable variable values to a variable boundary. The property can be used to attach multiple acceptable values."@en ;
rdfs:domain ops:VariableBoundary ;
rdfs:label "includes value"@en ;
rdfs:subPropertyOf schema:value ;
.
ops:isBoundBy
rdf:type owl:InverseFunctionalProperty ;
rdf:type owl:ObjectProperty ;
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."@en ;
rdfs:domain ops:Variable ;
rdfs:label "is bound by"@en ;
rdfs:range ops:VariableBoundary ;
.
ops:prefersValue
rdf:type owl:DatatypeProperty ;
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."@en ;
rdfs:domain ops:Variable ;
rdfs:label "prefers value"@en ;
.
ops:representsIndividual
rdf:type owl:ObjectProperty ;
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."@en ;
rdfs:domain ops:Variable ;
rdfs:label "represents individual"@en ;
rdfs:range owl:NamedIndividual ;
.
ops:representsProperty
rdf:type owl:ObjectProperty ;
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."@en ;
rdfs:domain ops:Variable ;
rdfs:label "represents property"@en ;
rdfs:range owl:DatatypeProperty ;
.
ops:toleratesDeviation
rdf:type owl:DatatypeProperty ;
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."@en ;
rdfs:domain ops:Variable ;
rdfs:label "tolerates deviation"@en ;
.