Skip to main content
Log in

Ontology oriented programming in go!

  • Published:
Applied Intelligence Aims and scope Submit manuscript

Abstract

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 L&O [1] 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. Following [2], we shall 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[3]. The paper assumes some familiarity with ontology specification using Owl like languages and with logic and object oriented programming.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

References

  1. McCabe FG (1992) L&O: Logic and objects. Prentice-Hall International.

  2. Goldman NM (2003) Ontology oriented programming—static typing for the inconsistent programmer. In The Semantic Web, Proceedings of ISWC 2003, Sanibel Island, Florida, Springer-Verlag, LNAI, Vol 2870.

    Google Scholar 

  3. Patel-Schneider PF et al (2003) Owl web ontology language—semantics and abstract syntax. W3C Candidate Recommendation, http://www.w3.org/TR/2004/REC-owl-semantics-20040210/.

  4. Clark KL and McCabe FG (2004) Go! – a Multi-paradigm programming language for implementing Multi-threaded agents. Annals of Mathematics and Artificial Intelligence, 41(2–4):171–206.

    Google Scholar 

  5. McGuiness S et al (2000) Owl Web Ontology Language—Overview. W3C candidate recommendation, http://www.w3.org/TR/owl.

  6. Horrocks I, Peter F, Patel-Schneider, Frank van Harmelen (2003) From SHIQ and RDF to OWL: The making of a web ontology language. J. of Web Semantics, 1(1):7–26.

    Google Scholar 

  7. Henderson F, Somogyi Z, Conway T (1995) Mercury: an efficient purely declarative logic programming language. In Proceedings of the Australian Computer Science Conference, pages 499–512.

  8. Minsky M (1975) A framework for representing knowledge. In P. Winston, editor, Psychology of Computer Vision, pages 211–277. MIT Press.

  9. Fikes R, et al (2003) OWL-QL—A Language for Deductive Query Answering on the Semantic Web. SL Technical Report 03-14, http://ksl.stanford.edu/KSL_Abstracts/KSL-03-14.html.

  10. Clark KL (1978) Negation as failure. In H. Gallaire and J. Minker, editors, Logic and Databases, pages 293–322. Plenum press.

  11. Horrocks I, Tessaris S (2002) Querying the semantic web: a formal approach. In Ian Horrocks and James Hendler, editors, Proc. of the 13th Int. Semantic Web Conf. (ISWC 2002), number 2342 in Lecture Notes in Computer Science, pages 177–191. Springer-Verlag.

  12. Clark KL, McCabe FG (2006) Ontology schema for an agent belief store, to appear in International Journal of Human-Computer Studies, special issue on Ontologies. individual store as agent belief store. Technical report, Dept. of Computing, Imperial College, London.

  13. Grosof B, et al (2003) Description Logic Programs: Combining Logic Programs with Description Logics. In G. Hencsey and B. White, editors, Proc. of the WWW-2003.

  14. Horrocks I, Peter F, Patel-Schneider, Bechhofer S, Tsarkov D (2005) OWL rules: A proposal and prototype implementation. J. of Web Semantics, 3(1):23–40.

    Google Scholar 

  15. Jos de Bruijn et al (2005) Web Rule Language (WRL), version 1.0. Rule Markup Initiative Technical Report, http://www.wsmo.org/wsml/wrl/wrl.html.

  16. Kifer M, Lausen G, Wu J (1995) Logical foundations of object-oriented and frame-based languages. Journal of the ACM, 42:741–843.

    Article  MathSciNet  Google Scholar 

  17. Gruber TR (1993) Toward Principles for the Design of Ontologies used for Knowledge Sharing. Technical report, Stanford University, http://ksl-web.stanford.edu/KSL_Abstracts/KSL-93-04.html.

  18. Yang G, Kifer M, Zhao C (2003) Flora-2: A rule-based knowledge representation and inference infrastructure for the semantic web. In R. King, M. Orlowska, and R. Studer, editors, Proceedings on Ontologies, Databases and Applications of Semantics’03, LNAI 2888, pages 671–688. Springer Verlag.

  19. Moss C (1994) Prolog++: The Power of Object-Oriented and Logic Programming. Addison-Wesly.

  20. Lopes de Moura PJ (2003) Logtalk: Design of an Object-Oriented Logic Programming Language. PhD Thesis, Departamento de Informatica, Universidade da Beira Interior, Portugal.

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to K. L. Clark.

Rights and permissions

Reprints and permissions

About this article

Cite this article

Clark, K.L., McCabe, F.G. Ontology oriented programming in go!. Appl Intell 24, 189–204 (2006). https://doi.org/10.1007/s10489-006-8511-x

Download citation

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10489-006-8511-x

Keywords

Navigation