HajoRijgersberg/OM

Make OM compliant to OWL 2 EL, OWL 2 QL or OWL 2 RL

Opened this issue · 6 comments

jmkeil commented

This issue is a follow up of #33. This issue assumes #78 to get accepted.

To make OM better usable with reasoners, it should comply to OWL 2 EL, OWL 2 QL or OWL 2 RL.

One can use robot validate-profile to check violations of the profiles:

  • robot validate-profile --profile EL --input om-2.0.rdf
  • robot validate-profile --profile QL --input om-2.0.rdf
  • robot validate-profile --profile RL --input om-2.0.rdf

All three currently return many violations. A first step would be to categorize them to get an overview about the changes required. That would enable a decision, which of the profiles (if any) is an acceptable compromise.

Violation OWL 2 EL OWL 2 QL OWL 2 RL Related Issues
Axiom type not allowed in profile [FunctionalDataProperty - 2 -
Axiom type not allowed in profile [FunctionalObjectProperty 3 3 -
Class expressions not allowed in profile: DataExactCardinality 3 - -
Class expressions not allowed in profile: ObjectAllValuesFrom 400 - -
Class expressions not allowed in profile: ObjectExactCardinality 115 - -
Class expressions not allowed in profile: ObjectUnionOf 56 - - #84
Use of ObjectOneOf with multiple individuals ObjectOneOf 84 - - #84, #85
Use of data range not in profile: xsd:float 215 215 - #42
Use of non-equivalent class expression in position that requires an equivalent class expression: ObjectIntersectionOf - - 59
Use of non-equivalent class expression in position that requires an equivalent class expression: ObjectOneOf - - 129 #84, #85
Use of non-equivalent class expression in position that requires an equivalent class expression: ObjectUnionOf - - 42
Use of non-subclass expression in position that requires a subclass expression: ObjectHasValue - 1 -
Use of non-subclass expression in position that requires a subclass expression: ObjectIntersectionOf - 59 -
Use of non-subclass expression in position that requires a subclass expression: ObjectOneOf - 129 - #84, #85
Use of non-subclass expression in position that requires a subclass expression: ObjectUnionOf - 42 - #84
Use of non-superclass expression in position that requires a superclass expression: ObjectAllValuesFrom - 169 7
Use of non-superclass expression in position that requires a superclass expression: ObjectHasValue - 138 -
Use of non-superclass expression in position that requires a superclass expression: ObjectUnionOf - 8 8 #84
Use of non-superclass expression in position that requires a superclass expression: owl:Thing - - 6

Sorted results of the profile validations:

Edit: Added OWL 2 EL as third option, to not exclude them to early.
Edit2: Add issue type table and validation results.
Edit3: Link issues

jmkeil commented

As there might be many similar changes required that could be automatized, I would recommend to first do #80.

Thanx, Jan Martin! A very important issue to consider. I will first have to learn more about QL and RL, since I haven't heard of these before. To be continued, looking forward to further collaboration with you in this! :)

jmkeil commented

Maybe, the EL profile should also be considered in such an investigation, to not exclude them to early.

jmkeil commented

I added an overview of violations per profile.

Thanx again! I have just taken a first deeper look at your table above. Just for my understanding, have some of the violations been handled in the mean time (and should consequently the table consequently be updated) or does the table (already) represent the status after the adaptations?

jmkeil commented

The table reflects the current status (73a5003) of the ontology, after the OWL 2 DL fix.