ontolog-forum
[Top] [All Lists]

[ontolog-forum] Database and Ontology: SWRL=~Prolog=~SQL

To: ontolog-forum@xxxxxxxxxxxxxxxx
From: "Adrian Walker" <adriandwalker@xxxxxxxxx>
Date: Mon, 12 Feb 2007 10:23:30 -0500
Message-id: <1e89d6a40702120723s6008a847w61e08873663ca368@xxxxxxxxxxxxxx>
Hi John --

That's a good idea (SWRL=~Prolog=~SQL), but only at the syntax level.

When you execute rules with an engine, there are issues, because the engine adds an interpretation of what the rules are supposed to mean.

In the case of SWRL, so far, this seems to mean "forward chain on each rule and assert the results and keep doing this till nothing new is asserted".  There seems to be no negation, see: mailman.stanford.edu/pipermail/protege-owl/2007-January/001064.html

In the case of Prolog, it means "back chain from what the user asked and see if you can reach all necessary supporting facts" -- using closed world negation.  However, when asked for all answers, Prolog will infinite loop on things like
 
                  ancestor(X,Z) :- ancestor(X,Y), ancestor(Y,Z)

so you have to be *very* careful to write rules with workarounds for this and other gotchas.

There's a similar situation with the various divergent implementations of SQL.  For example, a syntactically valid union query can be given to both Oracle and MySQL, and they will both happily supply different answers, both of which are *wrong*.  You have to rewrite the query manually as a workaround.

The good news is, there has been progress in inference engines over the many years that rules have been around.  For example, both the "Magic Sets" method and Backchain Iteration treat rules like the "ancestor" one above so as to extract the intended meaning [1].  Adding  just enough English [2], so users can know what predicates are supposed to mean in the real world, adds another layer of semantics.  And users can get English explanations of results, at the business level.

Maybe it's time for a third edition of our book [3] ?

                                        Cheers,  -- Adrian
 
[1] Backchain Iteration: Towards a Practical Inference Method that is Simple
  Enough to be Proved Terminating, Sound and Complete. Journal of Automated Reasoning, 11:1-22

[2]  Internet Business Logic.  A Wiki for Executable Open Vocabulary English over SQL. Online at www.reengineeringllc.com . Shared use is free.

[3]  Adrian Walker, Michael McCord, John F. Sowa and Walter G. Wilson. Knowledge Systems and Prolog. Addison-Wesley, 1990. ISBN 0-201-52424-4

Adrian Walker
Reengineering


_________________________________________________________________
Message Archives: http://ontolog.cim3.net/forum/ontolog-forum/  
Subscribe/Config: http://ontolog.cim3.net/mailman/listinfo/ontolog-forum/  
Unsubscribe: mailto:ontolog-forum-leave@xxxxxxxxxxxxxxxx
Shared Files: http://ontolog.cim3.net/file/
Community Wiki: http://ontolog.cim3.net/wiki/ 
To Post: mailto:ontolog-forum@xxxxxxxxxxxxxxxx    (01)

<Prev in Thread] Current Thread [Next in Thread>