- From: Daniel Garijo <dgarijo@delicias.dia.fi.upm.es>
- Date: Thu, 4 May 2017 12:50:52 -0700
- To: Stian Soiland-Reyes <soiland-reyes@manchester.ac.uk>
- Cc: "public-prov-comments@w3.org" <public-prov-comments@w3.org>
- Message-ID: <CAExK0DduGZxp1zCn+PBan14zznQcKSwJvONrni7c6pz7HryjFw@mail.gmail.com>
Hi Stian, I think your suggestions make a lot of sense. I was wondering if, in addition, we could add some missing metadata. In particular, the following: - license - title - preferredNamespacePrefix - preferredNamespaceURI - publisher This information can be seen in the different specifications, but not in the ontology or when you access http://www.w3.org/ns/prov Having an author/contributor list would be helpful too, but trickier because not everyone contributed to the different prov documents in the same manner. And the list would be a bit long. Best, Daniel 2017-05-04 8:33 GMT-07:00 Stian Soiland-Reyes < soiland-reyes@manchester.ac.uk>: > Hi, hope you are all well! > > It was raised to my attention [1] that our http://www.w3.org/ns/prov-o > (aka https://www.w3.org/ns/prov-o.ttl or > https://www.w3.org/ns/prov-o.rdf) has an illegal OWL 2 punning of an > annotation property and object property, and that this causes error > messages (but no apparant issues) when loading the ontology in Protege - > reported by the underlying OWLAPI. > > Using my updated OWL2 ProfileChecker 1.1.0 [2] (which uses OWLAPI 5.1): > > stain@biggiebuntu:~$ profilechecker http://www.w3.org/ns/prov-o --all > [main] ERROR uk.ac.manchester.cs.owl.owlapi.OWLOntologyManagerImpl - > Illegal redeclarations of entities: reuse of entity > http://www.w3.org/ns/prov#wasRevisionOf in punning not allowed > [Declaration(ObjectProperty(<http://www.w3.org/ns/prov#wasRevisionOf > >)), > Declaration(AnnotationProperty(<http://www.w3.org/ns/prov# > wasRevisionOf>))] > [main] ERROR uk.ac.manchester.cs.owl.owlapi.OWLOntologyManagerImpl - > Illegal redeclarations of entities: reuse of entity > http://www.w3.org/ns/prov#specializationOf in punning not allowed > [Declaration(ObjectProperty(<http://www.w3.org/ns/prov# > specializationOf>)), > Declaration(AnnotationProperty(<http://www.w3.org/ns/prov# > specializationOf>))] > > OWL2_DL: 9 violations > OWL2_QL: 29 violations > OWL2_EL: 32 violations > OWL2_RL: 16 violations > OWL2_FULL: 9 violations > > See gist [3] for all the OWL2 Full violations. > > > This seems to be because our prov-o.ttl (and .rdf) declares > prov:wasRevisionOf and prov:specializationOf as both ObjectProperty and > AnnotationProperty. > > > :wasRevisionOf > a owl:AnnotationProperty, owl:ObjectProperty ; > > > :specializationOf > a owl:AnnotationProperty, owl:ObjectProperty ; > > While this punning is allowed for OWL2 Full - it is > not allowed in RDF serializations of OWL ontologies [4] > because an IRI or BlankNode must be assigned to "at most one" of object > property expressions, data property expression or annotation property. > > > I think we did the above because we also declare provenance of the > owl:Ontology within the same file: > > > <http://www.w3.org/ns/prov-o#> > a owl:Ontology ; > rdfs:label "W3C PROVenance Interchange Ontology (PROV-O)"@en ; > rdfs:seeAlso <http://www.w3.org/TR/prov-o/>, < > http://www.w3.org/ns/prov> ; > owl:versionIRI <http://www.w3.org/ns/prov-o-20130430> ; > owl:versionInfo "Recommendation version 2013-04-30"@en ; > :specializationOf <http://www.w3.org/ns/prov-o> ; > :wasRevisionOf <http://www.w3.org/ns/prov-o-20120312> . > > Ironically the AnnotationProperty declaration is something Protege/OWLAPI > added > automatically at the time because of this - and in fact if "a > owl:AnnotationProperty" is not implicitly declared (but it is still stated > on > the owl:Ontology), then there is no warning at all from OWLAPI: > > stain@biggiebuntu:~/Desktop$ profilechecker prov-o.ttl --all > OWL2_DL: OK > OWL2_QL: 20 violations > OWL2_EL: 23 violations > OWL2_RL: 7 violations > OWL2_FULL: OK > > Note how the above now is OWL2 DL compliant again. I double-checked the > history - and when we did profile checking the OWLAPI didn't do this > punning check - it was introduced just a few months after our release. > > > So I would suggest that we fix prov-o.ttl and prov-o.rdf to remove the > explicit > AnnotationProperty statement. If you agree we can also remove it from the > statements on the owl:Ontology itself (that is anyway covered by the > provenance > file) - although for Protege/OWLAPI that doesn't seem necessary. > > ---- > > There's a larger issue, in that the "all in one go" > http://www.w3.org/ns/prov (aka https://www.w3.org/ns/prov.ttl) declares: > > > <http://www.w3.org/ns/prov#> > a owl:Ontology ; > > and also https://www.w3.org/ns/prov-o.ttl declares: > > > <http://www.w3.org/ns/prov#> > a owl:Ontology . > > This causes loading exceptions in OWLAPI 5 [6], including: > > Exception in thread "main" org.semanticweb.owlapi.model.UnloadableImportException: > Could not load imported ontology: <http://www.w3.org/ns/prov-aq#> Cause: > Ontology already exists. OntologyID(OntologyIRI(<http:/ > /www.w3.org/ns/prov#>) VersionIRI(<null>)) > > > This prevents http://www.w3.org/ns/prov being used as "owl:imports" in > other ontologies. > > > Given that we use "/ns/prov-o#" as name in: > > rdfs:isDefinedBy <http://www.w3.org/ns/prov-o#> ; > > then I think this should be the owl:Ontology IRI within prov-o.ttl and > friends - that is the style we've used say in > http://www.w3.org/ns/prov-o-inverses > and would prevent conflict with prov.ttl. > > > > I also wonder why prov.ttl both does an owl:imports AND re-declares all the > concepts (and multiple owl:Ontology), which seems a bit pointless, as well > as > causing their owl:Ontology to be declared both within prov.ttl and > prov-o.ttl > -- perhaps that also gives errors. Suggested fix is for prov.ttl and > friends > to only have the imports - or at least to not have repeated owl:Ontology > declarations. > > > > [1] https://github.com/evoinfo/miapa/issues/25 > [2] https://github.com/stain/profilechecker/releases/tag/1.1.0 > [3] https://gist.github.com/stain/1c61313ab1b5349d3cba6467c7c51a2d > [4] https://sourceforge.net/p/owlapi/mailman/message/31757311/ > [5] https://www.w3.org/TR/owl2-mapping-to-rdf/#Populating_an_Ontology > [6] https://gist.github.com/stain/9f1c5caeb32b618547ca63612edfd6e7 > > > -- > Stian Soiland-Reyes > The University of Manchester > http://www.esciencelab.org.uk/ > http://orcid.org/0000-0001-9842-9718 > > >
Received on Thursday, 4 May 2017 19:51:27 UTC