Joshua: Uniform Access to Heterogeneous Knowledge Structures, or Why Joshing Is Better than Conniving or Planning
Abstract
This paper presents Joshua, a system which provides syntactically uniform access to heterogeneously implemented knowledge bases. Its power comes from the observation that there is a Protocol of Inference consisting of a small set of abstract actions, each of which can be implemented in many ways. We use the object-oriented programming facilities of Flavors to control the choice of implementation. A statement is an instance of a class identified with its predicate. The steps of the protocol are implemented by methods inherited from the classes. Inheritance of protocol methods is a compile-time operation, leading to very fine-grained control with little run-time cost. Joshua has two major advantages: First, a Joshua programmer can easily change his program to use more efficient data structures without changing the rule set or other knowledge-level structures. We show how we thus sped up one application by a factor of 3. Second, it is straightforward to build an interface which incorporates an existing tool into Joshua, without modifying the tool. We show how a different TMS, implemented for another system, was thus Interfaced to Joshua.
Cite
Text
Rowley et al. "Joshua: Uniform Access to Heterogeneous Knowledge Structures, or Why Joshing Is Better than Conniving or Planning." AAAI Conference on Artificial Intelligence, 1987.Markdown
[Rowley et al. "Joshua: Uniform Access to Heterogeneous Knowledge Structures, or Why Joshing Is Better than Conniving or Planning." AAAI Conference on Artificial Intelligence, 1987.](https://mlanthology.org/aaai/1987/rowley1987aaai-joshua/)BibTeX
@inproceedings{rowley1987aaai-joshua,
title = {{Joshua: Uniform Access to Heterogeneous Knowledge Structures, or Why Joshing Is Better than Conniving or Planning}},
author = {Rowley, Steve and Shrobe, Howard E. and Cassels, Robert and Hamscher, Walter},
booktitle = {AAAI Conference on Artificial Intelligence},
year = {1987},
pages = {48-52},
url = {https://mlanthology.org/aaai/1987/rowley1987aaai-joshua/}
}