W3C home > Mailing lists > Public > public-esw-thes@w3.org > February 2009

Question about S13 (pairwise disjoint labels) and SKOS/JSON

From: Jakob Voss <jakob.voss@gbv.de>
Date: Mon, 16 Feb 2009 16:16:42 +0100
Message-ID: <4999835A.8020204@gbv.de>
To: public-esw-thes@w3.org
Hi,

Working on a Perl-Module to process SKOS and a JSON representation of
SKOS, I stumbled upon a question about restriction S13 that says:

"skos:prefLabel, skos:altLabel and skos:hiddenLabel
are pairwise disjoint properties."

Does this aply, that any combination of label and language is unique as
a label for a given concept? Is the following possible in RDF at all?

<Love> skos:altLabel "love"@en ; skos:altLabel "love"@en .

If I understand S13 and S14 right, a simple way to encode
SKOS::Concept in JSON is:

{
   "prefLabel" : {
     "en": "animals",
     "de": "Tiere",
     "" : "animals" /* without language code */
   },
   "notation" : {
     "type1": "1.123",
     "type2": "2.123",
     "": "xxx" /* without datatype */
   }
   "altLabel" : {
      "en" => [ "fauna", "animal life" ],
      "es" => [ "fauna" ]
      "fr" => [ "faune" ]
    },
    "hiddenLabel" : {
       "" => [ "aminals" ]
    }
}

Constraint S14 (A concept has no more than one preferred label per
language) does implicitly always hold this way. S13 needs to be checked
in addition. An alternative JSON encoding that holds S13 and S14 would be

{ "labels" :
{
   "animals" : {
      "en" : "prefLabel"
   },
   "Tiere" : {
       "de" : "prefLabel",
   }
   "animals" : {
       "" : "prefLabel"
   }
   "fauna" : {
      "en" : "altLabel",
      "es" : "altLabel"
   }
    "faune" : {
      "fr" : "altLabel"
    },
    "animal life" : {
       "en" : "altLabel"
     },
    "aminals" {
       "" : "hiddenLabel"
    }
}
}

But this structure is less convenient for other tasks then looking up
labels.

By the way I strongly prefer unique notation/datatype combinations per
concept - this is not required in the current SKOS draft. If you insist
only multiple notations of same datatype for one concept, use

   "notation" : {
     "type1": [ "1.123" ],
     "type2": [ "1.124", "2.124" ],
     "": [ "xxx" ] /* without datatype */
   }

Note Properties are not included in this example.

Greetings
Jakob

-- 
Jakob Vo▀ <jakob.voss@gbv.de>, skype: nichtich
Verbundzentrale des GBV (VZG) / Common Library Network
Platz der Goettinger Sieben 1, 37073 G÷ttingen, Germany
+49 (0)551 39-10242, http://www.gbv.de
Received on Monday, 16 February 2009 15:17:27 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Monday, 7 December 2009 10:39:03 GMT