- From: William Waites <william.waites@okfn.org>
- Date: Thu, 08 Jul 2010 02:48:34 -0400
- To: "Houghton,Andrew" <houghtoa@oclc.org>
- CC: public-lld <public-lld@w3.org>, List for Working Group on Open Bibliographic Data <open-bibliography@lists.okfn.org>
- Message-ID: <4C3574C2.10402@okfn.org>
On 10-07-07 17:23, Houghton,Andrew wrote: > > <!-- Variant Representation --> > > <foaf:Person rdf:about="#foaf:Person"> > > <dct:identifier>1</dct:identifier> > > > > <!-- Variant Representation --> > > <skos:Concept rdf:about="#skos:Concept"> > > <dct:identifier>5</dct:identifier> > > Another way to handle this is to not use generic dct:identifiers like this. Instead use subProperties: personid rdfs:subPropertyOf dct:identifier . conceptid rdfs:subPropertyOf dct:identifier . Talino_Manu personid 123 . Talino_Manu conceptid 456 . { ?sub rdfs:subProperty ?super . ?thing ?sub ?obj } => { ?thing ?super ?obj } . Think of the {A} => {B} (read => as "implies) as analogous to a constraint or trigger in a relational database. A generic search would use dct:identifier. Something that knew about or implemented foaf:Person or skos:Concept in particular. So, SELECT ?thing WHERE { ?thing dct:identifier 123 } SELECT ?person WHERE { ?person personid 123 } SELECT ?concept WHERE { ?concept conceptid 456 } Would all work as expected. This can be mirrored in the object model that doesn't really need to support multiple inheritance. You might do something like this in Python, for example: class Person(Graph): def mail(self, from_addr, message): from smtplib import SMTP s = SMTP() addrs = self.objects(self.identifier, FOAF["mbox"]) s.sendmail(from_addr, addrs, message) class Concept(Graph): def concepts(self): yield self for parent in self.objects(self.identifier, SKOS["subConceptOf"]): yield Concept(identifier=parent.identifier) Cheers, -w -- William Waites <william.waites@okfn.org> Mob: +44 789 798 9965 Open Knowledge Foundation Fax: +44 131 464 4948 Edinburgh, UK RDF Indexing, Clustering and Inferencing in Python http://ordf.org/
Received on Thursday, 8 July 2010 06:50:01 UTC