IRC log of dawg on 2005-01-19

Timestamps are in UTC.

07:28:11 [RRSAgent]
RRSAgent has joined #dawg
07:28:11 [RRSAgent]
is logging to
07:28:14 [Zakim]
Zakim has joined #dawg
07:29:01 [DanC_lap]
Topic: Convene, take roll, review records and agenda
07:33:11 [ericP]
present: Alberto, Dave, Yoshio, Hiroyuki, Andy, Steve(n), Janne, EricP, DanC
07:33:43 [ericP]
expected: Kendall
07:37:12 [SteveH]
SteveH has joined #dawg
07:40:23 [JanneS_scribe]
about to accept
07:40:42 [JanneS_scribe]
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 [JanneS_scribe]
07:44:42 [JanneS_scribe]
running through the issues on the poll page
07:47:36 [AlbertoR]
AlbertoR has joined #dawg
07:48:33 [JanneS_scribe]
multiple prefixes issue
07:49:20 [JanneS_scribe]
[1] Query ::= PrefixDecl* ReportFormat PrefixDecl* FromClause? WhereClause?
07:53:32 [AndyS]
AndyS has joined #dawg
07:56:26 [JanneS_scribe]
there's position for one declaration block in the very beginning and a position for declaration block in multiple places.
07:56:51 [JanneS_scribe]
The latter position assists developers writing queries by enabling in-line prefix declarations
07:59:49 [Yoshio]
Yoshio has joined #dawg
08:00:20 [JanneS_scribe]
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 [JanneS_scribe]
Andy notes there's a link between allowing prefix declarations "everywhere" if other syntax (e.g. turtle) is to be adopted
08:06:22 [DanC_lap]
PROPOSED: to address issue prefixSyntax by limiting prefix declarations to one place in the grammar, at/near the beginning
08:06:50 [DanC_lap]
08:07:53 [JanneS_scribe]
--- unsaid issue ---
08:08:09 [ericP]
folks are asked to revisit
08:09:46 [JanneS_scribe]
objective (not a requirement) is
08:12:10 [HiroyukiS]
HiroyukiS has joined #DAWG
08:14:30 [DaveB]
DaveB has joined #dawg
08:21:39 [DanC_lap]
(RDF and relational databases -> )
08:31:33 [JanneS_scribe]
the simplest form of unsaid can be done with optionals
08:31:50 [JanneS_scribe]
look for (s, p, o) and determine whether there is binding in the result for o
08:32:01 [SteveH]
SELECT ?x WHERE [(?x ex:age ?y] AND !bound(?y)
08:33:01 [DanC_lap]
str-less-than(?x, "abc")
08:34:57 [JanneS_scribe]
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 [JanneS_scribe]
s/values take expressions/functions take expressions/
08:38:02 [JanneS_scribe]
dan argues for bound() taking us out of the scope of querying positive information encoded in RDF graphs
08:38:25 [Yoshio]
so you are object to bound(), dan?
08:39:21 [DanC_lap]
well, I strongly prefer to avoid it, yes.
08:40:18 [JanneS_scribe]
steve suggests the bound() form is more explicit and more effective to evaluate than unsaid
08:40:32 [JanneS_scribe]
eric mentions the explicitness is there with unsaid, evaluation might be more effective
08:43:17 [JanneS_scribe]
(augmenting previous comment: the simplest form of unsaid can be done with optionals + bound() built-in function)
08:48:35 [DaveB]
ref prime uc
08:52:44 [DaveB]
select ?x where (?x rdf:type :Person) [(?x ex:phone ?phone)] AND !bound(?phone)
08:54:58 [Yoshio]
negating bound() might need to have huge number of bindings before negating... (am I wrong?)
08:56:32 [Yoshio]
on the other hand, UNSAID could be faster (just knowing non-existance suffices)
08:56:44 [JanneS_scribe]
bound() definition should be formalized to be a function evaluation over a result, not over an RDF graph
08:58:22 [JanneS_scribe]
isBound() is now defined in
09:00:34 [DaveB]
which is section 11.2.2 SPARQL specific operations
09:06:29 [AlbertoR]
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 [Yoshio]
ok, forget my comment
09:08:15 [AndyS]
Alberto - agreed - the Q is whether it is to be blessed in a spec
09:08:45 [AndyS]
It's "use case" vs "architectural semweb" points of view
09:09:35 [AlbertoR]
ok Andy I see the point here - but we do not have particular UC to offers here :)
09:10:55 [DaveB]
09:11:36 [AlbertoR]
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 [DanC_lap]
"If the atomized operand is an empty sequence, the result of the arithmetic expression is an empty sequence"
09:14:19 [DanC_lap]
DanC: so one way to specify isBound is as a function of a solution and a variable(name)
09:16:26 [DanC_lap] data consistency tests with UNSAID and OPTIONAL
09:22:47 [DanC_lap]
{ <http://example">http://example> log:uri "http://example" }
09:23:05 [DanC_lap]
(we're into useMentionOp to some extent)
09:23:59 [JanneS_scribe]
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 [JanneS_scribe]
554.html the op:URIequals is probably needed in addition to isBound()
09:25:22 [DanC_lap]
09:26:16 [DanC_lap]
uri(<http://example/">http://example/>) to get "http://example/"
09:26:18 [DaveB]
09:26:46 [DaveB]
09:27:21 [DanC_lap]
uri(?y) =~ "http://example"
09:28:02 [JanneS_scribe]
here's the point of having explicit casting vs. implicit casting
09:28:08 [DanC_lap]
1.171 gives isBound(?y)
09:28:43 [DanC_lap]
considering: BOUND ?y
09:29:14 [ericP]
grammar wiki for sparql -->
09:29:29 [ericP]
(new and improved, by some measurements)
09:31:10 [DanC_lap]
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 [DanC_lap]
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 [DaveB]
PROPOSAL: str(fn) to map URIs (and other things) to string
09:32:32 [DaveB]
PROPOSAL: BOUND keyword and no UNSAID to address common UNSAID issues
09:33:39 [ericP]
09:33:52 [Yoshio]
what's the difference between having UNSAID and having BOUND as keywords?
09:35:39 [DaveB]
Yoshio: unsaid's a keywoard attached to a triple pattern, BOUND's part of the constraint or exppression evaluation
09:36:07 [DanC_lap]
it's not entirely clear that there's an expressivity difference, yoshio.
09:36:26 [JanneS_scribe]
(logistics ahead-note: break for lunch at 11:50)
09:36:30 [Zakim]
Zakim has left #dawg
09:37:06 [Yoshio]
UNSAID is more basic concept than BOUND in RDF point of view, no?
09:37:22 [DanC_lap]
well, it's a matter of taste
09:37:39 [ericP]
09:38:22 [ericP]
(added 'bound' to the grammar)
09:38:31 [ericP]
(and wrestled with my cache)
09:41:46 [DanC_lap]
question: AND ?x =~ "http://example/*"
09:41:51 [DanC_lap]
question: 1 + 1.5
09:43:32 [DaveB]
what about ?x = <http://example/>
09:43:33 [DanC_lap]
DanC: ok, casting between floats and ints is sane, but I don't like "casting" between use and mention
09:44:19 [DaveB]
and ?x = "http://example
09:44:21 [DaveB]
09:44:54 [DaveB]
feeling is first to succeed, 2nd fail
09:47:05 [DanC_lap]
RESOLVED: BOUND keyword and no UNSAID to address common UNSAID issues
09:48:32 [DanC_lap]
new issue: valueTesting
09:50:01 [ericP]
grammar with BOUND and no UNSAID -->
09:50:31 [DanC_lap]
considering: AND 1.5 = 1.4999999999999
09:50:41 [ericP]
that seems close enough for me
09:51:15 [DanC_lap]
never mind
09:51:25 [DanC_lap]
considering: AND 1.5 == 1.4999999999999999
09:51:47 [SteveH]
and float(3.0) = 3.0
09:52:16 [DanC_lap]
editors don't think rq23 1.171 answers the 1.49999 case
09:52:18 [AndyS]
09:52:55 [JanneS_scribe]
let's not do comparison with = if we later need to add assignments for reasons x, y and z => stick with ==
09:53:18 [AndyS]
09:55:44 [DanC_lap]
input: { a b c } select ?x where 1 math:equal 1. # lose
09:56:05 [DanC_lap]
input: { a b c } + <mathkb>. select ?x where 1 math:equal 1. # win
09:56:15 [DanC_lap]
oops. literals as subjects.
09:57:18 [DanC_lap]
considering: AND ?x + 1 < 3
09:57:43 [DanC_lap]
{ [ is math:sum of (?x 1)] math:lessThan 3 }
10:00:09 [DanC_lap]
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 [DanC_lap]
10:02:06 [DanC_lap]
ACTION EricP: update rq23 w.r.t. str()
10:02:17 [DanC_lap]
ACTION SteveH: propose tests for str() and =~
10:02:38 [DanC_lap]
ACTION EricP: update rq23 w.r.t. BOUND/UNSAID
10:03:01 [DanC_lap]
note to self: need tests for bound
10:03:26 [DanC_lap]
ACTION DaveB: draft tests for BOUND (based on ericp's examples)
10:03:47 [DanC_lap]
------- Lunch
10:04:02 [DaveB]
DaveB scribe
10:04:29 [ericP]
F&O string matching -->
10:04:31 [DanC_lap]
resume at 1:30p
11:20:18 [AlbertoR]
AlbertoR has joined #dawg
11:21:25 [JanneS_scribe]
about to resume
11:23:07 [Yoshio]
Yoshio has joined #dawg
11:30:05 [AndyS]
AndyS has joined #dawg
11:30:47 [HiroyukiS]
HiroyukiS has joined #DAWG
11:33:03 [AlbertoR]
Unicode Case Mapping document
11:34:31 [ericP]
Alberto, F&O string matching --> 2159:<>
11:36:05 [DaveB]
11:36:06 [DaveB]
11:38:55 [DaveB]
11:38:58 [DaveB]
steveh proposal
11:42:43 [AndyS]
**** Graph <g1>
11:42:44 [AndyS]
:a :b :c1
11:42:44 [AndyS]
**** Graph <g2>
11:42:44 [AndyS]
:a :b :c2
11:42:44 [AndyS]
**** Unnamed
11:42:44 [AndyS]
:a :b :c3
11:42:46 [AndyS]
SELECT ?c WHERE (:a :b ?c)
11:43:15 [DaveB]
11:43:30 [DaveB]
SteveH's proposal, 3 answers ?c binds to c1, c2, c3
11:43:46 [DaveB]
design in document says you'll get c3
11:43:53 [DaveB]
[unnamed graph proposal]
11:44:23 [AlbertoR]
this is the old work supporting Steve views - (see results.html and data/ dir )
11:50:08 [DaveB]
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 [DaveB]
... sometime you do, like a person's name - want to know who said that
11:50:38 [DaveB]
... so will look at the source of that triple
11:50:43 [DaveB]
... in a store with thousands of graphs
11:50:53 [DaveB]
... don't want to do SOURCE *
11:52:08 [DaveB]
EricP: Annotea has multiple graphs (they can be named or not) and default serach returns all results in query above
11:53:24 [DaveB]
consider swh design, default graph (SOURCE not mentioned) is always the union of all graphs
11:54:14 [DaveB]
discussion of what is default graph (when there's no SOURCE)
11:54:35 [DaveB]
could be union of all known (named) graphs; could be just those given in FROM
11:55:27 [DaveB]
or, could say 3store default query graph includes rdf-merge [union] of all graphs it knows
11:59:54 [DaveB]
suggestions: default query graph, background query graph, background knowledge base
12:00:30 [DaveB]
AndyS: swh proposal cannot express some of the trusted/untrusted graphs examples from timbl, the log;semantics/includes stuff
12:00:36 [AlbertoR]
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 [AlbertoR]
i.e. vs.
12:02:22 [AndyS]
"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 [DaveB]
ericp: BKB is a set of graphs, but...
12:03:49 [AlbertoR]
actually digging into email archive is about design vs.
12:04:36 [DaveB]
?? BKB is a set of [RDF graph, name] pairs
12:05:03 [AndyS]
That is "RDF dataset"
12:05:35 [AndyS]
12:05:47 [AndyS]
See defn of "RDF dataset"
12:09:06 [DaveB]
AndyS: BKB is an rdf graph...
12:10:14 [DaveB]
discussing [
12:10:16 [DaveB]
Definition: RDF Dataset
12:10:16 [DaveB]
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 [DaveB]
12:10:40 [DaveB]
AndyS: deliberately collection not set so you could have dups, give multiple names for same thing
12:11:59 [DaveB]
issue with "same rdf graph" since reading same uri gives differnet rdf graphs (bnode names etc.)
12:13:02 [DaveB]
suggestion change unnamed graph to background kb
12:14:01 [DaveB]
.. to background graph
12:14:54 [DaveB]
tests for this
12:14:59 [DaveB]
semantics of manifest
12:15:08 [DaveB]
loading data files into bg graph or other?
12:16:07 [DaveB]
manifest - need to be able to set names for graphs
12:16:32 [AlbertoR]
this my old proposal (a part the bNodes as graph names issues)
12:16:42 [DaveB]
manifest - need to be able to say where the graph loads - into backgrouund graph or foreground (!) graph
12:19:06 [AlbertoR]
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 [AlbertoR]
assuming each qt:data triggers an add-source() for it value e.g. qt:data <foo.rdf> will trigger foo.rdf triples to be SOURCEd to <foo.rdf>
12:23:52 [DaveB]
AndyS - rq23 sec9 words - no impl of loading, it's just a URI
12:25:07 [DanC_lap]
PROPOSED: to revise "unnamed" terminology and adopt the design in the tests and 2 3 & 5 [...]
12:26:00 [DanC_lap]
PROPOSED: to revise "unnamed" terminology, enhance test manifest, and adopt the design in the tests and 2 3 & 5 [...]
12:34:44 [DanC_lap]
PROPOSED: to revise "unnamed" terminology, enhance test manifest, and adopt the design in the tests and 2 3 & 5 [...] (note FROM/GRAPH are hints w.r.t. SOURCE)
12:35:59 [DanC_lap]
PROPOSED: to revise "unnamed" terminology, enhance test manifest, and adopt the design in the tests and 2 3 & 5 [...] (note FROM/GRAPH are hints w.r.t. SOURCE) (test bytes to be approved later)
12:36:28 [DanC_lap]
12:36:31 [DaveB]
12:36:55 [DanC_lap]
ACTION AndyS: revise "unnamed" terminology
12:37:12 [DanC_lap]
ACTION SteveH: revise test manifest w.r.t. "background" and named graphs
12:37:59 [DanC_lap]
:t1 t:dataset (<bg> (<n1> <g1> <n2> <g2>))
12:39:51 [DanC_lap]
ACTION DaveB: propose source test to approve
12:43:05 [ericP]
12:56:22 [DaveB]
12:56:31 [DaveB]
looking at
12:57:05 [DaveB]
considerign fromUnionQuery
12:57:12 [DaveB]
13:01:04 [DaveB]
swh - seems from and graph shouldn't be in QL, belong in api or other layer
13:04:56 [DaveB]
how to use the from, graph hints - apis specific
13:05:11 [DaveB]
command line loading, need outside the QL
13:07:59 [DaveB]
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 [DaveB]
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 [DanC_lap]
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 [Yoshio]
what do you mean by "hints"?
13:17:05 [DanC_lap]
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 [DanC_lap]
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 [DanC_lap]
poll shows 0 / 3 / 2 ish
13:19:28 [Yoshio]
Are the 2nd and 3rd option claiming moving FROM/GRAPH out of Query Language?
13:19:53 [DanC_lap]
no; only the 3rd (ext0
13:19:57 [DanC_lap]
13:23:57 [DaveB]
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 [DaveB]
and sentence before
13:27:23 [DaveB]
"The query processor uses the URI to build an RDF dataset [added to the background knowledge base]"
13:35:26 [DanC_lap]
1 / 4 / 2
13:36:09 [DanC_lap]
object: 3/ 1/ 4
13:38:07 [DanC_lap]
FROM <http://somesource/...>
13:42:34 [DanC_lap]
(std2) FROM/GRAPH specify the *minimum* of the background graph; a system may add more
13:44:55 [DanC_lap]
example. <dan-foaf>, andy, steve...
13:45:14 [DanC_lap]
... want to see whether andy (claims he) knows steve
13:46:08 [DanC_lap]
SOURCE ?s (<http://andy#me> foaf:knows <http://steve#me>)
13:46:25 [DanC_lap]
AND ?s = <andy>
13:46:44 [DanC_lap]
OR ?s = <dan-foaf> OR ?s = <steve-foaf>.
13:47:49 [DanC_lap]
GRAPH <andy>, <dan>, <steve>. #helps; but FROM does not
13:49:12 [DanC_lap]
EricP: in my code, FROM helps
13:49:39 [DanC_lap]
... is that broken?
13:54:45 [DanC_lap]
std3: FROM may add named graphs as well as background; GRAPH must.
13:55:06 [DanC_lap]
std4: drop GRAPH. FROM may add named graphs.
13:56:39 [DanC_lap]
std5: 1.171 FROM becomes LOAD. 1.171 GRAPH becomes FROM. 1.171 SOURCE becomes GRAPH.
13:57:29 [DanC_lap]
std5: ... LOAD <uri> loads into default kb.
13:57:34 [DanC_lap]
13:57:40 [DanC_lap]
std5: ... LOAD <uri> adds into default kb.
13:57:56 [DanC_lap]
std5: ... LOAD <uri>, <u2>, <u3> adds into default kb.
13:58:16 [DanC_lap]
(default kb = background graph)
13:58:46 [DanC_lap]
std5: ... FROM <u1>, <u2>, ... gets the contents (per uri/http...) and makes them available as named graphs
13:59:41 [DanC_lap]
std5: and ... WHERE GRAPH ?g (?who knows ?whom)
13:59:58 [DanC_lap]
sh: yes, I prefer GRAPH to SOURCE like that
14:01:04 [DanC_lap]
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 [DaveB]
albertto suggests LOAD <uri> [AS <nameduri]>
14:06:18 [DanC_lap]
AlbertoR what about: FROM <default-kb.rdf>, <a.rdf> AS SOURCE ..... WHERE GRAPH ?g ( ?foo bar:baz ?z )
14:06:48 [DaveB]
strike my last summary of alberto
14:12:02 [DanC_lap]
std6: default knowledge base may include the named graphs. FROM <u> NAMED [AS...].
14:12:57 [DanC_lap]
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 [DanC_lap]
EP is uncomfortable with stuff not going in the background KB, despite timbl's comment
14:15:55 [DanC_lap]
std7: default knowledgebase includes all named graphs. (SH, EP like it)
14:18:33 [JanneS]
JanneS has joined #dawg
14:18:59 [DanC_lap]
(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 [DanC_lap]
0 / 3 / 3 pref
14:20:03 [DanC_lap]
3 / 0 / 2
14:20:16 [DanC_lap]
3 / 0 / 2 ojb
14:47:38 [DaveB]
ericP talks through an example
14:51:17 [DaveB]
FROM and LOAD are not rdf data management
14:52:07 [DaveB]
yes, can have a non-empty default kb and LOAD and FROM
14:52:17 [DaveB]
but test cases must have empty default kb
14:53:06 [DaveB]
LOAD <u1> ... - adds triples to the background/default kb[graph]
14:54:08 [DaveB]
access to graphs without trusting them
14:54:18 [DaveB]
LOAD - is adding triples; implicitly trusting them
14:54:31 [DaveB]
FROM - is addign to collection of named graphs "I'm not really trusting it"
14:54:41 [DaveB]
.. available to me, but not my bg knowledge
14:55:22 [DaveB]
if you want *both* to trust it and ask about it's provenence, you need both LOAD and FROM
14:58:31 [AlbertoR]
ok I sketched my current SOURCE/GRAPH design understanding - see
15:02:55 [Yoshio]
Hmm, will the changes to the default DB in a query remain after that query?
15:04:56 [SteveH]
Yoshio, no
15:05:14 [DanC_lap]
(EricP drew a picture...)
15:05:26 [DanC_lap]
2 example queries, in the discussion:
15:05:33 [AndyS]
rq23 does not say but I'd expect the protocol to say "no" - one request does not affect another (my opinion)
15:05:51 [DanC_lap]
(1) LOAD Andy Bob FROM Dan GRAPH <Dan> S1 P O
15:06:52 [DanC_lap]
(2) LOAD Andy GRAPH <Dan> S1 P1 O
15:07:15 [DanC_lap]
rather (2) LOAD Andy Bob Dan GRAPH <Dan> S1 P1 O
15:07:36 [DanC_lap]
(1 is green)
15:07:41 [DanC_lap]
(2 is rd)
15:10:41 [AlbertoR]
AlbertoR has joined #dawg
15:10:57 [HiroyukiS]
HiroyukiS has joined #DAWG
15:11:33 [Yoshio]
Yoshio has joined #dawg
15:12:34 [DaveB]
DaveB has joined #dawg
15:16:33 [DaveB]
-- end of day1
15:27:05 [AlbertoR]
AlbertoR has left #dawg
16:47:48 [AndyS]
AndyS has joined #dawg