ontolog-forum
[Top] [All Lists]

Re: [ontolog-forum] Hybrid Reasoning Literature / Systems / Model Theory

To: ontolog-forum@xxxxxxxxxxxxxxxx
From: John F Sowa <sowa@xxxxxxxxxxx>
Date: Fri, 30 Nov 2012 23:05:55 -0500
Message-id: <50B98223.4050109@xxxxxxxxxxx>
On 11/30/2012 9:21 PM, Ali SH wrote:
> I have been working with what I consider hybrid reasoning systems for a
> couple of years now, but have had difficulty in finding good literature
> on the topic.    (01)

Type "hybrid reasoning" (with quotes) to Google.  That produces 40,700
hits.  One of the top hits is the KRYPTON system by Brachman, Gilbert,
and Levesque, which popularized the term 'hybrid' and the terms T-Box
and A-Box.    (02)

Cyc is probably the largest hybrid system, but they don't use the word
'hybrid'.  Cyc uses a variety of different algorithms for different
kinds of problems and different aspects of the same problem.  See the
documentation at cyc.com.    (03)

> In my current approach, I capture all of these theories in the ontology,
> but when I have a query that requires "reasoning" in one of these
> specialized modules, if I can deconstruct the query, I pass off the
> subpart of the query to the tool best suited for the task (i.e. for
> the geo-spatial ontology, I would compute path or adjacency using
> a 3D physics engine). At a very high level, it is similar in many ways
> to the blackboard approach used in earlier systems.    (04)

More generally, any system that has multiple interacting agents that
cooperate by message passing has similarities to a blackboard system.
KQML (Knowledge Query and Manipulation Language) was designed to support
such things.    (05)

The DAML proposal by Tim Berners-Lee was intended to support multiple
heterogeneous agents as the foundation for the Semantic Web.  In fact,
the A in DAML stands for Agent.  Tim B-L cited KQML as example of what
an agent language should support.  My greatest disappointment about
the SW is that those ideas were dropped from the final DAML report.    (06)

And I blame the decidability thought police who threw out anything
that they couldn't prove a theorem about.  By the way, I am not
against theorem proving.  But I am strongly opposed to putting
irrelevant theorems ahead of critical requirements.    (07)

Marvin Minsky proposed multiple interacting modules (or agents) in
his Society of Mind book in 1986.  I cited that book in a paper
I published in 2002:    (08)

    http://www.jfsowa.com/pubs/arch.htm
    Architectures for Intelligent Systems    (09)

For the VivoMind software, Arun implemented a version of that approach,
which he extended quite a bit further:    (010)

    http://www.jfsowa.com/pubs/paradigm.pdf
    Two Paradigms Are Better Than One,
    And Multiple Paradigms Are Even Better    (011)

> In terms of the model theory behind this - is there a name for this
> approach? I've found some literature touching vaguely similar things,
> but nothing really satisfying thus far. Moreover, I'm unclear what
> this entails for the model theory.    (012)

That depends on how formal you want to be.  The people who like to
publish theorems usually don't like heterogeneous systems because
they tend to be too complex and messy.  But life is complex and messy.    (013)

The Heterogeneous Tool Set (Hets) uses institution theory to support
multiple ontologies written in heterogeneous logics:    (014)

    http://ceur-ws.org/Vol-259/paper11.pdf    (015)

My personal preference for relating a multiplicity of heterogeneous
theories is to use a very expressive logic (such as Common Logic)
as an umbrella that covers everything.  Then I relate all the
theories in a lattice.  I discussed that approach in my KR book
in 2000, and I summarize it in slides 51 to 61 of    (016)

    http://www.jfsowa.com/talks/dynolang.pdf    (017)

I'm in the process of expanding these slides in a forthcoming paper.    (018)

> I currently try to have the implementing reasoning modules sign
> "semantic contracts" with the sub-theory of the ontology they
> perform reasoning services for, but in general I cannot guarantee
> that the axioms in the ontology are always satisfied by the results
> of the computation in these services.    (019)

The OntoIop project, which uses the Hets tools among other things,
might support something like that.  A semantic contract may be useful
for some applications.  But such methods are too static to support
the kind of highly flexible and dynamic reasoning needed for a truly
intelligent system.    (020)

Cyc, for example, uses various heuristics in combination with various
inference methods.  At VivoMind, we use learning methods that enable
the system to adapt to changing circumstances dynamically.  See the
paradigm.pdf paper.    (021)

> A simpler illustrative example might be to represent arithmetic in
> an ontology (say using Peano's axioms), but to use the built-in
> functionality provided your favourite programming language to
> actually perform arithmetic (as opposed to trying to deduce that
> 1+1=2 based on the axioms in the theory).    (022)

Every practical reasoning system since the 1970s has done that.
They call a computational module a "procedural attachment", and Google
will give you 173,000 hits for that term.  The more formal systems
define the preconditions and postconditions for each procedure so that
the reasoner can, if necessary, reason about them.  Mathematica is very
good at mixing symbolic reasoning with computation.    (023)

In summary, practical programmers rush in where logicians fear to tread.
I have some sympathy with both.  But if I had a contract with a paying
client who needs results, I'd put results over theorems.    (024)

John    (025)

_________________________________________________________________
Message Archives: http://ontolog.cim3.net/forum/ontolog-forum/  
Config Subscr: 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 join: http://ontolog.cim3.net/cgi-bin/wiki.pl?WikiHomePage#nid1J    (026)

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