13:56:24 RRSAgent has joined #sparql 13:56:24 logging to http://www.w3.org/2010/05/27-sparql-irc 13:56:27 RRSAgent, make logs public 13:58:35 Team_(sparql)13:55Z has now started 13:58:41 +Lee_Feigenbaum 13:59:18 Just skyping up ... 13:59:32 +kasei 14:00:21 +[IPcaller] 14:00:35 zakim, [IPcaller] is me 14:00:35 +AndyS; got it 14:01:23 I'm being told that the code 77277# is not valid 14:01:30 MattPerry has joined #sparql 14:01:30 it's 772775# today 14:01:38 thanks 14:01:41 yup 14:01:46 I see it now 14:01:48 zakim, code? 14:01:51 the conference code is 772775 (tel:+1.617.761.6200 tel:+33.4.89.06.34.99 tel:+44.117.370.6152), LeeF 14:01:58 +pgearon 14:03:09 +MattPerry 14:04:07 http://www.w3.org/2009/sparql/docs/property-paths/Overview.xml#Outstanding_Issues 14:04:17 esp. duplicates. 14:04:32 +OlivierCorby 14:04:39 Scribenick: LeeF 14:04:43 I'll take it over 14:05:15 and I've got an issue/question to add to the list 14:05:19 AndyS: most important issue is the cardinality of results 14:06:22 ... other issues listed at http://www.w3.org/2009/sparql/docs/property-paths/Overview.xml#Outstanding_Issues 14:08:23 kasei: 0-length paths -- what are the possible nodes that can match the ends of that path? 14:10:18 ... if you have 2 variables on the end of a 0-length path, what do they match? document suggests infinite solutions 14:10:31 ACTION: Greg to send test cases for 0-length paths to mailing list 14:10:31 Created ACTION-251 - Send test cases for 0-length paths to mailing list [on Gregory Williams - due 2010-06-03]. 14:10:45 Zakim, mute me 14:10:45 kasei should now be muted 14:11:10 http://lists.w3.org/Archives/Public/public-rdf-dawg/2010AprJun/att-0275/Property_Path_Diagram.pdf 14:11:51 AndyS: in diagram 1, there are 2 simple paths from A to Z 14:11:58 ... no cycles in it 14:12:31 :A :p{2} ?Z :: how many answers 14:13:03 Do you get ?Z=:Z once or twice? 14:13:17 { :A :p ?X . ?X :p ?Z } 14:13:32 ... if you wrote that graph pattern explicitly, you'd get 2 answers 14:13:59 q+ 14:14:13 ack pgearon 14:14:35 pgearon: the way SPARQL works now, i expected to get 2 results out of this 14:14:48 ... i used to do set thinking everywhere, but had to change that thinking to be SPARQL-compliant 14:15:03 ... according to SPARQL thinking, I would really expect to see 2 results come out of this even though the extra variable is projected away 14:15:10 zakim, who is on the phone? 14:15:10 On the phone I see Lee_Feigenbaum, kasei (muted), AndyS, pgearon, MattPerry, OlivierCorby 14:15:18 { :A :p [ :p ?Z ] } also has 2 results 14:16:11 AndyS: think it's not that hard to implement because a breadth-first search will get you the right answers 14:17:52 14:18:12 Diagram 2: { :A :p{2} ?Z } 14:18:42 AndyS: in diagram 2, the same pattern ... 14:18:48 ... you get the same answers form diagram 1 14:18:58 ... but there's also A->C->C 14:19:16 ... so there is a solution with ?Z=:C ? 14:19:53 AndyS: ?Z=:C is not a simple path solution, because you've gone around a loop 14:20:03 pgearon: but no potential to get confused between paths? 14:20:32 AndyS: using technical sense of "simple path" from graph theory 14:21:19 bglimm has joined #sparql 14:21:30 http://en.wikipedia.org/wiki/Graph_%28mathematics%29 14:21:36 http://en.wikipedia.org/wiki/Path_(graph_theory) 14:22:34 AndyS: I think there should be 3 solutions, ?Z = :Z, :Z, :C 14:22:49 +1 to 3 solutions 14:22:56 Diagram 2: { :A :p{3} ?Z } 14:23:23 ... excludes the A->B->Z route 14:23:34 A->C->C->C 14:23:38 A->C->C->Z 14:24:23 pgearon: I get into trouble here because when I see a loop I start dropping off 14:25:04 Diagram 2: { :A :p* ?Z } 14:25:11 Diagram 2: { :A :p* ?end } 14:26:14 { :A :p{3} ?Z } == { :A :p ?e . ?e :p ?f . ?f :p ?end } 14:26:25 What happens if we say that fixed-length property paths have exact cardinality requirements but variable-length paths (* or +) have distinct cardinality semantics? 14:27:50 I like Lee's idea 14:29:06 AndyS: sounds like a reasonable scheme, we should do it by defining the cardinality for each operator 14:29:06 elt{n,} 14:29:25 elt{n,m} 14:30:30 LeeF: expect that patterns that can be viewed as a shortcut for a fixed length expression should have the same cardinality as the fully expended expression 14:31:05 Diagram 2: { :A :p* ?Z } 14:31:06 PROPOSED: Fixed-length path solutions should be the same as their expansion in triples with all variables projected; variable-length paths have distinct cardinality semantics 14:31:12 LeeF: patterns that have an unbounded length with have a cardinality based on ignoring repeated nodes that appear in loops 14:32:08 Not distinct as in "only one ?Z"... distinct as in "don't add more from following loops" 14:32:14 {:A :p{2,} ?Z} 14:32:15 AndyS: not sure how to say that 14:32:44 Diagram 2: {:A :p{4,} ?end } 14:33:25 How about number of paths that do not repeat a node? 14:33:59 { :A :p{3} ?Z } == { :A :p ?e . ?e :p ?f . ?f :p ?end } 14:34:18 MattPerry: use the criteria of not repeating a node for the unbounded cases 14:34:29 AndyS: so finite ones would still be expansion into alternatives 14:34:49 :p{2,3} =?= :p :p :p? 14:35:30 elt{n,} 14:35:43 elt{n} 14:35:50 :p{2,} =?= :p :p :p* 14:36:20 card(elt{n,}) is card(elt{n}) + card(paths longer than n that don't repeat a node) ? 14:36:49 i don't envy having to come up with spec text for that... 14:36:50 { :A :p ?Z } = { { :A :p ?e . ?e :p ?Z } UNION { :A :p ?e . ?e :p ?f . ?f :p ?Z } } 14:37:28 s/:p/:p{2,3} 14:37:46 corrected to: { :A :p{2,3} ?Z } = { { :A :p ?e . ?e :p ?Z } UNION { :A :p ?e . ?e :p ?f . ?f :p ?Z } } 14:38:50 lhs results = Z, Z, C 14:38:55 LHS: A-B-Z, A-C-Z, A-C-C 14:39:00 card(elt{n,m}) = SUM(i = n to m) of card(elt{i}) ? 14:39:26 sounds right 14:39:35 RHS: A-C-C-Z, A-C-C-C 14:40:24 This may be a new motivation for people to start using REDUCED 14:40:27 :) 14:42:39 { :A :p{2,} ?Z } = { { :A :p ?e . ?e :p ?Z } UNION { :A :p+ ?Z MINUS { { :A :p ?Z } UNION { :A :p ?Z } } } 14:43:12 { :A :p{2,} ?Z } = { { :A :p ?e . ?e :p ?Z } UNION { :A :p+ ?Z MINUS { :A :p ?Z } } } 14:43:28 Zakim, unmute me 14:43:28 kasei should no longer be muted 14:43:40 AndyS: MINUS messes up cardinality 14:45:47 I had originally thought of :p{2,} as being :p+ minus the 1-step case 14:46:10 PROPOSED: The cardinality of solutions to fixed-length paths is the same as the cardinality of solutions to the path expanded into triple patterns (with all variables projected); the cardinality of solutions to variable-length paths is the cardinality of solutions via paths that do not repeat nodes; the cardinality of solutions to paths combining fixed anv ariable length (elt{n,} ) is a combination of the fixed definition plus the variable definition for paths long 14:46:27 but the new approach has me thinking that the :p{2,} as being a mix between two types of cardinality rules 14:47:50 { :A :p{2,} ?Z } = { { :A :p ?e . ?e :p ?Z } UNION { :A :p+ ?Z MINUS { { :A :p ?Z } UNION { :A :p ?e . ?e :p ?Z } } } 14:50:30 zakim, who's on the phone? 14:50:30 On the phone I see Lee_Feigenbaum, kasei, AndyS, pgearon, MattPerry, OlivierCorby 14:51:25 { :A :p{2,} ?Z } 14:51:37 { :A :p+ ?Z MINUS { { :A :p ?Z } UNION { :A :p ?e . ?e :p ?Z } } } 14:51:55 { :A :p ?Z } 14:52:11 { :A :p{2,} ?Z } ==> { :A :p/:p ?x . ?x :p* ?Z } ?? 14:53:35 :p/:p is just :p{2}? 14:53:58 A->C->Z->Q 14:53:58 A->Q 14:55:04 This conference is in overtime; all ports must be freed 14:55:45 zakim, extend conference 14:55:45 I don't understand 'extend conference', LeeF 14:56:00 zakim, 60 more minutes 14:56:00 I don't understand '60 more minutes', LeeF 14:56:25 :p+ will result in bindings C, Z, Q, Q 14:58:21 -Lee_Feigenbaum 14:59:05 what about (p1/p2/p3)* where p1/p2 stay on same node ? 15:00:42 (:p{3})* 15:02:13 issue is whether repeated nodes restriction affects internal nodes of (p1/p2/p3) when considering a pattern of (p1/p2/p3)* 15:02:19 (p1/p2/p3) 15:02:50 I would say treat (p1/p2/p3) as a unit and don't repeat that 15:03:28 AndyS: best approach is to provide more detailed description and try test cases 15:04:11 next issue 15:04:17 Zakim, mute me 15:04:45 ?a !(rdf:type) ?b 15:04:46 kasei should now be muted 15:05:11 ?x ! ( rdf:type | ^rdf:type)* ?y 15:05:55 AndyS: can I find a connection between two individuals, but I don't want to find the connection by going up the class hierarchy 15:06:07 what is the issue here? 15:06:47 AndyS: issue is complexity of implementation 15:06:52 ?x (!( rdf:type | ^rdf:type)) * ?y 15:07:29 [^A-Z] 15:08:58 yeah, seems reasonable 15:09:14 !( rdf:type | ^rdf:type) 15:09:21 !(...) 15:09:26 AndyS: Seems like a reasonable thing to want. Will people consider it for possible problems? 15:09:50 chaining of the unbounded modifiers scares me: (!(:p+))* 15:10:07 Zakim, unmute me 15:10:07 kasei should no longer be muted 15:10:43 and we consider ^:p as a single thing? 15:10:57 Can it be re-expressed as: { ?x (! rdf:type)* ?y } UNION { ?y (! rdf:type)* ?x } ??? 15:11:37 probably not if you combine it with more complex paths 15:13:22 :X :type :Y ^:type :Z 15:13:36 +1 for this 15:14:14 I think the analog to [^abc] is the right guide here. just atomic things inside the negation. 15:14:31 +1 to kasei 15:14:41 +1 to kasei 15:14:49 well, atomic with | 15:15:21 AndyS: will write a proposal for that 15:16:21 PROPOSED: Add negated property class (c.f regex [^abc]) where the negated property set is a a distjunction of fwd and backward properties only 15:17:31 \ 15:17:47 ☃ 15:17:54 return of the snowman 15:17:57 ~ 15:19:14 AndyS: next issue - the one about lengths 15:19:19 is there a syntax proposal for that? 15:20:10 I don't know how useful the length is without the actual path 15:20:25 AndyS: gets more complex with syntax, and also now you have to consider the actual path taken 15:21:47 pgearon: can't see how useful it is without an actual path description, which you could get the length from directly. 15:22:03 PROPOSED: time constraints on the WG mean we will not support path length in this cycle. 15:22:17 +1 for that 15:22:20 +1 15:22:20 PROPOSED: time constraints on the WG mean we will not support path length in this working group 15:23:19 AndyS: only way to consider this would be if someone showed up with a concrete proposal on how this is to be done 15:23:56 well, or it works if we have path lengths :) 15:24:27 AndyS: new issue - results ordered by list 15:25:13 AndyS: ordering is a difficult issue since it won't be preserved through the rest of the query execution 15:25:39 AndyS: knows that some people have been relying on the fact that lists are returned in order in his implementation, but they've been lucky so far 15:26:12 pgearon: to preserve ordering we need some kind of "list" object in results 15:26:27 PROPOSED: WG will not consider ordering nor preserving ordering or results from property paths 15:26:46 s/or/of/ ? 15:27:01 bglimm has joined #sparql 15:27:10 +1 15:27:14 +1 15:27:18 +1 15:27:21 AndyS: for more complicated expressions it gets too hard to ensure that ordering is preserved 15:27:23 +! 15:27:26 +1 15:28:46 bglimm has left #sparql 15:29:07 bglimm has joined #sparql 15:29:13 bglimm has left #sparql 15:29:26 bglimm has joined #sparql 15:29:39 ?x :p^:q ?y 15:29:47 ?x :p/^:q ?y 15:29:53 no. prefer unary /^ 15:30:04 +1 for unary 15:30:07 AndyS: is anyone keen to have a binary hat as opposed to unary (examples above) 15:30:26 +1 for unary 15:30:32 +1 for unary 15:30:49 PROPOSED: Only unary ^, no binary ^ 15:30:58 +1 15:31:01 +1 15:31:05 +1 15:31:21 +1 15:31:28 ?x ^:q ?y 15:31:47 x :p/^:q ?y 15:32:16 ?x :p^:q ?y 15:33:43 Doc says :: elt1 ^ elt2 Shorthand for elt1 / ^elt2, that is elt1 followed by the inverse of elt2. 15:34:32 does ^ apply to property only or also to expression 15:35:35 pgearon: since ^ is just a convenient shorthand for /^ then I would like the option of dropping the / 15:36:40 ^uri 15:36:53 Maybe only allow ^uri, not ^expression 15:37:20 I'd prefer the ^uri form only, but haven't thought out the implications. 15:37:23 +1 for only ^uri 15:37:30 ?x ^expr ?y == ?y expr ?x 15:37:40 I'd like ^?var 15:38:09 except the ^ doesn't have to be the outtermost operator 15:40:16 AndyS: thinks that it's OK, since once you get to the ^ part then you just have to change the direction around at that point 15:40:41 ^(p1/p2/p3) == (p3/p2/p1) ? 15:41:17 right, so that's not just switching the endpoint nodes. that's flipping the insides of the expression. 15:42:08 ?x ^(p1/p2/p3) ?y :: ?y p1/p2/p3 ?x :: ?x ^p3/^p2/^p1 ?y 15:44:04 AndyS: all 3 of these should be equivalent 15:47:31 AndyS: new issue: relationship with inference 15:47:57 AndyS: can get nasty with more than one part of the system trying to do transitivity 15:48:00 I don't understand the issue. 15:48:41 Zakim, passcode? 15:48:41 the conference code is 772775 (tel:+1.617.761.6200 tel:+33.4.89.06.34.99 tel:+44.117.370.6152), bglimm 15:49:08 is the issue cardinality? 15:49:43 Oops:: bglimm, we don't know how to fix it. 15:49:52 Zakim thinks our call ended 50 minutes ago... 15:50:03 and we are about to be evicted anyway I guess 15:50:38 We will take the entailment interaction to the list for ENT+PP discussion 15:50:44 ok 15:51:09 I can try and ask Zakim for a room? 15:51:24 Zakim, room for 10? 15:51:26 ok, bglimm; conference Team_(sparql)15:51Z scheduled with code 772775 (SPARQL) for 60 minutes until 1651Z 15:52:32 Hm, doesn't work, I'll follow the list then 15:53:47 is the doc even defined with vars right now? 15:54:54 not currently 15:55:54 ADJOURNED 15:56:05 -kasei 15:56:09 -MattPerry 15:56:10 talk to you all Tuesday 15:56:11 -AndyS 15:56:13 -OlivierCorby 15:56:17 -pgearon 15:56:19 Team_(sparql)13:55Z has ended 15:56:21 Attendees were Lee_Feigenbaum, kasei, AndyS, pgearon, MattPerry, OlivierCorby 16:16:39 rrsagent, make minutes public 16:16:39 I'm logging. I don't understand 'make minutes public', AndyS. Try /msg RRSAgent help 16:17:33 OK - which bot makes the IRC log public? 16:45:39 Ah - already public. Done. 16:53:08 AxelPolleres has joined #sparql 17:12:05 AxelPolleres has left #sparql 17:48:45 AxelPolleres has joined #sparql 19:53:30 bglimm has joined #sparql 20:47:47 AndyS has joined #sparql 23:02:39 LeeF has joined #sparql