ESIPFed / sweet

Official repository for Semantic Web for Earth and Environmental Terminology (SWEET) Ontologies
Other
119 stars 33 forks source link

Fix Error Classes when loading SWEET #84 #171

Closed ignazio1977 closed 4 years ago

ignazio1977 commented 4 years ago

Some errors due to cyclic dependencies in relaMath imports closure and OWLAPI bugs. Workaround is to add the missing declarations.

Other punning errors due to typing some properties as annotation properties, possibly a leftover of early OWLAPI bugs or missing dependencies when the ontologies were first created. Amended by ensuring properties always have the same type in all their declarations.

lewismc commented 4 years ago

I can confirm that this PR removes the Error's when I load resources locally. I ran FaCT++ and dumping out the inferred axioms right now. I'll update here with outcome. I'll also go ahead and run robot once that's done.

I'll note that there are still loads of instances of illegal punning which we should deal with. I'm talking hundreds, if not thousands of instances.

ignazio1977 commented 4 years ago

I've found another forty or fifty thanks to @smrgeoinfo review, I'll update the PR accordingly. I'll also add a check in my testcase to see if there's anyother that can be spotted automatically.

cmungall commented 4 years ago

Thank you @ignazio1977!!!

lewismc commented 4 years ago

Any comments here folks?

lewismc commented 4 years ago

@ignazio1977 some persisting instances of punning

Illegal redeclarations of entities: reuse of entity http://sweetontology.net/relaSci/rangeOf in punning not allowed [ObjectProperty: rangeOf, DataProperty: rangeOf]
Illegal redeclarations of entities: reuse of entity http://sweetontology.net/relaSci/hasUpperQuantity in punning not allowed [DataProperty: hasUpperQuantity, ObjectProperty: hasUpperQuantity]
Illegal redeclarations of entities: reuse of entity http://sweetontology.net/relaSci/hasLowerQuantity in punning not allowed [DataProperty: hasLowerQuantity, ObjectProperty: hasLowerQuantity]
Illegal redeclarations of entities: reuse of entity http://sweetontology.net/relaSci/hasQuantity in punning not allowed [DataProperty: hasQuantity, ObjectProperty: hasQuantity]

... and some additional warnings

Annotation property domain axiom turned to object property domain after parsing. This could introduce errors if the original domain was an anonymous expression: http://sweetontology.net/humanKnowledgeDomain/KnowledgeDomain is the new domain.
Annotation property domain axiom turned to object property domain after parsing. This could introduce errors if the original domain was an anonymous expression: http://sweetontology.net/propOrdinal/Impact is the new domain.
Annotation property domain axiom turned to data property domain after parsing. This could introduce errors if the original domain was an anonymous expression: http://sweetontology.net/matrBiomass/Species is the new domain.
Annotation property domain axiom turned to object property domain after parsing. This could introduce errors if the original domain was an anonymous expression: http://sweetontology.net/matrBiomass/Species is the new domain.
Annotation property domain axiom turned to object property domain after parsing. This could introduce errors if the original domain was an anonymous expression: http://sweetontology.net/phenSystem/Decrease is the new domain.
Annotation property domain axiom turned to object property domain after parsing. This could introduce errors if the original domain was an anonymous expression: http://sweetontology.net/phenSystem/Increase is the new domain.
Annotation property domain axiom turned to object property domain after parsing. This could introduce errors if the original domain was an anonymous expression: http://sweetontology.net/matr/ChemicalSubstance is the new domain.

This is such an improvement. Thank you for looking into the issues.

ignazio1977 commented 4 years ago

Yes, these are the ones I've mentioned on the latest open issue, these are not accidental duplicate declarations but actual punning in the ontology which I cannot resolve. A domain expert needs to take a look and decide whether these should be data or object properties.

graybeal commented 4 years ago

Is there a trivial way to see the corresponding usage of those properties? (That is, have you already made a separate document listing them?) Or should I just use Protege?

ignazio1977 commented 4 years ago

I'll do a search and let you know.

ignazio1977 commented 4 years ago

From looking at the usage, these properties are referred to as data properties only inside the same ontology, and their range is set to a class not to a datatype or data range, so I'd conclude they are just mistyped in the ontology and can be easily rectified. I'll add a commit.

The warning about domain changing can maybe be fixed, but given that the ranges are not anonymous it's not a serious warning.

lewismc commented 4 years ago

Fantastic @ignazio1977 thank you. You should have received a link to join the committers roster as well :)