07:28:11 RRSAgent has joined #dawg 07:28:11 is logging to http://www.w3.org/2005/01/19-dawg-irc 07:28:14 Zakim has joined #dawg 07:29:01 Topic: Convene, take roll, review records and agenda http://www.w3.org/2001/sw/DataAccess/ftf4.html#agenda 07:33:11 present: Alberto, Dave, Yoshio, Hiroyuki, Andy, Steve(n), Janne, EricP, DanC 07:33:43 expected: Kendall 07:37:12 SteveH has joined #dawg 07:40:23 about to accept http://lists.w3.org/Archives/Public/public-rdf-dawg-comments/2005Jan/0010.html 07:40:42 with the amendment of DONE: SteveH is willing to adapt his testing infrastructure to generate input/output RDF/XML and typed nodes into manifest file 07:40:45 accepted 07:44:42 running through the issues on the poll page 07:47:36 AlbertoR has joined #dawg 07:48:33 multiple prefixes issue 07:49:20 [1] Query ::= PrefixDecl* ReportFormat PrefixDecl* FromClause? WhereClause? 07:53:32 AndyS has joined #dawg 07:56:26 there's position for one declaration block in the very beginning and a position for declaration block in multiple places. 07:56:51 The latter position assists developers writing queries by enabling in-line prefix declarations 07:59:49 Yoshio has joined #dawg 08:00:20 use case for the latter position: construct clause authoring becomes easy if prefix decls are allowed in the middle of the query 08:06:16 Andy notes there's a link between allowing prefix declarations "everywhere" if other syntax (e.g. turtle) is to be adopted 08:06:22 PROPOSED: to address issue prefixSyntax by limiting prefix declarations to one place in the grammar, at/near the beginning 08:06:50 so RESOLVED. 08:07:53 --- unsaid issue --- 08:08:09 folks are asked to revisit http://www.w3.org/2002/09/wbs/35463/issues-ftf4/ 08:09:46 objective (not a requirement) is http://www.w3.org/TR/2004/WD-rdf-dawg-uc-20041012/#d4.3 08:12:10 HiroyukiS has joined #DAWG 08:14:30 DaveB has joined #dawg 08:21:39 (RDF and relational databases http://www.w3.org/DesignIssues/RDB-RDF.html -> http://www.w3.org/2000/10/swap/dbork/dbview.py ) 08:31:33 the simplest form of unsaid can be done with optionals 08:31:50 look for (s, p, o) and determine whether there is binding in the result for o 08:32:01 SELECT ?x WHERE [(?x ex:age ?y] AND !bound(?y) 08:33:01 str-less-than(?x, "abc") 08:34:57 previous examples try demonstrate how functions use evaluated values i.e. values take expressions as values. Is bound() a different type of function? 08:35:20 s/values take expressions/functions take expressions/ 08:38:02 dan argues for bound() taking us out of the scope of querying positive information encoded in RDF graphs 08:38:25 so you are object to bound(), dan? 08:39:21 well, I strongly prefer to avoid it, yes. 08:40:18 steve suggests the bound() form is more explicit and more effective to evaluate than unsaid 08:40:32 eric mentions the explicitness is there with unsaid, evaluation might be more effective 08:43:17 (augmenting previous comment: the simplest form of unsaid can be done with optionals + bound() built-in function) 08:48:35 ref prime uc http://lists.w3.org/Archives/Public/public-rdf-dawg-comments/2004Nov/0016.html 08:52:44 select ?x where (?x rdf:type :Person) [(?x ex:phone ?phone)] AND !bound(?phone) 08:54:58 negating bound() might need to have huge number of bindings before negating... (am I wrong?) 08:56:32 on the other hand, UNSAID could be faster (just knowing non-existance suffices) 08:56:44 bound() definition should be formalized to be a function evaluation over a result, not over an RDF graph 08:58:22 isBound() is now defined in http://www.w3.org/2001/sw/DataAccess/rq23/#sparqlTests 09:00:34 which is section 11.2.2 SPARQL specific operations 09:06:29 Yoshio: IMO bound() constraint function can be pushed down to the DB level if necessary - a query optimizer will be able to pick them up quite efficenlty and sort query patterns accordingly 09:07:19 ok, forget my comment 09:08:15 Alberto - agreed - the Q is whether it is to be blessed in a spec 09:08:45 It's "use case" vs "architectural semweb" points of view 09:09:35 ok Andy I see the point here - but we do not have particular UC to offers here :) 09:11:36 I would rather say things like fn:not( fn:contains( ?val, "foo" ) ) - i.e. do not care about unbound vars - but about values. OPTIONALs will take care of unbounds to me 09:13:07 "If the atomized operand is an empty sequence, the result of the arithmetic expression is an empty sequence" 09:14:19 DanC: so one way to specify isBound is as a function of a solution and a variable(name) 09:16:26 http://lists.w3.org/Archives/Public/public-rdf-dawg/2004OctDec/0554.html data consistency tests with UNSAID and OPTIONAL 09:22:47 { log:uri "http://example" } 09:23:05 (we're into useMentionOp to some extent) 09:23:59 554.html has some redundancy to it. the 2nd OPTIONAL query does not mimic UNSAID but the OPTIONAL clause does not influence the query result at all. 09:24:37 554.html the op:URIequals is probably needed in addition to isBound() 09:25:22 ISBOUND ?X 09:26:16 uri() to get "http://example/" 09:26:18 insolution 09:26:46 inresult 09:27:21 uri(?y) =~ "http://example" 09:28:02 here's the point of having explicit casting vs. implicit casting 09:28:08 1.171 gives isBound(?y) 09:28:43 considering: BOUND ?y 09:29:14 grammar wiki for sparql --> http://www.w3.org/2005/01/yacker/uploads/sparql_rdql/bnf?markup=html 09:29:29 (new and improved, by some measurements) 09:31:10 PROPOSED: name() fn to map URIs to strings; ISBOUND keyword; no UNSAID. and =~ does not apply to URI terms. to address useMentionOp and UNSAID issues 09:31:28 PROPOSED(dc2): name() fn to map URIs to strings; BOUND keyword; no UNSAID. and =~ does not apply to URI terms. to address useMentionOp and UNSAID issues 09:32:07 PROPOSAL: str(fn) to map URIs (and other things) to string 09:32:32 PROPOSAL: BOUND keyword and no UNSAID to address common UNSAID issues 09:33:39 http://www.w3.org/2005/01/yacker?name=sparql_n3&replace=1&lang=perl#prod-sparql-PrimaryExpression 09:33:52 what's the difference between having UNSAID and having BOUND as keywords? 09:35:39 Yoshio: unsaid's a keywoard attached to a triple pattern, BOUND's part of the constraint or exppression evaluation 09:36:07 it's not entirely clear that there's an expressivity difference, yoshio. 09:36:26 (logistics ahead-note: break for lunch at 11:50) 09:36:30 Zakim has left #dawg 09:37:06 UNSAID is more basic concept than BOUND in RDF point of view, no? 09:37:22 well, it's a matter of taste 09:37:39 danc, http://www.w3.org/2005/01/yacker/uploads/sparql_n3/bnf?markup=html#prod-sparql-PrimaryExpression 09:38:22 (added 'bound' to the grammar) 09:38:31 (and wrestled with my cache) 09:41:46 question: AND ?x =~ "http://example/*" 09:41:51 question: 1 + 1.5 09:43:32 what about ?x = 09:43:33 DanC: ok, casting between floats and ints is sane, but I don't like "casting" between use and mention 09:44:19 and ?x = "http://example 09:44:21 " 09:44:54 feeling is first to succeed, 2nd fail 09:47:05 RESOLVED: BOUND keyword and no UNSAID to address common UNSAID issues 09:48:32 new issue: valueTesting 09:50:01 grammar with BOUND and no UNSAID --> http://www.w3.org/2005/01/yacker/uploads/sparql_n3/bnf?markup=html 09:50:31 considering: AND 1.5 = 1.4999999999999 09:50:41 that seems close enough for me 09:51:15 never mind 09:51:25 considering: AND 1.5 == 1.4999999999999999 09:51:47 and float(3.0) = 3.0 09:52:16 editors don't think rq23 1.171 answers the 1.49999 case 09:52:18 See http://www.w3.org/2001/sw/BestPractices/XSCH/xsch-sw/ 09:52:55 let's not do comparison with = if we later need to add assignments for reasons x, y and z => stick with == 09:53:18 and http://www.w3.org/2001/sw/BestPractices/XSCH/xsch-sw/#sec-values-eq 09:55:44 input: { a b c } select ?x where 1 math:equal 1. # lose 09:56:05 input: { a b c } + . select ?x where 1 math:equal 1. # win 09:56:15 oops. literals as subjects. 09:57:18 considering: AND ?x + 1 < 3 09:57:43 { [ is math:sum of (?x 1)] math:lessThan 3 } 10:00:09 PROPOSAL: str(fn) to map URIs (and other things) to string and =~ does not implicitly cast URIs to strings (nor do other operators) 10:01:53 RESOLVED. 10:02:06 ACTION EricP: update rq23 w.r.t. str() 10:02:17 ACTION SteveH: propose tests for str() and =~ 10:02:38 ACTION EricP: update rq23 w.r.t. BOUND/UNSAID 10:03:01 note to self: need tests for bound 10:03:26 ACTION DaveB: draft tests for BOUND (based on ericp's examples) 10:03:47 ------- Lunch 10:04:02 DaveB scribe 10:04:29 F&O string matching --> http://www.w3.org/TR/2004/WD-xpath-functions-20041029/#string.match 10:04:31 resume at 1:30p 11:20:18 AlbertoR has joined #dawg 11:21:25 about to resume 11:23:07 Yoshio has joined #dawg 11:30:05 AndyS has joined #dawg 11:30:47 HiroyukiS has joined #DAWG 11:33:03 Unicode Case Mapping document http://www.unicode.org/reports/tr21/tr21-5.html 11:34:31 Alberto, F&O string matching --> 2159: 11:36:05 continuing 11:36:06 SOURCE 11:38:55 re http://lists.w3.org/Archives/Public/public-rdf-dawg/2005JanMar/0022.html 11:38:58 steveh proposal 11:42:43 **** Graph 11:42:44 :a :b :c1 11:42:44 **** Graph 11:42:44 :a :b :c2 11:42:44 **** Unnamed 11:42:44 :a :b :c3 11:42:46 SELECT ?c WHERE (:a :b ?c) 11:43:15 --- 11:43:30 SteveH's proposal, 3 answers ?c binds to c1, c2, c3 11:43:46 design in document says you'll get c3 11:43:53 [unnamed graph proposal] 11:44:23 this is the old work supporting Steve views - http://www.rdfstore.org/dawg-testcases/ (see results.html and data/ dir ) 11:50:08 steveh - example, looking for an rdfs:label value for a uri, for presentation purposes. mostly don't care where it came from 11:50:19 ... sometime you do, like a person's name - want to know who said that 11:50:38 ... so will look at the source of that triple 11:50:43 ... in a store with thousands of graphs 11:50:53 ... don't want to do SOURCE * 11:52:08 EricP: Annotea has multiple graphs (they can be named or not) and default serach returns all results in query above 11:53:24 consider swh design, default graph (SOURCE not mentioned) is always the union of all graphs 11:54:14 discussion of what is default graph (when there's no SOURCE) 11:54:35 could be union of all known (named) graphs; could be just those given in FROM 11:55:27 or, could say 3store default query graph includes rdf-merge [union] of all graphs it knows 11:59:54 suggestions: default query graph, background query graph, background knowledge base 12:00:30 AndyS: swh proposal cannot express some of the trusted/untrusted graphs examples from timbl, the log;semantics/includes stuff 12:00:36 wonders why we moved from "Named Containers" proposal to "Untrusted graphs" later - the former looked good, even if there were a few issues to discuss if the system was quads based vs. triples based 12:01:29 i.e. http://lists.w3.org/Archives/Public/public-rdf-dawg/2004JulSep/0581.html vs. http://lists.w3.org/Archives/Public/public-rdf-dawg/2004OctDec/0421.html 12:02:22 "Named Containers" says the default KB is the merge of graphs : "Untrusted Graphs" has the default KB as just another graph (with no explicit URI) 12:03:10 ericp: BKB is a set of graphs, but... 12:03:49 actually digging into email archive is about http://lists.w3.org/Archives/Public/public-rdf-dawg/2004JulSep/0581.html design vs. http://lists.w3.org/Archives/Public/public-rdf-dawg/2004OctDec/0373.html 12:04:36 ?? BKB is a set of [RDF graph, name] pairs 12:05:03 That is "RDF dataset" 12:05:35 http://www.w3.org/2001/sw/DataAccess/rq23/#choosing 12:05:47 See defn of "RDF dataset" 12:09:06 AndyS: BKB is an rdf graph... 12:10:14 discussing [ 12:10:16 Definition: RDF Dataset 12:10:16 An RDF Dataset is a collection of RDF graphs comprising a single, unnamed graph, and a collection of named graphs. Graph names are URI References (URIrefs) 12:10:17 ] 12:10:40 AndyS: deliberately collection not set so you could have dups, give multiple names for same thing 12:11:59 issue with "same rdf graph" since reading same uri gives differnet rdf graphs (bnode names etc.) 12:13:02 suggestion change unnamed graph to background kb 12:14:01 .. to background graph 12:14:54 tests for this 12:14:59 semantics of manifest 12:15:08 loading data files into bg graph or other? 12:16:07 manifest - need to be able to set names for graphs 12:16:32 this my old proposal http://lists.w3.org/Archives/Public/public-rdf-dawg/2004OctDec/0181.html (a part the bNodes as graph names issues) 12:16:42 manifest - need to be able to say where the graph loads - into backgrouund graph or foreground (!) graph 12:19:06 and in the tests proposal, if you assume a graph-name is a URI (not a bnode) you can in fact s/qt:metadata/qt:data/ 12:20:50 assuming each qt:data triggers an add-source() for it value e.g. qt:data will trigger foo.rdf triples to be SOURCEd to 12:23:52 AndyS - rq23 sec9 words - no impl of loading, it's just a URI 12:25:07 PROPOSED: to revise "unnamed" terminology and adopt the design in the tests http://www.w3.org/2001/sw/DataAccess/tests/data/source-named/ and http://www.w3.org/2001/sw/DataAccess/tests/#source-query-001 2 3 & 5 [...] 12:26:00 PROPOSED: to revise "unnamed" terminology, enhance test manifest, and adopt the design in the tests http://www.w3.org/2001/sw/DataAccess/tests/data/source-named/ and http://www.w3.org/2001/sw/DataAccess/tests/#source-query-001 2 3 & 5 [...] 12:34:44 PROPOSED: to revise "unnamed" terminology, enhance test manifest, and adopt the design in the tests http://www.w3.org/2001/sw/DataAccess/tests/data/source-named/ and http://www.w3.org/2001/sw/DataAccess/tests/#source-query-001 2 3 & 5 [...] (note FROM/GRAPH are hints w.r.t. SOURCE) 12:35:59 PROPOSED: to revise "unnamed" terminology, enhance test manifest, and adopt the design in the tests http://www.w3.org/2001/sw/DataAccess/tests/data/source-named/ and http://www.w3.org/2001/sw/DataAccess/tests/#source-query-001 2 3 & 5 [...] (note FROM/GRAPH are hints w.r.t. SOURCE) (test bytes to be approved later) 12:36:28 so RESOLVED. 12:36:31 woo 12:36:55 ACTION AndyS: revise "unnamed" terminology 12:37:12 ACTION SteveH: revise test manifest w.r.t. "background" and named graphs 12:37:59 :t1 t:dataset ( ( )) 12:39:51 ACTION DaveB: propose source test to approve 12:43:05 http://www.w3.org/2001/sw/DataAccess/issues#fromUnionQuery 12:56:22 resuming 12:56:31 looking at http://www.w3.org/TR/2005/WD-rdf-sparql-protocol-20050114/ 12:57:05 considerign fromUnionQuery 12:57:12 http://www.w3.org/2001/sw/DataAccess/issues#fromUnionQuery 13:01:04 swh - seems from and graph shouldn't be in QL, belong in api or other layer 13:04:56 how to use the from, graph hints - apis specific 13:05:11 command line loading, need outside the QL 13:07:59 using a source ?var in a constraint - swh has given an example of this. There isn't a test case for it. 13:11:17 example of querying over multiple foaf files for ?x foaf:knows ?y (ref to their foaf:names) and only in the union case, will you get the correct triples to connect the people up together 13:12:49 I hear 3 positions: (hint) FROM/GRAPH are hints (std) FROM/GRAPH are protocol-ish instructions (ext) drop FROM/GRAPH; leave them to system-specific mechanisms 13:13:45 what do you mean by "hints"? 13:17:05 I hear 3 positions: (hint) FROM/GRAPH are hints (std) FROM/GRAPH are well-defined instructions (ext) drop FROM/GRAPH; leave them to system-specific mechanisms 13:17:24 I hear 3 positions: (hint) FROM/GRAPH are hints (std) FROM/GRAPH are well-defined instructions that interact with the web per URI specs (ext) drop FROM/GRAPH; leave them to system-specific mechanisms 13:18:17 poll shows 0 / 3 / 2 ish 13:19:28 Are the 2nd and 3rd option claiming moving FROM/GRAPH out of Query Language? 13:19:53 no; only the 3rd (ext0 13:19:57 (ext) 13:23:57 looking at 8.1 words "Some processors may choose to allow multiple URIs in the FROM clause. These are used to create a single graph by RDF merge" 13:25:10 and sentence before 13:27:23 "The query processor uses the URI to build an RDF dataset [added to the background knowledge base]" 13:35:26 1 / 4 / 2 13:36:09 object: 3/ 1/ 4 13:38:07 FROM 13:42:34 (std2) FROM/GRAPH specify the *minimum* of the background graph; a system may add more 13:44:55 example. , andy, steve... 13:45:14 ... want to see whether andy (claims he) knows steve 13:46:08 SOURCE ?s ( foaf:knows ) 13:46:25 AND ?s = 13:46:44 OR ?s = OR ?s = . 13:47:49 GRAPH , , . #helps; but FROM does not 13:49:12 EricP: in my code, FROM helps 13:49:39 ... is that broken? 13:54:45 std3: FROM may add named graphs as well as background; GRAPH must. 13:55:06 std4: drop GRAPH. FROM may add named graphs. 13:56:39 std5: 1.171 FROM becomes LOAD. 1.171 GRAPH becomes FROM. 1.171 SOURCE becomes GRAPH. 13:57:29 std5: ... LOAD loads into default kb. 13:57:34 oops! 13:57:40 std5: ... LOAD adds into default kb. 13:57:56 std5: ... LOAD , , adds into default kb. 13:58:16 (default kb = background graph) 13:58:46 std5: ... FROM , , ... gets the contents (per uri/http...) and makes them available as named graphs 13:59:41 std5: and ... WHERE GRAPH ?g (?who knows ?whom) 13:59:58 sh: yes, I prefer GRAPH to SOURCE like that 14:01:04 SH: still don't like instructions in the query, but I prefer one keyword with a modifyer, ala LOAD and LOAD DEFAULT 14:06:16 albertto suggests LOAD [AS 14:06:18 AlbertoR what about: FROM , AS SOURCE ..... WHERE GRAPH ?g ( ?foo bar:baz ?z ) 14:06:48 strike my last summary of alberto 14:12:02 std6: default knowledge base may include the named graphs. FROM NAMED [AS...]. 14:12:57 AS points out that std5 can express a case std6 cannot: a dataset with named graphs that aren't in the default KB. 14:13:27 EP is uncomfortable with stuff not going in the background KB, despite timbl's comment 14:15:55 std7: default knowledgebase includes all named graphs. (SH, EP like it) 14:18:33 JanneS has joined #dawg 14:18:59 (hint) FROM/GRAPH are hints (std) FROM/GRAPH are well-defined instructions (ext) drop FROM/GRAPH; leave them to system-specific mechanisms 14:19:19 0 / 3 / 3 pref 14:20:03 3 / 0 / 2 14:20:16 3 / 0 / 2 ojb 14:47:38 ericP talks through an example 14:51:17 FROM and LOAD are not rdf data management 14:52:07 yes, can have a non-empty default kb and LOAD and FROM 14:52:17 but test cases must have empty default kb 14:53:06 LOAD ... - adds triples to the background/default kb[graph] 14:54:08 access to graphs without trusting them 14:54:18 LOAD - is adding triples; implicitly trusting them 14:54:31 FROM - is addign to collection of named graphs "I'm not really trusting it" 14:54:41 .. available to me, but not my bg knowledge 14:55:22 if you want *both* to trust it and ask about it's provenence, you need both LOAD and FROM 14:58:31 ok I sketched my current SOURCE/GRAPH design understanding - see http://www.asemantics.com/presos/DAWG-SOURCE.pdf 15:02:55 Hmm, will the changes to the default DB in a query remain after that query? 15:04:56 Yoshio, no 15:05:14 (EricP drew a picture...) 15:05:26 2 example queries, in the discussion: 15:05:33 rq23 does not say but I'd expect the protocol to say "no" - one request does not affect another (my opinion) 15:05:51 (1) LOAD Andy Bob FROM Dan GRAPH S1 P O 15:06:52 (2) LOAD Andy GRAPH S1 P1 O 15:07:15 rather (2) LOAD Andy Bob Dan GRAPH S1 P1 O 15:07:36 (1 is green) 15:07:41 (2 is rd) 15:10:41 AlbertoR has joined #dawg 15:10:57 HiroyukiS has joined #DAWG 15:11:33 Yoshio has joined #dawg 15:12:34 DaveB has joined #dawg 15:16:33 -- end of day1 15:27:05 AlbertoR has left #dawg 16:47:48 AndyS has joined #dawg