- From: David Menendez <zednenem@psualum.com>
- Date: Sun, 09 May 2004 21:54:22 -0400
- To: Ron Davies <ron@rondavies.be>
- Cc: "Miles, AJ (Alistair) " <A.J.Miles@rl.ac.uk>, "'public-esw-thes@w3.org'" <public-esw-thes@w3.org>
Ron Davies writes: > Just another little wrinkle you might want to take into account. A > node label can in fact have as a subordinate in the classified > structure another node label. > > For example the AAT [1] has: > > furnishings > <furnishings by form and function> > <coverings and hangings> > <coverings and hangings by general type> > coverings > hangings > > where the values between angle brackets are node labels. Well, we could represent that along these lines. thes:001 a skos:Concept ; skos:prefLabel "furnishings" ; skos:subArray [ a skos:Array ; rdfs:label "furnishings by form and function" ; skos:members ( [ a skos:Array ; rdfs:label "coverings and hangings" ; skos:members ( [ a skos:Array ; rdfs:label "coverings and hangings by general type" ; skos:members ( thes:002 thes:003 ) ] ) ] ) ] . thes:002 skos:prefLabel "hangings". thes:003 skos:prefLabel "coverings". (If you prefer Alistair's style to mine, we just need to replace (X,skos:subArray,Y) with (Y,skos:parent,X). All that's really different are the direction and label of the arrows.) The axioms I gave earlier also need some adjustment: (C1, skos:narrower, C2) <= (C1, skos:subArray, A) and arrayElt(A,C2) and (C2, rdf:type, skos:Concept) arrayElt(A,E) <= (A, skos:members, L) and member(L,E) arrayElt(A,E) <= arrayElt(A,A2) and arrayElt(A2,E) member(L,I) <= (L, rdf:first, I) member(L,I) <= (L, rdf:rest, L2) and member(L2,I) (The convention here is that (S,P,O) is an RDF triple and P(...) is a logical predicate.) This is possibly more flexible than needed, because it allows the same Array to contain Concepts and sub-Arrays. -- David Menendez <zednenem@psualum.com> <http://www.eyrie.org/~zednenem/>
Received on Sunday, 9 May 2004 22:24:24 UTC