>> (I need to clone it in C or machine code, but that's another matter)
>
>Cwm is somewhat similar to a prolog interpeter, and that's an area for
>optimization which has been heavily mined. I wrote experimental
>(prolog) code to translate some cwm code into prolog [1], but it only
>worked with log:forAll, log:implies, and log:Truth; and only acted
>like cwm in "-think" mode. It also did not attempt an
>optimal-performance mapping to prolog. At the time, I had trouble
>finding rulesets on which people needed speed; it sounds like that
>situation has changed.
>
>It seems to my inexpert eye that cwm has these functional components:
>
> 1. Parse RDF (REC-rdf-syntax-19990222), n3, ntriples
> 2. Generate (pretty-print) RDF (REC-rdf-syntax-19990222), n3, ntriples
> 3. Flatten (encode n3 formulas in an RDF graph; has been broken for
ages)
> 4. Reify (broken)
> 5. Apply/Rules/Think, do logical inference
> 6. Filter/Purge, use the logic language as a kind of query language
>
>(There is some overlap in 3/4 and 5/6.) 5 and 6 are presumably the
>interesting/slow bits here.
>
>The logic language itself has been evolving as Tim experiments. I'd
>love to know how different people (Tim, users) feel about the
>different parts -- it would allow other implementations of the
>language to track it better.
>
>Personally, I'd like to see separate programs for 1+3 (reader), 2
>(writer), 4 (reifier), 5 (thinker), and 6 (questioner). (I imagine
>the programs piping N-Triples or maybe RDF/XML between them.) That
>would make life easier for parallel development and for tracking the
>evolution of the different components.
>
>What do you think?
well Sandro, I can follow that
we don't have a lot of thoughts w.r.t. parsing
it's more in the area of mechanisms such as
o unification (substitutions, unifiers)
o resolution algorithm
o backtracking
o box trace model
o Euler path detection
o "existential introduction rule" generation (w.r.t. RDF bNodes)
o unification of variable predicates
I really think that N3 can be used to formulate
theories and theorems (queries),
proof-arguments and proof-checks
(which could be even used as *executable*)
all via the Semantic Web Bus
(just think and write the code)
--
Jos De Roo