Friday, November 4, 2011

Am I doing software on the ontology engine

Not really, I released about 50 lines of code to demonstrate how to link the sqlite3 dll and stopped. I am however looking closely at the interface between the execution unit, the underlying sql management, and the grammar of the symbolic algebra.

The symbolic algebra is the syntax humans use to construct some graph, G. For ecxample:
G1 = (count=0,fermion.count++)

If we agree on the grammar then convolve(G1,Web) will count all occurrences of fermion in Web. And, further, if we humans have agreement on the grammar of the symbolic algebra, then the develpers of the engine can use special optimizing techniques with added sql functionality.

What about subroutine call with a nested block?
SQL knows the universe of nested blocks, and all calls have the form:
convolve(G1,G2) 
The convolve operate concatenates as a sibling or a descendent:

g = (convolve(x,y),convolve(a,b).convolve(d,c))

All the variables (a..g) are nested ontology graphs, the output of a convolve generating a grammatically correct nest ontology graph. So a subroutine call is a convolution, something like:
convolve(convolve('Major.New',Dictionary),Web) 

should perform a preliminary look up of the term in question, then match that result to the web. Any call to convolve will make the execution unit bring up the two nested object stores and run them through the machine. Within a nested block (as currently planned) there are no internal calls, just convolve links to external ontology stores. There are however, macros and declarations.

Lining to convolution calls can be done in parallel causing a given search to spawn hundreds, even thousand of separate convolutions

No comments: