- 著者
-
繁田 良則
赤間 清
宮本 衛市
- 出版者
- 一般社団法人 人工知能学会
- 雑誌
- 人工知能 (ISSN:21882266)
- 巻号頁・発行日
- vol.10, no.6, pp.971-979, 1995-11-01 (Released:2020-09-29)
To describe knowledge in Prolog, programmers have to represent it only by terms, which might not only impose complicated programming on them, but also result in inefficient programs in some applications. To improve the above points in Prolog, many extended languages with more expressive data structures are proposed so far. Infinite trees in Prolog II and ψ terms in LOGIN are such extensions of Prolog terms. Each extended language, however, only provides specific and fixed data structures. Still, it is not well suited to various applications. This paper reports a knowledge representation language called UL/α. It provides facilities for programmers to define logical objects and unification rules, where logical objects are extensions of Prolog terms and work as "logical" data structures. Using UL/α, programmers can easily define many logical objects such as class objects, constraints, sets, strings, typed objects and function objects. In order to justify computations logically, we should have theoretical basis for newly-introduced data structures. It is, however, not so easy to construct a new theory of logic each time a programmer defines data structures for some application domains. This difficulty is reduced in the case of UL/α, since it is designed on a general axiomatic theory of extended logic programs, which provides programmers with safety conditions of newly-defined objects and their unification rules so that the programs consisting of the objects have logical meanings. Thus, UL/α is unique as a knowledge representation language in that (1) it provides programmer-defined logical objects, (2) it permits programmers to define both syntactic forms and unification rules for logical objects, and (3) it is based on an axiomatic theory which enables programmers to justify their unification rules.