15:00:46 RRSAgent has joined #sparql 15:00:46 logging to http://www.w3.org/2010/07/30-sparql-irc 15:00:52 zakim, room for 10 for 90 minutes? 15:00:54 ok, LeeF; conference Team_(sparql)15:00Z scheduled with code 772775 (SPARQL) for 90 minutes until 1630Z 15:00:57 thanks, zakim 15:01:08 RRSAgent, make logs world 15:01:18 Meeting: SPARQL WG dedicated meeting on formal update model 15:01:20 Zakim, passcode? 15:01:20 the conference code is 772775 (tel:+1.617.761.6200 tel:+33.4.26.46.79.03 tel:+44.203.318.0479), bglimm 15:01:22 Team_(sparql)15:00Z has now started 15:01:29 +[IPcaller] 15:01:34 zkim, [IPCaller] is me 15:01:35 +pgearon 15:01:38 zakim, [IPCaller] is me 15:01:38 +AndyS; got it 15:01:46 +??P13 15:01:47 +Lee_Feigenbaum 15:02:00 +bglimm 15:02:06 Zakim, ??P13 is me 15:02:06 +AlexPassant; got it 15:02:11 Zakim, mute me 15:02:11 bglimm should now be muted 15:02:23 +Sandro 15:02:27 +[IPcaller] 15:02:39 Zakim, [IPcaller] is me 15:02:39 +kasei; got it 15:03:02 zakim, who's here? 15:03:02 On the phone I see AndyS, pgearon, Lee_Feigenbaum, AlexPassant, bglimm (muted), Sandro, kasei 15:03:04 On IRC I see RRSAgent, Zakim, AndyS, bglimm, LeeF, SteveH, AlexPassant, pgearon, iv_an_ru, karl, sandro, trackbot, kasei 15:03:07 AxelPolleres has joined #sparql 15:03:26 Scribenick: AndyS 15:03:56 LeeF: it's Friday ... 15:04:33 ... intent: find the approach for a formal model of update 15:04:50 +AxelPolleres 15:04:54 Zakim, who is on the phone? 15:04:54 On the phone I see AndyS, pgearon, Lee_Feigenbaum, AlexPassant, bglimm (muted), Sandro, kasei, AxelPolleres 15:05:05 ... goal - leave meeting with material for Paul and Alex (or other volunteer) to craft text 15:05:37 Lee: how does query's model work? 15:05:44 AndyS: you have a string in your hand - what is the right answer to come out? 15:05:54 ... 1. parse the syntax into an abstract syntax tree 15:06:12 ... (expands out syntax shortcuts, etc.) 15:06:28 ... 2. run a fixed algorithm to turn the abstract syntax into the algebra 15:06:32 ... 3. evaluate the algebra 15:06:44 +[IPcaller] 15:06:46 ... somewhat repetitive - close relationhsip between the terms in the algebra and their evaluation 15:06:51 Zakim, [IPcaller] is me 15:06:51 +SteveH; got it 15:07:50 LeeF - approaches include model theory, procedural style in SPARQL, other 15:08:31 ... suggestion: take the procedural style for SPARQL Update. 15:08:55 in principle, sounds fine, depends on how we define "procedural" 15:09:20 +1 to update mapping from one set/state to another 15:09:23 Paul, update are a mapping from GS to GS, variations of this (GS-1,2,3) 15:09:32 Paul: update are a mapping from GS to GS, variations of this (GS-1,2,3) 15:09:45 ... implementation follow the data structure style 15:10:07 .. there is potential disconnect there 15:10:19 LeeF: experience, prefer functional style 15:11:01 Input - http://www.w3.org/2009/sparql/wiki/Lees_Update_Graph_Model 15:11:15 have put some draft of what I think, which apart from the redefinition of Dataset should work in my mail http://lists.w3.org/Archives/Public/public-rdf-dawg/2010JulSep/0126.html I think Andy had some similar proposals in another mail... can't find it at the moment. 15:11:33 Input - http://lists.w3.org/Archives/Public/public-rdf-dawg/2010JulSep/0127.html 15:12:07 Paul: Mulgara is immutable structures for transactionality (single writer) 15:12:22 Andy, I think you had something more concrete on the semantics of various operations in some earlier mail, can't find it at the moment, maybe I misremember 15:12:40 LeeF: Spec helps for test cases - links formal defns to practical implementation 15:12:43 s/various operations/various update operations/ 15:13:14 /em coudl yo ufind it? was it http://lists.w3.org/Archives/Public/public-rdf-dawg/2010JulSep/0125.html [scribing...] 15:13:48 q+ 15:14:05 LeeF: is an update operation from GS to GS? 15:14:51 I thought "Graphstore" could also use the definition of dataset, meaning that a graphstore 15:14:51 is defined by a sequence of datasets DS_0 to DS_n determined by a sequence of 15:14:52 updates: Starting with DS_0 being the empty or initial dataset, 15:14:52 the "current dataset" after the n-th update is simply DS_n. 15:15:04 Sandro: what about GS-state to GS-state? 15:15:10 service <-> graphstore <-> state1 -> state2 -> state3 etc. 15:15:19 ack AxelPolleres 15:17:22 Axel: key is define state DS(n-1) -> DS(n) 15:17:43 LeeF: what is the state of a GS? is it a DS? 15:18:08 Axel: thinks that the state of a graph store should be representable as an RDF dataset 15:18:46 Is a GS-state the same as an RDF dataset? a pair of (graph, Set of Pairs of (Name, Graph)) 15:18:50 "state of a GS is a DS at a particular time" might be better 15:19:04 alex, works for me. 15:19:05 (graph, set of pairs, T) 15:19:23 so we have (graph, set of pairs, Ta) -> operation -> (graph, set of paris, Tb) 15:20:05 I used T_n T_n+1 to indicate that I mean that to be atomic, i.e time here being meant discrete, nothing happening in between 15:20:21 LeeF: do we agree that the state of a GS is a DS or similar? 15:20:25 I'm happy with that definition 15:20:53 agreed with that AxelPolleres (re. atomicity) 15:21:31 +1 this meeting is gathering advice for editors, not constraints for them. 15:21:45 LeeF: What is the concept of the time here? 15:22:16 Alex: discrete time, point-wise transitions to new state 15:22:58 GS - graph store 15:23:02 GSS - graph store state 15:23:05 DS - rdf dataset 15:23:12 Op - Update operation 15:23:15 Req - Update request 15:23:18 rather, a graphstore is a "state machine" that moves from one state to another by update operations. 15:23:30 Op - a function from GSS -> GSS 15:23:48 That is the service that is the state machine? Or is that the same? 15:24:01 so, op is the state transition function, which semantics we have to define in terms of pre and post state 15:24:06 Req is Op1, Op2, Op3 - GSS -> GSS - Op3(Op2(Op1(GSS0))) 15:24:23 +1 15:24:31 +1 15:24:35 +1 15:24:36 looks ok 15:24:37 +1 15:24:59 (it says to me the Req is atomic ++) 15:25:29 LOAD - http://www.w3.org/2009/sparql/docs/update-1.1/Overview.xml#t417 15:25:43 "http://www.w3.org/2009/sparql/docs/update-1.1/Overview.xml#t417" 15:25:52 LOAD [ INTO GRAPH ] 15:26:14 LOAD [ INTO GRAPH ] 15:26:14 this means 15:26:14 DS_{t+1} = DS_t union {(_t, G_)} 15:26:26 something like that... 15:27:36 why _t ? 15:27:38 DS1 is DS[0 with G replaced by GET 15:27:57 DS_{t+1} = DS_t union {(, G_)} 15:28:05 .. notation for graph in datatset? DS[g]? 15:28:31 DS_{t+1} = DS_t union {(, G_)} 15:28:41 DS_{t+1} = DS_t \ {(, old)} union {(, G_)} 15:28:47 if graph is already there... 15:28:58 LOAD [ INTO GRAPH ] 15:29:00 means 15:29:23 just take the old one out regard less with \ {(, any)} 15:29:34 +1 15:29:48 DS_t { .... (, G) ... } 15:29:50 => 15:30:17 some people have triplestore, not quadstores 15:30:31 DS_t+1 = { (, G merge G_) } 15:30:37 GRAPH ?g { } # test if graph exists 15:30:40 or alike 15:31:03 Sandro: is the difference between pairs and quads the existence of empty graphs? 15:31:08 AndyS: yes 15:31:11 sandro: is this observable? 15:31:14 AndyS: yes 15:31:30 -AlexPassant 15:32:21 CREATE GRAPH should cause GRAPH ?g {} to show 15:32:35 AndyS, could, not should 15:33:25 sandro: a no-op for CREATE will pass whatever test we have since implementations are allowed to prune empty graphs, so we should be able to define the semantics using quads 15:33:44 I agree with sandro, about defining in terms of quads would work, but I'm not sure it's easier 15:34:28 +??P2 15:34:31 Zakim, ??P2 is me 15:34:31 +AlexPassant; got it 15:34:46 do we need to devlare the behaviour of operations for both graph-aware and non-graph-aware stores? 15:35:35 Quads are an implmentation technique we should respect but the defn should be graphs as RDF is about graphs. 15:35:56 Quads have problems with the default graph. 15:36:41 sandro: do we have any way in the test suite setup of saying that either of 2 results would be ok? 15:36:51 AndyS: we have 1 case of that right now in query 15:36:53 q+ to ask/talk about update test cases 15:37:04 AndyS: there are 2 different tests to capture both possibilities 15:37:39 AndyS: we could divide places where they are different into 2 sets and implementers choose which set to run 15:37:44 +1 to not writing tests where their different :) 15:37:46 ... other option is not to write the tests where they are different 15:38:11 ack AxelPolleres 15:38:11 AxelPolleres, you wanted to ask/talk about update test cases 15:38:55 Another matter for quads is the lack of std quads format. 15:39:41 LeeF: could have two tests, one with pruning, one without 15:40:13 Axel: tests defined in state-before, ans state-after and mark tests "foro graph aware GS" 15:40:20 s/ans/and/ 15:40:31 s/foro/for/ 15:41:03 SELECT ?S ?P ?O WHERE { ?S ?P ?O OPTIONAL { GRAPH ?G {?S ?P ?O } } } would be an (ugly) way to query the graphstore state, if we assume graphstore tied to default dataset 15:41:15 ...what about if we said GRAPH ?g { } always returned nothing? 15:41:43 +1 15:41:56 SteveH, that would be a nonstarter for me, I believe 15:42:00 ok 15:42:42 CREATE GRAPH G --> if G exists, error or nothing ; else if GSS0 = (UG0, NGS0, T0) then CREATE(GSS0, G) = (UG0, NGS0 union (G, {}), T0+1) 15:42:50 in test cases we might need to distunguish the behavior of graph-aware and non-graph-aware update-endpoints 15:43:10 Confusing if GRAPH ?g { } = nothing but GRAPH ?G {?S ?P ?O } something 15:43:27 not really, but doesn't seem to be a popular idea 15:43:50 AxelPolleres, agree re. tests. 15:44:21 AndyS: the way to do this is to define the operations with empty graphs, and then note that implicit pruning may go on 15:44:39 I don't like the term "graph aware" FWIW, I think it's confusing 15:44:56 Axel: section on "graph aware" and "graph pruning" stores 15:45:07 or two sets of results, either of which is ok 15:45:14 (better to mention graph graphs) 15:46:07 sandro: concern of interoperability in the market 15:47:29 LeeF: looks like there is some work to be done but general direction is appearing 15:48:10 sandro: let's not formalize two classes of sparql end points (graph aware and non-graph aware), eg in the test suite, since doing so would fragment the market. 15:48:25 pattern -> solution sequence -> instantiate a sets of triples for each GRAPH mentioned (and dft graph) -> make changes 15:49:31 yes 15:49:32 sounds ok for me 15:50:26 missing considerations is my only concern at this point, but I can't think of any at the moment 15:50:32 -Sandro 15:50:34 -Lee_Feigenbaum 15:50:35 -bglimm 15:50:36 -AxelPolleres 15:50:36 AndyS, thanks for scribing 15:50:36 OK, thank you 15:50:36 -AlexPassant 15:50:49 -pgearon 15:50:53 -AndyS 15:50:54 bye 15:51:01 -SteveH 15:51:55 -kasei 15:51:56 Team_(sparql)15:00Z has ended 15:51:58 Attendees were pgearon, AndyS, Lee_Feigenbaum, bglimm, AlexPassant, Sandro, kasei, AxelPolleres, SteveH 16:05:43 AxelPolleres has left #sparql 16:22:28 RRSAgent: create minutes 16:22:28 I have made the request to generate http://www.w3.org/2010/07/30-sparql-minutes.html AlexPassant 17:15:13 SteveH has joined #sparql 18:13:16 SteveH has joined #sparql 18:32:21 Zakim has left #sparql 19:14:31 AndyS has joined #sparql 19:40:16 SteveH has joined #sparql 20:58:18 AlexPassant has joined #sparql 22:56:42 LeeF has joined #sparql 23:22:40 LeeF_ has joined #sparql