Knowledge modeling – State of the art

Vladan Devedzic
2001 Integrated Computer-Aided Engineering  
A major characteristic of developments in the broad field of Artificial Intelligence (AI) during the 1990s has been an increasing integration of AI with other disciplines. A number of other computer science fields and technologies have been used in developing intelligent systems, starting from traditional information systems and databases, to modern distributed systems and the Internet. This paper surveys knowledge modeling techniques that have received most attention in recent years among
more » ... opers of intelligent systems, AI practitioners and researchers. The techniques are described from two perspectives, theoretical and practical. Hence the first part of the paper presents major theoretical and architectural concepts, design approaches, and research issues. The second part discusses several practical systems, applications, and ongoing projects that use and implement the techniques described in the first part. Finally, the paper briefly covers some of the most recent results in the fields of intelligent manufacturing systems, intelligent tutoring systems, and ontologies. knowledge processing, intelligent databases, knowledge discovery and data mining, distributed AI, knowledge management, and user modeling. Intelligent Agents Intelligent agent is a program that maps percepts to actions. It acquires information from its environment ("perceives" the environment) and decides about its actions and performs them. While there is no real consensus about the definition of intelligent agents, the above one adapted from [53] is intuitively clear and essentially describes the general concept of generic agent, Figure 2 . All more specific intelligent agents can be derived from that concept. Environment Percepts Actions Agent Effectors Sensors Figure 2. Generic agent (after [53]) There are different other names for intelligent agents, such as software agents, autonomous agents, adaptive interfaces, personal agents, network agents, softbots, knowbots, taskbots, and so on. Although there are minor differences among all these concepts, all of them are used to denote (one way or another) intelligent agents. For the purpose of this survey, we will adopt the term "intelligent agent" and its definition as an autonomous software entity that perceives its environment through sensors, acts upon it through its effectors, has some knowledge that enables it to perform a task, and is capable of navigation and communication with other agents. Intelligent agents help their users locate, acquire, filter, evaluate, and integrate information from heterogeneous sources, i.e. coordinate information acquisition. Unlike most other kinds of intelligent systems, intelligent agents help all categories of end users. They help users in different ways, e.g. by hiding the complexity of difficult tasks, performing some tasks on behalf of their users, teaching end users, monitor events and procedures of interests to their users, helping the users collaborate and cooperate, and the like [26], [42] . Agents have the ability to identify, search, and collect resources on the Internet, to optimize the use of resources, and to perform independently and rapidly under changing conditions. However, the user doesn't necessarily "listen" to what the agent "says". Intelligent agents are modeled after human agents. Typically, they interact with their users as cooperative assistants, rather than just letting the users manipulate them as traditional programs. They act autonomously or semiautonomously as communicational interfaces between human agents and other programs, as well as between other computational agents and other programs [44] . Along with the capabilities of autonomous operation and communication, their other useful properties include, initiative, timeliness of response, flexibility, adaptability, and often a learning capability. It should be understood, though, that the concept of intelligent agent is not an absolute characterization that divides the world to agents and non-agents. From the architectural point of view, most agents fall into one of the following categories [27], [45], [62], [63]: ?? Logic-based agents. Such agents make decisions about their actions through logical deduction, as in theorem proving. The internal state of a logic-based agent is assumed to be a database of formulae of classical first-order predicate logic. The database is the information that the agent has about its environment, and the agent's decision-making process is modeled through a set of deduction rules. The agent takes each of its possible actions and attempts to prove the formulae from its database using its deduction rules. If the agent succeeds in proving a formula, then a corresponding action is returned as the action to be performed. ?? Reactive agents. Their decision-making is implemented in some form of direct mapping from situation to action, often through a set of task accomplishing behaviors. Each behavior may be thought of as an individual action function that maps a perceptual input to an action to perform. Many behaviors can fire simultaneously, and there is a mechanism to choose between the different actions selected by these multiple behaviors. Such agents simply react to their environment, without reasoning about it. ?? Belief-desire-intention (BDI) agents. These agents internally represent their beliefs, desires, and intentions, and make their decisions based on these representations. BDI architectures apply practical reasoning, i.e. the process of continuously deciding which action the agent is to perform next in order to get closer to its goals. The process is represented in Figure 3, where a frequently used are KQML (Knowledge Query and Manipulation Language) [21], [31], and FIPA ACL [22], [31]. KQML is a language and a set of protocols for agent communication that supports different architectures and types of agents. It also supports communication between an agent and other clients and servers. KQML uses standard protocols for information exchange (such as TCP/IP, email, HTTP, CORBA), and different modes of communication (synchronous, asynchronous, and broadcast). Figure 5 illustrates the layered organization of KQML messages, and Figure 6 shows an example KQML message. Message content can be described in any language and is wrapped-up in description of its attributes, such as the message type, the content language, and the underlying domain ontology. The outer wrapper is the "communication shell", specifying the message sender, the receiver, and the communication mode. Communication shell Sender ID, Receiver ID, communication mode (synch/asynch) Message Content attributes (language, underlying ontology, message type,...)
doi:10.3233/ica-2001-8307 fatcat:m6nkbwouzfbbbkvgpzcdyeftwe