- 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