if(schema_graph && (schema_graph->match_state = G_SCHEMA)) {
g->row = g->start; //restartng schema sequence
jump(g); //go pop schema triples
The function jump(g), just switches the default pop function, and the machine pops triple from some table identified by schema graph structure, go from start to end. The triples being run are still in that same table, in the same form entered by the clients search string, with the same forward grammar in the nested form as in the TE expression. What happens to the triples that are popped? They just get funneled to the callback format handler who does thing like:
if(strcmp(t.key) col_data) append data to result result.
The result graph is an open expression started at the sub queries points. That sub expression and structure will match the common parts of the mutual graph of two tables, the result table will have the nested structure that matches both convolving tables.
Simple? Sure, only because, again, a forward pointing grammar yields a natural nested order, Once we make sqlite3 look like a triple machine with nested pointer tags, hey, bingo.
One could build Watsons with this thing. Watson really is a g machine in which higher software imposes some special meaning or interpretation if you will. But the fundamental form of Watson is a forward looking grammar search machine. They have lots of built in types, specific for the jeopardy game, no doubt.
If the developer wants the sequences to have special meaning, then install a custom match function. At under a thousand lines code, how hard can that be? Give this thing a sequence of words spoken by some customer, and the thing can match that with the most likely thing that gve it meaning meaning.
No comments:
Post a Comment