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
>>
>