Re: [SKOS] SKOS ontology sanity-check?

Hi all,

Following the decision we made at last telecon, 
> [NEW] ACTION: Antoine to amend the labels and other annotations in
> skos rdf in consultation w/ sean [recorded in
> http://www.w3.org/2009/03/10-swd-minutes.html#action03]

I have now implemented my own comments [2] on the SKOS RDF file [1].

The new version is at [3]. The diff is at [4]. I have also attached my original comments below, and reported on what I have done for each of them.

Comments are of course welcome!

Note I have *not* modified the DL version of the SKOS schema at [5].

Best,

Antoine

PS--additional editorial notices: I have not added myself explicitly as a dct:contributor, even if I changed the file, thinking that the editors should be only judges of that kind of thing. But I'd like to mention the case of Dave Beckett and Nikki Rogers, who are still listed as contributors. I think they've contributed heavily to the first version, and would indeed deserve being credited. But are they aware of (and supporting) the modification of their work?

[1] http://www.w3.org/2006/07/SWD/SKOS/reference/20081001/skos.rdf
[2] http://lists.w3.org/Archives/Public/public-swd-wg/2009Mar/0012.html
[3] http://www.w3.org/2006/07/SWD/SKOS/reference/20090315/skos.rdf
[4] http://www.w3.org/2006/07/SWD/SKOS/reference/20090315/diff-skos.txt
[5] http://www.w3.org/2006/07/SWD/SKOS/reference/20081001/skos-dl.rdf



> 
> =============== general comments
> 
> 
> *Dublin core namespace:*
> The new DC namespace http://purl.org/dc/terms/ is introduced as 
> namespace in the ontology, but only the legacy one 
> (http://purl.org/dc/elements/1.1/) is used. To keep consistency with the 
> Primer (which was moved from dc: to dct: after a comment from Tom) I 
> would suggest move to the new one. Note that this comment partly applies 
> to the Reference document: it uses dc:title in section 1.3, but never 
> defines the DC namespace. Maybe this is the opportunity to position this 
> title in the dct namespace.

Replaced dc: by dct: and removed definition of dc: namespace from rdf:RDF header.

> *Labeling:*
> we have to live with the legacy URI local names, despite the fact that I personally find them horrible :-)
> But are we forced to use the same (lack of) policy for the natural language rdfs:labels? 


Modified a number of labels, keeping to the upper case convetion for classes and lower case convetion for properties.
Shortly, I added verbs and articles that clarifies the semantics of the *object* properties (expecially their direction). I believe that other properties' labels have a clearer meaning, related to their domains and ranges being "asymetric" from a representational perspective.


> Granularity of (rdfs:)comments:
> As we are eating our own dog food and use skos:definition in the 
> ontology (which is very nice!) maybe we could use skos:scopeNote, which 
> imo applies to many rdfs:comments. 

Changed a few comments into scope notes and examples (see diff)

> 
> Semantics:
> Even if we may not include them in the Reference RDF now, I would 
> suggest to already create a file containing the axioms that OWL2 allows 
> to represent. That's not huge work, and we could validate it right now, 
> avoiding us to do this in a hurry later, or even to forget about it 
> before the WG comes to its end. I can give it a try if you think this 
> would be useful!

I'll do that in a companion mail.

> 
> =============== comments on specific parts of the ontology
> 
> ontology definition:
> <dc:title xml:lang="en">SKOS Core Vocabulary</dc:title>
> -> <dc:title xml:lang="en">SKOS Vocabulary</dc:title>
> (we don't want to carry forward the "Core" brand, do we?)

Done.

> Concept:
> <skos:definition xml:lang="en">An abstract idea or notion; a unit of 
> thought.</skos:definition>
> -> <skos:definition xml:lang="en">An idea or notion; a unit of 
> thought.</skos:definition>
> ("abstract" could be read as focusing on abstract notions like freedom, 
> intelligence, etc, while KOSs can be about more down-to-earth stuff. And 
> "Core" seems to be removed from the Reference, as well)

Done

> ConceptScheme:
> <skos:definition xml:lang="en">A set of concepts, optionally including 
> statements about semantic relationships between those 
> concepts.</skos:definition>
> -> I'm quite uncomfortable with the "optionally including statements", 
> as it lets readers think this is done trivially, which is not the case. 
> But if you have written this being conscious of such potential 
> objections, I will follow you :-)

Nothing done.
 
> *Collection:*
> <rdfs:comment xml:lang="en">Labelled collections can be used with 
> collectable semantic relation properties e.g. skos:narrower, where you 
> would like a set of concepts to be displayed under a 'node label' in the 
> hierarchy.</rdfs:comment>
> -> <rdfs:comment xml:lang="en">Labelled collections can be used where 
> you would like a set of concepts to be displayed under a 'node label' in 
> the hierarchy.</rdfs:comment>

Done.
 
> inScheme:
> <skos:definition xml:lang="en">A concept scheme in which the concept is 
> included.</skos:definition>
> -> <skos:definition xml:lang="en">Relates a resource (for example a 
> concept) to a concept scheme in which it is included.</skos:definition>
> (the domain has been updated since SKOS 2004, and I don't like a 
> definition that may be read as "inScheme is a concept scheme")

Done.

> hasTopConcept:
> <skos:definition xml:lang="en">A top level concept in the concept 
> scheme.</skos:definition>
> -> <skos:definition xml:lang="en">Relates, by convention, a concept 
> scheme to a concept which is topmost in the broader/narrower concept 
> hierarchies for that scheme, providing an entry point to these 
> hierarchies.</skos:definition>

Done.

> isTopConceptOf:
> For non-OWL aware applications, I would make explicit the domain and 
> range that can be inferred from the ones of hasTopConcept:
>   <rdfs:domain rdf:resource="#Concept"/>
>   <rdfs:range rdf:resource="#ConceptScheme"/>
> (you did something similar for skos:hasTopConcept rdf:type rdfs:Property 
> and in other places, and I find this a very good idea)

Done.

> *prefLabel*
>   <!-- S14 (not formally stated) -->
>   <rdfs:comment xml:lang="en">It is recommended that no two concepts in 
> the same KOS be given the same preferred lexical label for any given 
> language tag.</rdfs:comment>
> ->
>   <!-- S14 (not formally stated) -->
>   <rdfs:comment xml:lang="en">A resource has no more than one value of 
> skos:prefLabel per language tag.</rdfs:comment>
> (by the way, how come that this has not been spotted by your script that 
> compares the RDF file with the Reference specs? Looks like a bad sign :-( )

Done.

> scopeNote:
> <skos:definition xml:lang="en">A note that helps to clarify the meaning 
> of a concept.</skos:definition>
> -> <skos:definition xml:lang="en">A note that helps to clarify the 
> meaning and/or the use of a concept.</skos:definition>
> (that's really not crucial, but I have observed that usage is an 
> important part of many scope notes in KOSs)

Done.

> semanticRelation:
> <skos:definition xml:lang="en">A concept related by 
> meaning.</skos:definition>
> -> <skos:definition xml:lang="en">Links a concept to a concept related 
> by meaning.</skos:definition>

Done.

> broader:
> <skos:definition xml:lang="en">A concept that is more general in 
> meaning.</skos:definition>
> -> <skos:definition xml:lang="en">Relates a concept to a concept that is 
> more general in meaning.</skos:definition>

Done.
 
> narrower
> <skos:definition xml:lang="en">A concept that is more specific in 
> meaning.</skos:definition>
> -> <skos:definition xml:lang="en">Relates a concept to a concept that is 
> more specific in meaning.</skos:definition>

Done.
 
> related
> <skos:definition xml:lang="en">A concept with which there is an 
> associative semantic relationship.</skos:definition>
> -> <skos:definition xml:lang="en">Relates a concept to a concept with 
> which there is an associative semantic relationship.</skos:definition>

Done.

> *narrowerTransitive*
> <skos:definition>skos:narrowerTransitive is a transitive superproperty 
> of skos:broader. By
>     convention, skos:narrowerTransitive is not intended to be used in 
> assertions, but provides a
>     mechanism whereby the transitive closure of skos:narrower can be 
> queried.</skos:definition>
> ->
> <skos:definition>skos:narrowerTransitive is a transitive superproperty 
> of skos:narrower.</skos:definition>
> (apart from the error on "superproperty of skos:broader", I had nothing 
> strong against the long definition. But it is partly redundant with the 
> rdfs:comment, and is not homogeneous with the spec of broaderTransitive)

Done.
 
> member
> <skos:definition xml:lang="en">A member of a collection.</skos:definition>
> -> <skos:definition xml:lang="en">Relates a collection to one of its 
> members.</skos:definition>

Done.
 
> memberList
> <skos:definition xml:lang="en">An RDF list containing the members of an 
> ordered collection.</skos:definition>
> -> <skos:definition xml:lang="en">Relates an ordered collection to the 
> RDF list containing its members.</skos:definition>
> (this formulation also makes the functionality clearer)

Done.
 
> *mappingRelation*
> <skos:definition xml:lang="en">Definition</skos:definition>
> -> <skos:definition xml:lang="en">Relates two concepts coming, by 
> convention, from different schemes, and that have comparable 
> meanings</skos:definition>

Done.

> ============================

Received on Sunday, 15 March 2009 15:41:26 UTC