- From: Stephane Fellah <fellah@pcigeomatics.com>
- Date: Wed, 5 Nov 2003 12:23:09 -0500
- To: <www-rdf-logic@w3.org>
- Cc: "Weisheng Li" <weisheng@pcigeomatics.com>, "Steven Keens" <skeens@pcigeomatics.com>
Drew, Thank you very much for taking the time to respond to me. Let's see if I understand well what you mean (note that I am not a AI expert). >The key difference between CWM and other approaches (Sintek & Decker's >TRIPLE system, our DRS, Horrocks and Patel-Schneider's OWL Rules) is >that CWM allows sets of triples to be labeled as internal to a rule. >Those triples are then not asserted. You can't do that in RDF, >although perhaps it will become possible in RDF++, if there ever is >such a thing. > "Those triple then are not asserted. You can't do that in RDF". If I understand well, RDF assumes that every triple is a fact (an assertion) so they are always true. Example: I assert 1 + 2 = 5, which becomes in triple (CWM) style: (1,2) math:sum 5. There is no way in RDF to say that this triple is non-asserted except by using reification (but there is not standard for this). I assume what you mean by RDF++ is the support of non-asserted statement in RDF model. Is that correct ? My goal is to use the simple RDF triple model to express query/rule, so I am not introducing another model/language to express query/rule (except adding the concept of variable). In the CONTEXT OF A QUERY OR A RULE, I assume that every triple is NON-ASSERTED. Basically, I can summarize by saying antecedants of rule and queries are knowledge bases of non-asserted statements. The query/inference engine needs to assert the truth of every single statement in the query. Of course this query triple cannot be mixed with a knowledge base, because they will be no way to know what statement are true or false, but I cannot see a case where a query would be mixed with facts. If you see one, please give me examples. If I have in a query a triple: (1,2) math:sum 5 in my query then the query engine needs to check the truth of the statement if the math:sum property is a build-in property. The query engine will state that it is false. About variables now: In order to work, it is important to introduce the concept of variable as a fundamental concept in the query/rule language (by extending OWL such as in OWL Rule Language). To indicate that triple must match/ may match or must not match, we should have tree flavors of variable: mustBindVariable, mayBindVariable, mustNotBindVariable (similar to DQL idea). Also every triple containing variables is AUTOMATICALLY NON-ASSERTED and requires unification in the query engine. >Hence the option of making a relation a property is simply not >available to any system but CWM. If you tried saying "if triple1 then >triple2," the mere occurrence of triple1 and triple2 would cause them >to be asserted, so that "if p then q" would have the same meaning as >"p and q." Based on my model, this cannot happen, because every triple is assumed non-asserted. Did I miss something ?? >> Which one requires less parsing work ? >I don't understand; parsing from what to what? What kind of work -- >programmer work or computer work? For both. Promoting relations/operators as subject of discussion represents the dual view of my property centric model (CWM model). If you have already a unification engine for RDF based on Triple Match such as Jena, the subject centric model requires to convert them to triple pattern internally (requiring a extra-step in the processing of the query) and requires to understand the meaning of the operand (which on is the domain and which one is the range). I think the Subject-centric approach is more complex to implement. I would like to summarize my approach and its benefits: - Queries/antecedants of Horn rules are represented as a RDF document ( so no need for specific parser ) - In this CONTEXT, the statements MUST BE CONSIDERED AS NON-ASSERTED (I think this is a very reasonable assumption). - The model is mathematically correct (relation/operators are RDF properties: they have a domain and a range). - Simply extend current unification engine by adding built-ins properties (such as CWM). - Easy to publish supported operators of inference engine by publishing the ontology of operators. - Requires minimal change in RDF model (just adding variable concept). - Mappable to any query language - Easy to perform reasoning and refactor the query - Each triple is independent and can be executed in the most adequate order (triple with mustBindVariable first for example). I hope I manage to communicate my thoughts. It is possible that I am missing something very fundamental in my reasoning, because I do not have a strong AI background. If this approach does not work, I really would like to know why. Thank for your patience. Best regards Stephane Fellah Senior Software Engineer PCI Geomatics 490, Boulevard St Joseph Hull, Quebec Canada J8Y 3Y7 Tel: 1 819 770 0022 Ext. 223 Fax 1 819 770 0098 Visit our web site: www.pcigeomatics.com
Received on Wednesday, 5 November 2003 12:23:20 UTC