Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

replace ivoasem:deprecated by owl:deprecated ? #21

Open
BaptisteCecconi opened this issue Mar 5, 2024 · 4 comments
Open

replace ivoasem:deprecated by owl:deprecated ? #21

BaptisteCecconi opened this issue Mar 5, 2024 · 4 comments

Comments

@BaptisteCecconi
Copy link
Contributor

BaptisteCecconi commented Mar 5, 2024

The ivoasem:deprecated term is almost the same as the owl:deprecated.

The difference in usage is as follows (in RDF "language"):

  • ivoasem:deprecated should just be present as a property pointing to a blank node.
  • owl:deprecated should be point to "true"^^xsd.boolean to be effective.

Hence the way to find out if a concept, a class or a property is deprecated is a bit different (in SPARQL):

  • ivoasem:deprecated
    SELECT ?a 
    WHERE { ?a ivoasem:deprecated ?b }
    
  • owl:deprecated
    SELECT ?a 
    WHERE { ?a owl:deprecated true }
    

Note that owl:deprecated can be replaced by:

s rdfs:type owl:DeprecatedClass

or

s rdfs:type owl:DeprecatedProperty

depending on context.

However, there is no replacement for ivoasem:useInstead in OWL. We could use rdfs:seeAlso in this case.

@BaptisteCecconi BaptisteCecconi changed the title replace ivoasem:deprecated by owl:deprecated ? replace ivoasem:deprecated by owl:deprecated ? Mar 5, 2024
@msdemlei
Copy link
Collaborator

msdemlei commented Mar 5, 2024 via email

@BaptisteCecconi
Copy link
Contributor Author

I frankly do not remember why we didn't go for owl:deprecated during the design of Vocabularies 2; we have actually used owl:DeprecatedProperty in the early days of the VOResource vocabularies: http://mail.ivoa.net/pipermail/semantics/2017-June/002545.html. I could dig deeper into the document history, but I'd only do that if I'd actually expect anything operationally relevant to come out of it.

That stance also applies to moving to owl:deprecated itself: Is there some tangible (or at least expectable) benefit to it? I think the change (which would formally count as breaking, but I'd be generous there and not go for Vocabularies 3) would have a very small damage radius, as, if someone in the VO looks at these triples at all right now, I'd expect they use desise, and that can be held unchanged regardless what we do here. But it's still work and complication.

The use-case is to be able to display our vocabularies in a wider context (using e.g. the OntoPortal instance at ObsParis, the Protégé tool). If the owl:deprecated property (or the owl:DeprecatedClass / owl:DeprecatedProperty types) are used, then the tools recognise the deprecation of the term properly.

On top, I don't feel owl:deprecated is a particularly good design; our ivoasem:deprecated is a property taking a blank node, and in this sense it's something like a tag, which I consider highly appropriate for a thing like "sorry about that concept".

owl:deprecated, against that, is a boolean property, so you could (and perhaps should, for completeness?) have an (. owl:deprecated false^^xsd:boolean) clause on all your non-deprecated terms. Call me complicated, but that just feels wrong.

This a side discussion, so we should not spend so much time on this I guess. My understanding is that there would be no obligation to add the opposite property.

I'll also mention that ivoasem:deprecated is nicely symmetric to ivoasem:preliminary, and breaking that symmetry IMHO also would require a proportional benefit. I'll finally mention in passing that, if we identify such a benefit, we still wouldn't need to replace ivoasem:deprecated; we could just, in our "export" versions, add owl:deprecated triples. That's negligible implementation work, but still some specification work, so even that I'd only do if we can point at some process that would profit from it.

An alternative that at least demonstrates that we do think about other communities could be to sneak in a triple

(ivoasem:deprecated, X, owl:deprecated)

into ivoasem, where X would be a property like "related property" (I'm totally open to suggestions what to use there).

May be that's a minimal way to implement this. We can add some piece of OWL in RDF/XML and turtle so that OWL reasoners understand the equivalence of the 2 properties.

Something like:

@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix ivoasem: <http://www.ivoa.net/rdf/ivoasem#> .

owl:DeprecatedClass owl:equivalentProperty [
   rdf:type owl:Restriction ; 
   owl:onProperty ivoasem:deprecated ;
   owl:hasValue ":__"
] .

should do the trick (but I need to check these statements somehow)...

@msdemlei
Copy link
Collaborator

msdemlei commented Mar 5, 2024 via email

@BaptisteCecconi
Copy link
Contributor Author

ok, let me ask them

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants