All ontology operations are convolutions of one graph against another yielding a third:
G1 X G2 -> G3
Example, consider two ontologies, one with lead in key word, G2 = LookUp, and another of the immediate form: G1 = (See,the,cat)
And the output graph might be:, G3 = (see.cat) . So G3 is the ontology form of the random text, "See the cat". The graph LookUp did some exchanges and removals and more about that later.
The output, in this specific case, is a form that will find any article about seeing, viewing, photographing, or otherwise various types of cats, dead, alive or fictional. The original text, "See the Cat" may have been a blog post I wrote about cat blogging, for example. So now searches wanting 'see cats', for example, would get my blog returned.
The general goal of a graph convolution is a pattern match, the small overlays the larger, and that match occurs, the matches result(s) are appended/replaced/created into the output graph.
So, in c, the call would be G3 = convolve(G1,G2)
All the G are in standard nested format, so the convolve operation needs utilities to convert from say, immediate syntax, to nested records. So how does one insert proprietary smarts into the ontology mesh? The record format, (keyword,operator,relative link) allows extensions on operator. Hence, modification of OR, AND, NOT, APPEND, Special_name; can cause application specific, local operation that effect the further travesal of G1 over G2.
No comments:
Post a Comment