Re: CONSTRUCT an RDF Datest

good morning;

> On 2015-11-30, at 00:40, Tara Athan <taraathan@gmail.com> wrote:
> 
> On a related note, I see that ARQ Construct quad could easily be used to construct quads where the name is a blank node. Having the quad name be a blank node is fine according to RDF http://www.w3.org/TR/rdf11-datasets/#sec-introduction (and is desirable in my usecase), but is not permitted according to SPARQL. Are such quads accepted in practice, or does this cause significant interoperability problems?

an “interoperability problem” understates its status.

the syntactic restriction in sparql which precludes use of blank nodes as constants follows, as best as this reader can make out, from the unfortunate, but deep-seated misconception in the rdf ecosystem, that no blank node in a persistent graph should be denotable.

from that standpoint, they would serve no useful purpose in the productions,

    [58]   GraphGraphPattern   ::=   'GRAPH' VarOrIri GroupGraphPattern
    [65]   DataBlockValue   ::=   iri | RDFLiteral | NumericLiteral | BooleanLiteral | ‘UNDEF'
    [119] PrimaryExpression   ::= BrackettedExpression | BuiltInCall | iriOrFunction | RDFLiteral | NumericLiteral | BooleanLiteral | Var

as they could never denote a term in the store, with the consequence that the syntax proscribes them as constants in those clauses.

such nodes are, however, legitimate values in solutions, which means that, if they appear as graph identifiers in your dataset, for graphs which satisfy the metadata constraint in your example query, they will be bound to ?name and be present in the solutions which are projected through the construct template.

best regards, from berlin,
---
james anderson | james@dydra.com | http://dydra.com

Received on Monday, 30 November 2015 05:04:04 UTC