- From: Alistair Miles <a.j.miles@rl.ac.uk>
- Date: Fri, 27 Aug 2004 18:10:34 +0100
- To: public-esw-thes@w3.org
- Message-ID: <412F6B0A.6090904@rl.ac.uk>
Hi all,
I think I have a sensible compromise for handling collections that requires the
minimum amount of new vocabulary, and can cope with all the scenarios outlined
in [1].
Proposed to add to SKOS Core:
Classes:
- Collection
- CollectableProperty
Properties:
- member (domain: Collection)
- memberList (domain: Collection)
-----------------------------------------------------
So for unordered collections, an example would be ...
<skos:Concept rdf:about="c1">
<skos:prefLabel>Aircraft</skos:prefLabel>
<skos:narrower>
<skos:Collection>
<rdfs:label>aircraft by function</rdfs:label>
<skos:member rdf:resource="c10"/>
<skos:member rdf:resource="c11"/>
<skos:member rdf:resource="c12"/>
</skos:Collection>
</skos:narrower>
</skos:Concept>
And for ordered collections, an example would be ...
<skos:Concept rdf:about="c1">
<skos:prefLabel>Aircraft</skos:prefLabel>
<skos:narrower>
<skos:Collection>
<rdfs:label>aircraft by size</rdfs:label>
<skos:member rdf:resource="c10"/>
<skos:member rdf:resource="c11"/>
<skos:member rdf:resource="c12"/>
<skos:memberList rdf:parseType="Collection">
<skos:Concept rdf:about="c11"/>
<skos:Concept rdf:about="c10"/>
<skos:Concept rdf:about="c12"/>
</skos:memberList>
</skos:Collection>
</skos:narrower>
</skos:Concept>
Collections may also be nested, e.g. ...
<skos:Concept rdf:about="c2">
<skos:prefLabel>Chairs</skos:prefLabel>
<skos:narrower>
<skos:Collection>
<rdfs:label>chairs by function</rdfs:label>
<skos:member rdf:resource="c20"/>
<skos:member rdf:resource="c21"/>
<skos:member rdf:resource="c22"/>
<skos:member>
<skos:Collection>
<rdfs:label>ceremonial chairs</rdfs:label>
<skos:member rdf:resource="c25"/>
<skos:member rdf:resource="c26"/>
<skos:member rdf:resource="c27"/>
</skos:Collection>
</skos:member>
</skos:Collection>
</skos:narrower>
</skos:Concept>
... and if the collections are ordered, an rdf:nodeID could be used to refer to
the nested collection in the memberlist.
The point of the 'CollectableProperty' class is that we can express a rule:
(x,p,c) (c,skos:member,m) (p,rdf:type,skos:CollectableProperty)
->
(x,p,m)
... so this proposal also includes adding the following statements to SKOS Core:
- (skos:narrower rdf:type skos:CollectableProperty)
- (skos:broader rdf:type skos:CollectableProperty)
- (skos:related rdf:type skos:CollectableProperty)
If there are no objections, and I don't think up anything better in the next few
days, I'll action this next week (I'd really like to get this one sewn up).
Al.
[1] http://esw.w3.org/topic/SkosDev/SkosCore/CollectionsAndArrays
P.S.
To support stricter validation of SKOS data, we could also add a class
'Collectable', with sub-classes (skos:Concept) and (skos:Collection) - which
would enable us to assert a range for the 'member' property. I didn't include
this in the main proposal, because I don't know if it's worth doing.
--
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 Friday, 27 August 2004 17:11:12 UTC