Skip to content

Latest commit

 

History

History

constraints-ontology

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 

LotTraveler: Constraints Ontology

Description

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/.

Modified ontology

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 and has_mandatory_prerequisite to has_predecessor and has_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>

Assumptions

Furthermore, the following assumptions are made (currently):

  • has_successor is inverseOf has_predecessor and vice versa
  • has_mandatory_successor is subPropertyOf has_successor (analog for has_mandatory_predecessor)
  • However, has_mandatory_successor must not be inverseOf has_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.

Current limitations

  • The modeler can only import simple connections in the form srcMethod subClassOf has_predecessor some dstMethod or srcMethod 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 and srcMethod subClassOf has_predecessor some dstMethod2

Interpretation

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.

Individuals modified by LotTraveler

Modus operandi for the export to ontology, in order of execution, see code:

  1. 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.

  2. 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.

  3. 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.

  4. Inserts new / updates existing methods

  5. 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
          ].
      }