eclipse-esmf / esmf-semantic-aspect-meta-model

Formal and textual specification of the Semantic Aspect Meta Model (SAMM)
https://eclipse-esmf.github.io/samm-specification/snapshot/index.html
Mozilla Public License 2.0
47 stars 9 forks source link

[Task] Investigate re-use of RDF Schema and OWL vocabulary #125

Open kenwenzel opened 2 years ago

kenwenzel commented 2 years ago

Is your task related to a problem? Please describe. BAMM introduces many modeling constructs that already exist in RDF Schema and OWL. This makes it almost possible to create BAMM models with existing tools like Protègè, TopBraid Composer and others. It also prevents the application of existing RDFS and OWL reasoners, e.g., for subClass reasoning.

It should be investigated how BAMM could complement existing standards and just add additional features that are required to express digital twin models.

The BAMM example

:Student a bamm:Entity ;
  bamm:extends :Person ;
  bamm:properties ( :studentNumber ) .

:Teacher a bamm:Entity ;
  bamm:extends :Person ;
  bamm:properties ( :employeeNumber ) .

:Person a bamm:Entity ;
  bamm:properties ( :name :surname ) .

could also be expressed as

:Student a owl:Class ;
  rdfs:subClassOf :Person, [ owl:onProperty :studentNumber; owl:cardinality 1 ] .

:Teacher a owl:Class ;
  rdfs:subClassOf :Person, [ owl:onProperty :employeeNumber; owl:cardinality 1 ] 

:Teacher a owl:Class ;
  rdfs:subClassOf [ owl:onProperty :surname; owl:cardinality 1 ]  .

Enumerated types are also possible with OWL. So this BAMM example

:ToggleResult a bamm-c:Enumeration ;
   bamm:preferredName "Toggle result"@en ;
   bamm:description "The possible results of the toggle operation"@en ;
   bamm:dataType xsd:string ;
   bamm-c:values ( "ok" "denied" "unknown" ) .

could be expressed as

:ToggleResult a rdfs:Datatype ;
   bamm:preferredName "Toggle result"@en ;
   bamm:description "The possible results of the toggle operation"@en ;
   bamm:dataType xsd:string ;
   owl:oneOf ( "ok" "denied" "unknown" ) .

Describe the solution you'd like Evaluate if it is possible to better align BAMM with RDFS/OWL to leverage existing modeling tools and reasoners.

Maybe it is possible to mix current BAMM concepts with RDFS/OWL as follows:

:Student a bamm:Entity ;
  rdfs:subClassOf :Person, [ owl:onProperty :studentNumber; owl:cardinality 1 ] .

Using OWL property restrictions would also allow to refine BAMM properties per entity:

:Student a bamm:Entity ;
  rdfs:subClassOf :Person, [ owl:onProperty :hasCourse; owl:allValuesFrom :UniversityCourse ] .

:Pupil a bamm:Entity ;
  rdfs:subClassOf :Person, [ owl:onProperty :hasCourse; owl:allValuesFrom :SchoolCourse ] .
atextor commented 2 years ago

The decision to use RDF as the basis for BAMM but not build BAMM's vocabulary on RDFS (or OWL) was a conscious one. I'll try to summarize the reasons.

However, all of the above is primarily meant as an explanation of the status quo and does not preclude further developments, including better alignments with RDFS and/or OWL. However, if we address this to reap the obvious benefits (being able to use tools such as Protégé and integration with other OWL/RDFS-focused tooling) we should keep in mind usability, both for developers (read: not too much syntactical overhead) and modelers (read: domain experts which can understand "entities" and "properties" but are not ontology engineers that are aware of all the pitfalls and intricacies of OWL, such as the Open World Assumption, restrictions, profile semantics etc.).