Professional Documents
Culture Documents
com
Abstract
Frame knowledge model provides a natural way of clustering knowledge and particularly dynamic rules around frames which in turn
provides the natural way of distributing knowledge among networks hosts. Frame knowledge representation is very similar to traditional
object-oriented approach. In the present paper the general features of the frames are considered. The basic principles and the architecture
of the software tool for constructing knowledge-based systems are discussed. The application of planning techniques to maintain the
frame hierarchy model is specified and further developed by defining a generalized algorithm of the Planner and Executor.
Ó 2008 Elsevier B.V. All rights reserved.
0950-7051/$ - see front matter Ó 2008 Elsevier B.V. All rights reserved.
doi:10.1016/j.knosys.2008.02.003
392 M. Marinov / Knowledge-Based Systems 21 (2008) 391–397
database designed to support maintenance and sharing of representation. In order to establish communication
knowledge bases [2]. Unlike typical object-oriented dat- between knowledge base and database systems, each com-
abases, FramerD is optimized for pointer-intensive data ponent must depend on its own representation structures
structures used by semantic networks, frame systems, and and inference methods.
many intelligent agent applications. FramerD provides basic The present paper considers an architecture and imple-
operations on units and slots: getting slot value, testing mentation of a distributed CORBA-based toolkit, which
whether the slot includes a value, adding an object to the slot provides the basic set of functions for creating and manip-
values, and removing an object from the slot values. Concep- ulating frames. The tool allows domain experts to create
tually Oriented Design/Description Environment (CODE4) appropriate frame-based knowledge quickly and without
is a general purpose knowledge management system [4]. The knowledge of a programming language. The paper is orga-
knowledge representation used in CODE4 is based on con- nized as follows. Section 2 provides some specifications of
cepts of frame, conceptual graph, object orientation and the general features of the frames. The architecture and
description logic. It differs from typical frame-based systems implementation of the tool are described in the next para-
in the generality and uniformity of the knowledge unit in graph. The maintenance of inheritance structure in the
CODE4, called concept. Statements are treated as concepts frame hierarchy model is considered in Section 4. The con-
(with the subject role) that link properties (with the predicate clusion summarises the author’s contributions and his
role) to concepts. Soshnikov [5] proposes a JULIA software future research intentions.
toolkit for building embedded and distributed knowledge-
based systems. The architecture is based on frame knowledge 2. General features of the frames
representation and production rules. The approach allows
combining in one model static knowledge in the form of slot A frame is a collection of attributes (usually called slots)
values, structural knowledge in the form of frame hierarchy, and associated values (and possibly constraints on values)
and dynamic knowledge in the form of attached procedures. that describes some entity in the world. A frame describes
The main feature of this toolkit is the ability to be distributed an entity in some absolute sense or it represents the entity
over the network and share different knowledge types from a particular point of view. Originally conceived by
through the mechanisms of distributed frame hierarchies Minsky [13,21], the frame representation was formulated
and remote rules. as a means of describing how humans might represent
The Common Object Request Broker Architecture and use knowledge. The frame is described as a network
(CORBA) [10,19] has been proposed as a standard by the of nodes and relations. The top levels of the frame repre-
Object Management Group (OMG). CORBA is middle- sent attributes, which are always true about the situation
ware that enables interoperability and supports distributed and so remain fixed. Lower levels of the frame have termi-
object computing. Many issues discussed in the distributed nals or slots, which must be filled by specific instances or
database systems literature [7,14,17], are also relevant to data. Each terminal may specify conditions requiring smal-
distributed knowledge-based systems, namely, the global ler sub-frames. Collection of related frames may be linked
schema definition, communication among local databases, to form a frame-based system.
fragmentation, allocation and heterogeneity. The heteroge- In many ways a frame represents a record. Like a
neity to be treated by a distributed knowledge-based record, a frame consists of field-like components. These
system exists at four levels [25]: platform level, communica- components contain data. Unlike a record containing
tion level, database system level and the semantic level. fields, the elements of a frame are slots, facets and data.
CORBA provides implementation and platform transpar- Frames are more stratified than records. A frame can have
ency. An object’s interface is defined through the CORBA one or more slots. Each slot contains a particular kind of
Interface Definition Language (IDL) that hides the under- data. If a frame describes an object, slot would describe a
lying object implementation. A client of the object uses this characteristic of the object. The slots in the frame contain
interface to invoke methods. It does not know nor care information such as:
about the hardware and software environment of the
object. This solves the platform heterogeneity problem. Frame identification information.
On the other hand CORBA provides location transparency Relationship of the current frame to other frames.
that allows clients to access objects using CORBA naming Descriptors of requirements for frame match. These
service and their object reference independent of their loca- requirements may be used to determine when new
tion and communication protocols. This solves the hetero- objects fit the stereotype defined by the frame.
geneity problem at the communication level. The third level Procedural information on use of the structure
of heterogeneity is among the database management sys- described. An important feature of frames is the ability
tems based on different data models and query languages. to attach procedural code to a slot. If more information
The semantic heterogeneity appears among independently is needed, an if_needed slot can be used to activate an
designed knowledge bases. Semantics of distributed infer- attached procedure to fill in the slot. This concept of
ence in the model of distributed frame hierarchy is based procedural attachment is closely related to the concept
on inference semantics of systems with frame knowledge of demons.
M. Marinov / Knowledge-Based Systems 21 (2008) 391–397 393
which allows the objects to be located anywhere while object model is a first attempt to relate the program
removing the need for network programming. model to the database model since the object-oriented
In a CORBA application, any component that provides design represents abstract data types and inheritance
an implementation for an object is considered a server, at mechanism in ways that traditional data models do not
least where this object is concerned. Being a CORBA server support well. By creating a new frame database, a FRM
means that the component (the server) executes methods file is created first. The purpose of the file is to save the
for a particular object on behalf of other components frame database name as its own name, as this file has
(the clients). A client is a component that consumes services the role of a file for additional information. After the cre-
provided by a server or servers. Frequently, an application ation of the FRM file, the files storing the table data are
component can provide services to other application com- created. Each frame database supports four relations. The
ponents while accessing services from other components. In names of these files are formed by adding a suffix (F – for
this case, the component is acting as a client of one compo- frames, S – for slots, A – for facets and V – for values) to
nent and as server to the other components (Fig. 2). In fact, the frame database name. The class inheritance in the
two components can simultaneously act as clients and serv- frame database is defined as IDL interfaces in the follow-
ers to each other. A server is defined as an interface in ing manner:
CORBA IDL. Data passing between the client and the ser-
ver is defined as IDL structures. Clients communicate with interface Frame{
the object through an object reference. When an operation attribute string frameName;
is performed on the object reference, network communica- . . .. . .. . .. . .. . .. . .. . .. . .. . . . . .
tion occurs, operation parameters are sent to the server and };
the actual distributed object executes the operation. It then interface Slot: Frame {
returns any appropriate data to the client. In the proposed attribute string slotName;
architecture the frame objects are passed by reference. This . . .. . .. . .. . .. . .. . .. . .. . .. . . . . ..
means that the object itself remains ‘‘in place” while an };
object reference for that object is passed. Operations on interface Facet: Slot {
the frame object through the object reference are actually attribute string facetName;
processed by the object itself. On CORBA clients, the stubs . . .. . .. . .. . .. . .. . .. . .. . .. . . . . ..
are the automatically client-side generated code from an };
IDL interface, it is a local mirror object of its correspond- interface Value: Facet {
ing remote server-object. The stub acts as a proxy for an attribute string value;
object that may be implemented by the same process, htypei valueType;
another process, or on another (server) machine. The skel- . . .. . .. . .. . .. . .. . .. . .. . .. . . . . ..
etons are the automatically server-side generated code from };
an IDL interface providing the code needed to register and
activate an object. The hierarchy is rooted at a node representing the entire
In order to create a frame database the requirements in frame database. Descending from the root node is an edge
many cases do not correspond to all requirements for connecting the root to a node for each frame in the data-
development of a standard database. This is due to the base. Each frame may have one or more slots. For each slot
fact that frame database can be neither included in the belonging to a frame, there is a node and an edge connect-
relational model, nor in the hierarchical model. The frame ing the frame to the slot node. Likewise, each slot can have
database is closest to the object data model, because the zero or more facets.
Server-object
Server-object
Object
Skele- Object
Implemen-
ton Skele- Implemen-
remote tation
invocation ton tation
Client-object
Client-object
Stub
Stub
The frame editor implements most of the basic frame The Planner constructs the plan which in itself is a
manipulation functions required for building databases sequence of steps aimed at achieving the global goal.
of frames. These include creating a new frame database, In the domain of frame inheritance, the global goal
opening an existing frame database, writing and deleting can be defined as the list of all leaf nodes (the frames
frame information. To define a frame the user normally without derived frames). Each step is connected with cor-
follows these steps: define slots, define facets, define value. responding actions. In our case the meaning of ‘step’ is
There are four fields, which can be used to enter frame to be connected with a corresponding frame for which
elements. The first field is for specifying the name of a the preconditions (base frames) and the expected results
new frame. The second field is used to name slots belong- (derived frames) have been formed. The plan is devel-
ing to the frame. The third field is for specifying facets of oped by the Planner through simulation of the derived
the slot, and the last field is for entering the value of the frames of the current frame over the Frame Hierarchy
facet. Facets can have more than one value, so adding a Model (FHM). Starting with the current state of the
value to a facet with existing values causes the value to FHM, the Planner is trying to find such a sequence of
be appended to the existing values in the frame. Users frames through which the global goal will be achieved.
may modify any locally defined slot or inherited slot. By using the base frames (preconditions) and the derived
Modifying an inherited slot causes the new definition to frames (expected results) of the frames, the Planner can
be locally defined. A complete view of the database is pro- implement different branches in the plan. A successful
vided in the frame contents list. This is a listing of all plan is the one which can be applied to the current state
frames, slots, facets and values in the frame database. of the FHM and can achieve the global goal. The plan is
They are arranged by frame, with slots, facets and values, a directed acyclic graph consisting of a set of nodes and
listed under the frame. a set of arcs. An arc from node A to node B means that
Once a knowledge description is created it can be custom- the fulfilment of A has to precede the fulfilment of B.
ized to capture a particular aspect of the knowledge. This is The nodes of the graph are two types: frames and goals.
achieved by locking slots in one of the following ways: The goal node which precedes a particular frame node
corresponds to the base frames (preconditions). The goal
(1) the user sees the slot and has the option to provide a node which follows a particular frame node corresponds
value; to the derived frames (expected results) which are the
(2) the user sees the slot and must provide a value; base frames for the following frame node.
(3) the user does not see the slot. Let us discuss in greater detail the summarized algo-
rithm of the Planner (Fig. 3). The algorithm uses the fol-
lowing local data structures: CurFrame – the current
4. Maintenance of frame hierarchy model frame from the frame hierarchy; BaseList(CurFrame) – a
list of the CurFrame base frames; BaseFramesList – a tem-
Frame-based systems support class inheritance. The slot poral list structure; InheritTable – a table with the follow-
and default values of a class frame are inherited across the ing structure:
class/subclass and class/member hierarchy. In the context
of frames inheritance means one frame can inherit informa- InheritTable:
tion from another frame. This does not happen automati- attribute string FrameName;
cally – a special slot (named a_kind_of) is needed for this attribute sequence hstringi BaseFrames;
purpose. An a_kind_of slot represents an edge between attribute sequence hstringi DerivedFrames;
frames. Instead of a graphical representation (an arrow),
frames are connected by naming one frame in another In the initial state the DerivedFrames list is empty, i.e.
a_kind_of slot. When an instance of the class frame is cre- for each frame only the base frames are defined.
ated the system will attempt to fill its slots, either by query- The Executor uses a plan created by the Planner. If
ing the user, accepting the default value from the class serious problems arise during the execution of the initial
frame, or executing some procedure or demon to obtain plan, the Executor may reinvoke the Planner to revise
the instance value. The inheritance implies that a derived the plan. If the plan fails then there are integrity con-
class frame inherits data and operations from a base class straints in the frame inheritance. The Executor algorithm
frame. The derived class frame may itself be a base class (Fig. 4) is based on a procedure for producing a linear or
for another layer of inheritance. total ordering of the nodes of a directed graph whose arcs
Developing a plan is defined as finding a sequence of represent a partial ordering relation of the nodes. The
actions to accomplish a specified goal [12]. A planning Executor algorithm uses the following local data struc-
problem must first have a vocabulary of symbols and tures: GoalFrames – the global goal is defined as a list
notion in which the initial state, goal conditions and of all frames with base frames, but without derived frames
operators may be specified. The goal of the planning in the FHM; InitList – a list of frames which defines the
problem will be specified as an expression consisting of initial state; DeriveList(CurFrame) – a list of the Cur-
logical connectives (AND) and instances of class frames. Frame derived frames.
396 M. Marinov / Knowledge-Based Systems 21 (2008) 391–397
Create GoalFrames;
The described generalized algorithms of the Planner and ulate frame database. The most important characteristics
Executor do not include all possible branches in them. The of the proposed interactive tool are that it:
author provides this part of the algorithms which might be
of interest to a wider range of readers. allows multiple inheritance;
has some mechanism for internal consistency checking.
5. Conclusion Frames can be added, retrieved, changed and deleted.
The tool maintains the database integrity and frames
In the present paper an architecture of a tool and its relationships can be monitored. It is possible to navigate
implementation has been proposed. The tool has a highly among the frames;
interactive and user-friendly interface. It provides the views the content of the frame database as a hierarchical
domain experts with a simple and powerful tool to manip- structure;
M. Marinov / Knowledge-Based Systems 21 (2008) 391–397 397
is built on a modular object-oriented base so that the [9] K.W. Tracy, P.M. Bouthoorn, Object-Oriented Artificial Intelligence,
tool could be decomposed in such a way as to make it Using C++, W.H. Freeman, 1997.
[10] M. Henning, S. Vinoski, Advanced CORBA(R) Programming with
easily extensible. The experimental prototype of the C++, Addison-Wesley Professional, 2001.
toolkit was created. The toolkit is implemented in Bor- [11] M. Marinov, An interactive tool for frame representation, Informa-
land C++ Builder programming environment. tion Technologies & Control 1 (2003) 16–19.
[12] M. Marinov, Analysis of planning techniques used in intelligent
The main advantage of using the planning techniques to systems, Automatica & Informatics, Sofia 5–6 (1997) 25–33 (in
Bulgarian).
investigate the inheritance between frames in the frame [13] M. Minsky, A framework for representing knowledge, MIT-AI
hierarchy model is that the frame hierarchies are guided Laboratory Memo 306 (1974).
by the global structure of the plan which is produced auto- [14] M. Stonebraker, P.M. Aoki, W. Litwin, A. Pfeffer, A. Sah, J. Sidell,
matically by the Planner based partly on the information C. Staelin, A. Yu, Mariposa: a wide-area distributed database system,
about the frame hierarchy model. The VLDB Journal 5 (1996) 48–63.
[15] N.F. Noy, M.A. Musen, J.L.V. Mejino Jr., C. Rosse, Pushing the
The author’s further efforts will be aimed at extending envelope: challenges in a frame-based representation of human
the functional capabilities of the toolkit prototype, improv- anatomy, Data & Knowledge Engineering 48 (3) (2004) 335–359.
ing the algorithms incorporated into the inference engine [16] N. Noy, R. Fergerson, M. Musen, The knowledge model of Protege-
and building the tool into a knowledge-based distributed 2000: combining interoperability and flexibility, 2000. Available from:
information system to support the meta-knowledge. <http://citeseer.ist.psu.edu/noy01knowledge.html/>.
[17] O.M. Tamer, P. Valduriez, Principles of Distributed Database
Systems, Prentice Hall, 1999.
References [18] P. Kiatisevi, A distributed architecture for interactive robots based on
a knowledge software platform, Ph.D. Thesis, Department of
[1] B. Ludascher, H. Himmeroder, G. Lausen, W. May, C. Schlepphorst, Informatics, Graduate University for Advanced Studies, SOKEN-
Managing semi-structured data with FLORID: a deductive object- DAI, 2005.
oriented perspective, Information Systems 23 (8) (1998) 1–25. [19] R. Geraghty, S. Joyce, T. Moriarty, G. Noone, COM-CORBA
[2] Beingmeta, FramerD, 2005. Available from: <http://www.framer- Interoperability, Prentice Hall, 1999.
d.org/>. [20] R.M. Kaplan, Intelligent Multimedia Systems, A Wiley Company,
[3] D.M. Russinoff, Proteus: a frame-based non-monotonic inference Jossey Bass, 1997.
system, in: Won Kim, F. Lochovsky (Eds.), Object-Oriented Concepts, [21] S.C. Shapiro (Ed.), Encyclopedia of Artificial Intelligence, Wiley,
Databases and Applications, Addison-Wesley, 1989, pp. 127–150. New York, 1992.
[4] D. Skuce, T.C. Lethbridge, CODE4: a unified system for managing [22] S.J. Russell, P. Norvig, Artificial Intelligence: A Modern Approach,
conceptual knowledge, International Journal of Human–Computer Prentice-Hall, 2002.
Studies 42 (4) (1995) 413–451. [23] S. Xie, D. Dumareso, P. Winne, PRED: A frame-based primitive
[5] D. Soshnikov, An architecture of distributed frame hierarchy for editor, International Journal of Man–Machine Studies 33 (1990) 607–
knowledge sharing and reuse in computer networks, in: Proc. IEEE 621.
International Conference on Artificial Intelligence Systems, [24] V.K. Chaudhri, A. Farquhar, R. Fikes, P.D. Karp, J. Rice, OKBC: a
ICAIS’02, 2002, pp. 115–119. programmatic foundation for knowledge base interoperability,
[6] E. Rich, K. Knight, Artificial Intelligence, McGraw-Hill, 1993. AAAI/IAAI, 1998 600–607. Available from: <http://citeseer.ist.psu.
[7] E. Shakshuki, H. Ghenniwa, M. Kamel, An architecture for edu/chaudhri98okbc.html/>.
cooperative information systems, Knowledge-Based Systems 16 [25] X. Wu, A CORBA-based architecture for integrating distributed and
(2003) 17–27. heterogeneous databases, in: Proc. Fifth IEEE Int. Conf. Engineering
[8] G. Abrett, M.H. Burstein, The KREME knowledge editing environ- of Complex Computer Systems, ICECCS’99, 1999, pp. 143–152.
ment, International Journal of Man–Machine Studies 27 (1990) 103– Available from: http://doi.ieeecomputersociety.org/10.1109/
126. ICECCS.1999.802858.