Contains a modified version of the current, publicly available version of Infineon's FAOntology
which provides a sort of taxonomy of the company's business domain.
This modified version is stripped of company-specific FA tasks and their dependencies, as well as any parts of the taxonomy not relevant to the current scope of this project.
The ontology is hosted using a fuseki server, accessible at http://localhost:3030/.
This version of the ontology FAOntologyV5_ex
is a significantly adapted version of the original FAOntologyV5
:
-
Removes all classes, object properties, data properties and annotations not relevant to this project
-
Renames the
has_prerequisite
andhas_mandatory_prerequisite
tohas_predecessor
andhas_mandatory_predecessor
, respectively, for added syntactic clarity -
Adds the
group
data property, which is used to describe whether a FA method has destructive properties:<!-- http://community.infineon.com/sites/smart-FA-lab/Semantic%20Search/FAOntologyV5#group --> <owl:DatatypeProperty rdf:about="http://community.infineon.com/sites/smart-FA-lab/Semantic%20Search/FAOntologyV5#group"> <rdfs:subPropertyOf rdf:resource="http://www.w3.org/2002/07/owl#topDataProperty"/> <rdfs:range> <rdfs:Datatype> <owl:oneOf> <rdf:Description> <rdf:type rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#List"/> <rdf:first rdf:datatype="http://www.w3.org/2001/XMLSchema#string">both</rdf:first> <rdf:rest> <rdf:Description> <rdf:type rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#List"/> <rdf:first rdf:datatype="http://www.w3.org/2001/XMLSchema#string">destructive</rdf:first> <rdf:rest> <rdf:Description> <rdf:type rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#List"/> <rdf:first rdf:datatype="http://www.w3.org/2001/XMLSchema#string">non-destructive</rdf:first> <rdf:rest rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#nil"/> </rdf:Description> </rdf:rest> </rdf:Description> </rdf:rest> </rdf:Description> </owl:oneOf> </rdfs:Datatype> </rdfs:range> </owl:DatatypeProperty>
-
Adds the
repeatable
data property, which says whether a FA method may be repeated:<!-- http://community.infineon.com/sites/smart-FA-lab/Semantic%20Search/FAOntologyV5#repeatable --> <owl:DatatypeProperty rdf:about="http://community.infineon.com/sites/smart-FA-lab/Semantic%20Search/FAOntologyV5#repeatable"> <rdfs:subPropertyOf rdf:resource="http://www.w3.org/2002/07/owl#topDataProperty"/> <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#boolean"/> </owl:DatatypeProperty>
Furthermore, the following assumptions are made (currently):
has_successor
is inverseOfhas_predecessor
and vice versahas_mandatory_successor
is subPropertyOfhas_successor
(analog forhas_mandatory_predecessor
)- However,
has_mandatory_successor
must not be inverseOfhas_mandatory_predecessor
These assumptions are not required for the import / export to work, but without those, the semantics of triples generated by the modeler will clash with the semantics of triples in the ontology.
- The modeler can only import simple connections in the form
srcMethod subClassOf has_predecessor some dstMethod
orsrcMethod subClassOf has_predecessor min 1 dstMethod
(or similar for the other connection types). - More complex statements, like e.g.
srcMethod subClassOf has_predecessor some (dstMethod1 and dstMethod2)
can not be currently imported. - However, similar (but not exact) semantics can be achieved by splitting up the connection into multiple ones
e.g.
srcMethod subClassOf has_predecessor some dstMethod1
andsrcMethod subClassOf has_predecessor some dstMethod2
As a general rule-of-thumb, the workflow validator checks the proper order between tasks and mandatory predecessors for a set of "goal" tasks that are included in the workflow to-be-checked. It does not (currently) deal with all proper execution sequences that are admissable, like those involving AND/XOR/OR constructs. In comparison to usual business process modelling going from start to end, it can be thought of as going from end to start by listing (mandatory) dependencies between tasks.
Modus operandi for the export to ontology, in order of execution, see code:
-
Optionally renames methods that were renamed in modeler
This feature is opt-in, such that the user can not rename methods in the ontology accidentally. Can be enabled by ticking the appropriate option when running the
ExportToOntology
plugin. -
Drops all connections between methods that are managed by the modeler
Connections that can not currently be imported (see above limitations) will not be touched / deleted.
-
Optionally deletes all methods that are not contained in the modeler
This feature is opt-in, such that the user can not delete methods in the ontology accidentally. Can be enabled by ticking the appropriate option when running the
ExportToOntology
plugin.Be careful, as deleting methods in the middle of the
:FailureAnalysisMethods
class hierarchy may leave children of the deleted method "stranded". Afterwards, this can then be changed to the new desired class hierarchy in Protege. -
Inserts new / updates existing methods
-
Inserts connections between methods
Noteworthy snippets:
-
Methods are updated using:
INSERT { ?task rdf:type owl:Class. ?task rdfs:subClassOf :FailureAnalysisMethods. ?task rdfs:subClassOf [ rdf:type owl:Restriction; owl:onProperty :group; owl:hasValue ?group ]. ?task rdfs:subClassOf [ rdf:type owl:Restriction; owl:onProperty :repeatable; owl:hasValue ?repeatable ]. }
-
Inserts connections using:
INSERT { ?srcTask rdfs:subClassOf [ rdf:type owl:Restriction; owl:onProperty ?connection; owl:someValuesFrom ?dstTask ]. }