Re: deprecating an axiom

On Dec 1, 2011, at 8:45 PM, Alan Ruttenberg wrote:

> 
> 
> On Thu, Dec 1, 2011 at 1:13 PM, Chris Mungall <cjmungall@lbl.gov> wrote:
> The OWL2 syntax allows for deprecated classes and properties, although deprecating an entity doesn't change the semantics.
> 
> Is there a standard way to deprecate an axiom? Would there be a negative consequences in using owl:deprecated, or should this be considered reserved?
> 
> I have one project in mind, where we are providing provenance for each axiom - a unique identifiers and a pubmed URI. When we remove an axiom we want to keep it around so we don't reuse the same ID or accidentally add back an equivalent axiom. I expect that in order to silence the axiom we will have to keep the axiom in a separate ontology that is never imported during reasoning. I don't think there is a way to keep the axiom annotation around without the axiom (perhaps in OWL full, but I'm not interested in going that way). Another option would be to translate the axiom to an annotation assertion but this would be a bit hacky.
> 
> I've been thinking that we want a shadow of the OWL vocabulary for use in several contexts, including this one, where all the (rdf) predicates were annotation properties and and all the the remaining terms were bare URIs. Then you could perform the a trivial replacement of, say, namespace, to nullify any axiom, with fairly easy modifications to tools for display. 

I like this as it effectively silences the axiom.

However, I'm not sure how easy the tool support would be. If the shadow vocabulary isn't part of the rdf->owl mapping (which it wouldn't be until future OWL versions) then it's only visible to me as a collection of individuals and object property assertions. I have to know the fairly complex details of how the axioms map to rdf in order to work with them - and if the deprecated axioms themselves have annotations (which they do in my case) then we're left with a fairly complex graph of objects whose high level structure is largely opaque. One of the nice things about working with high level APIs like the OWL API is that I'm freed from worrying about the underlying rdf complexity.

what do you think of the alternative, of just adding an owl:deprecated annotation, and then shunting the axiom off to the side in a shadow ontology, that is typically not imported? 

> -Alan 
> 
> If we did that then we could just translate the axioms into 
>  
> 
> Is there any recommended practice here?
> 

Received on Thursday, 8 December 2011 16:31:38 UTC