IRC log of sparql on 2009-05-07

Timestamps are in UTC.

00:17:50 [LukeWM]
LukeWM has joined #sparql
00:18:06 [LukeWM]
LukeWM has left #sparql
01:07:26 [karl]
karl has joined #sparql
01:10:04 [pgearon]
pgearon has joined #sparql
03:10:40 [karl]
karl has joined #sparql
10:49:37 [RRSAgent]
RRSAgent has joined #sparql
10:49:37 [RRSAgent]
logging to http://www.w3.org/2009/05/07-sparql-irc
10:50:01 [AndyS]
AndyS has joined #sparql
10:50:29 [ericP]
Zakim, please dial MIT262
10:50:29 [Zakim]
sorry, ericP, I don't know what conference this is
10:50:37 [ericP]
Zakim, this is sparql
10:50:37 [Zakim]
sorry, ericP, I do not see a conference named 'sparql' in progress or scheduled at this time
10:50:37 [AndyS]
AndyS has joined #sparql
10:50:43 [ericP]
Zakim, this is sparq
10:50:43 [Zakim]
ericP, I see SW_(SPRQL-F2F)6:30AM in the schedule but not yet started. Perhaps you mean "this will be sparq".
10:50:47 [ericP]
Zakim, this will be sparq
10:50:47 [Zakim]
ok, ericP; I see SW_(SPRQL-F2F)6:30AM scheduled to start 20 minutes ago
10:50:50 [ericP]
Zakim, please dial MIT262
10:50:50 [Zakim]
ok, ericP; the call is being made
10:50:51 [Zakim]
SW_(SPRQL-F2F)6:30AM has now started
10:50:52 [Zakim]
+MIT262
10:50:53 [AndyS]
AndyS has joined #sparql
10:51:06 [Zakim]
-MIT262
10:51:08 [Zakim]
SW_(SPRQL-F2F)6:30AM has ended
10:51:08 [Zakim]
Attendees were MIT262
10:51:15 [AndyS]
AndyS has joined #sparql
10:51:31 [ericP]
Zakim, please dial MIT262b
10:51:31 [Zakim]
ok, ericP; the call is being made
10:51:32 [Zakim]
SW_(SPRQL-F2F)6:30AM has now started
10:51:33 [Zakim]
+MIT262b
10:51:37 [AndyS]
AndyS has joined #sparql
10:52:05 [ericP]
Zakim, please dial ericP-mobile
10:52:05 [Zakim]
ok, ericP; the call is being made
10:52:06 [Zakim]
+EricP
10:52:07 [AndyS]
AndyS has joined #sparql
10:52:49 [AndyS]
AndyS has joined #sparql
10:53:31 [Zakim]
-EricP
10:54:55 [AndyS]
AndyS has joined #sparql
10:55:23 [Zakim]
+iv_an_ru
10:55:26 [AndyS]
AndyS has joined #sparql
10:55:49 [SteveH]
SteveH has joined #sparql
10:56:50 [AxelPolleres]
AxelPolleres has joined #sparql
10:56:54 [AxelPolleres]
http://www.w3.org/2009/sparql/wiki/F2F1_Agenda#Day_2
10:57:23 [AndyS]
AndyS has joined #sparql
10:57:46 [SimonS1]
SimonS1 has joined #sparql
10:57:54 [LukeWM]
LukeWM has joined #sparql
10:59:03 [AndyS]
AndyS has joined #sparql
10:59:21 [AndyS_]
AndyS_ has joined #sparql
10:59:26 [AndyS__]
AndyS__ has joined #sparql
10:59:29 [ericP]
Zakim, please dial ericP-mobile
10:59:29 [Zakim]
ok, ericP; the call is being made
10:59:30 [AndyS__]
AndyS__ has left #sparql
10:59:30 [Zakim]
+EricP
10:59:47 [AndyS]
AndyS has joined #sparql
11:00:02 [Zakim]
-EricP
11:00:11 [bglimm]
bglimm has joined #sparql
11:02:06 [AndyS]
AndyS has joined #sparql
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:03:39 [kasei]
kasei has joined #sparql
11:05:28 [pgearon]
pgearon has joined #sparql
11:06:32 [ivan]
ivan has joined #sparql
11:06:50 [ivan]
ivan has left #sparql
11:08:22 [KjetilK_Lap]
KjetilK_Lap has joined #sparql
11:08:26 [LeeF]
LeeF has joined #sparql
11:09:29 [iv_an_ru]
Михайлов
11:09:36 [AxelPolleres]
http://www.w3.org/2009/sparql/wiki/F2F1_Agenda#Day_2
11:09:36 [LeeF]
ScribeNick: pgearon
11:09:36 [ericP]
tx
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
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]
AxelPassant: 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]
ivan talking avbout 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:12 [LeeF]
AndyS: you can do MAX in SPARQL if you have too much time on your hands
12:05:17 [LeeF]
AndyS: you can do max in SPARQL if you have too much time on your hands
12:05:29 [LeeF]
AndyS: asdfgh
12:05:40 [AxelPolleres]
q?
12:06:20 [pgearon]
LeeF: will be doing subqueries by the end of this weekend
12:06:35 [AxelPolleres]
grepg, Lee, Eric don't do subqueries...
12:06:38 [SimonS]
q+ to add something
12:07:07 [LeeF]
AndyS: to you can do MAX IN SPARQL if you ahve too much time on your hands
12:07:10 [LeeF]
that's weird
12:07:14 [LeeF]
q- AndyS
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 tricky with the algebra.
12:08:03 [AxelPolleres]
s/tricky/wrong/
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_Lap]
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_Lap
12:20:59 [pgearon]
KjetilK_Lap: 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_Lap]
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 Ivan 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:46 [LeeF]
ACTION: AxelPolleres to send CONSTRUCT in FROM clause use case to mailing list re: ISSUE-7
13:05:46 [trackbot]
Sorry, couldn't find user - AxelPolleres
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 Becket syntax
13:39:47 [AlexPassant]
s/Becket/Beckett
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 explicitely 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 rule in some cases
14:14:34 [AlexPassant]
LeeF: will go through AndyS slids 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:14:40 [AxelPolleres]
s/the promotion rule/the promotion rules from http://www.w3.org/TR/xpath20/#promotion/
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_Lap]
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_Lap
14:44:52 [Zakim]
KjetilK_Lap, you wanted to note that Virtuoso has implicit GROUP BY
14:45:05 [KjetilK_Lap]
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_Lap: 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].
15:04:43 [KjetilK_Lap]
+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
15:20:02 [ericP]
http://tig.csail.mit.edu/twiki/bin/view/OOPS/VideoConference#Using_the_Video_Conferencing_Uni
15:22:16 [AndyS]
192.6.10.181
15:31:14 [AxelPolleres]
AxelPolleres has joined #sparql
15:44:04 [ericP]
i have a 10. address
15:44:40 [ericP]
sorry, 18
15:48:13 [AndyS]
10 is more interesting
15:50:42 [SimonS1]
SimonS1 has joined #sparql
15:50:48 [ericP]
SimonS1, are you using ekiga?
15:50:53 [SimonS1]
jep.
15:51:11 [SimonS]
just pulled out my cable it seems...
15:52:05 [ericP]
that's ok. your 0 frame rate saved you
15:52:21 [SimonS]
next try
15:52:21 [ericP]
you had to sign up for an ekiga account?
15:52:49 [SimonS]
My 0 frames double is still online. :)
15:53:13 [ericP]
yup
15:53:16 [ericP]
we see two of you
15:53:30 [SimonS]
my twin disappeared
15:53:36 [ericP]
we miss him
15:53:47 [ericP]
so you had to sign up for an ekiga account?
15:53:52 [SimonS]
no, you just need to sign up, if you want to be discoverable via the directory service.
15:54:06 [SimonS]
If you are happy with IP adresses, you don't need to
15:54:54 [SimonS]
but this way you can contact me using simonschenk@ekiga.net
15:55:24 [ericP]
i have started ekiga and made my way through the configuration
15:55:51 [ericP]
what did you enter to get to our conference?
15:56:08 [SimonS]
sip:ericP@128.30.30.43
15:56:17 [SimonS]
I guess the user is irrelevant,
15:56:20 [SimonS]
but it is needed
15:56:33 [SimonS]
to make a valid sip address
15:57:34 [ericP]
sip:ericP@128.30.30.43
15:57:38 [AxelPolleres]
We should consider publishing a sitcom...
15:57:53 [ericP]
sip:simon@128.30.30.43 worked for me
16:00:44 [AxelPolleres1]
AxelPolleres1 has joined #sparql
16:01:29 [AxelPolleres]
folks, restart in about 15mins ok?
16:02:01 [ericP]
no way. we're having way too much fun
16:02:02 [LeeF]
sounds good, AxelPolleres
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:15:33 [SimonS1]
SimonS1 has joined #sparql
16:15:35 [AxelPolleres]
Zakim, who is on the phone?
16:15:35 [Zakim]
On the phone I see MIT262b
16:15:37 [Zakim]
MIT262b has pgearon, kasei, LeeF, ericP
16:16:16 [AxelPolleres]
for anyone planning to dial in, we are re-starting in the next minutes, jsut waiting for steve
16:18:41 [AxelPolleres]
Do you hear us?
16:18:43 [SteveH]
sorry, back now
16:18:50 [AndyS]
ERIC
16:19:52 [ericP]
awe, was i being scolded?
16:20:20 [KjetilK_Lap]
Sce
16:20:34 [KjetilK_Lap]
ScribeNick: KjetilK_Lap
16:26:38 [KjetilK_Lap]
Topic: SPARQL Update session
16:26:51 [KjetilK_Lap]
AxelPolleres: lets follow the same pattern
16:27:08 [KjetilK_Lap]
... we have the submission from AndyS and others
16:27:19 [KjetilK_Lap]
... AndyS, kan you take over here?
16:27:31 [SteveH]
q+ to talk about PUT, when Andy's finished
16:28:03 [KjetilK_Lap]
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_Lap]
... not a final and "best solution", so there is reason to expect changes
16:28:58 [KjetilK_Lap]
... SPARQL Update has the idea of an RDF graph
16:29:27 [AxelPolleres]
relation GraphStore/Dataset 1:n? m:n?
16:29:36 [KjetilK_Lap]
... 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_Lap]
... protocol not yet in the submission
16:30:20 [KjetilK_Lap]
... there is also a SOAP protocol for SPARQL, so we need to look into that
16:30:28 [KjetilK_Lap]
... 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_Lap]
http://www.w3.org/Submission/SPARQL-Update/
16:31:44 [KjetilK_Lap]
AndyS walks through the submission
16:32:27 [LeeF]
Eeeenteresting
16:32:40 [KjetilK_Lap]
INSERT INTO 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_Lap]
AndyS: is this the right model?
16:33:12 [AxelPolleres]
q+ to ask about * for INTO URI
16:33:19 [KjetilK_Lap]
... what use cases are not covered?
16:33:44 [KjetilK_Lap]
... submission recommends atomic updates
16:33:45 [pgearon]
There's no proposal for syntax around transactions?
16:34:11 [KjetilK_Lap]
... transactions aren't very webby?
16:34:33 [KjetilK_Lap]
... doesn't seem very wrong to do a lightweight solutions
16:34:44 [KjetilK_Lap]
... 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_Lap]
AndyS: Virtuoso has something very close
16:36:18 [Zakim]
MIT262b has pgearon, kasei, LeeF, ericP
16:36:33 [KjetilK_Lap]
KjetilK_Lap: we didn't make any changes when migrating
16:38:45 [KjetilK_Lap]
SimonS: is there any difference between being empty and being non-existent?
16:38:50 [KjetilK_Lap]
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_Lap]
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_Lap]
pgearon: we have a system graph
16:42:09 [KjetilK_Lap]
AndyS: it is a issue how ambitious we are re graph management
16:42:17 [AxelPolleres]
q?
16:43:04 [KjetilK_Lap]
SteveH: you can use DROP GRAPH, which is stronger than CLEAR GRAPH
16:43:39 [KjetilK_Lap]
SteveH: we implement PUT on the endpoint, so you can PUT triples to a graph
16:44:31 [AxelPolleres]
q?
16:44:59 [KjetilK_Lap]
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_Lap]
... 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_Lap]
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_Lap]
SimonS: MODIFY is sort of a CONSTRUCT query, right?
16:48:03 [KjetilK_Lap]
...i.e. the the pattern is similar
16:48:14 [KjetilK_Lap]
...so you cannot modify several graphs?
16:48:31 [KjetilK_Lap]
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_Lap]
... you will need to mix queries and update statements to do everything you need
16:50:48 [KjetilK_Lap]
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_Lap]
ericP: it should be accompanied by a media type?
16:51:58 [bijan]
bijan has joined #sparql
16:52:11 [KjetilK_Lap]
AndyS: we don't know yet if it will be transported over HTTP
16:54:35 [LeeF]
q?
16:54:36 [KjetilK_Lap]
SimonS: you say that the default graph should always exist
16:54:38 [KjetilK_Lap]
AndyS: that
16:54:55 [KjetilK_Lap]
AndyS: that's inherited from SPARQL/Query
16:56:31 [KjetilK_Lap]
AxelPolleres: LOAD can't just add to all graphs
16:56:44 [bglimm]
q+
16:57:03 [KjetilK_Lap]
SteveH: is load additive?
16:57:05 [KjetilK_Lap]
AndyS: yes
16:57:48 [KjetilK_Lap]
AxelPolleres: issues like concurrency, is that dealt with in the submission?
16:58:06 [KjetilK_Lap]
AndyS: yes, it says it is atomic, but the WG must address it
16:58:31 [AxelPolleres]
q?
16:59:13 [KjetilK_Lap]
AxelPolleres: graph store vs dataset, what?
16:59:31 [KjetilK_Lap]
AndyS: it is a difficult distinction, and I changed it many times
17:00:29 [KjetilK_Lap]
... you may have a huge system with many graphs, where you cannot access all graphs on any endpoint
17:00:49 [KjetilK_Lap]
... 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_Lap]
ack pgearon
17:02:18 [bijan]
bijan has joined #sparql
17:02:24 [KjetilK_Lap]
pgearon: you can have many FROMs, does that mean you delete triples from all graphs?
17:02:54 [KjetilK_Lap]
AndyS: it is unclear, but the idea was that you run the same operation on each graph
17:03:47 [KjetilK_Lap]
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_Lap]
bglimm: what is the default graph?
17:11:16 [KjetilK_Lap]
... it could be an empty ontology?
17:11:19 [KjetilK_Lap]
AndyS: yes
17:12:10 [AxelPolleres]
q?
17:12:17 [AxelPolleres]
ack bglimm
17:13:14 [KjetilK_Lap]
SimonS: do you have any idea of reusing any security mechanisms, and if so what?
17:13:26 [AxelPolleres]
q?
17:13:29 [KjetilK_Lap]
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_Lap]
...i.e. not in the data, on the endpoint
17:14:00 [KjetilK_Lap]
... you have security in Jetty, Tomcat, etc.
17:14:34 [AlexPassant]
http://arc.semsol.org/docs/v2/sparql+
17:15:01 [KjetilK_Lap]
AlexPassant: there are some differences in ARC2, which is sparql+
17:15:18 [KjetilK_Lap]
AlexPassant summarizes
17:15:19 [ericP]
q+ to talk describe grammar differences
17:16:07 [KjetilK_Lap]
AlexPassant: the main difference is INSERT DATA and DELETE DATA
17:16:32 [KjetilK_Lap]
s/INSERT INTO/INSERT 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_Lap]
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_Lap]
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_Lap]
LeeF: what would you get back?
17:23:02 [KjetilK_Lap]
AndyS: ask yourself: What would HTTP do?
17:23:11 [KjetilK_Lap]
...you get a response code?
17:23:19 [KjetilK_Lap]
s/\?//
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_Lap]
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_Lap]
...a minimal solution is to delete and insert triples in an existing graph
17:26:12 [KjetilK_Lap]
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_Lap]
...the basic functionality is pretty much the same
17:27:49 [KjetilK_Lap]
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_Lap]
... we should not directly to the solution
17:29:39 [KjetilK_Lap]
s/directly/jump directly/
17:30:48 [AxelPolleres]
q?
17:30:58 [SteveH]
q+
17:31:18 [pgearon]
+1 for changesets
17:31:21 [KjetilK_Lap]
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_Lap]
... 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_Lap]
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_Lap]
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_Lap]
SteveH: there is also the curl command line to easily do updates
17:39:18 [KjetilK_Lap]
... 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_Lap]
AxelPolleres: would this lightweight HTTP solution be SPARQL/Update
17:41:31 [KjetilK_Lap]
?
17:41:47 [KjetilK_Lap]
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_Lap]
+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_Lap]
LeeF: points back to his post about who put Update on the top
17:52:09 [KjetilK_Lap]
...can those come up with use cases?
17:52:25 [KjetilK_Lap]
ericP: one use case is Tabulator
17:52:47 [KjetilK_Lap]
...the other is that people were asking about it and I said "RSN"
17:53:52 [KjetilK_Lap]
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_Lap]
...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_Lap]
q+ uses it too
17:55:49 [KjetilK_Lap]
q+ to say we use it too
17:56:08 [AxelPolleres]
q?
17:57:18 [AlexPassant]
ttp://esw.w3.org/topic/PushBackDataToLegacySourcesRDForms
17:57:32 [KjetilK_Lap]
AlexPassant: we have a web2.0 app where people edit their data
17:58:01 [KjetilK_Lap]
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_Lap]
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_Lap]
ack me
18:00:54 [Zakim]
KjetilK_Lap, 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_Lap]
KjetilK_Lap: we have applications where we use all features of SPARUL
18:03:40 [KjetilK_Lap]
...not a lot of CLEAR GRAPHs, if we need that we usually do it on the command line
18:04:10 [KjetilK_Lap]
...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_Lap]
...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_Lap]
...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_Lap]
AxelPolleres: do we need to consider it in connection with entailment regimes?
18:07:46 [ericP]
delete them harder?
18:07:56 [KjetilK_Lap]
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_Lap]
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_Lap]
bglimm: basically, you start with scratch, take what you have and do inference from scratch
18:11:23 [KjetilK_Lap]
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_Lap]
LeeF: how long has SPARUL been in the wild?
18:13:50 [KjetilK_Lap]
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_Lap]
pgearon: it, or something like it has been in use for a while now
18:15:12 [KjetilK_Lap]
SteveH: SPARUL is technically older than SPARQL :-)
18:15:29 [LeeF]
technical difficulties
18:16:31 [LeeF]
q?
18:17:24 [KjetilK_Lap]
iv_an_ru:
18:17:31 [KjetilK_Lap]
eh, no, the older
18:17:35 [LeeF]
:)
18:18:11 [KjetilK_Lap]
AndyS: ivan was also pretty clear it should be a submission
18:18:53 [AxelPolleres]
q?
18:18:53 [KjetilK_Lap]
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 an interoperable so the more "official" it is the better :)
18:19:18 [iv_an_ru]
s/an/and/
18:19:36 [AxelPolleres]
q+
18:19:50 [KjetilK_Lap]
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_Lap]
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_Lap]
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_Lap]
AndyS: if we had a RESTy solution, would we get away with that?
18:25:20 [KjetilK_Lap]
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_Lap]
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:46 [LeeF]
ACTION: ericP to provide tabulator update use case on wiki
18:26:46 [trackbot]
Sorry, couldn't find user - ericP
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:14 [AxelPolleres]
LeeF: we should be aggressive on resolving ISSUES to progress
18:47:36 [KjetilK_Lap]
Topic: wrap-up
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_Lap]
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]
Ivan 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_Lap, 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)
19:04:25 [pgearon]
AndyS: quick question for you......
19:04:43 [AxelPolleres]
rrsagent, make minutes
19:04:43 [RRSAgent]
I have made the request to generate http://www.w3.org/2009/05/07-sparql-minutes.html AxelPolleres
19:05:11 [Zakim]
-MIT262b
19:05:12 [Zakim]
SW_(SPRQL-F2F)6:30AM has ended
19:05:13 [Zakim]
Attendees were EricP, iv_an_ru, JanneS, pgearon, kasei, LeeF
19:05:18 [pgearon]
I just want to confirm. Is SPARUL a completely separate language, or a superset of SPARQL (I'm expecting that it's separate)
19:05:53 [iv_an_ru]
It's separate because top level clauses differ, but internals are common.
19:06:26 [AndyS]
I didn't hear support for one language
19:06:34 [pgearon]
that's what I thought, but I wanted to be sure
19:06:56 [pgearon]
that will make it easier to split between GET and POST/PUT
19:07:17 [iv_an_ru]
No reason to support one, because supporting both costs almost the same.
19:07:51 [AndyS]
As long as it an issue.
19:07:58 [iv_an_ru]
Hm, what's the difference between GET and PUT w.r.t. SPARQL versus SPARUL?
19:08:10 [pgearon]
GET may not modify anything on the server
19:08:11 [iv_an_ru]
GET and POST
19:08:44 [pgearon]
PUT and POST may result in changes (hence, update)
19:09:09 [iv_an_ru]
In real life, nobody cares :) People send whatever in any request type.
19:09:53 [pgearon]
Maybe, but in Mulgara I'm strict about it
19:09:59 [iv_an_ru]
ETags are all unique or missing for SPARQL endpoint anyway.
19:10:48 [AndyS]
GET may not get to the far end
19:10:53 [pgearon]
I accept queries for either GET, POST, but updates are only allowed on POST. If you do any kind of update in a GET you will get an error
19:10:59 [iv_an_ru]
I was strict in rejecting ill TTL files at the beginning. Now I have ~8 "ignore this" and "recover that" parser flags :)
19:11:06 [SimonS]
SimonS has left #sparql
19:35:26 [kasei]
kasei has left #sparql
19:50:45 [LeeF]
RRSAgent, make logs world
19:53:06 [LeeF]
RRSAgent, pointer?
19:53:06 [RRSAgent]
See http://www.w3.org/2009/05/07-sparql-irc#T19-53-06
20:00:22 [pgearon]
pgearon has joined #sparql
20:56:10 [AxelPolleres]
AxelPolleres has joined #sparql
21:21:18 [Zakim]
Zakim has left #sparql
22:06:18 [KjetilK_Lap]
KjetilK_Lap has joined #sparql
23:34:57 [LeeF]
LeeF has joined #sparql