Wednesday, November 23, 2011

Asterisk, the wildest of the operators

I propose it.  Look at the following:

A*B

That should pass the G graph every path between any A and any descending B.  Here I have the asterisk as an operator, not a keyword constant.  That is  bit different then nominal use of it as a wildcard, meaning substitute for filenames, for example. Does this work? What about:
(a,c,d)*(e,f.g)

Can G pass every path between a,c or d and one of the two e or f.g? Probably,  I am looking at it.  The problem with wildcards is that they descend down for a while then find outlets rejected.  But, with nested order, I think the pointer arithmetic can find the top of the rejected path, and restart output from there.

I am going with this for now, it is the most complicated issue, but its solution will lie naturally in the grammar of operators.  Let the asterisk be the wildest of cards. 

But wait!! Wha about the ?, the question mark. In SPARQL, that means collect tha path, not just pass it. How wild is the Question?
(A?B)
Collect everything between A and B? Or just collect one link? Do all these wildcards countfields? (*=4).... If not specified, it collects only one step? Dunno.

Righht now my wild card is asterisk and it passes everything to output. I have this installed

_@(Some Typed In Graph,*)

Which means, for the local engine, convolve he nested graph I type in with the wild card. The result should be set up with all pointers fixed, exact key word and operations duplicated. I should be able to concatenate these operations:
_@( (G1,G2,G2),*)

right about now. The interpretation here is, direct to the local mahine (the underscore) , do a convolution (the @) with the two conformal G graphs. Here the wild card asterisk is conformal.  The SQL behind it is:
insert into result select key,link,gfun(1,0) from other;

Where self is me, typing in. Notice in this insert I do not need any Sql trigger, because there are not back links to fix up at set endings.  The simplest form of wild card, but things will get a bit more complex soon.

The little things I notice, though.  In this example, the * is still an operator, where is the keyword?  Well SPARQL wants non-null keywords, so is there always a , _*, unless the key is unspecified?  (The underscore is the SPARQL non-null keyword).  That is OK for G, G is lightweight, anytime you have a nested null keyword, G is too far up to see it.  So the null key still means local to the position on the graph.  When null key appears a the top of graph than that is local to G.

No comments: