- From: Jos De_Roo <jos.deroo.jd@belgium.agfa.com>
- Date: Fri, 22 Feb 2002 23:50:24 +0100
- To: "Sandro Hawke <sandro" <sandro@w3.org>
- Cc: ""Tim Berners-Lee" <timbl" <timbl@w3.org>, ""Norman Walsh" <ndw" <ndw@nwalsh.com>, "www-rdf-interest" <www-rdf-interest@w3.org>, ""Dan Connolly" <connolly" <connolly@w3.org>
>> (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
Received on Friday, 22 February 2002 17:51:09 UTC