[Attempto] bridging between Thea and Attempto

Chris Mungall CJMungall at lbl.gov
Wed Nov 24 03:14:44 CET 2010


Hi Ace folks.

I contribute code to the SWI-Prolog Thea OWL2 library. Thea allows an OWL2 ontology to be embedded in a native prolog database, and provides a bridge to the SWI semweb library (and thus RDF support), as well as many optional features such as SWRL support, prolog reasoners, a bridge to the java owlapi and owl reasoners, owl-xml support, a web interface and more. I'm not so familiar with ACE, but I suspect there is some overlap with ACE's OWL support.

More details on Thea:

	http://www.semanticweb.gr/thea/

I think it would be useful to have some kind of bridge between Thea and ACE (see [*]). I think this bridge would be fairly simple to implement, as it appears ACE also uses prolog terms to represent an OWL ontology.

On the surface the terms used are quite different. ACE uses a single term to represent a whole ontology, like this:

    'Ontology'('http://attempto.ifi.uzh.ch/ontologies/owlswrl/test',
	['SubClassOf'('Class'('':cat),
		'ObjectSomeValuesFrom'('ObjectInverseOf'('ObjectProperty'('':like)),
								'ObjectOneOf'(['NamedIndividual'('':'John')])))])

In Thea, this would be represented as prolog database with the following facts:

	ontology('http://attempto.ifi.uzh.ch/ontologies/owlswrl/test').
	subClassOf(cat, someValuesFrom(inverseOf(like),oneOf(['John']))).

The differences seem to be:

* facts rather than a single term
* prolog-friendly lowercasing vs identical strings from the owl2 structural specification
* use of weakly typed constructs vs strongly typed constructs
   (we both adhere to the owl2 syntax)
* typing of the owl entities ('cat' vs 'Class'(cat))

I think it would be very easy for us (Thea) to provide a bridge. Is this something that might interest the ACE community?

I first wanted to check that the term structures above were stable (I would presume they are, as they correspond to the OWL2 structural syntax). Actually, I first wanted to check if there was a volunteer to write this code...

I also just wanted to establish contact, to see if there were other opportunities for code sharing and reuse. No sense in reinventing the wheel.

Cheers
Chris

[*] https://github.com/vangelisv/thea/issues/#issue/22


More information about the attempto mailing list