You are on page 1of 7

Available online at www.sciencedirect.

com

Knowledge-Based Systems 21 (2008) 391–397


www.elsevier.com/locate/knosys

Using frames for knowledge representation


in a CORBA-based distributed environment
Milko Marinov *
Department of Computer Systems, University of Rousse, 8 Studentska Street, 7017 Rousse, Bulgaria

Received 25 March 2006; accepted 20 February 2008


Available online 29 February 2008

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.

Keywords: Frame knowledge representation; CORBA-based architecture; Planning techniques

1. Introduction mentation of the features and syntax defined by F-logic.


FLORID supports a powerful logic, departing form a
Frame knowledge representation is one of the primary frame-based knowledge representation scheme, adopting
technologies used for large scale knowledge representation a style of programming that mixes intensional and exten-
in artificial intelligence (AI). Frame knowledge technique is sional definitions and supporting higher order syntactic
used to represent knowledge in many information and constructions. The notion of schema is formed by the def-
experts systems. The theory of frame, which provides a inition of class signatures and class hierarchies, and no dis-
rather abstract idea, is introduced by Minsky in [13] in tinction is made between data and schema declarations.
1974. To use frame in real applications, a more concrete The common parts of the frame model which are shared
design is required. In the past few decades AI researchers by many systems are based on the knowledge model of the
in knowledge representation have implemented over 50 Open Knowledge Base Connectivity (OKBC) which aims
frame knowledge representation systems [18,21,22]. A few to give a common standard on the design of knowledge
large hybrid tools such as KEE, ART, SRL and PRED models and access interface for frame-based knowledge
[3,8,23] represent facts as frames. A number of frame lan- systems. OKBC is a protocol for accessing knowledge
guages have been developed in recent years to support bases in knowledge representation systems [24]. It consists
knowledge-based systems [1,3,11,20]. The idea of a frame of set of operations that provide a generic interface to the
system as a way to represent declarative knowledge has underlying knowledge representation systems. Protege-
been encapsulated in a series of frame-oriented knowledge 2000 is an OKBC-compatible knowledge-base-editing envi-
representation languages. Examples of such languages ronment [15,16]. The goal of this system is to achieve inter-
include KRL, FRL, RLL, KL-ONE, KRYPTON and operability with other knowledge representation systems.
FRAMEKIT [6,9,21,22]. FLORID [1] is a partial imple- The knowledge model of Protege-2000 is frame-based, with
units like classes, slots, facets, axioms and instances. Clas-
*
Tel.: +359 82 888 356; fax: +359 82 845 708. ses are concepts in the domain. Slots are properties or attri-
E-mail address: MMarinov@ecs.ru.acad.bg butes of classes. FramerD is a distributed object-oriented

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

 Frame default information. These are slot values that


are taken to be true when no evidence to the contrary User Interface
has been found.
 New instance information. Many frame slots may be left
Component Component
unspecified until given a value for a particular instance (Client) (Client)
or when they are needed for some aspect of problem
solving.
ORB
A facet is used to represent a characteristic of a slot.
This may be a little confusing, as fields do not usually have
IIOP
characteristics, only values. In fact, the most basic kind of
facet a slot can have is the value facet. The value facet is the
facet of a slot used to hold the data for the slot. A demon is TCP/IP
a procedure that is invoked as a side effect of some other Network
actions in the knowledge base. Demons are procedures,
which are activated at any time during a program execution
depending on conditions evaluated in the demon itself. IIOP
Examples of demons used in conventional programming
include error detection, default commands and end of file ORB
detection.

3. Implementation of the tool Component Component


(Client + Server) (Server)
Fig. 1 shows the most important modules that make up
a distributed knowledge-based system utilizing CORBA
architecture. The user interacts with the system through a Knowledge Inference engine
base editor
user interface that simplifies communication and hides
much of the system complexity. The knowledge base con-
tains the problem-solving knowledge of the particular Frame Hierarchy Model
application. This knowledge is represented by frames in
the frame-based system. The knowledge base contains both
general knowledge as well as case-specific information (the Planner & Executor
facts, conclusions and other information relevant to the
case under consideration). This includes the data given in
a problem instance, partial conclusions, and dead ends in
the search process. This information is separate from the
general knowledge base. In this paper an attempt is made Knowledge base
to incorporate the artificial intelligence techniques into
the design of frame hierarchies. We propose to use plan- Fig. 1. Architecture of a distributed knowledge-based system.
ning techniques (this issue is the subject of discussion in
Section 4) to create the frame hierarchy model, used as
input data by the inference engine. The inference engine architecture is the Object Request Broker (ORB). The pri-
applies the knowledge to the solution of actual problems. mary responsibility of the ORB is to resolve requests for
This is an interpreter for the knowledge base. Forward object references, enabling application components to
chaining is usually used when a new fact is added to the establish connectivity with each other. The major benefit
knowledge base and we want to generate its consequences, offered by the ORB is its platform-independent treatment
which might result in other new facts. For a certain thing of data. The Interface Definition Language (IDL) is used
we want to prove, the backward chaining inference finds to define interfaces between application components. All
implication facts that would allow us to conclude it. It is components of the architecture and all object type defined
used for finding all answers to a question posed to the in the architecture are defined and constructed as modules
knowledge base. Knowledge base editor assists in the addi- with interfaces, which are specified in the IDL. CORBA
tion of new knowledge, maintains correct knowledge struc- defines a wire protocol for making requests to an object
ture and performs consistency checks on the updated and for the object to respond to the application making
knowledge base. the request. The Internet Inter-ORB Protocol (IIOP)
The CORBA architecture is designed to support the dis- ensures interoperability between client application and ser-
tribution of objects implemented in a variety of program- ver-based objects. The IIOP runtime communication pro-
ming languages. A fundamental part of the CORBA tocol provides a standard based data representation,
394 M. Marinov / Knowledge-Based Systems 21 (2008) 391–397

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.

pure-client client-server pure-server

Server-object
Server-object
Object
Skele- Object
Implemen-
ton Skele- Implemen-
remote tation
invocation ton tation
Client-object
Client-object
Stub
Stub

Fig. 2. CORBA clients and servers.


M. Marinov / Knowledge-Based Systems 21 (2008) 391–397 395

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

Let BaseFramesList be empty;


Let BaseList(CurFrame) be empty;
Select CurFrame from the set of frames, incorporated into the FHM;
CurFrame has to be with at least one base frame;
Copy InheritTable.BaseFrames[CurFrame] to BaseList(CurFrame);
Copy BaseList(CurFrame) to BaseFramesList;
While BaseFramesList is not empty Do
{
While BaseList(CurFrame) is not empty Do
{
Add CurFrame to the InheritTable.DerivedFrames[x]
of the correspondent base frame X;
Delete the base frame from BaseList(CurFrame);
}
Set a frame from BaseFramesList to CurFrame;
Delete CurFrame from BaseFramesList;
An attempt is made by continuing the planning in depth;
Copy InheritTable.BaseFrames[CurFrame] to BaseList(CurFrame);
Copy BaseList(CurFrame) to BaseFramesList;
}

Fig. 3. Planner algorithm.

Create GoalFrames;

While GoalFrames is not empty Do


{
Planning is done following the algorithm described in pseudo-code in Fig. 3,
depending on the initial state of the Frame Hierarchy Model or
the state at which the plan has failed having in mind the global goal.
A new plan P is generated;

For each frame X of P


If InheritTable.BaseFrames[x] is empty
then Add X to InitList;
While InitList is not empty Do
{
If GoalFrames is empty, TERMINATE;
Select a frame from InitList and set it to CurFrame;
Delete CurFrame from InitList;
Copy InheritTable.DerivedFrames[CurFrame] to
DeriveList(CurFrame);
While DeriveList(CurFrame) is not empty Do
{
Select a frame from DeriveList(CurFrame) and set it to CurFrame;
Delete CurFrame from DeriveList(CurFrame);
If CurFrame is in GoalFrames then
Delete CurFrame from GoalFrames;
}
}
}

Fig. 4. Executor algorithm.

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.

You might also like