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

Add guidelines for use of skos in OMO #65

Open
cmungall opened this issue Mar 10, 2021 · 11 comments
Open

Add guidelines for use of skos in OMO #65

cmungall opened this issue Mar 10, 2021 · 11 comments

Comments

@cmungall
Copy link
Contributor

I have heard various people say that skos should not be used in conjunction with OWL. One reason is that formally domain and range constraints are skos:Concept, which introduces punning.

I think the solution is that we simply include the subset of skos we need in OMO, declared as APs, and recommend that this is not merged with skos.owl. However, we need to be able to anticipate objections. I think we need a page about this in the OMO reference guide.

@matentzn
Copy link
Contributor

Where was this conversation had? Any tickets you could link?

I at least would like to challenge this, but happy to roll once I understand why I should not be using skos:relatedMatch. (I know only the usual objections of skos:exactMatch vs owl:equivalentClass).

The punning issue is a bit annoying but I am kind of half way happy to ignore this.. What are the implications of this pun?

@graybeal
Copy link

I've heard this too on similar grounds, that any use of SKOS comparators (broader, narrower, closeMatch, exactMatch, …) is making the entity into an instance, whereas the uses in an OWL modeling context typically declare it as a class. I expect you would see issues in a reasoning environment that is primed to look for declarations of the same entity as both instance and class (unless punned), maybe because you'd get a cascade of odd inferences otherwise?

A workable approach here would be great, I am seeing more of these in the wild (usually simple ontologies only).

@matentzn
Copy link
Contributor

I am pretty sure neither the OWLAPI nor OWL reasoners would care about SKOS at all.. So practically speaking, what tool/framework is known to actually do this punning?

@graybeal
Copy link

They care about any odd/inconsistent modeling. They know nothing about SKOS. If what you're saying is no one would apply them to primarily SKOS artifacts, I agree it seems unlikely.

@cmungall
Copy link
Contributor Author

I just realized there is this old W3C note, but it predates OWL2:

https://www.w3.org/2006/07/SWD/SKOS/skos-and-owl/master.html

So practically speaking, what tool/framework is known to actually do this punning?

not sure I understand. Take

http://www.w3.org/TR/skos-reference/skos.rdf

pass it through the OWLAPI, you get ObjectProperties for exactMatch and friends. Combine this with an ontology that uses exactmatch on a class and you get punning. Is this a technical problem? No. Is it confusing? Probably.

I think the recommendation here is that you simply don't mix skos.rdf and OBO. If you do then it's on you if you get punning. If you want axioms and declarations on skos properties (which is a reasonable thing to want) then I think it behooves us to provide this, e.g. something like /obo/omo/skos.owl.

Will that confuse people? Well if you mix the two skos renderings then you get punning on APs and OPs.

@matentzn
Copy link
Contributor

I did not know that! I thought they were just treated like APs.

@matthewhorridge
Copy link

If the properties are declared as annotation properties, locally, then this would avoid the punning. Perhaps confusing... not sure

@cmungall
Copy link
Contributor Author

cmungall commented Mar 17, 2021 via email

@cmungall
Copy link
Contributor Author

I think we should:

  • add the 4 skos match predicates to OMO
  • model as APs in OMO
  • add range constraints that these should be IRIs (must be validated in linkml/shacl though, reasoner won't catch this)
  • add documentation about unintended punning when skos.rdf is combined, and leave it at that

@henrietteharmse
Copy link

henrietteharmse commented Oct 29, 2021

There are 2 main reasons why I have an unease in mixing OWL and SKOS.

  1. OWL has a formal semantics which enables reasoning whereas SKOS has no formal semantics. The key decisions regarding the design of SKOS is discussed here: Key choices in the design of SKOS

  2. In OWL1 introduction of punning (as is required byskos:related and it variants) resulted in the ontology belonging to OWL Full that is undecidable. In OWL2 the use of punning no longer causes an ontology to belong to OWL full, but it does have the following reasoning implication that may not be intuitive:

if two individuals are equal, then the classes that they denote are equivalent under RDF-Based Semantics, whereas there is no such relationship between the classes under Direct Semantics

See: OWL 2 DL vs OWL 2 Full

@cmungall
Copy link
Contributor Author

cmungall commented Oct 29, 2021

Thanks!

1: if it has no formal semantics, then we model as APs and there is no problem of conflicting semantics
2: I think the undecidability is a red herring (but I differ with many DL people here). I am trying to think of a real-world scenario where we run into problems. And if we model as APs then there is no punning in the first place

But you bring up some really good points, it shows there are a lot of angles and concerns here

IMHO the main challenge is more of a social-governance one. Everything just works if we model skos as APs. But this is not officially sanctioned by SKOS (I don't know if it's explicitly discouraged). And we can't prohibit people from combining the official skos.rdf with OBO which would result in punning - this is not worrying from the decidability aspect, more just from confusion in how tooling presents punning. E.g. how would such a merged ontology look in OLS?

Perhaps we could add one step to my 4 steps above wjich is to engage the broader community about an officially sanctioned variant of SKOS that commits to APs for the IRIs (we would pursue in parallel we would not wait on this)

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

5 participants