Warning:
This wiki has been archived and is now read-only.

Chatlog 2009-05-07

From SPARQL Working Group
Jump to: navigation, search

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