Re: ACTION: counting test case [Was: Re: Agenda request: characterize the diffs between subgraph-matching and E-entailment]

>Eric Prud'hommeaux wrote:
>
><heavy edits>
>
>>>>
>>>>Some test cases to characterize the behavoir of the language
>>>>apparently not captured in the current semantics:
>>>>
>>>>  bnode-type-var [CNT]: can we count duplicate results?
>>>>
>>>>  bNode-constraint [BCN]: are bNode labels allowed in FILTERs?
>>>>
>>>>  bNode-join [BJN]: do bNode lables bridge basic graph patterns?
>>>>     
>>>>
>At this point I cannot decipher who wrote the preceding sentence, but it
>is an issue that I have raised.  I believe that 
>people will naturally write simple
>queries and then edit them into more complex ones.  A partciularly natural
>evolution will be to test a join first, and then break it up with an OPTIONAL.
>This may cause a bnode token to appear in both operands of the OPTIONAL.
>Currently it seems that the scope of a bnode token is a basic graph pattern,
>so that means that introducing the OPTIONAL will break the join.  This will
>seem counterintuitive to users.  They can of 
>course be educated to always change
>bnode tokens to variables before introducing OPTIONAL, but it will frequently
>trip users up, and may be an ongoing complaint.

You might be right, but (1) this is all somewhat 
hypothetical, as we really don't yet know what 
users will in fact do, and (2) its more a matter 
of initial expectations rather than an on-going 
problem, since users will in fact get used to the 
rules when they use them. On the other hand...

>
>Therefore I hope it is possible to make the scope of a bnode token as
>large as possible.  My thinking is that it would not make sense to try
>to join on a bnode token across different graphs.  Therefore every
>GRAPH pattern must introduce a new lexical scope, similar to the way
>block structured languages operate.  bnode tokens are local to the
>nearest containing GRAPH pattern, or the outermost pattern if none,
>whereas variables are global to the whole query.
>
>I have worked on formulating this precisely, but it looks very difficult
>and my work is not complete. I originally thought that we could analyze
>query trees into 'paths' (subtrees on which a join is formed); however,
>this technique foundered on the case of an OPTIONAL with a UNION
>in its second operand.  I believe it is possible but it has eluded me so far.
>My vision is that every pattern P implies a predicate Pred(P) on mappings,
>such that the results of a query on pattern P is {mapping S | Pred(P)(S) }
>where the bnode tokens have been pulled to the front of the Pred(P)
>as existentially quantified variables.  Pred would be defined recursively,
>but the case of UNION inside the second operand of OPTIONAL has
>eluded me.


... this all strongly suggests to me that we 
should not try to be this clever at this stage. 
The chances of our being able to get something 
this complicated exactly right are low, and if 
the result has to be robust enough to survive 
more general entailment schemes then they are 
even lower. I suggest that we strive to keep 
things as simple as we possibly can.

Pat



>
>Fred


-- 
---------------------------------------------------------------------
IHMC		(850)434 8903 or (650)494 3973   home
40 South Alcaniz St.	(850)202 4416   office
Pensacola			(850)202 4440   fax
FL 32502			(850)291 0667    cell
phayesAT-SIGNihmc.us       http://www.ihmc.us/users/phayes

Received on Monday, 27 November 2006 22:26:52 UTC