W3C home > Mailing lists > Public > semantic-web@w3.org > November 2016

RE: SKOS modeling

From: Armando Stellato <stellato@uniroma2.it>
Date: Fri, 11 Nov 2016 12:36:28 +0000
To: 'Alessandro Seganti' <alessandro.seganti@gmail.com>, 'Reto Gmür' <reto@gmuer.ch>
CC: "semantic-web@w3.org" <semantic-web@w3.org>, 'Alessandro Seganti' <a.seganti@cognitum.eu>
Message-ID: <AM4PR1001MB14102D958F91432A023773FBB9BB0@AM4PR1001MB1410.EURPRD10.PROD.OUTLOOK.COM>
Hi Alessandro,

A few facts for your knowledge base ;-)

1)      SKOS is not separated from OWL, it is actually an OWL vocabulary for developing thesauri, its core elements are defined using OWL constructs ;-)

2)      Your statement “All relations are not “hard” ” is not correct. The relations (that you define in a thesaurus) are as “hard” as you decide, in that you can use properties belonging to the OWL classes of properties (ObjectProperty, DatatypeProperty etc..) and you can define as many axioms in your vocabulary (intended to be used in a SKOS thesaurus) as you want. Even some of SKOS relations have quite a few logical constraints and/or allow to have inference based on the facts made explicit through them

3)      Simply, SKOS provides a unifying vocabulary for addressing specific thesauri elements such as concepts (skos:Concept), terminological properties (skos:pref/alt/hiddenlabel) generic/specific (skos:broader/narrower) etc… there are reasons (see below) for which OWL elements have not been used (e.g. owl:Class, rdfs:subClassOf etc..) to represent concepts and hierarchies, and they represent the core rationale for the development of SKOS, the rest (notation, collections, ConceptScheme etc..) are all things which have been added for further covering thesauri modeling needs).

In a nutshell, when you need to index some repository (a document repo, or a multimedia repo) you may want to semantically index its content with “topics”.
What is a “topic”? is not a owl:Class, because it does not need to classify instances, and some topics could actually be objects of the world which surely do not make sense to represent as classes. Also, concepts need to be valued (for instance, for establishing relationships between them).
So owl individuals would be great for that, except that they need to be arranged in a hierarchy, but we do not have a standard property for making hierarchies of these topics as rdfs:subClassOf addresses classes (oh! But we do not even have a standard class for represent these topics!)
So the answer is SKOS..et voilà!, skos:Concept (for these “topics”) and skos:borader/narrower (for the hierarchy) are served!

If you want a longer explanation, here are a couple of readings (which would avoid writing a long email to explain those reasons mentioned above)

When and why using SKOS, and why OWL was not ok. The article is not written with logics guru in mind as the audience, and I guess it can give you a reading and save you more questions (hopefully). Sorry for the self-citation, it’s just I wrote it (following an invited speech to a workshop) exactly with the idea to address that OWL/SKOS question which kept being asked (so welcome to the club ;-) )
Armando Stellato Dictionary, Thesaurus or Ontology? Disentangling Our Choices in the Semantic Web Jungle, Journal of Integrative Agriculture (JIA), 2012

…but also a practical experience report in which researchers used an ontology (and still needed SKOS or SKOS-bound terms) to index a News repository could you give a practical answer
Wouter Van Atteveldt, Nel Ruigrok, Stefan Schlobach, Frank Van Harmelen, 2007. Searching the News Using a Rich Ontology with Time-bound Roles to Search through Annotated Newspaper Archives.



From: Alessandro Seganti [mailto:alessandro.seganti@gmail.com]
Sent: Thursday, November 10, 2016 9:19 AM
To: Reto Gmür <reto@gmuer.ch>
Cc: semantic-web@w3.org; Alessandro Seganti <a.seganti@cognitum.eu>
Subject: Re: SKOS modeling

Thank you very much for the answer, I think that now I better understand the theory behind it.

Still I am wondering: once you have a thesaurus written in SKOS in place, what do you do with it? You use it for tagging? As all relations are written as annotations, you cannot reason on it using any OWL profile so the only way to get all the broader concepts is to make SPARQL queries. What if you want to get the broader concept of a broader concept? You translate the SKOS ontology to an OWL ontology?

I think that my point here is that while SKOS seems easier to use because all relations are not "hard", it seems to me of less practical use of an RDF/OWL ontology but again I am not a SKOS expert so I probably just don't understand it :)


2016-11-09 18:00 GMT+01:00 Reto Gmür <reto@gmuer.ch<mailto:reto@gmuer.ch>>:
Hi Alessandro

On Wed, 9 Nov 2016, at 15:36, Alessandro Seganti wrote:
Hi everyone,
after some years working with semantic technologies, I am still not 100% sure I understand what SKOS is used for.

To my understanding, SKOS should be used to model relations between entities that are not certain so instead of modeling it as "is a" we say that it is "broader than" or things like this.
No, it's not about certainty. A SKOS concept may be an owl:Class in which case a super-class would probably be a broader concept.

If this is true, then I don't understand why I see many people building taxonomy trees using SKOS relations. Is there some confusion around or maybe I am missing something?
There are certainly many cases where you could use either SKOS or OWL or use them together. The main difference is that OWL classes can have and typically have instances while SKOS concepts cannot be instantiated (unless they are also classes).

Also could you give me an example where it is better to use SKOS than to use "is a" relationships?

If your data describes different individual dogs you might have various classes for the different breeds of dogs, there probably are some sub-class relations between those classes. Each individual dog is an instance of one or several of those classes. If however your data is about dog books, these books are obviously not an instance of a particular breed of dog but may have a breed of dog as subject. In this case you would better model the different dog breeds as skos:Concepts rather than as owl:Classes.

So to summarize:
- if you want to categorize some resources use classes so that the resources can have meaningful types
- if you want to describe your thesaurus or want something a bit more formalized than tags to annotate your items (to say "this has to do with") use SKOS

Hope this helps.


Received on Friday, 11 November 2016 12:37:06 UTC

This archive was generated by hypermail 2.3.1 : Friday, 11 November 2016 12:37:10 UTC