著者
繁田 良則 赤間 清 宮本 衛市
出版者
一般社団法人 人工知能学会
雑誌
人工知能 (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.
著者
赤間 清 繁田 良則 宮本 衛市
出版者
社団法人人工知能学会
雑誌
人工知能学会誌 (ISSN:09128085)
巻号頁・発行日
vol.12, no.2, pp.266-275, 1997-03-01
被引用文献数
53

We propose a new framework for solving problems based on equivalent transformation of logic programs, where equivalent transformation is defined as changing programs preserving their declarative semantics. In the conventional logic programming, we (1) represent the knowledge in the given problem in terms of a logic program, (2) formalize the given problem as proving the given query from the knowledge, and (3) solve it in use of inference rules, such as resolution. In contrast, our new method does not use inference but equivalent transformation of logic programs. In the new method we (1) represent the knowledge together with the given query in the given problem as a logic program, (2) formalize the given problem as finding its equivalent logic program in a certain form, and (3) solve it by equivalent transformation of logic programs using equivalent transformation rules. Many problems, including the kind of problems which Prolog solves, are formalized and solved in the new method. The computational framework given here is called the Rule Based Equivalent Transformation (RBET). The validity of computation is strictly guaranteed by use of equivalent transformation rules, even if extralogical predicates are used in rules. Transformation rules are more expressive than Horn clauses in Prolog. RBET has the flexibility in the applications order of equivalent transformation rules, which makes efficient computation possible by the control of rule application based on rule preference.