Chatlog 2009-07-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.

13:59:37 <RRSAgent> RRSAgent has joined #sparql
13:59:37 <RRSAgent> logging to
13:59:39 <trackbot> RRSAgent, make logs world
13:59:39 <Zakim> Zakim has joined #sparql
13:59:41 <trackbot> Zakim, this will be 77277
13:59:41 <Zakim> ok, trackbot; I see SW_(SPARQL)10:00AM scheduled to start in 1 minute
13:59:42 <trackbot> Meeting: SPARQL Working Group Teleconference
13:59:42 <trackbot> Date: 07 July 2009
13:59:51 <LeeF> zakim, this will be SPARQL
13:59:51 <Zakim> ok, LeeF, I see SW_(SPARQL)10:00AM already started
13:59:56 <LeeF> zakim, who's on the phone?
13:59:56 <Zakim> On the phone I see john-l, kasei (muted)
14:00:05 <LeeF> zakim, code?
14:00:05 <Zakim> the conference code is 77277 (tel:+1.617.761.6200 tel:+ tel:+44.117.370.6152), LeeF
14:00:28 <Zakim> +LeeF
14:00:42 <Zakim> +??P22
14:00:52 <KjetilK> Zakim, ??P22 is me
14:01:00 <Zakim> +KjetilK; got it
14:01:04 <Zakim> +pgearon
14:01:20 <Zakim> +??P25
14:01:23 <AndyS> zakim, ??P25 is me
14:01:24 <KjetilK> Zakim, mute me
14:01:37 <AndyS> AndyS has joined #sparql
14:01:40 <Zakim> +AndyS; got it
14:01:42 <Zakim> KjetilK should now be muted
14:01:43 <AndyS> AndyS has joined #sparql
14:01:46 <Zakim> +[IBM]
14:01:56 <ivanh> zakim, dial ivanh-voip
14:02:04 <Zakim> ok, ivanh; the call is being made
14:02:06 <Zakim> +ivanh
14:02:12 <LeeF> zakim, [IBM] is temporarily SimonKJ
14:02:19 <Zakim> +SimonKJ; got it
14:02:29 <SimonS> SimonS has joined #sparql
14:03:01 <LeeF> zakim, who's on the phone?
14:03:03 <Zakim> On the phone I see john-l, kasei (muted), LeeF, KjetilK (muted), pgearon, AndyS, SimonKJ, ivanh
14:03:40 <Zakim> +SimonS
14:04:03 <Zakim> +??P40
14:04:03 <LukeWM> LukeWM has joined #sparql
14:04:19 <Zakim> -??P40
14:04:22 <Prateek> Prateek has joined #sparql
14:04:40 <LeeF> Chair: LeeF
14:04:44 <LeeF> Scribenick: KjetilK
14:05:01 <Zakim> +??P42
14:05:11 <Zakim> +cory
14:05:19 <Prateek> +Prateek
14:05:19 <LukeWM> +??P42 is Garlik
14:05:22 <LeeF> zakim, cory is Prateek
14:05:23 <Zakim> +Prateek; got it
14:06:10 <LukeWM> Garlik has LukeWM,SteveH
14:06:39 <LukeWM> zakim,+??P42 is Garlik
14:06:39 <Zakim> sorry, LukeWM, I do not recognize a party named '+??P42'
14:06:52 <LukeWM> zakim, who is on the phone?
14:06:52 <Zakim> On the phone I see john-l, kasei (muted), LeeF, KjetilK (muted), pgearon, AndyS, SimonKJ, ivanh, SimonS, ??P42, Prateek
14:06:55 <john-l> Zakim, ??P42 is Garlik
14:06:57 <Zakim> +Garlik; got it
14:07:17 <LukeWM> zakim, Garlik has LukeWM,SteveH
14:07:22 <LeeF> topic: admin
14:07:24 <Zakim> +LukeWM, SteveH; got it
14:07:29 <LeeF> PROPOSED: Approve minutes at
14:07:56 <Zakim> +EricP
14:08:03 <KjetilK> LeeF runs through the agenda
14:08:21 <LeeF> RESOLVED: Approve minutes at
14:09:16 <LeeF> Next meeting: 2009-07-14 @ 15:00 BST / 10:00 EDT, ivanh to scribe
14:09:35 <alepas> alepas has joined #sparql
14:09:56 <LeeF> topic: liaisons
14:10:43 <Zakim> +??P50
14:10:54 <AlexPassant> Zakim, ??P50 is me
14:10:54 <Zakim> +AlexPassant; got it
14:11:01 <LeeF> topic: open actions
14:11:02 <LeeF>
14:11:14 <KjetilK> LeeF: nothing from the liasons
14:11:32 <LeeF> trackbot, close ACTION-28
14:11:32 <trackbot> ACTION-28 Provide tabulator update use case on wiki closed
14:11:48 <LeeF> trackbot, close ACTION-32
14:11:48 <trackbot> ACTION-32 Work with SimonS on explaining and comparing UNSAID and MINUS closed
14:11:57 <LeeF> trackbot, close ACTION-39
14:11:57 <trackbot> ACTION-39 Review F&R document closed
14:12:03 <LeeF> Regrets: Axel, Chimezie
14:12:28 <KjetilK> Zakim, unmute me
14:12:28 <Zakim> KjetilK should no longer be muted
14:13:00 <LeeF> trackbot, close ACTION-45
14:13:00 <trackbot> ACTION-45 Adopt one more additional syntaxe UNSAID or NOT EXISTS for negation closed
14:13:04 <KjetilK> thanks...
14:13:14 <LeeF> trackbot, close ACTION-46
14:13:14 <trackbot> ACTION-46 Review F&R closed
14:13:22 <LeeF> trackbot, close ACTION-50
14:13:22 <trackbot> ACTION-50 Work with Lee to publish FPWD of features & rationales closed
14:13:51 <LeeF> topic: Negation
14:14:12 <LeeF>
14:14:55 <KjetilK> Zakim, who is talking?
14:15:06 <Zakim> KjetilK, listening for 10 seconds I could not identify any sounds
14:15:28 <KjetilK> ericP: I can say something about the UNSAID and MINUS
14:15:42 <AndyS> q+ to disagree with that framing :-)
14:16:22 <pgearon> +1 for finding MINUS easier to figure out
14:17:06 <ivanh> q+
14:17:12 <LeeF> ack AndyS
14:17:12 <Zakim> AndyS, you wanted to disagree with that framing :-)
14:17:32 <KjetilK> LeeF: for the simple cases "find the people who doesn't have a homepage", are those the same?
14:17:37 <KjetilK> ericP: yeah
14:18:27 <LeeF> ack ivanh
14:18:45 <LeeF> NOT EXISTS == UNSAID 
14:20:01 <LeeF> EricP's mail comparing MINUS & UNSAID is
14:21:00 <KjetilK> AndyS: can you have a look at the negation design page and say where it starts to get confusing?
14:21:43 <KjetilK> LeeF: I think that <NOT%20EXISTS> owl:sameAs <UNSAID>
14:22:05 <KjetilK> ...for the purpose of this discussion
14:22:13 <pgearon> +q on syntactic use of MINUS
14:22:24 <KjetilK> AndyS: NOT EXISTS is always a filter
14:24:14 <LeeF> A. B. NOT EXISTS { C } . D. means Join(A . B) _then_ Filter out solutions compatible with Eval(C)  _then_ join with D ?
14:25:06 <KjetilK> ack pgearon
14:25:06 <Zakim> pgearon, you wanted to comment on syntactic use of MINUS
14:25:09 <LeeF> q+ to ask for more help understanding the difference :)
14:26:16 <AndyS> q+ to ask if there is a difference without OPTIONAL?
14:27:10 <KjetilK> LeeF: I think we need a deeper understanding of NOT EXISTS vs MINUS
14:27:12 <AndyS> AndyS has joined #sparql
14:27:34 <AndyS> kasei?
14:27:51 <kasei> yes?
14:28:09 <LeeF> matches == same variables bound to same values
14:28:23 <AndyS> You have UNSAID - does your experience help here to explain things?
14:28:59 <kasei> mine is implemented essentially as you've described yours, equivalent to a filter.
14:29:39 <kasei> with variable substitution from the result in the expr/bgp and then testing for existence.
14:30:03 <AndyS> An Example: ?a = "a" MINUS ?b = "b" is ????
14:30:28 <LeeF> q?
14:30:31 <LeeF> ack LeeF
14:30:31 <Zakim> LeeF, you wanted to ask for more help understanding the difference :)
14:30:38 <kasei> I would assume that would result in { a="a" }
14:30:47 <pgearon> same here
14:30:53 <AndyS> SPARQL-Join is ("a", "b")
14:31:05 <LeeF> A - {?a = "a"} MINUS B - {?a = "a"}
14:31:21 <LeeF> => no solutions
14:31:30 <LeeF> A - {?a = "a", ?b = "b"} MINUS B - {?a = "a"}
14:31:46 <LeeF> => no solutions
14:31:48 <ivanh> ?
14:32:12 <ivanh> why not ?b="b"
14:32:24 <SteveH> because you lose the whole solution
14:33:09 <LeeF> A - {?a = "a", ?b = "b"} MINUS B - {?a = "a", ?c = "c"}
14:33:09 <ivanh> aha, too
14:33:23 <pgearon> we're using the same "compatibility" test that a "join" uses
14:33:30 <LeeF> => no solutions
14:33:43 <ericP>
14:33:50 <LeeF> A - {?b = "b"} MINUS B - {?c = "c"}
14:34:21 <LeeF> joining would give {?b = "b", ?c = "c"}
14:34:21 <bglimm> bglimm has joined #SPARQL
14:34:28 <SteveH> no, I dont think so
14:34:33 <Zakim> +bcuencagrau
14:34:55 <bglimm> Zakim, bcuencagrau is bglimm
14:34:55 <Zakim> +bglimm; got it
14:35:08 <LeeF> """
14:35:09 <LeeF>  Definition: Compatible Mappings
14:35:09 <LeeF> Two solution mappings mu1 and mu2 are compatible if, for every variable v in dom(mu1) and in dom(mu2), mu1(v) = mu2(v).
14:35:11 <LeeF> """
14:36:13 <LeeF> => A
14:36:14 <pgearon> {?b = "b"} 
14:36:25 <SteveH> q+
14:36:42 <SteveH> I think you get { ?b = "b" } { ?c = "c" }
14:36:51 <LeeF> MINUS - for each solution A on LHS, remove it if there is at least one solution B on the RHS such that A and B are compatible and A and B share at least one variable in common in their domain
14:36:51 <SteveH> not { ?b = "b", ?c = "c" }
14:37:25 <pgearon> +q
14:37:28 <SteveH> q-
14:37:34 <AndyS> UNION gives  { ?b = "b" } { ?c = "c" }
14:38:00 <SimonS> q+
14:38:37 <AndyS> AndyS has joined #sparql
14:38:52 <KjetilK> ack AndyS
14:38:52 <Zakim> AndyS, you wanted to ask if there is a difference without OPTIONAL?
14:38:55 <LeeF> ack pgearon
14:38:59 <KjetilK> ack pgearon
14:39:12 <LeeF> q+ AndyS to ask if there is a difference without OPTIONAL?
14:40:33 <SimonS> q-
14:40:38 <bglimm> Zakim, mute me
14:40:38 <Zakim> bglimm should now be muted
14:41:09 <LeeF> q?
14:41:22 <LeeF> ack AndyS
14:41:22 <Zakim> AndyS, you wanted to ask if there is a difference without OPTIONAL?
14:42:22 <ericP> q+ to defend that SQL's is the same
14:42:34 <SteveH> +1 SQL's is the same
14:42:40 <LeeF> AndyS: there are 3 possible MINUS definitions
14:42:42 <LeeF> 1) SQL's
14:42:45 <LeeF> 2) antijoin
14:42:54 <LeeF> 3) antijoin + restriction on sharing a variable (what LeeF wrote above)
14:43:14 <pgearon> so it becomes a "set difference" operation in SQL
14:43:48 <kasei> +1 on "anti-optional" -- underneath, that's exactly how mine is implemented :)
14:44:31 <pgearon> I've mentioned this before, but I have a blog description of this "antijoin"
14:44:58 <pgearon> It's not necessarily well written, but I still think it's correct
14:45:27 <SteveH> sql example:
14:46:10 <AndyS> AndyS has joined #sparql
14:46:39 <ericP> q-
14:47:01 <AndyS> Steve - they are column compatible!
14:47:54 <pgearon> +1 about either approach working for me
14:48:40 <LeeF> AndyS: the one i find difficult is the pure antijoin where no variables in common means remove the solution
14:48:44 <SimonS> +1 that restriction on sharing a variable will get us into trouble
14:50:20 <KjetilK> AndyS: there is a problem of cardinality, if you have 3 on the LHS and 2 on the RHS, do you get 1 or 0?
14:50:28 <LeeF> kasei, do you have an opinion on this in general?
14:50:29 <KjetilK> ericP: I'd do what SQL does?
14:51:02 <kasei> I think you've gotten it right. I prefer unsaid (but not exists is, I believe, just syntactically different).
14:51:21 <kasei> ... and am confused/worried by the 3 different characterizations of minus.
14:51:30 <SteveH> UNION is horrible
14:52:21 <SimonKJ> q+
14:52:38 <pgearon> I think we have a general preference for either of LeeF's (2) or (3)
14:52:41 <LeeF> ack SimonKJ
14:54:30 <LeeF> SimonKJ: different approaches have significantly different impacts on query plans / optimizers, even if they'd give the same results
14:55:07 <SteveH> I would find it had to optimise NOT EXISTS as a FILTER in SQL
14:55:13 <SteveH> sorry, SPARQL
14:55:22 <pgearon> +1
14:55:34 <AndyS> An optimizer can do it how it likes - I do join/leftjoin like that.
14:55:46 <SteveH> yeah, but I don't
14:55:57 <SteveH> it would be a lot slower 
14:56:28 <AndyS> ??
14:56:58 <pgearon> I think that we should move it to the mailing list until everyone who wants to discuss it has their head around it
14:57:45 <KjetilK> LeeF: we go to Update
14:58:14 <KjetilK> LeeF: AndyS has asked if we could adopt the Member Submission as a starting point
14:58:26 <KjetilK> AndyS: are there any completely different approaches?
14:58:35 <SteveH> there's the explicit FILTER() form
14:58:47 <KjetilK> ...if there are, now it is the time to put it on the table
14:58:55 <ivanh> q+
14:59:00 <LeeF> ack ivanh
14:59:01 <SteveH> what about the diff-like syntax?
14:59:37 <SteveH> and/or DAV
15:00:02 <KjetilK> ivanh: the Member Submission has a lot of support allready, it is a starting point on its own merits
15:00:03 <pgearon> I agree with ivanh, SPARQL-Update is already implemented in a lot of places
15:00:47 <Zakim> -EricP
15:00:50 <Zakim> -ivanh
15:00:51 <Zakim> -john-l
15:00:52 <Zakim> -SimonKJ
15:00:53 <Zakim> -pgearon
15:00:56 <Zakim> -bglimm
15:00:58 <Zakim> -SimonS
15:01:00 <Zakim> -Prateek
15:01:02 <Zakim> -AlexPassant
15:01:04 <Zakim> -LeeF
15:01:04 <SimonKJ> SimonKJ has left #sparql
15:01:08 <Zakim> -KjetilK
15:01:10 <Zakim> -kasei
15:01:12 <Zakim> -AndyS
15:01:14 <Zakim> SW_(SPARQL)10:00AM has ended
15:01:16 <Zakim> Attendees were john-l, kasei, LeeF, KjetilK, pgearon, AndyS, ivanh, SimonKJ, SimonS, Prateek, LukeWM, SteveH, EricP, AlexPassant, bglimm