Computing Publications

Publications Home » Ontology Oriented Programming in Go!

Ontology Oriented Programming in Go!

Keith Clark

Journal Special Issue Article
Applied Intelligence
Volume 24
Issue 3
June, 2006
ISSN 0924-669X

In this paper we introduce the knowledge representation features of a new multi-paradigm programming language called Go! that cleanly integrates logic, functional, object oriented and imperative programming styles. Borrowing from , Go! allows knowledge to be represented as a set of labeled theories incrementally constructed using multiple-inheritance. The theory label is a constructor for instances of the class. The instances are Go!'s objects. A Go! theory structure can be used to characterize any knowledge domain. In particular, it can be used to describe classes of things, such as people, students, etc., their subclass relationships and characteristics of their key properties. That is, it can be used to represent an ontology. For each ontology class we give a type definition - we declare what properties, with what value type, instances of the class have - and we give a labeled theory that defines these properties. Subclass relationships are reflected using both type and theory inheritance rules. We call this ontology oriented programming. This paper describes the Go! language and its use for ontology oriented programming, comparing its expressiveness with Owl, particularly Owl Lite. The paper assumes some familiarity with ontology specification using Owl like languages and with logic and object oriented programming.

PDF of full publication (345 kilobytes)
(need help viewing PDF files?)
BibTEX file for the publication
Conditions for downloading publications from this site. built & maintained by Ashok Argent-Katwala.