Re: Translator for loading SUMO into PowerLoom

Hans Chalupsky <[email protected]> Thu, 14 Dec 2006 13:23:22 -0800
Newsgroups gmane.comp.ai.powerloom
Message-ID <[email protected]>
Cameron,

thanks for the update.  With respect to additional transformations,
here is one I can think of:

nth-domain in PowerLoom is 0-based, in SUO-KIF it is 1-based, so you
have to adjust that.

With respect to modals such as (believes Fred (happy Sue)) you don't
have to quote the argument proposition, however, in order for
PowerLoom to be happy with this assertion the `believes' relation
needs to be declared to take an argument of type `proposition' as its
second argument.

There might be other mappings necessary, but I haven't had much time
to look at SUO-KIF, so I don't know what those might be.  I'm sure
you'll discover some of these issues once you start loading the
translated ontologies into PowerLoom.

Hans

>>>>> Cameron Ross <[email protected]> writes:

> Hans/Adam,
> My implementation of a translator that will load SUMO into PowerLoom is 
> progressing 
> (http://pando.svn.sourceforge.net/viewvc/pando/code/java/tools/src/net/sf/pando/tools/suokif).  
> I've implemented and tested an ANTLR-based SUO-KIF parser that generates 
> an initial Abstract Syntax Tree (AST) for an arbitrary collection of 
> SUO-KIF statements.
> I currently have tree walkers that transform this initial AST by 
> expanding SUO-KIF sequence variables and by adding a dummy relation 
> called "holds" to eliminate variables in the predicate position.  I 
> believe this functionality is generally useful for loading SUO-KIF 
> ontologies into various automated reasoners and have therefore included 
> it as part of the main SUO-KIF parser.

> I will now implement what I think are the PowerLoom specific 
> transformations.  One obvious transformation is to convert SUO-KIF 
> language symbols to those defined for PowerLoom (e.g. 'equals' to '=').  
> I will obtain these mappings from the PowerLoom grammar documentation. 

> Are there any other transforms that must be considered?  For example, 
> should I quote all embedded second-order formulas for PowerLoom as Adam 
> has done for the Vampire reasoner?  Any recommendations are greatly 
> appreciated.

> Thanks much,
> Cameron.


> Adam Pease wrote:
>> Hi Cameron,
>> Creating a separate parser and translator would be one way to do it, 
>> but it might be faster (and certainly would result in a more tightly 
>> integrated system) to make use of the parsing and pre-processing code 
>> already available in Sigma (it's open source, by the way).
>> If you look in Sigma's Formula.preProcess() method 
>> <http://sigmakee.cvs.sourceforge.net/sigmakee/sigma/src/java/com/articulate/sigma/Formula.java?revision=1.16&view=markup> 
>> you'll see a number of things that have to be done in order for 
>> Vampire to handle SUO-KIF.  Maybe Hans can address whether these are 
>> needed for PowerLoom
>> 
>> - prepend every clause with a dummy relation called "holds", in order 
>> to eliminate variables in the predicate position
>> 
>> - translate mathematical operators to symbols handled in Vampire's 
>> native implementation of basic arithmetic
>> 
>> - quote all embedded second-order formulas.  While this eliminates the 
>> actual semantics of the symbols in the embedded formulas, it at least 
>> allows for unification of variables in formulas that would otherwise 
>> be rejected by a first-order theorem prover
>> 
>> You could create a new class, cloned from Sigma's Vampire.java that 
>> would send commands to PowerLoom.  You'd have to add another 
>> pre-processing step appropriate for PowerLoom, and some code to handle 
>> the XML-based communication format.  But, you'd gain the whole 
>> environment of Sigma, and save time in not having to create your own 
>> SUO-KIF parser.
>> 
>> Adam
>> 
>> Cameron Ross wrote:
>>> Hi,
>>> 
>>> I'm willing and able to commit some time to this.  I don't have 
>>> detailed understanding of PowerLoom or SUMO, but it looks like there 
>>> will be enough support to get something accomplished.  I already have 
>>> an ANTLR grammar developed for SUO-KIF and can render most of the 
>>> Sigma ontologies into their respective Abstract Syntax Trees (ASTs).  
>>> It should be a fairly straight forward task to convert a SUO-KIF AST 
>>> into a PowerLoom knowledge-base, but there may be some rough spots 
>>> where I'll require some feedback.  I'll can cross-post my progress to 
>>> both the PowerLoom and Sigma mail lists.
>>> 
>>> Cheers,
>>> Cameron.
>>> 
>>> Adam Pease wrote:
>>>> Hans,
>>>> Many thanks.  Hopefully, this is what Cameron was looking to do.
>>>> 
>>>> Adam
>>>> 
>>>> Hans Chalupsky wrote:
>>>>> Adam,
>>>>> 
>>>>> thanks for the update on SUMO.  I don't have any cycles to integrate
>>>>> PowerLoom with Sigma, but I can answer questions in case you find
>>>>> somebody to work on that.
>>>>> 
>>>>> Hans
>>>>> 
>>>>>>>>>> Adam Pease <[email protected]> writes:
>>>>> 
>>>>> Folks,
>>>>>    A colleague was kind enough to forward a copy of your recent 
>>>>> exchange on the powerloom list.  The SUMOtoLOOM work is available 
>>>>> from <http://www.mel.nist.gov/msid/sumo2loom.html>.  Please note 
>>>>> that the main site for SUMO is <http://www.ontologyportal.org>.  I 
>>>>> and the rest of the SUMO team left Teknowledge between 2003 and 
>>>>> 2004, and the IEEE group that was working on SUMO is also inactive.
>>>>>    It would be very exciting to have the Sigma system 
>>>>> <http://sigmakee.sourceforge.net/> be able to call PowerLoom, as 
>>>>> well as the Vampire prover, which is the only prover it currently 
>>>>> supports.
>>>>>    I'd be glad to answer any questions you might have.
>>>>> 
>>>>> Adam
>>>>> 
>>>>>>> -------- Original Message --------
>>>>>>> Subject: [PowerLoom Forum]  PowerLoom and SUMO
>>>>>>> Date: Mon, 20 Nov 2006 11:09:08 -0800
>>>>>>> From: Hans Chalupsky <[email protected]>
>>>>>>> To: Cameron Ross <[email protected]>
>>>>>>> CC: [email protected]
>>>>>>> References: <[email protected]>
>>>>>>> 
>>>>>>> Cameron,
>>>>>>> 
>>>>>>> it shouldn't be too hard to create a translator from SUO-KIF to
>>>>>>> PowerLoom.  There are a few things you need to do:
>>>>>>> 
>>>>>>> (1) You need to create concept and relation definitions for each
>>>>>>> concept and relation used in the ontologies before they can be 
>>>>>>> used in
>>>>>>> assertions.  These definitions can't (yet) be made via assertions 
>>>>>>> but
>>>>>>> need to be done via `defconcept' and `defrelation' (or 
>>>>>>> `deffunction');
>>>>>>> however, the definitions can be minimal and simply introduce the 
>>>>>>> term
>>>>>>> (and arity in the case of relations).  All other information such as
>>>>>>> sub/superconcepts/relations, argument domains, rules, etc. can be
>>>>>>> generated via standard assertions.  For example:
>>>>>>> 
>>>>>>> (defconcept Person)
>>>>>>> (defconcept Animal)
>>>>>>> (assert (subset-of Person Animal))
>>>>>>> (assert (documentation Person "The class of human beings"))
>>>>>>> (defrelation brother (?x ?y))
>>>>>>> (assert (nth-domain brother 0 Person))
>>>>>>> (assert (nth-domain brother 1 Person))
>>>>>>> ....
>>>>>>> 
>>>>>>> That is, all the keywords used in PowerLoom definitions are really
>>>>>>> just syntactic sugar and can be handled via standard assertions.
>>>>>>> 
>>>>>>> (2) You need to watch out for subtle differences.  For example, the
>>>>>>> SUO-KIF version of `nth-domain' is 1-based while PowerLoom's version
>>>>>>> is 0-based (I remember that from some quick attempt of translating
>>>>>>> SUMO into PowerLoom some years ago - never finished that).
>>>>>>> There might be others.
>>>>>>> 
>>>>>>> I remember some people from NIST translated SUMO into Loom, so it
>>>>>>> should certainly be possible to translate it into PowerLoom.
>>>>>>> 
>>>>>>> If you succeed and it is feasible for you to do so, it would be 
>>>>>>> great
>>>>>>> if you could make (some of) the translations available to the 
>>>>>>> community.
>>>>>>> 
>>>>>>> Hans
>>>>>>> 
>>>>>>> -------------------------------------------------------------------------- 
>>>>>>> 
>>>>>>> Hans Chalupsky, PhD                     USC Information Sciences 
>>>>>>> Institute
>>>>>>> Project Leader, Loom KR&R Group         4676 Admiralty Way
>>>>>>> <[email protected]>                          Marina del Rey, CA 90292
>>>>>>> (310) 448-8745
>>>>>>> -------------------------------------------------------------------------- 
>>>>>>> 
>>>>>>> 
>>>>>>>>>>>> Cameron Ross <[email protected]> writes:
>>>>>>>> I would like to construct a PowerLoom knowledge-base using 
>>>>>>>> ontologies constructed with SUO-KIF 
>>>>>>>> (http://suo.ieee.org/SUO/KIF/index.html).  My current plan is to 
>>>>>>>> create a tool that translates from SUO-KIF to PowerLoom KIF.  
>>>>>>>> Note that SUO-KIF is a minimalistic implementation of KIF 
>>>>>>>> whereby many traditional KIF features have been moved out of the 
>>>>>>>> language with the intention of having them defined using 
>>>>>>>> ontologies (e.g.  defconcept, defrelation etc. don't exist in 
>>>>>>>> the language).  I could implement the translator such that it 
>>>>>>>> maps these concepts, or I can just account for keyword 
>>>>>>>> differences and load in the SUMO ontology with the requisite 
>>>>>>>> abstractions.  I'd prefer to do the later as it would be very 
>>>>>>>> simple to implement, but I'm concerned that I'll be missing out 
>>>>>>>> on some key PowerLoom features.  Are there any recommendations 
>>>>>>>> as to how I should proceed?
>>>>>>>> Cheers,
>>>>>>>> Cameron.
>>>>>>>> _______________________________________________
>>>>>>>> powerloom-forum mailing list
>>>>>>>> [email protected]
>>>>>>>> http://mailman.isi.edu/mailman/listinfo/powerloom-forum
>>>>>>> _______________________________________________
>>>>>>> powerloom-forum mailing list
>>>>>>> [email protected]
>>>>>>> http://mailman.isi.edu/mailman/listinfo/powerloom-forum
>>>>>>> 
>>>>>>> 
>>>>> 
>>>> 
>>> 
>>> 
>> 

> _______________________________________________
> powerloom-forum mailing list
> [email protected]
> http://mailman.isi.edu/mailman/listinfo/powerloom-forum