- From: Giovanni Tummarello <g.tummarello@gmail.com>
- Date: Mon, 07 Aug 2006 18:13:44 +0200
- To: Max Völkel <voelkel@fzi.de>
- CC: semantic-web@w3.org
Max Völkel wrote: > Hi, I was looking for a neat way to address statements. > > Version 1) > --------- > Ok, I know there is reification, but that's quite expensive: > Asking in SPARQL for information about (a,b,c) is also not really > concise. > That's because the working group explicitly refused to standardize ( despite its obvious usefulness and the minimum effort to do so, imo) . Anyway you can quickly write yourself a preprocessor or ask your DB vendor about it. > like > (x,a,b,c) > (x,e,f,g) > (x,h,i,j) > (y,l,m,n) > > all quads (x,*,*,*) form a named graph "x" with threee triples - > great! I want to keep this. So, do I need fivelets? > > I am not sure about what you mean (my silly?) but usually anything can be solved by bloating the named graph space (the number of graphs you use). > Version 3) > --------- > Unique Relations > > This is a new idea, that I haven't seen discussed anywhere - that's > why I post this email. The idea is: In some way, the relation between > two things is unique. So we represent > (a,b,c) > as (a,x,c), (x rdfs:subPropertyOf b). > > Some time ago when we were considering the model to use in DBin to track provenence of triple sand yet not use named graphs or brew it yourself solutions we considered this model as well. If i recall correctly, the main argument was that it didnt allow the context node to be a bnode which we really wanted on the other hand. Properties must be URI. We wanted to use Bnode (if needed) to be sure that a context would not be altered when adding more triples to the model. This is a requirement for a number of situations. Take a look at [1], digital signatures insider RDF Graphs. if we didnt use a blank node then adding a triple involving the same URI used for the context node (be this a property or a reification node) then by adding a new graph with that URI the digital signature would turn out to be invalid. Then, in general using subproperties seems a strange idea.. in DBin we separate ontological bits (those written in RDF/OWL) from "data".. this approach tends to mix the two things in a sense. Alternative solutions 1) Use MSGs. MSGs have natural IDs, you can quote parts of graphs simply by naming MSGs. This is nice for a number of reason, very powerful but not supported directly by sparql. Would require some extra infrastructure. We're now in the process of working with the Sesame guys to consider supporting this at some lower level. MSG theory is by the way directly off the RDF semantics and are useful for a number of reason among which avoiding duplicate triple structures when merging graphs with bnodes. 2) This is funky : :-) In case where RDF is a dump of a relational DB use 3 extra properties named SameSubjectPredicateStatement SamePredicateObjectStatement SameSubjectObjectStatement. Example a knows b,c,d,e.... Reify the first triple only then attach b c d e to the statement node with the SameSubjectPradicateStatement predicate :-) . you get a group of statements, all connected to a single reification node for the cost of 1 triple per reification instead of (4+1) * statement (the 1 is to group the reification nodes together) might even be sparqllable .. havent thought deep of it. ;-) i hope it helps a bit Ciao ciao Giovanni [1] Signing individual fragments of an RDF graph Giovanni Tummarello, Christian Morbidoni, Paolo Puliti, Francesco Piazza http://semedia.deit.univpm.it/submissions/www2005/WWW2005_signignRDF.pdf
Received on Monday, 7 August 2006 16:14:20 UTC