- From: Aidan Hogan <aidan.hogan@deri.org>
- Date: Wed, 18 Dec 2013 10:38:43 -0300
- To: John Walker <john.walker@nxp.com>
- CC: public-lod@w3.org
On 18/12/2013 10:17, John Walker wrote:
> Hi There,
>
> A question was posed to me by a colleague if it is possible to use
> CONSTRUCT query to return results including named graphs.
>
> As far as I know this is not possible, but am happy to be shown otherwise.
You can only return plain ol' RDF through CONSTRUCT, but the RDF can
contain data about named graphs. Assuming the correct graphs were
selected, you could (for example) dump the entire SPARQL repository to
reified RDF as:
PREFIX ...
CONSTRUCT {
_:stmt rdf:subject ?s ;
rdf:predicate ?p ;
rdf:object ?o ;
ex:graph ?g .
}
WHERE { GRAPH ?g {?s ?p ?o } }
You can apply the same pattern to more specific examples:
PREFIX ...
CONSTRUCT {
_:knows ex:knower ?s ;
ex:knowee ?o ;
ex:graph ?g .
}
WHERE { GRAPH ?g {?s foaf:knows ?o } }
> One possible workaround I can think of is to create a new (empty)
> repository and from this repository do a SPARQL DELETE/INSERT query
> federating across to whatever SPARQL endpoint contains your data set
> using SERVICE keyword.
>
> Once the query is complete, one can then serialize the contents of the
> new repository in the quads format of your choice.
>
> Any other suggestions of how this could be done?
Hmm ... I'm not sure how SPARQL SERVICE/federation is relevant to the
original question. :/ Could you clarify what exactly you would like to
do? Is it that you want to serialise/deserialise named graphs across
endpoints?
Best,
Aidan
Received on Wednesday, 18 December 2013 13:39:14 UTC