[Proposal][SKOS-Core] New vocab for arrays of concepts

See original requirement
<http://lists.w3.org/Archives/Public/public-esw-thes/2004Aug/0028.html>.

This one of the strongest requirements as yet not supported by SKOS Core, so
I thought I'd try to move this along by making a concrete proposal.  This
proposal seems very vocab heavy (i.e. lots of new constructs) so feel free
to shoot this down, or come back with some better names for the suggested
constructs.  

I went this way mainly because of a general lack of enthusiasm for rdf:Bag
and rdf:Seq on the part of RDF folks ... a full discussion of the issues and
options is at
<http://esw.w3.org/topic/SkosDev/SkosCore/CollectionsAndArrays>.

Proposal for RDF vocab for representing 'arrays' 
-----------------------------------------------

Add the following class:

skos:Collection.

Add the following properties:

skos:members (domain skos:Collection, range rdf:List)
skos:length (domain skos:Collection, range xsd:Integer)
skos:ordered (domain skos:Collection, range xsd:boolean)
skos:viewUnder (domain skos:Collection, range skos:Concept)
skos:inCollection (domain skos:Concept, range skos:Collection)

-------------------------------------

So these to be used to represent e.g. 

Aircraft
	<Aircraft by function>
		Test aircraft
		Fighter
		Bomber

... as follows ...

<rdf:RDF xml:base="http://example.org/" xmlns: ... etc.>

  <skos:Concept rdf:about="A">
    <skos:prefLabel>Aircraft</skos:prefLabel>
  </skos:Concept>

  <skos:Concept rdf:about="A1">
    <skos:prefLabel>Test aircraft</skos:prefLabel>
    <skos:broader rdf:resource="A"/>
    <skos:inCollection rdf:resource="COL1"/>
  </skos:Concept>

  <skos:Concept rdf:about="A2">
    <skos:prefLabel>Fighter</skos:prefLabel>
    <skos:broader rdf:resource="A"/>
    <skos:inCollection rdf:resource="COL1"/>
  </skos:Concept>

  <skos:Concept rdf:about="A3">
    <skos:prefLabel>Bomber</skos:prefLabel>
    <skos:broader rdf:resource="A"/>
    <skos:inCollection rdf:resource="COL1"/>
  </skos:Concept>

  <skos:Collection rdf:about="COL1">
    <rdfs:label>Aircraft by function</rdfs:label>
    <skos:members rdf:parseType="Collection">
      <skos:Concept rdf:about="A1"/>
      <skos:Concept rdf:about="A2"/>
      <skos:Concept rdf:about="A3"/>
    </skos:members>
    <skos:length>3</skos:length>
    <skos:viewUnder rdf:resource="A"/> 
    <skos:ordered>false</skos:ordered>
  </skos:Collection>

</rdf:RDF>

--------------------------------

N.B. other possible names for 'skos:Collection' are 'skos:Array' or
'skos:Group'.  I went for 'skos:Collection' here because I'd like a general
concept collection construct, that can be used elsewhere, e.g. in SKOS
Mapping also to build mapping targets.

Anyway, for your consideration.

Al.

---
Alistair Miles
Research Associate
CCLRC - Rutherford Appleton Laboratory
Building R1 Room 1.60
Fermi Avenue
Chilton
Didcot
Oxfordshire OX11 0QX
United Kingdom
Email:        a.j.miles@rl.ac.uk
Tel: +44 (0)1235 445440

Received on Thursday, 19 August 2004 17:49:03 UTC