00:17:50 LukeWM has joined #sparql 00:18:06 LukeWM has left #sparql 01:07:26 karl has joined #sparql 01:10:04 pgearon has joined #sparql 03:10:40 karl has joined #sparql 10:49:37 RRSAgent has joined #sparql 10:49:37 logging to http://www.w3.org/2009/05/07-sparql-irc 10:50:01 AndyS has joined #sparql 10:50:29 Zakim, please dial MIT262 10:50:29 sorry, ericP, I don't know what conference this is 10:50:37 Zakim, this is sparql 10:50:37 sorry, ericP, I do not see a conference named 'sparql' in progress or scheduled at this time 10:50:37 AndyS has joined #sparql 10:50:43 Zakim, this is sparq 10:50:43 ericP, I see SW_(SPRQL-F2F)6:30AM in the schedule but not yet started. Perhaps you mean "this will be sparq". 10:50:47 Zakim, this will be sparq 10:50:47 ok, ericP; I see SW_(SPRQL-F2F)6:30AM scheduled to start 20 minutes ago 10:50:50 Zakim, please dial MIT262 10:50:50 ok, ericP; the call is being made 10:50:51 SW_(SPRQL-F2F)6:30AM has now started 10:50:52 +MIT262 10:50:53 AndyS has joined #sparql 10:51:06 -MIT262 10:51:08 SW_(SPRQL-F2F)6:30AM has ended 10:51:08 Attendees were MIT262 10:51:15 AndyS has joined #sparql 10:51:31 Zakim, please dial MIT262b 10:51:31 ok, ericP; the call is being made 10:51:32 SW_(SPRQL-F2F)6:30AM has now started 10:51:33 +MIT262b 10:51:37 AndyS has joined #sparql 10:52:05 Zakim, please dial ericP-mobile 10:52:05 ok, ericP; the call is being made 10:52:06 +EricP 10:52:07 AndyS has joined #sparql 10:52:49 AndyS has joined #sparql 10:53:31 -EricP 10:54:55 AndyS has joined #sparql 10:55:23 +iv_an_ru 10:55:26 AndyS has joined #sparql 10:55:49 SteveH has joined #sparql 10:56:50 AxelPolleres has joined #sparql 10:56:54 http://www.w3.org/2009/sparql/wiki/F2F1_Agenda#Day_2 10:57:23 AndyS has joined #sparql 10:57:46 SimonS1 has joined #sparql 10:57:54 LukeWM has joined #sparql 10:59:03 AndyS has joined #sparql 10:59:21 AndyS_ has joined #sparql 10:59:26 AndyS__ has joined #sparql 10:59:29 Zakim, please dial ericP-mobile 10:59:29 ok, ericP; the call is being made 10:59:30 AndyS__ has left #sparql 10:59:30 +EricP 10:59:47 AndyS has joined #sparql 11:00:02 -EricP 11:00:11 bglimm has joined #sparql 11:02:06 AndyS has joined #sparql 11:02:07 Shouldn't we add some way of returning quads, not triples, say, in TriG ? 11:03:00 ( I know that's not in the agenda so I'm asking before we've started ;) 11:03:39 kasei has joined #sparql 11:05:28 pgearon has joined #sparql 11:06:32 ivan has joined #sparql 11:06:50 ivan has left #sparql 11:08:22 KjetilK_Lap has joined #sparql 11:08:26 LeeF has joined #sparql 11:09:29 Михайлов 11:09:36 http://www.w3.org/2009/sparql/wiki/F2F1_Agenda#Day_2 11:09:36 ScribeNick: pgearon 11:09:36 tx 11:09:48 Could use a result set of GSPO. 11:10:27 yes, we could, but there's no standard loader for that. 11:11:31 Axel: move feature specification template to the end of the day. Start with subselects and aggregates today 11:11:54 http://www.w3.org/2009/sparql/wiki/Feature:SubSelects 11:13:57 http://jena.sourceforge.net/ARQ/sub-select.html 11:14:24 AndyS: ARQ subselects work in together with rest of the query 11:15:00 ... projected variables from a select show up in the global select 11:15:07 Slides: http://jena.hpl.hp.com/~afs/SPARQL-F2F1-AFS.pdf 11:15:19 q+ to ask if ARQ does ASK (in FILTER) or CONSTRUCT/DESCRIBE (in FROM) subqueries 11:16:21 Virtuoso allows ASK and SELECT in filters, but not CONSTRUCT in FROM (but it will soon). 11:17:52 AndyS: Jena uses "funny" generated variable names to represent aggregates like count eg. ?.0 11:17:55 we are at the example on slide 9 11:17:59 q? 11:19:03 discussion about whether curly brackets needed around subselects. 11:20:09 I'd prefer mandatory brackets to keep indentation rules uniform. 11:20:26 Jena doesn't require the curly braces, but people find the brackets aesthetically pleasing 11:21:44 AndyS: to make the grammar work you just have to remove the prohibition against subselects 11:22:59 AxelPassant: concern about blank nodes? 11:23:44 bnodes are not a problem because they're "persistent enough" to stay uniform during run of query and all its subselects. 11:23:55 Axel: question about variable name scopes in subselcts on variables NOT projected. 11:24:07 JanneS has joined #sparql 11:24:13 ... similar to disallow bnodes. 11:24:16 hi there 11:24:22 ericP: does project happen early or late in the query 11:24:30 In Virtuoso, what's inside a subquery and not returned is local to the subquery. 11:24:36 AndyS: went with the SQL approach 11:24:37 SimonS has joined #sparql 11:25:05 +??P6 11:25:25 Zakim, +??P6 is JanneS 11:25:25 sorry, JanneS, I do not recognize a party named '+??P6' 11:25:31 zakim, ??P6 is JanneS 11:25:31 +JanneS; got it 11:25:32 (it's possible to force an error if a variable name is used in two different subselects but not in "joined" result-sets). 11:26:20 AndyS: no other forms of subqueries yet 11:26:38 ... would like ASK, but see no point in CONSTRUCT 11:26:41 q- 11:26:48 q+ to ask about RDF datasets for subqueries 11:27:51 Axel: thinks CONSTRUCT makes sense due to creating groups around a blank node 11:28:18 For debugging, it may be convenient to permit "{ select ... where { ?x ?y ?z } ... } AS to see ?alias.x, ?alias.y ?alias.z in the debugger, but that is incovenient in other aspects. 11:29:06 http://www.polleres.net/publications/poll-etal-2007.pdf page 6, example for COSTRUCT in FROM 11:29:35 q? 11:29:42 ack me 11:29:42 LeeF, you wanted to ask about RDF datasets for subqueries 11:29:55 q? 11:30:06 we're thinking about FROM ?g { construct { ?s ?p ?o }}... 11:30:23 AndyS: no selects in filters. It's a conservative implementation 11:30:26 Zakim, who is on the phone? 11:30:26 On the phone I see MIT262b, iv_an_ru, JanneS 11:31:09 Selects in filters are very convenient. 11:31:49 discussion: FROM in subqueries and subwueries in FROM 11:32:07 Moreover, select in filter is LIMIT 1 for its parameters, that's a very good hint for optimizer. 11:32:21 q? 11:33:04 issues i've noted so far to be discussed: syntax, variable scope, ASK queries in filters, SELECT queries in FILTER, CONSTRUCT in FROM, CONSTRUCT in CONSTRUCT, defining (new) RDF dataset in subqueries 11:33:34 issues i've noted+: order of result set for subqueries 11:33:38 AndyS: order in a subquery doesn't do much, but with limit 1 this is a useful optimization 11:35:09 virtuoso: 11:35:28 subqueries in filters, subqueries in graph patterns 11:35:28 iv_an_ru: discussing subselect in virtuoso 11:36:04 ... sounds overall similar to ARQ, yes? 11:37:15 one-result-subselects in FILTERS as well as ASK, yes? 11:38:02 ... if result contains aggregate and non-aggregate columns, performs search for groupings 11:38:20 groupings automatically? 11:38:36 ... possible to specify groupings manually 11:39:28 ... parameters available in normal select and in subselect 11:40:08 subselects allow only 1 returned column when in a filter 11:40:31 implied "limit 1" i.e. "EXISTS" 11:41:24 AndyS: lets you ask "?x IN { SELECT..... }" 11:41:48 IN {subselects} allowed, but no others like ANY/ALL 11:42:42 q? 11:43:50 iv_an_ru: does not implement CONSTRUCT in subqueries yet, but intends to offer soon, though in different way to what was discussed earlier 11:45:30 ivan talking avbout FROM ?g { construct { ?s ?p ?o }}... 11:46:05 iv_an_ru: should be possible to have more than one CONSTRUCT and to test if a triple is found in more than one source 11:46:32 q+ to ask iv_an_ru what they do re: subqueries defining data set 11:46:50 q? 11:47:30 ack me 11:47:30 LeeF, you wanted to ask iv_an_ru what they do re: subqueries defining data set 11:47:37 LeeF: can you define the dataset to query over, and how does this interact 11:48:47 iv_an_ru: if from / from named specified then this is used instead of specified data 11:49:17 LeeF: design issue for dataset in query vs. dataset in protocol 11:49:48 sec 8.2: "the protocol description overrides any description in the query itself." 11:51:21 iv_an_ru: a few possible ways to specify dataset 11:51:43 ... by pragma, http param, by query text 11:52:01 ... latter 2 as per spec 11:52:06 ... prgama is higher priority 11:52:23 iv_an_ru: Virtuoso allows dataset in prgamas, parameters, in the query, pragmas of highest priority 11:52:26 -iv_an_ru 11:52:27 ... common for selects & subselects 11:52:34 q? 11:52:45 ups, will try to reconnect. 11:53:47 all I found for SeRQL subselects is here: http://www.openrdf.org/doc/sesame/users/ch06.html 11:54:03 pgearon: in mulgara subqueries are at an API level 11:54:11 ... for every binding in a result set, do var. substitution into a subselect 11:54:20 ... then execute subselect for each row in the outer result 11:54:22 paul: in mulgara subselects on the API level. 11:54:44 ... if the subselect returns multiple rows, they're all returned, column is not a scalar type, it's a "subanswer" 11:54:54 +iv_an_ru 11:55:03 ... if you're printing results as a table then you get a subtable in that particular column 11:55:13 AndyS: Effectively have tables in the datatype model? 11:55:16 pgearon: yes 11:55:28 pgearon: for aggregates we have COUNT which works on a subselect 11:55:53 ... subselect takes variable subst from outer select (as before), executes entire query, and returns count of rows as a scalar 11:55:59 AndyS: So Count is special case? 11:56:01 pgearon: yes 11:56:26 pgearon: subselects appear in SELECT clause not in WHERE clause 11:56:47 q? 11:56:49 LeeF, thanks 11:56:53 np 11:57:06 simon about http://www.openrdf.org/doc/sesame/users/ch06.html#section-nesting 11:57:20 SimonS: Sesame allows subqueries in both graph pattern and filters 11:57:30 no syntax extension for SPARQL only in SeRQL 11:58:11 andy/steve: scoping for unions might be different. 11:58:12 ... can have set minus, and unions in graphs 11:58:36 ... has ANY and ALL, also has EXISTS 11:58:49 simon: exists seems redundant with any. 11:59:05 ... evaluates subqueries in the graph pattern, but this can't be accessed 11:59:12 (will be back shortly) 11:59:16 .... scoping shared with subqueries 11:59:17 -JanneS 11:59:29 q? 11:59:31 datasets are shared between main query and subqueries 11:59:53 ?x > ANY .. 12:00:06 ?x > ALL ... 12:00:19 AxelPolleres: thinks this makes ANY not redundant 12:00:59 SimonS: says variables are shared (no scoping) which means that ANY can be described in other ways 12:01:10 simon: ANY could be wrapped into EXISTS with normal FILTER... cause of scoping 12:02:15 http://www.openrdf.org/doc/sesame/users/ch06.html#section-setoper 12:02:25 set operators. 12:02:50 q? 12:04:09 Steve: comp ALL could be emulated with negation. 12:04:24 AndyS: you can do MAX in SPARQL if you have too much time on your hands 12:05:12 AndyS: you can do MAX in SPARQL if you have too much time on your hands 12:05:17 AndyS: you can do max in SPARQL if you have too much time on your hands 12:05:29 AndyS: asdfgh 12:05:40 q? 12:06:20 LeeF: will be doing subqueries by the end of this weekend 12:06:35 grepg, Lee, Eric don't do subqueries... 12:06:38 q+ to add something 12:07:07 AndyS: to you can do MAX IN SPARQL if you ahve too much time on your hands 12:07:10 that's weird 12:07:14 q- AndyS 12:07:27 Zakim, ack me 12:07:27 SimonS, you wanted to add something 12:07:29 I see no one on the speaker queue 12:07:30 SimonS: SeRQL has full syntax for subqueries, including limits, from, etc 12:07:49 AndyS: FROM in subqueries tricky with the algebra. 12:08:03 s/tricky/wrong/ 12:08:49 Mulgara's subqueries only use data from the FROM clause in the subselect 12:10:13 AxelPolleres, we don't have to make the support of FROM in subselect mandatory for all implementations. 12:11:08 Anyway we have huge amount of implementation-specific options related to FROM / FROM NAMED. 12:11:43 AndyS: answer of this issue depends on use cases which demand FROM in subselect. 12:13:01 FROM is subselect is no more than a syntax sugar, because it's possible to list everything in top-level FROM and add different FILTERs on graphs to different subselects. 12:13:29 SimonS: federation works be defining "magic name graphs" which can be defined from more than one graph. This makes it a kind of subquery 12:13:40 SimonS: subqueries play some role for federated queries. 12:14:18 I'd name it "federated-per-subquery" 12:14:43 SERVICE {} and {SELECT ...} are too similar. 12:15:03 +1 iv_an_ru 12:15:04 AxelPolleres: now we've discussed existing implementation we should move to discussion 12:15:38 Apropos of nothing I slightly prefer a subquery syntax like SUB { SELECT ... } which is much more obviously similar to SERVICE <> { SELECT ... } 12:16:32 SteveH, it may be { SELECT ... FROM SERVICE <> ... } 12:16:43 oh, good point 12:17:53 or { FROM SERVICE <> SELECT ... } equivalently 12:18:14 SERVICE clause may heve enormous list of options so it should allow more verbosity than just a single IRI. Moreover, even that IRI may be a scalar-expression. 12:18:29 LeeF: issues to be discussed. Start with 1) syntax 12:18:30 ISSUE: subquery syntax (e.g. mandatory curly braces) 12:18:30 Created ISSUE-3 - Subquery syntax (e.g. mandatory curly braces) ; please complete additional details at http://www.w3.org/2009/sparql/track/issues/3/edit . 12:18:47 q+ 12:19:26 subqueries in patterns: 12:19:26 SUBSELECTS as solutions sets 12:19:26 subqueries in FILTERS: 12:19:26 ASK (EXISTS), IN, ANY, ALL 12:19:26 subqueries in FROM: 12:19:28 CONSTRUCT 12:20:30 ack kjetil 12:20:37 ack KjetilK_Lap 12:20:59 KjetilK_Lap: wants a description of the motivation for this issue 12:21:36 q? 12:22:35 SimonS1 has joined #sparql 12:24:14 AxelPolleres: which type of queries will we allow? 12:25:29 For me the issue shows a drop down box for who raised it and Baget is alphabetically first 12:25:42 LeeF: what variable scope to use between main query and subqueries? 12:25:46 ISSUE: What is the variable scope between main queries and subqueries? 12:25:46 Created ISSUE-4 - What is the variable scope between main queries and subqueries? ; please complete additional details at http://www.w3.org/2009/sparql/track/issues/4/edit . 12:26:03 ISSUE: ASK queries in FILTERs? 12:26:03 Created ISSUE-5 - ASK queries in FILTERs? ; please complete additional details at http://www.w3.org/2009/sparql/track/issues/5/edit . 12:26:07 ISSUE: SELECT queries in FILTERs? 12:26:07 Created ISSUE-6 - SELECT queries in FILTERs? ; please complete additional details at http://www.w3.org/2009/sparql/track/issues/6/edit . 12:26:20 ISSUE: CONSTRUCT & DESCRIBE queries in FROM [NAMED]? 12:26:21 Created ISSUE-7 - CONSTRUCT & DESCRIBE queries in FROM [NAMED]? ; please complete additional details at http://www.w3.org/2009/sparql/track/issues/7/edit . 12:26:39 ISSUE: What determines the RDF dataset for subqueries? 12:26:39 Created ISSUE-8 - What determines the RDF dataset for subqueries? ; please complete additional details at http://www.w3.org/2009/sparql/track/issues/8/edit . 12:28:21 ISSUE: SELECT queries in graph patterns? 12:28:21 Created ISSUE-9 - SELECT queries in graph patterns? ; please complete additional details at http://www.w3.org/2009/sparql/track/issues/9/edit . 12:28:28 ISSUE: ASK queries in graph patterns? 12:28:28 Created ISSUE-10 - ASK queries in graph patterns? ; please complete additional details at http://www.w3.org/2009/sparql/track/issues/10/edit . 12:29:17 q+ 12:30:12 AxelPolleres: suggesting champions for each type of subselect, aggregates, etc 12:30:17 ack pgearon 12:31:03 pgearon: Do we allow some way to count the entire results of a subquery? 12:31:42 AndyS has joined #sparql 12:31:59 LeeF: syntax? should we use { SELECT ... } ? 12:32:39 SteveH: preference for a keyword before a subquery 12:33:14 Preference for keyword inside {} because most of customers have SQL background. 12:33:36 question about whether braces should be mandatory 12:34:02 12:34:49 Regrets+ yimin 12:35:25 AndyS: scoping evaluation should be handled in terms of overall evaluation (so look at that question first) 12:36:12 LeeF: are variables that are only in a subquery, local to just that subquery? 12:36:42 ?p a foaf:Person . { SELECT ?name { ?p a ex:Airport ; dc:title ?name } } 12:37:08 so "select *" will only get projected variables from a subquery 12:37:19 Andy: would * not propagate variables from subqueries that are not projected... 12:37:31 Yes, local-only variables are local :) 12:38:29 * is a shorthand for variables that may be bound in WHERE {...} top-level pattern, so what's the issue? 12:38:42 -> http://www.w3.org/2005/06/tracker/irc how to use trackbot 12:39:22 AndyS: unprojected variables in an outer query will not be available in a subquery 12:39:27 ISSUE-3: ISSUE-3 Subquery syntax (e.g. mandatory curly braces) notes added 12:40:06 ISSUE-4: general consensus around the fact that non-projected variables in a subquery are not visible outside the subquery 12:40:06 ISSUE-4 What is the variable scope between main queries and subqueries? notes added 12:40:43 Andy: in DB engines join is commutative, so order-dependance is bad for optimizations 12:40:44 CONSTRUCT 12:40:44 { ?X ex:hasFriends 12:40:44   {COUNT ?X WHERE ?P foaf:knows ?X} 12:40:44 } 12:40:44 WHERE {?P a foaf:Person} 12:41:28 AndyS: outer variables would affect joins. So outer evaluation first would make it impossible to implement with an SQL engine, due to impossibility to do join optimization 12:41:59 It should be possible to begin with subqueries. 12:42:38 +1 to iv_an_ru -- clear cut semantics 12:42:39 CONSTRUCT { ?P ex:hasFriends ?F } WHERE { ?P a foaf:Person. SELECT COUNT(?X) AS ?F WHERE { ?P foaf:knows ?X } } 12:45:03 SteveH: preseve join semantics, consequence of that is that unprojected variables don't leak out 12:45:18 SteveH: want to protect join semantics, which implies that unprojected variables are not seen 12:45:19 Same issue as { {?x :p ?v } { ?x :q ?w FILTER (?v>3) } 12:45:45 SimonS, shuold be just CONSTRUCT { ?P ex:hasFriends ?F } WHERE { SELECT ?P, COUNT(?X) AS ?F WHERE { ?P foaf:knows ?X } } 12:46:00 q? 12:46:02 Same issue as { {?x :p ?v } { ?x :q ?w FILTER (?v>3) } } 12:47:07 AndyS: generate test cases soon? 12:47:46 SteveH: may be too soon for syntax 12:49:55 AxelPolleres: would like example queries with scoping issues 12:50:06 LeeF: will write example 12:50:14 { {?x :p ?v } { SELECT * { ?x :q ?w FILTER (?v>3) } } } 12:50:54 ACTION: LeeF to send fleshed out example of Andy's subquery to the list { {?x :p ?v } { SELECT * { ?x :q ?w FILTER (?v>3) } } } 12:50:54 Created ACTION-16 - Send fleshed out example of Andy's subquery to the list { {?x :p ?v } { SELECT * { ?x :q ?w FILTER (?v>3) } } } [on Lee Feigenbaum - due 2009-05-14]. 12:51:05 AndyS, Virtuoso would raise an error in debug mode. 12:51:48 { ?x :p ?v { SELECT * { ?x :q ?w FILTER (?v>3) } } } 12:51:57 AndyS, Mulgara would be fine, given that it prebinds ?x and ?v before executing the subselect 12:52:22 should that be detected, and used to determine evaluation order? 12:52:29 Or does that preclude SQL engines? 12:52:29 { ?x :p ?v { SELECT * { ?x :q ?w FILTER (?v>?w) } } } more interesting? 12:52:45 pgearon, so not relational algebra evalaution? 12:52:59 No evaluation order should be assumed --- keep the optimizer's hands free from that. 12:53:26 +1 12:53:37 AndyS, well.... I'm just raising it as a possibility :-) 12:53:41 :-) 12:54:06 -iv_an_ru 12:54:16 AxelPolleres, in your variant Virtuoso will treat ?v in subselect as a constant NULL (and it can report the suspicious variable as an error). 12:54:16 after all, it makes sense in some circumstances. I like Axel's example 12:55:02 SteveH: concern about ASK in FILTER raises scoping question 12:55:05 ACTION: SteveH to write up case around confusion between ASK in FILTER and ASK in WHERE 12:55:05 Created ACTION-17 - Write up case around confusion between ASK in FILTER and ASK in WHERE [on Steve Harris - due 2009-05-14]. 12:55:35 What's the purpose of ASK in WHERE ? 12:55:42 Hmm - had better scope variables locally in negation if unmentioned elsewhere 12:56:28 With a URI? 12:56:43 ISSUE-5: See ACTION-17 12:56:43 ISSUE-5 ASK queries in FILTERs? notes added 12:56:45 ACTION: AxelPolleres to write up a use case on !ASK in FILTERS to emulate negation 12:56:45 Sorry, couldn't find user - AxelPolleres 12:56:54 ACTION: Axel to write up a use case on !ASK in FILTERS to emulate negation 12:56:54 Created ACTION-18 - Write up a use case on !ASK in FILTERS to emulate negation [on Axel Polleres - due 2009-05-14]. 12:57:01 ISSUE-5? 12:57:01 ISSUE-5 -- ASK queries in FILTERs? -- OPEN 12:57:01 http://www.w3.org/2009/sparql/track/issues/5 12:57:36 good bot 12:57:47 ISSUE-5: See ACTION-18 for interplay with negation 12:57:47 ISSUE-5 ASK queries in FILTERs? notes added 12:58:59 AxelPolleres: to issues 6 - select queries on filters 12:59:14 Zakim, who is on the phone? 12:59:14 On the phone I see MIT262b 12:59:52 iv_an_ru, could you please post some examples of SELECT queries in FILTERs? 12:59:58 iv_an_ru, I wonder if you could send to the mailing list a few example cases (data, query, results) of SELECT queries in FILTERs? 13:00:06 ok 13:00:17 ACTION: iv_an_ru to send to the mailing list a few example cases (data, query, results) of SELECT queries in FILTERs 13:00:17 Created ACTION-19 - Send to the mailing list a few example cases (data, query, results) of SELECT queries in FILTERs [on Ivan Mikhailov - due 2009-05-14]. 13:00:29 ISSUE-6: See ACTION-19 13:00:29 ISSUE-6 SELECT queries in FILTERs? notes added 13:00:32 Zakim, MIT262b has pgearon, kasei, LeeF, ericP 13:00:36 +pgearon, kasei, LeeF, ericP; got it 13:00:44 AndyS: suggest to use ALL/ANY queries for that 13:00:47 ISSUE-7? 13:00:47 ISSUE-7 -- CONSTRUCT & DESCRIBE queries in FROM [NAMED]? -- OPEN 13:00:47 http://www.w3.org/2009/sparql/track/issues/7 13:00:48 Something real-life or as simple as possible? 13:01:04 iv_an_ru, both? I prefer simple to real-life though :) 13:01:10 ok 13:03:01 CONSTRUCT { ?a knows ?b . ?a foaf:name ?aname . ?b foaf:name ?bname . } 13:03:01 FROM { CONSTRUCT { _:auth foaf:name ?n . ?p aux:hasAuthor _:auth . } 13:03:01 FROM WHERE { ?p dc:creator ?n . } } 13:03:01 WHERE { ?p aux:hasAuthor ?a . ?a foaf:name ?aname . 13:03:01 ?p aux:hasAuthor ?b . ?b foaf:name ?bname . FILTER ( ?a != ?b ) } 13:03:30 LeeF: should construct and describe in from be allowed? 13:05:46 ACTION: AxelPolleres to send CONSTRUCT in FROM clause use case to mailing list re: ISSUE-7 13:05:46 Sorry, couldn't find user - AxelPolleres 13:05:59 ACTION: Axel to send CONSTRUCT in FROM clause use case to mailing list re: ISSUE-7 13:05:59 Created ACTION-20 - Send CONSTRUCT in FROM clause use case to mailing list re: ISSUE-7 [on Axel Polleres - due 2009-05-14]. 13:06:08 ISSUE-8? 13:06:08 ISSUE-8 -- What determines the RDF dataset for subqueries? -- OPEN 13:06:08 http://www.w3.org/2009/sparql/track/issues/8 13:06:24 can that include examples on DESCRIBE in a FROM? I don't follow that one 13:06:46 ACTION: LeeF to summarize dataset issue w/ examples / suggestions per ISSUE-8 13:06:46 Created ACTION-21 - Summarize dataset issue w/ examples / suggestions per ISSUE-8 [on Lee Feigenbaum - due 2009-05-14]. 13:06:53 ISSUE-9? 13:06:53 ISSUE-9 -- SELECT queries in graph patterns? -- OPEN 13:06:53 http://www.w3.org/2009/sparql/track/issues/9 13:07:30 +JanneS 13:08:38 ISSUE-10? 13:08:38 ISSUE-10 -- ASK queries in graph patterns? -- OPEN 13:08:38 http://www.w3.org/2009/sparql/track/issues/10 13:09:20 ISSUE-10: See ACTION-17 13:09:21 ISSUE-10 ASK queries in graph patterns? notes added 13:28:22 -JanneS 13:36:23 topic: aggregates 13:37:24 scribe: AlexPassant 13:37:31 ScribeNick: AlexPassant 13:37:52 pgearon has joined #sparql 13:38:02 LeeF: Overview of existing systems that do aggregates 13:38:24 ... what the syntax is like, which aggregates are supported 13:38:37 ... and any relevant information for each approach 13:39:00 SteveH: COUNT, MIN, MAX 13:39:11 ... restricted to particular subtypes 13:39:22 ... COUNT * is mainly used 13:39:37 ... using Dave Becket syntax 13:39:47 s/Becket/Beckett 13:39:50 (COUNT(DISTINCT *)) AS c 13:40:04 LeeF: do you group by 13:40:05 SteveH: no 13:40:22 ... implemented for a particular use-case 13:40:37 AxelPolleres: implcit grouping ? 13:40:49 SteveH: distinct is a kind of 13:41:14 SELECT ?x (count... ) not possible, yes? 13:41:46 AndyS: no grouping, same value on each row 13:42:57 LeeF: distinct in some implementations to remove duplicates, then group and aggregates, 13:43:08 ... having clause for values that don't match the criteria 13:43:39 LeeF: summarizes possiblities for aggregates in SQL: aggregates, groupin, having clauses 13:44:15 AndyS: GROUPing, then aggregates to each of the group 13:44:26 ... implements 4 variations of COUNT 13:44:38 ... don't think average is done 13:45:12 ... issues around MIN and MAX on different types (eg: string / age) 13:45:21 COUNT - variable, *, distinct, non-distinct 13:46:29 LeeF: implicit grouping ? 13:46:40 AndyS: if there's no GROUP , the whole thing is a group 13:47:03 zakim, who's on the phone? 13:47:03 On the phone I see MIT262b 13:47:04 MIT262b has pgearon, kasei, LeeF, ericP 13:47:43 q+ to ask if you can do e.g. count and avg on the same group 13:48:05 AndyS: implements HAVING 13:48:13 ack ericP 13:48:13 ericP, you wanted to ask if you can do e.g. count and avg on the same group 13:48:30 http://jena.hpl.hp.com/~afs/SPARQL-F2F1-AFS.pdf slide 6+ 13:48:41 ericP: can you do more than one aggregate on the same group 13:49:00 q+ 13:49:01 AndyS: yes - it should work 13:49:31 q+ to ask about ask 13:49:42 ack SteveH 13:50:01 SteveH: wondering if someone implements GROUP_CONCAT() ? 13:50:09 ... perl-style join 13:51:01 .... different from the regular CONCAT as it works on GROUP 13:51:14 ack LukeWM 13:51:14 LukeWM, you wanted to ask about ask 13:51:41 LukeWM: do you combine ASK and HAVING ? 13:52:04 AndyS: it could be done 13:52:48 bglimm has joined #sparql 13:53:01 q+ to ask if you can do subselects in having 13:53:08 ack pgearon 13:53:08 pgearon, you wanted to ask if you can do subselects in having 13:53:20 pgearon: subselects in a having ? 13:56:27 I'll try to write a subquery to be executed in a having clause that causes execution order problems 13:56:34 AndyS: COUNT is the most-used aggregate 13:56:43 Issues I noted so far: 13:56:43 * GROUP By vs 1 column only 13:56:43 * implicit grouping vs explicit only 13:56:43 * HAVING clauses 13:56:43 * several aggregates per GROUP 13:56:43 * GROUP concat ... could be generalized to other functions on sequences from XPath/Xquery 13:56:45 ACTION: Paul to write a subquery to be executed in a having clause that causes execution order problems for the list 13:56:45 * subqueries in HAVING analogous to subqueries in FILTERs) 13:56:45 Created ACTION-22 - Write a subquery to be executed in a having clause that causes execution order problems for the list [on Paul Gearon - due 2009-05-14]. 13:56:47 * paul's example for problems with HAVING...? (more an ACTION on the previous than an own issue, it seems) 13:58:17 LeeF: OpenAnzo : similar to AndyS approach, GROUPing needs to be expressed 13:58:34 ... implements COUNT (differnt versions), SUM, 13:58:40 ... AVERAGE, MIN, MAX 13:58:42 q+ to talk about projecting non-grouped variables 13:59:30 ... SAMPLE (says I want to group by but want only one random example in that row) 13:59:45 q+ to ask whether SAMPLE is nondeterministic? 13:59:48 see: http://www.w3.org/2009/sparql/wiki/Feature:SampleAggregate 14:00:03 q+ to ask whether SAMPLE can be done usng subselect LIMIT 1 14:00:05 ... should also implement HAVING 14:00:26 ... AVERAGE DISTINCT is also supported 14:00:40 ack SteveH 14:00:40 SteveH, you wanted to talk about projecting non-grouped variables 14:01:23 SteveH: prohibiting to project non-grouped variables 14:01:33 ack SimonS 14:01:33 SimonS, you wanted to ask whether SAMPLE can be done usng subselect LIMIT 1 14:02:00 SimonS: could sample be done with SUBSELECT + LIMIT 1 ? 14:02:27 AndyS: It shouldn't be due to the grouping 14:02:42 ack AxelPolleres 14:02:42 AxelPolleres, you wanted to ask whether SAMPLE is nondeterministic? 14:02:56 LeeF: SAMPLE is explicitely non deterministic 14:04:00 otherwise you can't ORDER BY rand(), which is v. important 14:04:09 AlexPassant: ARC2 implements average, min, max, sum 14:04:11 http://arc.semsol.org/docs/v2/sparql+ 14:04:27 Axel: a bit worried about nondet, but REDUCED, LIMIT without ORDER are also already nondet. 14:04:30 ... count too 14:05:47 ... GROUP BY is mandatory 14:05:49 and DESCRIBE 14:06:27 kasei: RDF::Query implements MIN, MAX, AVERAGE 14:06:53 SimonS has joined #sparql 14:09:00 AndyS: what about "MIN of a string" of "MIN of number" ? 14:10:51 q+ to ask about whether this is type promotion in the sense of http://www.w3.org/TR/xpath20/#promotion 14:11:21 q+ to say "no it isn't" :-) 14:12:01 kasei: that is possible also if you cast the value 14:12:43 AndyS: different point of view, not about casting, but about querying for the right type 14:13:04 ack AxelPolleres 14:13:04 AxelPolleres, you wanted to ask about whether this is type promotion in the sense of http://www.w3.org/TR/xpath20/#promotion 14:13:12 ack AndyS 14:13:12 AndyS, you wanted to say "no it isn't" :-) 14:14:01 AxelPolleres: we could follow the promotion rule in some cases 14:14:34 LeeF: will go through AndyS slids and check AxelPolleres e-mail proposal 14:14:38 I think we have (almost) to because the rest of evaluation does in FILTER. 14:14:40 s/the promotion rule/the promotion rules from http://www.w3.org/TR/xpath20/#promotion/ 14:15:07 Issues I noted so far: 14:15:08 * GROUP BY vs 1 column only 14:15:08 * implicit grouping vs explicit only 14:15:08 * HAVING clauses 14:15:08 * several aggregates per GROUP 14:15:09 * GROUP concat ... could be generalized to other functions on sequences from XPath/Xquery 14:15:10 * subqueries in HAVING analogous to subqueries in FILTERs) 14:15:12 * paul's example for problems with HAVING...? (more an ACTION on the previous than an own issue, it seems) 14:15:14 * which aggregates? COUNT (which version?), SUM, AVG, MIN, MAX, SAMPLE (nondeterministic) 14:15:35 http://jena.hpl.hp.com/~afs/SPARQL-F2F1-AFS.pdf // slide 9 14:15:35 http://jena.hpl.hp.com/~afs/SPARQL-F2F1-AFS.pdf 14:15:36 * datatype promotion/implicit casts for arithmetic aggregates? e.g. min over strings and numbers, avg over integers, etc. 14:16:00 AndyS: slide 9, highlighted part in the algebra is the subselect part 14:16:11 ... got filter, having, group, 14:16:30 ... list of aggregates operator and temporary variables 14:17:04 .... group is covered (phase 1: turn everything into group) 14:17:09 ... then calculate aggregate values 14:17:13 .... then asign temp variables 14:19:18 LeeF: have a similar implementation 14:19:58 AndyS: can only aggregate over things that are not grouped 14:22:08 LeeF: expected subqueries to be harder to implement than aggregates 14:22:23 AndyS: should depend on the implementation 14:22:32 http://www.polleres.net/presentations/20090506SPARQL_aggregates_as_subqueries.pdf 14:23:19 AxelPolleres: do we want to go syntaxically to SQL or to declarative logic programming ? 14:23:26 q+ to ask about a use case 14:23:48 ... proposal: aggregate subqueries 14:24:08 q+ to ask about scoping 14:24:23 ... {
AGG
Vars
WHERE
Pattern
}
 14:24:27 ... example on slide #3 14:24:46 ... should be ?P ex:hasFriends 14:24:52 JanneS has joined #sparql 14:25:17 SteveH: how do you control the projection of P, that will appear inside the subselect 14:25:31 AxelPolleres: bindings of the overall query will be replaced in the CONSTRUCT 14:27:26 ... can have nested queries with FILTER and aggregate 14:27:38 ... not sure I can nest aggregates 14:28:03 q+ 14:28:21 ack me 14:28:21 LukeWM, you wanted to ask about scoping 14:28:37 ... what I like about it: being inspired by logical programming 14:28:44 ... not as intuitive for people coming from SQL 14:28:54 SimonS1 has joined #sparql 14:29:31 ericP: expressivity issue (e.g. duplicate) may be a problem 14:29:54 q? 14:30:31 q+ to ask about grammar effects / need for a keyword 14:30:46 ... the WHERE clause is an arbitrary pattern 14:30:48 ack AndyS 14:30:48 AndyS, you wanted to ask about a use case 14:31:26 AndyS: how do you write query like "how many people live in each places" based on a people / place dataset 14:31:34 a minor drawback if that impl. don't get to add their own aggregate functions without adding keywords to that language 14:31:55 AxelPolleres: GROUP BY is implicit, done by the subquery 14:32:06 ... don't know how to group by expression 14:33:27 q? 14:35:33 ack bglimm 14:36:13 bglimm: is that computionnaly more expensive ? 14:36:43 ... need to compute subqueries and then compute 14:36:54 SteveH: optimiser can do that job 14:37:28 bglimm: it should be more complex to implement efficiently 14:38:06 q? 14:39:17 q? 14:39:21 ack me 14:39:21 LeeF, you wanted to ask about grammar effects / need for a keyword 14:40:54 LeeF: it seems there is a general consensus for the SQL-style 14:41:52 q? 14:42:06 LeeF: go through issues 14:42:47 q+ to note that Virtuoso has implicit GROUP BY 14:44:21 ericP: other proposal: pushing the aggregates in the pattern, but happy with the SQL style 14:44:52 ack KjetilK_Lap 14:44:52 KjetilK_Lap, you wanted to note that Virtuoso has implicit GROUP BY 14:45:05 a query in https://submarine.computas.com/mediasone-maven/trunk/scripts/munin-plugins/graphs generates http://msonetest.computas.no/munin/computas.no/msonetest.computas.no-graphs.html 14:45:19 KjetilK_Lap: Virtuoso got a kind of explicit GROUP BY 14:46:08 ... grouping by type, then get count per type 14:48:17 Issues I noted so far: 14:48:17 * GROUP BY vs 1 column only 14:48:17 * implicit vs explicit GROUPing 14:48:17 * HAVING clauses 14:48:17 * several aggregates per GROUP 14:48:17 * subqueries in HAVING analogous to subqueries in FILTERs) 14:48:19 * paul's example for problems with HAVING...? (more an ACTION on the previous than an own issue, it seems) 14:48:21 * which aggregates? COUNT (which version?), SUM, AVG, MIN, MAX, SAMPLE (nondeterministic) 14:48:23 * Extensibility of aggregates (with own agg. functions, e.g. GROUP concat ... could be generalized to other functions on sequences from XPath/Xquery) 14:48:26 * datatype promotion/implicit casts for arithmetic aggregates? e.g. min over strings and numbers, avg over integers, etc. 14:48:29 * (not) all variables need to be grouped/aggregated (the last one could well be a subissue of explicit/implicit grouping), e.g. 14:48:32 SELECT ?name 14:48:35 { 14:48:37 { SELECT ?x 14:48:38 { ?x foaf:knows?y . ?z a foaf:Person} 14:48:40 GROUP BY ?x 14:48:42 HAVING (count(?y) > 10) 14:48:44 } 14:48:46 ?x foaf:name?name 14:49:03 } 14:49:59 LeeF: do not need an issue for the GROUP BY vs 1 column only 14:50:06 ISSUE: implicit vs explicit GROUPing 14:50:06 Created ISSUE-11 - Implicit vs explicit GROUPing ; please complete additional details at http://www.w3.org/2009/sparql/track/issues/11/edit . 14:50:20 ... GROUPing: imiplicit vs explicit ? creating issue 14:50:36 ... volunteer to present the issue on the ML and telecon 14:50:48 q+ to ask about HAVING syntax 14:50:52 ACTION: LeeF to summarize implicit vs. explicit grouping re ISSUE-11 14:50:52 Created ACTION-23 - Summarize implicit vs. explicit grouping re ISSUE-11 [on Lee Feigenbaum - due 2009-05-14]. 14:51:05 ack kasei 14:51:05 kasei, you wanted to ask about HAVING syntax 14:51:47 ISSUE: presence and syntactic detail of HAVING clause 14:51:47 Created ISSUE-12 - Presence and syntactic detail of HAVING clause ; please complete additional details at http://www.w3.org/2009/sparql/track/issues/12/edit . 14:53:01 ISSUE-12: general consensus that we need equivalent of a HAVING clause 14:53:02 ISSUE-12 Presence and syntactic detail of HAVING clause notes added 14:55:54 ISSUE: subqueries in HAVING analogous to subqueries in FILTERs 14:55:54 Created ISSUE-13 - Subqueries in HAVING analogous to subqueries in FILTERs ; please complete additional details at http://www.w3.org/2009/sparql/track/issues/13/edit . 14:56:23 examples would be nice with subwqueries in HAVING 14:56:44 LeeF: which aggregates ? 14:56:48 ISSUE: which aggregates to include 14:56:48 Created ISSUE-14 - Which aggregates to include ; please complete additional details at http://www.w3.org/2009/sparql/track/issues/14/edit . 14:56:59 ISSUE: extensibility of aggregate functions 14:56:59 Created ISSUE-15 - Extensibility of aggregate functions ; please complete additional details at http://www.w3.org/2009/sparql/track/issues/15/edit . 14:57:13 ISSUE-14: we're talking about which aggregate functions to include in SPARQL/Query 14:57:13 ISSUE-14 Which aggregates to include notes added 14:58:32 ISSUE-15: with own agg. functions, e.g. GROUP concat ... could be generalized to other functions on sequences from XPath/Xquery 14:58:32 ISSUE-15 Extensibility of aggregate functions notes added 15:00:15 how about fn:concat() ... non-aggreagating , fn:concat(()) ... aggregating , or alike? 15:00:25 ... not optimal, just a strawman 15:00:34 ISSUE: dealing with aggregates over mixed datatypes 15:00:35 Created ISSUE-16 - Dealing with aggregates over mixed datatypes ; please complete additional details at http://www.w3.org/2009/sparql/track/issues/16/edit . 15:00:44 ISSUE-16: datatype promotion/implicit casts for arithmetic aggregates? e.g. min over strings and numbers, avg over integers, etc. 15:00:44 ISSUE-16 Dealing with aggregates over mixed datatypes notes added 15:01:21 AxelPolleres: x:fn((0)) is currently legal syntax 15:01:26 sorry, , not : 15:01:32 SimonS: is that about defining the range of aggregate functions ? 15:01:35 ACTION: AndyS to explain potential design regarding aggregate functions with multiple answers for mixed datatypes re ISSUE-16 15:01:35 Created ACTION-24 - Explain potential design regarding aggregate functions with multiple answers for mixed datatypes re ISSUE-16 [on Andy Seaborne - due 2009-05-14]. 15:04:43 +1 for AndyS template stuff 15:05:08 +1 for lunch 15:05:19 AndyS: about Feature specification template 15:05:29 ... having a standard template helped to look at the features 15:06:06 ... slide 11 of the pdf 15:07:11 ... definition, syntax, operator (arguments, how it is evaluated ...), mapping abstract syntax / algebra 15:07:24 ... then test cases 15:07:49 LeeF: +1 for the idea 15:09:50 ericP: downside is that editors need to subscribe to RSS feeds of wiki changes to make sure everything is in sync 15:12:00 LeeF: needs to setup a template for the wiki page 15:12:56 http://www.w3.org/2009/sparql/wiki/FeatureProposal 15:12:58 http://www.w3.org/2009/sparql/wiki/FeatureProposal 15:13:34 ACTION: LeeF to setup wiki template and feature stub pages based on slide 11 of http://jena.hpl.hp.com/~afs/SPARQL-F2F1-AFS.pdf 15:13:34 Created ACTION-25 - Setup wiki template and feature stub pages based on slide 11 of http://jena.hpl.hp.com/~afs/SPARQL-F2F1-AFS.pdf [on Lee Feigenbaum - due 2009-05-14]. 15:13:41 ericP: wiki editing is protected to WG members 15:14:25 ACTION: AndyS to stub out an initial example of a filled in feature template pending completion of ACTION-25 15:14:25 Created ACTION-26 - Stub out an initial example of a filled in feature template pending completion of ACTION-25 [on Andy Seaborne - due 2009-05-14]. 15:15:23 \o/ 15:15:28 +1 for lunch 15:15:28 Back in 60 mins 15:20:02 http://tig.csail.mit.edu/twiki/bin/view/OOPS/VideoConference#Using_the_Video_Conferencing_Uni 15:22:16 192.6.10.181 15:31:14 AxelPolleres has joined #sparql 15:44:04 i have a 10. address 15:44:40 sorry, 18 15:48:13 10 is more interesting 15:50:42 SimonS1 has joined #sparql 15:50:48 SimonS1, are you using ekiga? 15:50:53 jep. 15:51:11 just pulled out my cable it seems... 15:52:05 that's ok. your 0 frame rate saved you 15:52:21 next try 15:52:21 you had to sign up for an ekiga account? 15:52:49 My 0 frames double is still online. :) 15:53:13 yup 15:53:16 we see two of you 15:53:30 my twin disappeared 15:53:36 we miss him 15:53:47 so you had to sign up for an ekiga account? 15:53:52 no, you just need to sign up, if you want to be discoverable via the directory service. 15:54:06 If you are happy with IP adresses, you don't need to 15:54:54 but this way you can contact me using simonschenk@ekiga.net 15:55:24 i have started ekiga and made my way through the configuration 15:55:51 what did you enter to get to our conference? 15:56:08 sip:ericP@128.30.30.43 15:56:17 I guess the user is irrelevant, 15:56:20 but it is needed 15:56:33 to make a valid sip address 15:57:34 sip:ericP@128.30.30.43 15:57:38 We should consider publishing a sitcom... 15:57:53 sip:simon@128.30.30.43 worked for me 16:00:44 AxelPolleres1 has joined #sparql 16:01:29 folks, restart in about 15mins ok? 16:02:01 no way. we're having way too much fun 16:02:02 sounds good, AxelPolleres 16:09:13 we will continue with Update after the break... keep these links handy for the moment: 16:09:15 http://www.w3.org/Submission/SPARQL-Update/ 16:10:41 http://arc.semsol.org/docs/v2/sparql+ 16:10:52 plus Andy's slides that we used before 16:15:33 SimonS1 has joined #sparql 16:15:35 Zakim, who is on the phone? 16:15:35 On the phone I see MIT262b 16:15:37 MIT262b has pgearon, kasei, LeeF, ericP 16:16:16 for anyone planning to dial in, we are re-starting in the next minutes, jsut waiting for steve 16:18:41 Do you hear us? 16:18:43 sorry, back now 16:18:50 ERIC 16:19:52 awe, was i being scolded? 16:20:20 Sce 16:20:34 ScribeNick: KjetilK_Lap 16:26:38 Topic: SPARQL Update session 16:26:51 AxelPolleres: lets follow the same pattern 16:27:08 ... we have the submission from AndyS and others 16:27:19 ... AndyS, kan you take over here? 16:27:31 q+ to talk about PUT, when Andy's finished 16:28:03 AndyS: in spite of the fact that there is a long list of supporters, this proposal is a statement of general discussion 16:28:22 ... not a final and "best solution", so there is reason to expect changes 16:28:58 ... SPARQL Update has the idea of an RDF graph 16:29:27 relation GraphStore/Dataset 1:n? m:n? 16:29:36 ... it has a different name, so that we don't make a tie between the query language and the update language 16:29:46 protocol not yet in the submission. 16:29:56 ... protocol not yet in the submission 16:30:20 ... there is also a SOAP protocol for SPARQL, so we need to look into that 16:30:28 ... doing POST is quite common 16:31:07 SILENT means doesn't expect a response? 16:31:09 q+ to ask about CREATE GRAPH as noop 16:31:15 q? 16:31:17 http://www.w3.org/Submission/SPARQL-Update/ 16:31:44 AndyS walks through the submission 16:32:27 Eeeenteresting 16:32:40 INSERT INTO is nice if you get streams of triples without variables 16:32:48 +q to ask about multi graph documents in load 16:33:03 q+ to ask about potential different between CLEAR and delete 16:33:04 AndyS: is this the right model? 16:33:12 q+ to ask about * for INTO URI 16:33:19 ... what use cases are not covered? 16:33:44 ... submission recommends atomic updates 16:33:45 There's no proposal for syntax around transactions? 16:34:11 ... transactions aren't very webby? 16:34:33 ... doesn't seem very wrong to do a lightweight solutions 16:34:44 ... Security is a big issue 16:34:58 Mulgara takes the approach of a single updating thread, and we're regularly criticized for it 16:35:02 q? 16:35:02 q? 16:35:18 Zakim, ack me 16:35:18 SteveH, you wanted to talk about PUT, when Andy's finished and to ask about CREATE GRAPH as noop and to ask about potential different between CLEAR and delete 16:35:21 I see SimonS, AxelPolleres on the speaker queue 16:36:16 Zakim, who is on the phone? 16:36:16 On the phone I see MIT262b 16:36:17 AndyS: Virtuoso has something very close 16:36:18 MIT262b has pgearon, kasei, LeeF, ericP 16:36:33 KjetilK_Lap: we didn't make any changes when migrating 16:38:45 SimonS: is there any difference between being empty and being non-existent? 16:38:50 AndyS: yes 16:39:41 empty graphs vs. quead-stores 16:39:41 I'd like to note that quad stores can have the notion of an empty graph (Mulgara does this) 16:40:50 FWIW Anzo distinguishes between empty graphs & non-existent graphs. *shrug* 16:41:10 SteveH: there is a difference between quad store and a triple store in this case 16:41:41 like SQL DB's typically have some system tables... 16:41:42 pgearon: we have a system graph 16:42:09 AndyS: it is a issue how ambitious we are re graph management 16:42:17 q? 16:43:04 SteveH: you can use DROP GRAPH, which is stronger than CLEAR GRAPH 16:43:39 SteveH: we implement PUT on the endpoint, so you can PUT triples to a graph 16:44:31 q? 16:44:59 ericP: this is the way you can do that now, you can put on the graph URI and it updates the named graph 16:46:04 ... the endpoint would distinguish the endpoint from the graphs by the path 16:47:05 ack SimonS 16:47:05 SimonS, you wanted to ask about multi graph documents in load 16:47:05 SimonS: Sesame has a RESTful API where you can PUT and DELETE graphs 16:47:16 Want to add for the record, we re-use the HTTP 1.0 proxy syntax to write to other graphs 16:47:19 but it's quite ugly 16:47:30 YARS seems to have a similar approach that sesame - http://sw.deri.org/2004/06/yars/ 16:47:35 eg. PUT http://localhost/sparql/http://foo.com/data.rdf 16:47:36 SimonS: MODIFY is sort of a CONSTRUCT query, right? 16:48:03 ...i.e. the the pattern is similar 16:48:14 ...so you cannot modify several graphs? 16:48:31 AndyS: yes, it is very centered around modify _a_ graph 16:48:32 How does MODIFY specify what graph receives inserted triples? 16:49:00 SimonS: asks for dynamically setting the graph in MODIFY 16:49:05 ... you will need to mix queries and update statements to do everything you need 16:50:48 AndyS: it is not a full-blown language for all the updates you may want to do 16:50:58 q+ 16:51:31 ericP: it should be accompanied by a media type? 16:51:58 bijan has joined #sparql 16:52:11 AndyS: we don't know yet if it will be transported over HTTP 16:54:35 q? 16:54:36 SimonS: you say that the default graph should always exist 16:54:38 AndyS: that 16:54:55 AndyS: that's inherited from SPARQL/Query 16:56:31 AxelPolleres: LOAD can't just add to all graphs 16:56:44 q+ 16:57:03 SteveH: is load additive? 16:57:05 AndyS: yes 16:57:48 AxelPolleres: issues like concurrency, is that dealt with in the submission? 16:58:06 AndyS: yes, it says it is atomic, but the WG must address it 16:58:31 q? 16:59:13 AxelPolleres: graph store vs dataset, what? 16:59:31 AndyS: it is a difficult distinction, and I changed it many times 17:00:29 ... you may have a huge system with many graphs, where you cannot access all graphs on any endpoint 17:00:49 ... and you may have something that operates on just a single default graph 17:01:30 q? 17:01:36 ack AxelPolleres 17:01:36 AxelPolleres, you wanted to ask about * for INTO URI 17:01:40 ack pgearon 17:02:18 bijan has joined #sparql 17:02:24 pgearon: you can have many FROMs, does that mean you delete triples from all graphs? 17:02:54 AndyS: it is unclear, but the idea was that you run the same operation on each graph 17:03:47 pgearon: I can see the use case where you SELECT from one graph to another 17:04:25 Can someone that understands this more than me type out how I would say "INSERT the foaf:knows triples from 3 different graphs into a 4th graph"? Can I say that? 17:05:16 q? 17:05:35 LeeF, do as 3 operations in one request (a request is zero or more of the ops in the language) 17:05:52 q+ to ask if there are ideas of reusing some security mechanism 17:06:23 AndyS: insert and delete are idempotent, but not mixed together 17:07:22 AndyS, I see, thanks 17:09:46 q? 17:10:13 is there any reason why the grammar allows just Prologue as a valid update request? 17:10:51 bglimm: what is the default graph? 17:11:16 ... it could be an empty ontology? 17:11:19 AndyS: yes 17:12:10 q? 17:12:17 ack bglimm 17:13:14 SimonS: do you have any idea of reusing any security mechanisms, and if so what? 17:13:26 q? 17:13:29 AndyS: I tend to do service-based security, 17:13:32 ack SimonS 17:13:32 SimonS, you wanted to ask if there are ideas of reusing some security mechanism 17:13:45 ...i.e. not in the data, on the endpoint 17:14:00 ... you have security in Jetty, Tomcat, etc. 17:14:34 http://arc.semsol.org/docs/v2/sparql+ 17:15:01 AlexPassant: there are some differences in ARC2, which is sparql+ 17:15:18 AlexPassant summarizes 17:15:19 q+ to talk describe grammar differences 17:16:07 AlexPassant: the main difference is INSERT DATA and DELETE DATA 17:16:32 s/INSERT INTO/INSERT DATA/ 17:16:39 SPARQL+ supports LOAD, INSERT, DELETE 17:17:02 no DROP (but DELETE GRAPH), no CLEAR, no CREATE 17:17:15 AlexPassant: it does only HTTP POST 17:17:15 API key for updates via HTTP POST 17:17:48 like Eric's INSERT GRAPH patterns 17:19:17 http://mulgara.org/trac/wiki/TQLUserGuide 17:19:54 -> http://www.w3.org/2007/05/SPARQLfed/ SPARQLfed 17:20:22 mulgara has transactions 17:21:05 AndyS: we had some transaction stuff, but we took it out 17:21:06 q+ to ask about 'return values' 17:21:16 ack ericp 17:21:16 ericP, you wanted to talk describe grammar differences 17:21:56 -> http://www.w3.org/2005/01/yacker/uploads/SPARUL_EGP?lang=perl&markup=html SPARUL à la ericP 17:22:48 LeeF: what would you get back? 17:23:02 AndyS: ask yourself: What would HTTP do? 17:23:11 ...you get a response code? 17:23:19 s/\?// 17:24:00 q? 17:24:01 SPARQL/Update: HTTP response code: 200 + # of triples touched (try to avoid touching anywhere from 1 - 399 triples) 17:24:07 ack me 17:24:07 LeeF, you wanted to ask about 'return values' 17:24:40 * concurrency issues? 17:24:40 * securtity mechanisms 17:24:40 * empty graphs vs. quad-stores 17:24:40 more update operations? 17:24:40 * protocol issue? HTTP PUT/POST, SOAP, content negotiation/switch for mediatype? 17:24:41 * issue: MODIFY deletes and inserts all graphs? 17:24:43 * move data between graphs (select on one graph and insert into another... copy from/to) 17:24:44 SPARULfed example: INSERT { GRAPH { ?x foaf:know ?y . ?y foaf:knows ?x } } BINDINGS (?x ?y) { ( ) ( ) } 17:24:45 * dynamic graph (variable) for graph to update/modify 17:24:47 * conjunction of operation vs atomocity, transactions 17:25:08 AndyS: what is the problem being solved? 17:25:26 q+ to comment on commonality between proposals 17:25:36 ack pgearon 17:25:36 pgearon, you wanted to comment on commonality between proposals 17:25:42 ...a minimal solution is to delete and insert triples in an existing graph 17:26:12 pgearon: all proposals come up with very similar ideas 17:26:24 * minimal (delete, insert triples only )vs fully-fledged solution 17:26:45 SPARQL/Update: The Lemmings Edition? 17:26:58 ...the basic functionality is pretty much the same 17:27:49 AndyS: what worries me is the lack of things that calls it into question, are we charging in perfect harmony over the edge of a cliff? 17:28:44 It sounds to me like we need some explicit use case gathering here. 17:28:53 q+ to mention other approaches 17:29:13 Note that http://www.w3.org/2009/sparql/wiki/Feature:Update#Use_cases is empty 17:29:24 ... we should not directly to the solution 17:29:39 s/directly/jump directly/ 17:30:48 q? 17:30:58 q+ 17:31:18 +1 for changesets 17:31:21 AndyS: timbl and talis have the notion of changesets, which is a bunch of things to remove and things to add 17:31:32 +q slight issue with changesets 17:32:06 q+ to note a slight issue with changesets 17:32:19 q+ to suggest that principle motivations for bare-bones HTTP verbs would be for caching and safety 17:32:20 ... with a pattern you can change a lot with only few characters, changesets are deltas 17:32:25 paul, you have to type "q+ to ..." 17:32:55 SimonS has joined #sparql 17:33:07 does anybody have a link to changesets? 17:33:27 http://www.w3.org/DesignIssues/Diff type of thing 17:33:36 (I imagine, don't have a link for how we do it in Anzo) 17:33:43 http://www.openrdf.org/doc/sesame2/system/ch08.html 17:34:00 SimonS: it would be nice to have it update capability in the protocol _and_ a language 17:34:52 q+ to ask about whether this is RDF/update rather than SPARQL/update 17:35:07 ack me 17:35:07 AndyS, you wanted to mention other approaches 17:35:08 ack AndyS 17:35:12 ack SteveH 17:35:30 DAV 17:35:55 LeeF: Virtuoso does WebDAV 17:36:01 SteveH: has anyone done WebDAV? 17:36:06 http://docs.openlinksw.com/virtuoso/rdfinsertmethods.html#rdfinsertmethodwebdav 17:36:24 q? 17:36:35 ack ericP 17:36:35 ericP, you wanted to suggest that principle motivations for bare-bones HTTP verbs would be for caching and safety 17:37:55 ericP: HTTP directives solution nice for caching and safety? 17:38:23 SteveH: there is also the curl command line to easily do updates 17:39:18 ... curl can simply PUT a file on your disc 17:39:18 q? 17:40:36 ack pgearon 17:40:36 pgearon, you wanted to note a slight issue with changesets 17:40:38 ack pgearon 17:40:40 ack AxelPolleres 17:40:40 AxelPolleres, you wanted to ask about whether this is RDF/update rather than SPARQL/update 17:41:27 AxelPolleres: would this lightweight HTTP solution be SPARQL/Update 17:41:31 ? 17:41:47 SteveH: it would be in the protocol 17:42:55 discussion whether LOAD data is standard in SQL 17:45:39 q? 17:46:47 +1 on both 17:47:02 +1 on both 17:49:19 second attempt to collect issues: 17:49:21 * minimal (delete, insert triples only, HTTP protocol) vs fully-fledged solution: PUT/DELETE only? vs. data manipulation language, DAV to SPARQL/Update 17:49:21 * concurrency issues? 17:49:21 * securtity mechanisms 17:49:21 * empty graphs vs. quad-stores 17:49:21 * more update operations? 17:49:23 * protocol issue? HTTP PUT/POST, SOAP? 17:49:25 * content negotiation/switch for mediatype? 17:49:27 * issue: MODIFY deletes and inserts all graphs? 17:49:29 * move data between graphs (select on one graph and insert into another... copy from/to) 17:49:31 * dynamic graph (variable) for graph to update/modify 17:49:34 * conjunction of operation vs atomocity, transactions 17:49:35 * subqueries in Update operations, full expressivity 17:51:55 LeeF: points back to his post about who put Update on the top 17:52:09 ...can those come up with use cases? 17:52:25 ericP: one use case is Tabulator 17:52:47 ...the other is that people were asking about it and I said "RSN" 17:53:52 LukeWM: we implemented it to edit FOAF files 17:54:27 we shall collect these use cases for update, ... in F&R? 17:54:44 AxelPolleres: +1 17:54:50 ...this takes advantage of patterns 17:55:33 SteveH: does our use case need Modufy/update or only deletes an inserts? 17:55:40 q+ uses it too 17:55:49 q+ to say we use it too 17:56:08 q? 17:57:18 ttp://esw.w3.org/topic/PushBackDataToLegacySourcesRDForms 17:57:32 AlexPassant: we have a web2.0 app where people edit their data 17:58:01 http://esw.w3.org/topic/PushBackDataToLegacySourcesRDForms 17:59:13 ACTION: Alexandre to ask in DERI about whether RDF Forms/pushback uses WHERE in updates 17:59:13 Created ACTION-27 - Ask in DERI about whether RDF Forms/pushback uses WHERE in updates [on Alexandre Passant - due 2009-05-14]. 17:59:53 pgearon: we use it all the time 18:00:12 AlexPAssant mentioned 3 use cases. 18:00:34 q? 18:00:54 1st one: integration of remote sources in a store (graph update only), 2nd personal data management (graph only afair - have to check) 3rd one: RDForms 18:00:54 ack me 18:00:54 KjetilK_Lap, you wanted to say we use it too 18:01:21 paul: update of blanknodes neesds WHERE, becasue I can't reference them directly 18:01:54 kjetil, can you summarize your use case on IRC yourself 18:02:48 q+ on interplay between update and entailment, relevant for us? 18:03:09 KjetilK_Lap: we have applications where we use all features of SPARUL 18:03:40 ...not a lot of CLEAR GRAPHs, if we need that we usually do it on the command line 18:04:10 ...we have an interface where people enter data about resources with certain properties, 18:04:49 AndyS: main use case provide users what they are used to from SQL for stores 18:05:01 ...of course if there is a new resource, we do INSERT DATA, but it is important to edit existing resources, and then WHERE becomes important 18:05:32 q+ to ask how long SPARQL Update submission has been 'in the wild' 18:05:41 q? 18:06:06 q+ 18:06:36 ...I suppose it would be OK to have a HTTP DELETE to delete a graph instead of a CLEAR GRAPH, but now we do not use dereferencable URIs for graphs, since we haven't needed to do it, thus it would be harder to work with 18:06:55 ack AxelPolleres 18:06:55 AxelPolleres, you wanted to comment on interplay between update and entailment, relevant for us? 18:07:21 AxelPolleres: do we need to consider it in connection with entailment regimes? 18:07:46 delete them harder? 18:07:56 AndyS: yeah, the case is "I've deleted my triples, but they are still there!" 18:08:01 DELETE FROM WHERE { ?s rdf:type owl:Thing } --> remove everything! 18:08:17 Not classes. 18:08:24 oh dang, yeah 18:08:32 rdfs:Resource ? 18:08:37 Or axiomatic triples. 18:08:56 rdf:type rdf:type rdf:Property. 18:09:09 nothing i can do to make that no longer exist? :) 18:09:54 AndyS: what is the state-of-the-art with OWL? 18:10:12 Birte: update implies do inference from scratch, typically. 18:10:13 Not as far as I know. MT has some other axiomatic triples. 18:10:28 bglimm: basically, you start with scratch, take what you have and do inference from scratch 18:11:23 bglimm: it is an active research area, but it is not clear how it should be done 18:12:03 q? 18:12:07 ack me 18:12:07 LeeF, you wanted to ask how long SPARQL Update submission has been 'in the wild' 18:12:19 ack me 18:12:49 http://www.w3.org/TR/rdf-mt/#RDFINTERP : blue table 18:13:09 LeeF: how long has SPARUL been in the wild? 18:13:50 AndyS: there is one dated March 2007 18:14:29 Earlier than http://jena.hpl.hp.com/~afs/SPARQL-Update-v1.html 18:14:39 pgearon: it, or something like it has been in use for a while now 18:15:12 SteveH: SPARUL is technically older than SPARQL :-) 18:15:29 technical difficulties 18:16:31 q? 18:17:24 iv_an_ru: 18:17:31 eh, no, the older 18:17:35 :) 18:18:11 AndyS: ivan was also pretty clear it should be a submission 18:18:53 q? 18:18:53 LeeF: it has a lot of support and is being used, but can we make a good recommendation of this? 18:18:57 SPARUL is worth an interoperable so the more "official" it is the better :) 18:19:18 s/an/and/ 18:19:36 q+ 18:19:50 AndyS: is there any way we can ping the community and get use cases? 18:19:54 q+ to speak about our use cases 18:21:13 LeeF: I think that we should do the more complex stuff and let the community do the simpler stuff 18:21:29 yesterday's word: megillah ~ today's word: kerfuffle 18:22:08 AxelPolleres: the SPARUL use cases should go into the F&R 18:22:13 +1 to writing use cases down 18:22:53 AndyS: if we had a RESTy solution, would we get away with that? 18:25:20 ericP: 18:25:34 q? 18:25:46 ack AxelPolleres 18:25:46 AxelPolleres, you wanted to speak about our use cases 18:26:13 ericP: how about we very early in the new charter publish a WD of SPARUL to bring out comments 18:26:13 let's give actions out! woo! 18:26:46 ACTION: ericP to provide tabulator update use case on wiki 18:26:46 Sorry, couldn't find user - ericP 18:26:50 ACTION: eric to provide tabulator update use case on wiki 18:26:51 Created ACTION-28 - Provide tabulator update use case on wiki [on Eric Prud'hommeaux - due 2009-05-14]. 18:27:04 ACTION: Luke to provide FOAF update use case on wiki 18:27:04 Created ACTION-29 - Provide FOAF update use case on wiki [on Luke Wilson-Mawer - due 2009-05-14]. 18:27:17 ACTION: Alex to provide 3 uses cases on wiki 18:27:17 Created ACTION-30 - Provide 3 uses cases on wiki [on Alexandre Passant - due 2009-05-14]. 18:27:26 ACTION-30: err, update use cases 18:27:26 ACTION-30 Provide 3 uses cases on wiki notes added 18:28:05 ACTION: Paul to provide delete construct / insert construct based on blank nodes use case on wiki 18:28:05 Created ACTION-31 - Provide delete construct / insert construct based on blank nodes use case on wiki [on Paul Gearon - due 2009-05-14]. 18:29:13 q? 18:30:01 * minimal (delete, insert triples only, HTTP protocol) vs fully-fledged solution: PUT/DELETE only? vs. data manipulation language, DAV to SPARQL/Update 18:30:01 * concurrency issues? 18:30:01 * securtity mechanisms 18:30:01 * empty graphs vs. quad-stores 18:30:01 * more update operations? 18:30:03 * protocol issue? HTTP PUT/POST, SOAP? 18:30:05 * content negotiation/switch for mediatype? 18:30:07 * issue: MODIFY deletes and inserts all graphs? 18:30:09 * move data between graphs (select on one graph and insert into another... copy from/to) 18:30:11 * dynamic graph (variable) for graph to update/modify 18:30:13 * conjunction of operation vs atomocity, transactions 18:30:15 * subqueries in Update operations, full expressivity 18:30:18 * what can be cut of from SPARQL/Update submission basis? 18:30:22 * entailment vs. update? 18:31:50 ISSUE: minimal vs fully-fledged update language 18:31:51 Created ISSUE-17 - Minimal vs fully-fledged update language ; please complete additional details at http://www.w3.org/2009/sparql/track/issues/17/edit . 18:32:29 ISSUE: cuncurrency in SPARQL/update 18:32:29 Created ISSUE-18 - Cuncurrency in SPARQL/update ; please complete additional details at http://www.w3.org/2009/sparql/track/issues/18/edit . 18:32:34 Use-cases for Update to be recorded on the Wiki using http://www.w3.org/2009/sparql/wiki/Category:UpdateUseCases 18:33:01 ISSUE: security issues on SPARQL/UPdate 18:33:01 Created ISSUE-19 - Security issues on SPARQL/UPdate ; please complete additional details at http://www.w3.org/2009/sparql/track/issues/19/edit . 18:34:31 ISSUE: graphs aware stores vs. quad stores for SPARQL/update (empty graphs) 18:34:31 Created ISSUE-20 - Graphs aware stores vs. quad stores for SPARQL/update (empty graphs) ; please complete additional details at http://www.w3.org/2009/sparql/track/issues/20/edit . 18:36:29 ISSUE: more complex update operations, e.g. CHANGE objects 18:36:30 Created ISSUE-21 - More complex update operations, e.g. CHANGE objects ; please complete additional details at http://www.w3.org/2009/sparql/track/issues/21/edit . 18:37:02 +1 for not supporting SOAP 18:37:34 ISSUE: support of SOAP in SPARQL/Update 18:37:34 Created ISSUE-22 - Support of SOAP in SPARQL/Update ; please complete additional details at http://www.w3.org/2009/sparql/track/issues/22/edit . 18:38:03 q+ 18:38:26 ack AndyS 18:39:19 q+ to claim WSDL is useful :-) 18:41:51 ack AxelPolleres 18:41:51 AxelPolleres, you wanted to claim WSDL is useful :-) 18:42:04 SteveH/Andy: WSDL2HTTP doesn't really make life easier 18:43:13 ISSUE: content negotiation/switch for mediatype 18:43:13 Created ISSUE-23 - Content negotiation/switch for mediatype ; please complete additional details at http://www.w3.org/2009/sparql/track/issues/23/edit . 18:43:54 move data between graphs (select on one graph and insert into another... copy from/to) 18:43:58 "ferfufle"? Is that like a "kerfuffle"? 18:43:59 ISSUE: move data between graphs (select on one graph and insert into another... copy from/to) 18:43:59 Created ISSUE-24 - Move data between graphs (select on one graph and insert into another... copy from/to) ; please complete additional details at http://www.w3.org/2009/sparql/track/issues/24/edit . 18:44:37 ISSUE: dynamic graph (variable) for INTO graph to update/modify 18:44:37 Created ISSUE-25 - Dynamic graph (variable) for INTO graph to update/modify ; please complete additional details at http://www.w3.org/2009/sparql/track/issues/25/edit . 18:44:53 ISSUE: conjunction of operation vs atomocity, transactions 18:44:53 Created ISSUE-26 - Conjunction of operation vs atomocity, transactions ; please complete additional details at http://www.w3.org/2009/sparql/track/issues/26/edit . 18:44:59 ISSUE-25: pgearon describes this issue as "fraught" 18:44:59 ISSUE-25 Dynamic graph (variable) for INTO graph to update/modify notes added 18:45:05 ISSUE: subqueries in Update operations, full expressivity 18:45:05 Created ISSUE-27 - Subqueries in Update operations, full expressivity ; please complete additional details at http://www.w3.org/2009/sparql/track/issues/27/edit . 18:45:26 q+ to say a word about all these issues in general 18:45:47 ISSUE: entailment regimes vs. update? 18:45:47 Created ISSUE-28 - Entailment regimes vs. update? ; please complete additional details at http://www.w3.org/2009/sparql/track/issues/28/edit . 18:45:53 q? 18:47:14 LeeF: we should be aggressive on resolving ISSUES to progress 18:47:36 Topic: wrap-up 18:48:31 LeeF: If people suggeste resolutions and nobody speaks up, we should go ahead and resolve issues. Suggest resolutions! 18:48:43 ack me 18:48:43 LeeF, you wanted to say a word about all these issues in general 18:50:28 SimonS1 has joined #sparql 18:52:31 LeeF: draft charter based on first internal draft of F&R 18:52:47 internal? 18:58:14 feedback on the two-site approach very positive. 19:00:09 people from west coase couldn't participate. 19:00:22 AndyS: task forces would be an interesting idea. 19:00:37 +1 to trying task forces out 19:00:44 ... for parallelizable tasks. Telecons rather for coodrination 19:02:07 SemTech: Alex, Lee, Eric, Paul 19:02:20 Ivan herman will also be there 19:02:48 Zakim, who is here? 19:02:48 On the phone I see MIT262b 19:02:49 MIT262b has pgearon, kasei, LeeF, ericP 19:02:50 On IRC I see SimonS, AxelPolleres, pgearon, AndyS, LeeF, KjetilK_Lap, kasei, LukeWM, SteveH, RRSAgent, Zakim, karl, AlexPassant, john-l, KjetilK, trackbot, iv_an_ru, kjetil, ericP 19:04:01 Regrest for Tuesday: Axel, Alex, Simon (at risk) 19:04:25 AndyS: quick question for you...... 19:04:43 rrsagent, make minutes 19:04:43 I have made the request to generate http://www.w3.org/2009/05/07-sparql-minutes.html AxelPolleres 19:05:11 -MIT262b 19:05:12 SW_(SPRQL-F2F)6:30AM has ended 19:05:13 Attendees were EricP, iv_an_ru, JanneS, pgearon, kasei, LeeF 19:05:18 I just want to confirm. Is SPARUL a completely separate language, or a superset of SPARQL (I'm expecting that it's separate) 19:05:53 It's separate because top level clauses differ, but internals are common. 19:06:26 I didn't hear support for one language 19:06:34 that's what I thought, but I wanted to be sure 19:06:56 that will make it easier to split between GET and POST/PUT 19:07:17 No reason to support one, because supporting both costs almost the same. 19:07:51 As long as it an issue. 19:07:58 Hm, what's the difference between GET and PUT w.r.t. SPARQL versus SPARUL? 19:08:10 GET may not modify anything on the server 19:08:11 GET and POST 19:08:44 PUT and POST may result in changes (hence, update) 19:09:09 In real life, nobody cares :) People send whatever in any request type. 19:09:53 Maybe, but in Mulgara I'm strict about it 19:09:59 ETags are all unique or missing for SPARQL endpoint anyway. 19:10:48 GET may not get to the far end 19:10:53 I accept queries for either GET, POST, but updates are only allowed on POST. If you do any kind of update in a GET you will get an error 19:10:59 I was strict in rejecting ill TTL files at the beginning. Now I have ~8 "ignore this" and "recover that" parser flags :) 19:11:06 SimonS has left #sparql 19:35:26 kasei has left #sparql 19:50:45 RRSAgent, make logs world 19:53:06 RRSAgent, pointer? 19:53:06 See http://www.w3.org/2009/05/07-sparql-irc#T19-53-06 20:00:22 pgearon has joined #sparql 20:56:10 AxelPolleres has joined #sparql 21:21:18 Zakim has left #sparql 22:06:18 KjetilK_Lap has joined #sparql 23:34:57 LeeF has joined #sparql