On 06/04/2020 21:09, Andy Seaborne wrote:
WIP

RDF* is adding triples-as-term to RDF so that you can annotate triples.
This is not reification.

Summary:

* Aim to get it working for Turtle*, in-memory, SPARQL* and JSON results (Fuseki in other words).

Done.
This is a SPARQL extension (Syntax.syntaxARQ).
Fuseki uses that mode anyway.

It is hardwired into Turtle and it is not new Lang.

"Things go wrong" if used with XML result set format; text format works. There is a extension to the JSON results for term type "triple":

 "bindings": [
   {
     "s": {
       "type": "triple" ,
       "value": {
         "subject":   { "type": "bnode" , "value": "b0" } ,
         "predicate": { "type": "uri" , "value": "http://example/p"; } ,
         "object":
     { "type": "literal" ,
       "datatype": "http://www.w3.org/2001/XMLSchema#integer"; ,
       "value": "123" }
          }
        }

SPARQL Update templates and data done.

N-Triples output works, input does not yet.
This is the blocker for a PR.

Pretty turtle does not cope with all cases; TURTLE_BLOCKS does.

RDF/Thrift not done.

SPARQL BIND not done: but see below for new functions.

No Model API support.

* "sometime"
* This is not by converting to reification and back again!
* Experimental - may change without warning.

Not yet in TDB1,TDB2.


---------------------------------

There are some accessor/constructor functions:

afn:subject(t), afn:predicate(t), afn:object(t)
afn:triple(s,p,o)
afn:isTriple(t)

Details:

This is an "SA" mode engine.

RDF* has "PG mode" and "SA mode". PG is what is spec'ed and it requires the triple named to be in the graph. That makes things a bit weird when you get into the details:

e.g. BIND(<<:s :p :o>> AS ?t) and related assignment cases.

and specially N-triples would no longer be a simple "one triple, one line" style. in "PG mode", deleting a triple should also cause all triple with a matching triple term to be deleted.

My plan is to overlay "PG mode" functionality on this "SA mode" engine" if the user demand is there - I'm not convinced it will be.

For now, put the triple in the data if you want the triple term to refer to only triples in the data. If used this way, future changes will be transparent.

    Andy

Reply via email to