Channel #semsol: Logs

This is a public chat log generated from the #semsol IRC channel.

14:59:15 kwijibo: bengee, is sparql+ a superset of sparul?
15:00:16 bengee: not really, although I think I called it one once
15:00:49 bengee: there is a subset of sparql+ that is compatible with sparul
15:23:28 kwijibo: kwijibo looks at sparul spec
15:24:14 kwijibo: oh yeah, it's got a few extra keywords
15:24:26 kwijibo: is MODIFY necessary?
15:24:40 bengee: yeah, that's what I wondered
15:24:57 bengee: MODIFY implements transactions
15:25:17 bengee: so it's pretty powerful
15:25:52 kwijibo: ah
15:26:37 kwijibo: bengee: maybe that's where changesets could come in handy
15:26:51 bengee: yeah
15:27:36 kwijibo: I dunno if I said, but what I'm doing at the moment is putting an ARC wrapper around the talis API
15:27:50 bengee: oh, that's cool
15:28:01 kwijibo: so, rewriting SPARQL+ INSERT/DELETE to changesets
15:28:09 kwijibo: etc
15:28:15 bengee: awesome
15:28:18 kwijibo: I can't do the aggregates obviously
15:29:02 kwijibo: but the code to generate the changesets could be used in the arc store too for transactions
15:29:07 kwijibo: and rollbacks
15:29:13 bengee: if you implement basic INSERT/DELETE, you could possibly edit rdf docs in a talis store via tabulator
15:29:31 kwijibo: yeah, I was thinking of that vaguely
15:29:39 kwijibo: since your wiki app
15:31:02 kwijibo: bengee: I see SPARUL lets you do DELETE ... INSERT ... in the same call - does arc do that too?
15:31:11 bengee: no
15:31:19 kwijibo: phew
15:31:21 kwijibo: heh
15:31:30 kwijibo: (less work)
15:31:40 bengee: I wasn't sure about query injection
15:32:15 bengee: I may add an UPDATE some day that allows you to do something like that in a single call
15:32:27 bengee: there was a proposal on the arc ml
15:32:41 bengee: wish I had more time :(
15:32:58 bengee: I'm hacking on something new: sparqlscript
15:33:13 kwijibo: yeah - i saw you mention it in your tweet :)
15:33:26 kwijibo: what does it do?
15:34:27 bengee: it combines sparql queries with basic operators like IF, =, +=, FOREACH
15:34:48 kwijibo: eg?
15:34:51 bengee: obvious use case is sparqlbot
15:35:29 bengee: IF ! ASK {check for graph existence}
15:35:37 bengee: LOAD <$g>
15:35:39 bengee: ENDIF
15:35:49 kwijibo: cool :)
15:36:44 bengee: INSERT INTO <#temp> { triples 1 }
15:36:48 bengee: INSERT INTO <#temp> { triples 2 }
15:37:15 bengee: INSERT INTO <#final> { some custom sparql code based on <#temp> }
15:37:25 bengee: DELETE FROM <#temp>
15:37:38 bengee: DELETE FROM <$g>
15:37:41 bengee: etc
15:37:59 kwijibo: what was it you were saying about endpoint selection?
15:38:03 bengee: e.g. to create proper rdf from stuff like del.icio.us
15:38:38 bengee: yeah, I'd like to allow the target endpoint to be specified in the query
15:38:42 bengee: like
15:39:00 bengee: SELECT VIA <http://dbpedia.org/sparql> ...
15:39:28 bengee: or rather rows = SELECT VIA
15:39:32 kwijibo: so the endpoint you send that query to simply proxies to dbpedia?
15:39:40 bengee: FOREACH rows as row
15:39:42 bengee: ...
15:39:47 bengee: yes
15:40:36 bengee: not too impressive for a simple endpoint, but would be handy for something like sparqlscript
15:41:30 kwijibo: not the same thing at all, but I used your sparql parser to do a thing where it works out which endpoint to send the query to, based on the predicates and class types mentioned
15:41:43 bengee: ah, nice
15:43:44 bengee: crap, gtg, biab
15:44:07 kwijibo: cu
17:24:52 bengee: bengee is back
17:56:58 kwijibo: bengee: how do I just retrieve a document without parsing it using the Reader?
17:57:59 bengee: $reader = ARC2::getComponent('Reader', $config);
17:58:14 bengee: $reader->activate($url);
17:58:36 bengee: $data = '';
17:59:12 bengee: while ($d = $reader->readStream()) { $data .= $d; }
17:59:21 bengee: $reader->closeStream();
17:59:52 kwijibo: cheers bengee :)
17:59:56 bengee: np