Make OM compliant to OWL 2 EL, OWL 2 QL or OWL 2 RL
Opened this issue · 6 comments
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
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! :)
Maybe, the EL profile should also be considered in such an investigation, to not exclude them to early.
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?