Re: [protege-user] [EXT] Re: Issue When Loading Prov

Michael DeBellis <[email protected]>
Newsgroups gmane.comp.misc.ontology.protege.owl
Message-ID <[email protected]>
I agree. I’m writing some things to try and convince practitioners of the benefits of OWL and Semantic Web standards. If you ask many practitioners about knowledge graphs they will often say something like “Oh yeah, Neo4J is really cool”. Actually, even though it isn’t a standard, Neo4J IS pretty cool but there are also many use cases when OWL, SHACL, etc. make more sense and I think it is a shame that many practitioners aren’t aware of them. And one thing I emphasize is that using a standard means you get all these great reusable vocabularies and Prov is one of the most important domains that people who use knowledge graphs for large industry systems would most want to reuse (because a common domain is analytic data such as data lakes and data catalogs) so it kind of weakens your argument when things that are created by the W3C which should be the gold standard for tech vocabularies have basic errors like this.

Michael
Sent from my iPad

On Oct 21, 2025, at 8:05 AM, Wartik, Steven P "Steve" via protege-user <[email protected]> wrote:



I encounter this from time to time when I’m working on a project requiring provenance and someone says, “What about PROV?” I’m always reluctant to pass on a file revised from the W3C
website. I don’t want to risk someone obtaining, and trying to use, the official version.

Does anyone have any contacts at W3C who might be amenable to a nudge?

From: protege-user <[email protected]>
On Behalf Of Michael DeBellis

Sent: Monday, October 20, 2025 4:16 PM

To: User support for WebProtege and Protege Desktop <[email protected]>

Subject: [EXT] Re: [protege-user] Issue When Loading Prov

*** This email originated outside of IDA. Please verify that you recognize the sender and know the content is safe before proceeding. ***

But I guess the ontology was not updated?

Unless I used an outdated URL to load it then it hasn't been updated. I loaded the file here: https://www.w3.org/ns/prov-o If that isn't the right version to use please let me know.

But in any case that answers my question. It is an error and the solution is to remove the annotation property, which I'll do. Thanks.

Michael

On Mon, Oct 20, 2025 at 6:40 AM Balhoff, Jim via protege-user <[email protected] > wrote:

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 <[email protected] > 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

[email protected]

https://mailman.stanford.edu/mailman/listinfo/protege-user

_______________________________________________

protege-user mailing list

[email protected]

https://mailman.stanford.edu/mailman/listinfo/protege-user

_______________________________________________
protege-user mailing list
[email protected]
https://mailman.stanford.edu/mailman/listinfo/protege-user

_______________________________________________
protege-user mailing list
[email protected]
https://mailman.stanford.edu/mailman/listinfo/protege-user
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.