Hello,

We're investigating various approaches to adding annotations about individual 
statements (or perhaps rarely a subset of statements) of a named graph.

There’s note from 2015, Re: Performance Cost of Reification 
<http://apache.markmail.org/message/js6s6ry5st73soay>, that mentions a syntax 
like: 

    <<A sends email to B>>, 

that was proposed for use in Sparql 1.0 and that at the time of the note was 
still in the ARQ parser source.

The syntax is similar to that of the Blazegraph RDF*/Sparql* 
<https://wiki.blazegraph.com/wiki/index.php/Reification_Done_Right> and we’re 
interested to know if these are related ideas and if there is any anticipation 
that such an approach might ever find its way into appropriate standards.

It seems that a Jena property function extension could do some of the work of 
statement ids but it would be desirable to have serialization support as well.

The 2015 note indicates that reification "is a minor feature of RDF” and yet 
wanting track updates, make claims and counter-claims about particular 
statements, and so on is not for us a minor use-case.

The 2015 note illustrates using event modeling to provide a natural way of 
capturing some annotations but it does not seem to be uniformly applicable. We 
have many n-ary situations in our current ontology that work well to provide 
essentially blank nodes where annotation statements can be added to further 
describe provenance or other annotations.

However, there are plenty of situations of the form:

    subject property literal

which provide no natural place to add an annotation explaining why that 
assertion has been made or indicating that the assertion is considered in error 
and so on.

Further similar cases arise of the form:

    subject property object-uri

that are similarly not amenable to providing natural places to add annotation 
statements.

The idea of RDF*/Sparql* seems appealing as a uniform approach to mentioning a 
statement when there is need to decorate the statement with some annotations.

On the other hand, we have entertained the idea that every basic property could 
be modeled as a potentially n-ary case which most of the time would just have a 
single statement (ignoring an implied rdf:type statement). For (a contrived) 
example,

ex:W123 a :Work ;
    :hasLCCN [ :value 741297845 ] .

rather than

ex:W123 a :Work ;
    :hasLCCN 741297845 .

The former has a blank node that would readily permit adding an annotation:

ex:W123 a :Work ;
    :hasLCCN [ :value 741297845 ;
        :retrievedFrom http://libraryofcongress.gov ;
        :retrievedOn “12/27/1997” ] .

Anyway, the question is really about the status of the RDF* idea and ay support 
latent or pending in Jena.

Thanks,
Chris





Reply via email to