- From: Balhoff, Jim <balhoff@renci.org>
- Date: Mon, 20 Oct 2025 13:39:46 +0000
- To: User support for WebProtege and Protege Desktop <protege-user@lists.stanford.edu>
- CC: "public-prov-comments@w3.org" <public-prov-comments@w3.org>
- Message-ID: <FCB147A7-20C3-41F1-93BA-C47E9CC00753@renci.org>
It seems like this problem was noticed a long time ago, and there was some agreement to fix it: https://lists.w3.org/Archives/Public/public-prov-comments/2017May/0000.html
But I guess the ontology was not updated?
- Jim
On Oct 19, 2025, at 10:38 PM, Michael DeBellis <mdebellissf@gmail.com> wrote:
I'm copying the Protege list as well as Prov in case some people there have any feedback. For the attached ontology, I started by doing "Load Ontology from URL" in Protege and loaded: https://www.w3.org/ns/prov-o#
The resulting ontology had warnings that I think were caused by defining properties as annotation properties as well as object properties:
INFO 18:56:59
WARN 18:57:17 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>))]
WARN 18:57:17 Illegal redeclarations of entities: reuse of entity http://www.w3.org/ns/prov#specializationOf in punning not allowed [Declaration(AnnotationProperty(<http://www.w3.org/ns/prov#specializationOf>)), Declaration(ObjectProperty(<http://www.w3.org/ns/prov#specializationOf>))]
INFO 18:57:18 -------------------- Importing ontology and imports closure --------------------
INFO 18:57:18 Processing http://www.w3.org/ns/prov-o-20130430
WARN 18:57:18 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>))]
WARN 18:57:18 Illegal redeclarations of entities: reuse of entity http://www.w3.org/ns/prov#specializationOf in punning not allowed [Declaration(AnnotationProperty(<http://www.w3.org/ns/prov#specializationOf>)), Declaration(ObjectProperty(<http://www.w3.org/ns/prov#specializationOf>))]
INFO 18:57:18 Finished loading https://www.w3.org/ns/prov-o#
I think this is caused by this definition:
:qualifiedRevision
a owl:ObjectProperty ;
rdfs:comment "If this Entity prov:wasRevisionOf Entity :e, then it can qualify how it was revised using prov:qualifiedRevision [ a prov:Revision; prov:entity :e; :foo :bar ]."@en ;
rdfs:domain :Entity ;
rdfs:isDefinedBy <http://www.w3.org/ns/prov-o#> ;
rdfs:label "qualifiedRevision" ;
rdfs:range :Revision ;
rdfs:subPropertyOf :qualifiedInfluence ;
:category "qualified" ;
:component "derivations" ;
:inverse "revisedEntity" ;
:sharesDefinitionWith :Revision ;
:unqualifiedForm :wasRevisionOf .
And this:
:wasRevisionOf
a owl:AnnotationProperty, owl:ObjectProperty ;
rdfs:comment "A revision is a derivation that revises an entity into a revised version."@en ;
rdfs:domain :Entity ;
rdfs:isDefinedBy http://www.w3.org/ns/prov-o# ;
rdfs:label "wasRevisionOf" ;
rdfs:range :Entity ;
rdfs:subPropertyOf :wasDerivedFrom ;
owl:propertyChainAxiom (:qualifiedRevision
:entity
) ;
:category "expanded" ;
:component "derivations" ;
:inverse "hadRevision" ;
:qualifiedForm :Revision, :qualifiedRevision .
It seems to me that the answer must be to remove either the annotation properties or the object properties. I think what is consistent with Prov is to remove the annotation properties. Although, what I would prefer is to remove the object properties and use the annotation properties, so that we don't need to use puns. But I think SKOS (which I also plan to load with Prov and Dublin Core, I'm sort of putting together a metadata upper model) requires us to use puns anyway and I also think that is what Prov requires, in spite of that definition which I think is an error since you can't declare something to be an annotation and object property. Unless you want OWL Full which if you are going to use you are essentially throwing away the reasoner anyway (which negates the value of using object properties over annotation properties).
But I could be wrong, please tell me if I am. I've never gone into this much detail trying to load several of these together so it could be something I've done. I checked the file at that URL because I think I may have defined some properties from Prov to be annotation properties for previous work
But I don't think that should be impacting what I'm doing now since I loaded Prov directly from the URL without creating any ontology or anything in Protege before hand.
TL/DR: I think there are warnings loading Prov based on defining one or more properties as annotation and object properties and my plan is to remove the annotation property axioms to be OWL DL compliant which I think is consistent with the Prov spec.
Appreciate any feedback.
Cheers,
Michael DeBellis
https://www.michaeldebellis.com/blog
<prov.ttl>_______________________________________________
protege-user mailing list
protege-user@lists.stanford.edu
https://mailman.stanford.edu/mailman/listinfo/protege-user
Received on Tuesday, 21 October 2025 10:05:39 UTC