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