Logic and objects
Logical foundations of object-oriented and frame-based languages
Journal of the ACM (JACM)
Prolog++: The Power of Object-Oriented and Logic Programming
Prolog++: The Power of Object-Oriented and Logic Programming
Querying the Semantic Web: A Formal Approach
ISWC '02 Proceedings of the First International Semantic Web Conference on The Semantic Web
Description logic programs: combining logic programs with description logic
WWW '03 Proceedings of the 12th international conference on World Wide Web
Go!—A Multi-Paradigm Programming Language for Implementing Multi-Threaded Agents
Annals of Mathematics and Artificial Intelligence
Ontology schema for an agent belief store
International Journal of Human-Computer Studies
OWL rules: A proposal and prototype implementation
Web Semantics: Science, Services and Agents on the World Wide Web
T-square: a domain specific language for rapid workflow development
MODELS'12 Proceedings of the 15th international conference on Model Driven Engineering Languages and Systems
Hi-index | 0.00 |
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.