Information ModelingKy Van Ha We need languages for describing things. Computers need languages to talk to each other. We are in a period that could be called the "post-Internet" one; everything that is not related to Internet is shown as an uninteresting thing. The future is programmable networks, intelligent networks, and mobile agent systems. We would like to share our knowledge with the whole world, and we would like to use programs, knowledge of any one else. In such a world, the way we make our information understood is important. How our agents can share their work, how different computers in the world can communicate with each other? We need a model for representing our knowledge; i.e. our information needs to be modeled. We would like, in this issue of HØIT and may be in the other ones in the future, to discuss this important topic, how we can model our information. Or more important, how the other model their information. Can we get something that we can share with? Knowledge RepresentationThere are many different kinds of knowledge we may want to represent, simple facts or complex relationships, mathematical formulas or rules for natural language syntax, associations between related concepts, inheritance hierarchies between classes. Each type of knowledge places special requirements on both human comprehension and computer manipulation. Knowledge representation is not a one-side that fits all propositions. Choosing a knowledge representation for any particular application involves tradeoffs between the needs of people and computers. A good knowledge representation must be easy to use, and must be easily modified and extended, either by changing the knowledge manually or through automatic machine learning techniques.There are three popular approaches for storing knowledge in computers:
When our agents need to talk to each other, they can do it in a variety of ways. They can talk directly to each other, provided they speak the same language. Or they can talk through an interpreter, translator or facilitator, providing they know how to talk to the interpreter, and the interpreter can talk to other agents. The agents need to have a shared vocabulary or words and their meaning. This shared vocabulary is called ontology. In this paper, we would like to review some main features of ontology and the KIF, one of frameworks for constructing ontologies. OntologyIn the Guest Editors' Introduction of [1], W. Swartout, and Austin Tate state "An ontology provides the basic structure or armature around which a knowledge base can be built". Ontology provides a set of concepts and terms for describing things in some domain, while a knowledge base uses those terms to represent what is true about some real or hypothetical world. Given a domain, its ontology forms the heart of any system of knowledge representation for that domain. Thus the first step in devising an effective knowledge representation is to perform an effective ontological analysis of the ontology domain. The popular technique is the object-oriented modeling. Why ontological analysis is important? It is because different systems use different concepts and terms for describing domains. These differences make it difficult to take knowledge out of one system and use it in another. If we could develop ontology that could be used as the basis for multiple systems, they would share a common terminology that would facilitate sharing and reuse. Sharing and reuse is the important factors for any information modeling techniques. It is the way, the ARPA Knowledge Sharing Effort [3] envisioned in 1991, in which intelligent systems could be built. They proposed the following:"Building knowledge-based systems today usually entails constructing new knowledge based from scratch. It could be done by assembling reusable components. Systems developers would then only need to worry about creating the specialized knowledge and reasons new to the specific task of their system. This new system inter-operates with existing systems, using them to perform some of its reasoning. In this way, declarative knowledge, problem-solving techniques and reasoning services would all be shared among systems. This approach would facilitate building bigger and better systems cheaply." The Knowledge Sharing Effort currently involves participants from over a dozen different research centers around the United States, as well as a small number of centers abroad. It is organized around four working groups:
Let us look at an example, the ontology for mathematical modeling in engineering, EngMath, developed by Thomas R. Gruber and Gregory R. Olsen [4]. The ontology includes conceptual foundations for scalar, vector, and tensor quantities, physical dimensions; units of measure, functions of quantities, and dimension quantities. The conceptualization build on abstract algebra and measurement theory but if designed explicitly for knowledge sharing purposes. The ontology is being used as a communication language among cooperating-engineering agents, and a foundation for other engineering ontologies. The following is a simple example taken from the Gruber's paper. Assume that Agent A is a specialist in the design of springs, and agent B is a specialist in quantity algebra. Agent A needs a solution to a set of equations relating spring and material properties that include the following:
Where k is the spring rate, d is wire diameter, D is spring diameter, N is number of turns, and G is the shear modulus of elasticity. Agent A sends the following message to agent B:
(scalar-quantity k)
(= (physical.dimension k)
(/ force-dimension length-dimension))
(scalar-quantity d)
(= (physical.dimension d) length-dimension)
(scalar-quantity dm)
(= (physical.dimension Dm) length-dimension)
(scalar-quantity N)
(= (physical.dimension N) identity-dimension)
(scalar-quantity G)
(= (physical.dimension G)
(* force-dimension
(expt length-dimension -2)))
(= k (/ (* (expt d 4) G) (* 8 (expt Dm 3) N)))
(= G (* 11.5 (expt 10 6) psi))
This type of information allows agent B to perform algebraic manipulations such as solutions of simultaneous equations or numerical evaluations of individual parameters. The vocabulary used in this interaction, such as the function constant "physical.dimension" is independent of a domain theory for springs. Messages or information used in EngMath is a set of KIF (Knowledge Interchange Format) sentences. The example above uses some objects defined by KIF definitions or KIF axioms. Let us look at an example. The class "constant-quantity" is defined in [4] as follows:
A constant-quantity is a constant value of some physical-quantity, like 3 meters or 55 miles per hour. Constant quantities are distinguished from function-quantities, which map some quantities to other quantities. For example, the velocity of a particle over some range of time would be represented by a function-quantity mapping values of time (which are constant quantities) to velocity vectors (also constant quantities). All real numbers (and numeric tensors of higher order) are constant quantities whose dimension is the identity-dimension (i.e., the so-called 'dimensionless' or dimensionless-quantity). This conceptualization is defined by the following KIF axiom: (<=> (constant-quantity ?X) (and (physical-quantity ?X) (not (function-quantity ?X)))) In the next section we will discuss some features of KIF syntax and give some examples how one can write a KIF message. The Knowledge Interchange Format - KIFThe KIF is a language that was expressly designed for the interchange of knowledge between agents. Based on predicate calculus, KIF is a flexible knowledge representation language that supports the definition of objects, functions, relations, rules, and metaknowledge (knowledge about knowledge). In the past ten years, KIF has emerged as the preferred language in efforts to have a standard knowledge representation format for use between a variety of intelligent agents. KIF is not a programming language. KIF is a language designed for use in the interchange of knowledge among disparate computer systems created by different programmers, at different times, in different languages, and so forth.The following categorical features are essential to the design of KIF [5]:
Except for characters following \, the lexical analysis of words in KIF is case insensitive. The word abc is the same as ABC. The word a\bc is the same as AbC but it is different from ABC. There are two ways to refer to characters. The first method is use of character reference (charref) syntax. A character reference consists of the characters #, and \, followed by the character to be presented. But it is difficult to write out a non-printing character; another method can be used. KIF defines the function char-code and code-char to represent the relationship between characters and their numerical codes:
(= (char-code #\cn) n) Code of a character cn is a 7-bit integer n and cn is a character that has code n. Character references allow us to refer to characters as characters and differentiate from the one-character symbols, which may refer to other object. A string is a list of characters. There are three ways to refer to a string:
All three above examples refer to a string "abc". A word is a contiguous sequence of normal characters or characters preceded by \. A word in the KIF syntax can be split into three major groups: variables, operators, and constants. Variables: There are two types of variables, individual variables that begin with the character '?' such as ?x, ?y, and sequence variables that begin with the @x, @y. Operators: are used in forming complex expressions of various sorts. There are three types of operators in KIF: term operators, sentence operators, and definition operators.
(= origin (list 0 0 0))
(=> (father ?x) (exists ?y (child ?y ?x)))
(= (grandfather ?x) (father (father ?x)))
(<=> (Rational-Number ?x)
(and (Real-Number ?x)
(Exists (?y)
(and (Integer ?y)
(Integer (* ?x ?y))))))
The last sentence defines a variable x is a rational number if it is a real number and if it exists a variable y such that x*y is an integer.
Terms, sentences, and definitions are the three different types of expression in KIF. Definitions and sentences are called forms. A knowledge base is a finite set of forms. Ontologies and constructing ontologies are important in attempt to construct the large systems using shared knowledge. Several researchers and system developers have become more interested in reusing and sharing knowledge across systems. The DARPA, Knowledge Sharing Library (KSL) [3], provides a digital library of papers, email discussion lists, software, and pointers to related projects. Reusable ontologies that were formerly found at this URL are now available interactively through the Ontolingua Server. The Knowledge System Lab at Stanford University, Department of Computer Science focused the following works:
References[1] IEEE Intelligent Systems & their application, January/February 1999.[2] The Ontology Page, http://www.kr.org/top [3] Knowledge Sharing Library on the World Wide Web, http://www-ksl.stanford.edu/knowledge-sharing [4] An ontology for Engineering Mathematics, Tomas R. Gruber and Gregory R. Olsen, in Fourth International Conference on Principles of Knowledge Representation and Reasoning, ed. Jon Dolyle, Piero Torasso & Erik Sandewall, Bonn, 1994 [5] Knowledge Interchange Format, draft proposed American National Standard, http://logic.standford.edu/kif/dpans.html [6] What are ontologies, and why do we need them, B. Chandrasekaran, John R. Josephson, and V. R. Benjamins, in [1].
Copyright: 1998, 1999, Høgskolen i Østfold. Last Update: November.99, Jan Høiberg. |