Re: [jena-dev] Re: Use cases for Reification in RDF Triplestores

Bob MacGregor wrote:
> 
> A very nice summary of the statements v. stating issue is in
> 
>     http://ilrt.org/discovery/2000/11/statements
> 
> Near the end, three positions are layed out:
>   (1) 'reified statements are statings'
>   (2) 'statements are resources'
>   (3) 'change the model' (not a very self-explanatory label)
> 
> I personally don't endorse the first interpretation, but I assume that
> Seth does (see below).  Thus, for him, quads make sense.  I prefer that there
> be a one-to-one correspondence between statements and
> their reified counterparts.  

As I pointed out in my earlier message, the RDF core working group has endorsed
position (1) that reified statements are statings. Personally, I agree with you
that a 1-1 correspondence between statements and their reifications would be
better but that is not the decision and so is not the proposed standard. You may
wish to raise this on rdf-comments.

> Jena's "shortcut" reification would seem to implicitly require a
> one-to-one correspondence between statements and their
> shortcut reifications (the mapping being the identity function).

Correct. The Jena "shortcut" was based on a reading of the original M&S which we
interpreted as endorsing this 1-1 correspondence. Now that the working group has
"clarified" this, Jena2 will need to provide a slighly different version of the
shortcut in which, for example, each statement may be associated with several
"reifications". 

As you say, there is nothing to stop an application imposing additional
constraints to ensure that in fact there is only ever one reification for each
statement.

> A part of my original use case question then becomes, how
> efficiently can we implement these constraints using a triple
> store API?  For example, if  a retrieval returns a statement
> <a,b,c>, does it take a second query to determine if there
> exists an X representing its reification (i.e., such that the triples
> <X, subject, a> <X, predicate, b> <X, object, c> exist)?
> It would be nice if the API gave us a fast way to acquire
> X (if it exists), given a statement <a, b, c>.   In an earlier
> e-mail, I was wishing for a resource associable with
> a shortcut reification.  The X above can be that resource.

I believe the proposed Jena2 reification API will, in principle, make it
possible to efficiently determine if X exists so long as X is created in the
first place using the modified shortcut. How efficient this is in practice will
depend on the Model implementations. Had the working group not decided that
reifications are statings then the current Jena RDB layout could have been
reused in Jena2 and no additional queries would be required to find X. Given
that the WG *has* made the decision the way it has, I presently have no idea how
to implement a reification API efficiently in an RDB system. 

Dave

Received on Thursday, 9 January 2003 06:55:51 UTC