- From: Dan Connolly <connolly@w3.org>
- Date: Thu, 05 May 2005 17:27:16 -0500
- To: RDF Data Access Working Group <public-rdf-dawg@w3.org>
On Tue, 2005-05-03 at 16:09 -0500, Dan Connolly wrote:
> Summary: I can make traces of the protocols implemented
> by Dave and Andy's DawgShows, but not the protocol
> in the editor's WD, yet.
I think I got a CONSTRUCT trace that matches 1.35 of
http://www.w3.org/2001/sw/DataAccess/proto-wd/
But after looking at that design and the
"here's mine in a screenful..."
http://lists.w3.org/Archives/Public/public-rdf-dawg/2005AprJun/0054.html
I prefer &data=... to &default-graph-uri=...
Hmm.... the 0054 design doesn't have a param for named/labelled
graphs, though. I'll have to think it over again once I
get that part going.
My trace is based on this query:
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
PREFIX dc: <http://purl.org/dc/elements/1.1/>
construct {_:somebody foaf:name ?who; foaf:made ?book}
WHERE { ?book dc:creator ?who }
and the data in http://sparql.net/books
Client to server:
GET http://127.0.0.1:9001/sq?query=PREFIX+foaf%3A+%3Chttp%3A%2F%
2Fxmlns.com%2Ffoaf%2F0.1%2F%3E+PREFIX+dc%3A++++++%3Chttp%3A%2F%
2Fpurl.org%2Fdc%2Felements%2F1.1%2F%3E+construct+%7B_%3Asomebody+foaf%
3Aname+%3Fwho%3B+foaf%3Amade+%3Fbook%7D++WHERE+%7B+%3Fbook+dc%3Acreator
+%3Fwho+%7D&default-graph-uri=http%3A%2F%2Fsparql.net%2Fbooks HTTP/1.0
Host: 127.0.0.1:9001
User-agent: Python-urllib/2.1
Accept: application/rdf+xml
And the reply:
HTTP/1.0 200 result graph follows
Server: BaseHTTP/0.3 Python/2.3.5
Date: Thu, 05 May 2005 22:08:28 GMT
Content-type: application/rdf+xml
<rdf:RDF xmlns="http://xmlns.com/foaf/0.1/"
xmlns:foaf="http://xmlns.com/foaf/0.1/"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:Description>
<made rdf:resource="http://example.org/book/book2"/>
<name rdf:nodeID="b1"/>
</rdf:Description>
<rdf:Description>
<made rdf:resource="http://example.org/book/book1"/>
<name>J.K. Rowling</name>
</rdf:Description>
<rdf:Description>
<made rdf:resource="http://example.org/book/book3"/>
<name rdf:nodeID="b1"/>
</rdf:Description>
</rdf:RDF>
[00:00.545 - server closed]
For folks that want to play along at home, first start
TCPWatch going on port 9000 (it's been running for so long that
I forgot how, but the source etc. is
http://hathawaymix.org/Software/TCPWatch )
Then I have a toy server based on the swap code and N3QL...
http://www.w3.org/2000/10/swap/dbork/sparqltoy.py
v 1.6 2005/05/05 22:08:07
which I start thusly:
WWW/2000/10/swap/dbork$ PYTHONPATH=../.. python sparqltoy.py 9001 &
$Id: sparqltoy.py,v 1.6 2005/05/05 22:08:07 connolly Exp $
serving on port 9001 ...
and I have a little client...
http://www.w3.org/2001/sw/DataAccess/proto-wd/sparcli.py
v 1.4 2005/05/05 22:03:22
which I run thusly...
WWW/2000/10/swap/dbork$ HTTP_PROXY=http://127.0.0.1:9000 python
~/w3ccvs/WWW/2001/sw/DataAccess/proto-wd/sparcli.py --local
And I get a bunch of diagnostics and stuff...
service: http://127.0.0.1:9001/sq?
construct...
@@getRDF http://127.0.0.1:9001/sq?query=PREFIX+foaf%3A+%3Chttp%3A%2F%
2Fxmlns.com%2Ffoaf%2F0.1%2F%3E+PREFIX+dc%3A++++++%3Chttp%3A%2F%
2Fpurl.org%2Fdc%2Felements%2F1.1%2F%3E+construct+%7B_%3Asomebody+foaf%
3Aname+%3Fwho%3B+foaf%3Amade+%3Fbook%7D++WHERE+%7B+%3Fbook+dc%3Acreator
+%3Fwho+%7D&default-graph-uri=http%3A%2F%2Fsparql.net%2Fbooks
@@got query: PREFIX foaf: <http://xmlns.com/foaf/0.1/> PREFIX dc:
<http://purl.org/dc/elements/1.1/> construct {_:somebody foaf:name ?who;
foaf:made ?book} WHERE { ?book dc:creator ?who }
@@loaded http://sparql.net/books ; size= 12
@@query: @prefix : <file:/#> .
@prefix ql: <http://www.w3.org/2004/ql#> .
@forAll :book,
:who .
[ ql:select {
[ <http://xmlns.com/foaf/0.1/made> :book;
<http://xmlns.com/foaf/0.1/name> :who ].
};
ql:where {:book
<http://purl.org/dc/elements/1.1/creator> :who .
} ].
dirk.dm93.org - - [05/May/2005 17:08:28] "GET /sq?query=PREFIX+foaf%3A+%
3Chttp%3A%2F%2Fxmlns.com%2Ffoaf%2F0.1%2F%3E+PREFIX+dc%3A++++++%3Chttp%3A
%2F%2Fpurl.org%2Fdc%2Felements%2F1.1%2F%3E+construct+%7B_%3Asomebody
+foaf%3Aname+%3Fwho%3B+foaf%3Amade+%3Fbook%7D++WHERE+%7B+%3Fbook+dc%
3Acreator+%3Fwho+%7D&default-graph-uri=http%3A%2F%2Fsparql.net%2Fbooks
HTTP/1.0" 200 -
<rdf:RDF xmlns="http://xmlns.com/foaf/0.1/"
xmlns:foaf="http://xmlns.com/foaf/0.1/"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:Description>
<made rdf:resource="http://example.org/book/book2"/>
<name rdf:nodeID="b1"/>
</rdf:Description>
<rdf:Description>
<made rdf:resource="http://example.org/book/book1"/>
<name>J.K. Rowling</name>
</rdf:Description>
<rdf:Description>
<made rdf:resource="http://example.org/book/book3"/>
<name rdf:nodeID="b1"/>
</rdf:Description>
</rdf:RDF>
Ask should be easy; I think I'll do that next.
Select isn't as straightforward, given my codebase. I'm not sure
where the variable binding API is in swap/llyn, so I'll have to
effectively do a stylized construct and use graph-tweezers
to get the variable bindings back.
--
Dan Connolly, W3C http://www.w3.org/People/Connolly/
D3C2 887B 0F92 6005 C541 0875 0F91 96DE 6E52 C29E
Received on Thursday, 5 May 2005 22:27:22 UTC