You could look at the RDF* work https://github.com/RDFstar/RDFstarTools from Olaf Hartig. (actually RDF* isn't a triple id, it can be implemented that way - the triple is a new kind of RDF term in the concrete data model of RDF)

Do note that any triple id or tripel as element in the data model is not reification. RDF* and things of a similar design can be endcoded using reification but they are not reificiation.

For example: the stating (that is, a claim, not a fact):

:A :says ":moon :color :blue" .

can't be done in RDF* without

:moon :color :blue .

also being in the data but if it is in the data, it is a fact. The triple spoken about must be in the data where as reification does not do that.

Reification can express differing points of view:

:A :says ":moon :color :blue" .
:B :says ":moon :color :red" .

without

SELECT * { :moon :color  ?C }

returning anything (the data does not have a fact about the moon color, only claims).

With careful modelling using the triple id, you can build interesting cases, especially by using event-based modelling to attach groups of triples about claims.

OWL ism: Note that :color might be a functional property so if two colors triples are in the data it infer they are owl:sameAs.

:blue owl:sameAs :red .

Oops!

I'm be very interested in hearing your idea about adding named graphs into this mix.

One of the problems with reification is that applies to statements, not a group of statements.

In extrmeis:

GRAPH <someId1> { :moon :color :blue }
GRAPH <someId2> { :moon :color :red }

at least means the default graph makes no assertion about
{ :moon :color  ?C }

    Andy






On 18/09/18 22:16, Rob Vesse wrote:
None of the Jena provided implementations use statement IDs, that includes both 
TDB1 and TDB2 which both just store quads directly

Rob

On 18/09/2018, 13:15, "ajs6f" <[email protected]> wrote:

     >>
     >> Not in general, no, although some specific DatasetGraph implementations 
may.
     >
     > Any idea where I should look?
Nope. None of the in-memory implementations do this to my knowledge, because they needn't. I don't know if either TDB1 or -2 do, but I can't think of a reason they would. It's possible that someone out there in the community has written one, or you could try implementing DatasetGraph yourself, perhaps reusing some other implementation for part of the work. ajs6f > On Sep 18, 2018, at 4:00 PM, thomas lörtsch <[email protected]> wrote:
     >
     >
     >> On 18. Sep 2018, at 21:40, ajs6f <[email protected]> wrote:
     >
     > That was quick!
     >
     >> Not in general, no, although some specific DatasetGraph implementations 
may.
     >
     > Any idea where I should look?
     >
     >> There is some API support for reification:
     >>
     >> https://jena.apache.org/documentation/notes/reification.html
     >>
     >> Does that meet your use case?
     >
     > No, unfortunately not. I need the graph name too.
     >
     > Thomas
     >
     >
     >> ajs6f
     >>
     >>> On Sep 18, 2018, at 3:37 PM, thomas lörtsch <[email protected]> wrote:
     >>>
     >>> Hi,
     >>>
     >>> a questions (and my apologies upfront that I don’t take the time to 
dive into the code myself, but it would take me a lot of time):
     >>>
     >>> Does Jena happen to add an internal ID to each quad 
(statement+graphName)?
     >>>
     >>> Some databases do so for internal administrative purposes (I believe) 
and so I thought it might be worth to ask.
     >>> If Jena does provide such IDs I would like to use them as reification 
IDs and my next question would be about how hard it is to access them.
     >>>
     >>> Thanks,
     >>> Thomas
     >>
     >



Reply via email to