Upload
others
View
1
Download
0
Embed Size (px)
Citation preview
UNIFIED APPROACH FOR DESIGNING
FRAME BASED SYSTEMS
By
PUNAM BEDI
A THESIS SUBMITTED TO THE UNIVERSITY OF DELHI
IN PARTIAL FULFILLMENT OF THE REQUIREMENTS
FOR THE DEGREE
OF
DOCTOR OF PHILOSOPHY
DEPARTMENT OF COMPUTER SCIENCE
UNIVERSITY OF DELHI
DELHI-110 007
INDIA
MAY 1997
CERTIFICATE
This is to certify that the work embodied in this thesis entitled A UNIFIED APPROACH
FOR DESIGNING FRAME BASED SYSTEMS has been carried out in the Department of
Computer Science, University of Delhi. The work presented in this thesis is original and has not
been submitted in parts or full to this or any other university for any diploma or degree.
Punam Bedi
(Candidate)
(Prof. K.D. Sharma) (Dr.(Mrs.) Saroj Kaushik)
Supervisor Supervisor
Department of Computer Department of Computer
Science Science and Engineering
University of Delhi Indian Institute of Technology
Delhi Delhi
(Mrs. Vidya Kulkarni)
Head
Department of Computer Science
University of Delhi
Delhi
Acknowledgements
I would first like to thank my supervisors Prof. K.D.Sharma and Dr.(Mrs.)Saroj Kaushik
for the guidance and support given by them during my work. This work could not have been
accomplished without their assistance and encouragement. Prof. Sharma brought the subject to
my attention and always made himself available for discussions and advice. Dr. Kaushik greatly
helped me in keeping the thesis on solid ground by questioning the assumptions and giving
sound ideas for improvement. The thesis could not have been in the present form without their
help.
My special thanks are to Mrs. Vidya Kulkarni, the Head and Prof. P.S. Grover,
Department of Computer Science for providing me the congenial environment and facilities to
carry out my work.
I take pleasure in acknowledging the cooperation provided by staff members of the
Department of Computer Science and Computer Centre of University of Delhi. Ms. Namita and
Mr. Vyas of Computer Centre deserve a special mention for their assistance and cooperation
during my implementation work in the Computer Centre. I would certainly be a remiss in
omitting an acknowledgement to the staff members of libraries of Computer Centre and
Department of Computer Science for helping me by making available various references and
books in their libraries.
I am grateful to my friends and colleagues for their patience, cooperation and
encouragement.
My sincere thanks are to my parents and brothers for their cooperation and
encouragement throughout this endeavour. I would like to thank my sister, Sangeeta, for helping
me in getting the printouts of my papers in proper formats.
Last but not the least, I owe my heartiest thanks to my husband, Vinod, for helping and
encouraging me throughout. But for his relentless efforts & constant support and cooperation of
all my family members, specially my parents_in_law, I could have hardly finished this onerous
task.
Delhi University
1997
Punam Bedi
ii
Abstract
The emphasis of the work in the thesis is to enhance the existing concept of frame based
systems for handling temporal, distributed and multimedia information. A mathematical
representation of each concept is developed using first_order logic as it provides a powerful
system for reasoning. An integrated structured query language for the proposed system has been
designed and developed. The complete syntax and semantics of the proposed language named
FSQL (Frame_oriented Structured Query Language) is designed. The prototype of FSQL is
implemented to show the feasibility of such system.
The inherent capability of Frame Based System for structuring knowledge has been the
motivation for enhancing its capabilities by adding various dimensions to it and provide SQL
like language to manipulate such systems. Temporal(time) dimension is added keeping various
applications of such systems in mind, e.g., robot planning activities, standardized plans of
buildings & equipments etc. In such situations, it is not appropriate to discard the old
information. Knowledge in these temporal frame systems (Tframe) has the period of validity
which is attached to either frames or its slots or both. If the period of validity is attached to
frames, it is called frame versioning and if attached to its slots, it is called slot versioning. The
proposed Tframe system is based on slot versioning in contrast to frame versioning in order to
achieve efficiency in terms of time and space.[Ilsoo 86]. FSQL takes care of both valid time and
transaction time required for a temporal system.
iii
The scope of procedural attachments in the frames has been extended. The procedural
attachments are viewed as triggers which implies the activation of some other mechanism(s). A
trigger recognizes the occurrence of an event and conditionally performs certain action. These
triggers are very useful for data validation, data entry and data deletion in the situations where
active data management is needed. The level, scope, context, usage, inheritance and overloading
of these triggers with respect to frames have been suggested.
The design of distributed frame systems is proposed with various types of
fragmentations for a given network of frames. The network of frames is the structure created
using "is_a", "ako" and "a_part_of" links amongst frames [chapter 1]. The knowledge
represented using frames is distributed over different computers in a point_to_point network
environment and can be manipulated using FSQL. Such a distributed system will find
applications in organizations having decentralized structure such as Airlines,
Telecommunications, Banks, Corporate MIS, Hotel chains, Military commands & control and
multiplant manufacturing.
Another dimension is to add multimedia knowledge to frames. Such systems overcome
the problems of current hypermedia / multimedia technology for handling abstraction,
associative searching facilities, complex object modelling capabilities. The proposed model
supports the basic structure and operations of multimedia data and can be used to develop active
video presentations. Hyperlinks are also available, so that the user can navigate from one
medium to another.
iv
Finally, an integrated structured query language to handle temporal, distributed and
multimedia knowledge incorporated in existing frame systems is designed and developed. The
FSQL consists of a set of facilities for defining, manipulating and controlling knowledge
contained in the proposed frame systems. The proposed query language has features similar to
SQL of relational databases but takes care of multiple facets of slots and inheritance. The
complete syntax and semantics is developed. To demonstrate the feasibility of the query
language, a subset of FSQL has been implemented using LPA Prolog Professional Compiler
and Quintus Prolog 2.3.
v
Table of Contents
Acknowledgements i
Abstract ii
Chapter 0. Introduction 1
0.1 Literature Survey 3
0.2 Thesis Outline 13
Chapter 1. A Frame System Shell (FS-Shell) 16
1.1 Knowledge Representation using Frames 16
1.2 Overall Design of the Frame System 20
1.3 Representation of Frames in first_order logic 32
1.4 Connecting Rules and Frames 34
1.5 Implementation of the Frame Systems 35
1.5.1 Representing Frames in Prolog 36
1.5.2 Design of the Frame System for Implementation 39
1.6 Design and Implementation of the FS-Shell 43
1.6.1 Design of the FS-Shell 43
1.6.2 Implementation of the FS-Shell 46
1.7 Summary 50
Chapter 2. Time Dimension to Frame Systems 52
2
2.1 The Model of Time 52
2.2 The Temporal Frame Model 54
2.2.1 Representation of Temporal Frames in first_order logic 55
2.2.2 Representation of Time in a Dynamic slot 56
2.2.3 Lifespan Computation 57
2.2.4 Frame versioning vs. slot versioning 61
2.3 Implementation of Temporal Frame Query Language 64
2.4 Summary 71
Chapter 3. Triggers in Frame Systems 72
3.1 Level, Classification, Scope and Contexts of Triggers 71
3.1.1 Trigger Definition Level 71
3.1.2 Classification of Triggers 72
3.1.3 Scope and Contexts of Triggers 75
3.1.4 Overloading of Triggers 77
3.2 Inheritance of Triggers 78
3.3 Temporal Triggers in Frames 79
3.4 Triggers for views of a frame 79
3.5 Triggers w.r.t. multimedia environment 80
3.6 Implementation of Triggers 80
3.7 Summary 81
Chapter 4. Distributed Frame Systems 83
4.1 Distributed Knowledge Based System 83
4.1.1 Operations on Fragments of Frames 87
3
4.1.2 Representing Fragmentation in first_order logic 87
4.1.2.1 Network Fragmentation 87
4.1.2.2 Instance Fragmentation 88
4.1.2.3 Slot Fragmentation 89
4.2 Reference Architecture for Distributed Frame Systems
(DFS) 89
4.3 Distribution Transparency in DFS 91
4.4 Distributed Frame Management System 92
4.5 Message passing in Distributed Frame Management System 96
4.6 Distributed Frame Query Language 97
4.7 Summary 100
Chapter 5. Multimedia Dimension To Frame Systems 101
5.1 Basic Terminology 102
5.2 The Multimedia Frame Model 103
5.2.1 Media as a Slot 103
5.2.2 Media as a Facet 107
5.3 System_Defined Classes 108
5.4 System Architecture 110
5.5 Multimedia Frame Query Language 112
5.6 Summary 118
Chapter 6. FSQL- A Frame_oriented Structured Query Language 119
6.1 Some Common Statements of FSQL 120
6.2 Syntax of FSQL 129
4
6.3 Semantics of FSQL 145
6.4 Summary 160
Chapter 7. Conclusion 161
7.1 Conclusion 161
7.2 Applications of the Proposed System 164
Appendix-I. Sample Outputs
Bibliography
Glossary
Abbreviations
5
Chapter 0
Introduction
Representation and management of knowledge play an important role in
Artificial Intelligence. Knowledge structures are used to store knowledge and provide a
capability of reasoning such knowledge. The problem of representing knowledge in a
way that is best suited for use by a computer program is known as knowledge
representation.
Different Knowledge Representation Schemes are available in the literature with
varying degrees of merits and demerits. The choice of most suitable formalism to be
used is of course one of the main problems when designing knowledge based/ expert
system. Different knowledge representations in the literature include
Object_Attribute_Value-triplets (OAV-triplets), Logic, Semantic Networks, Rules and
Frames [Mockler 87, Turban 90]. When the domain knowledge is vast and varied, the
knowledge can become unmanageable. Gevarter in his paper [Gevarter 87] suggested
that structuredness and modularity is necessary to handle a large knowledge base. A
common disadvantage in Semantic Networks, Rules, Logic and OAV representations is
that they are not structured enough to manage situations when the number of objects and
rules increases significantly. The frames [Minsky 75] are the most widely used
6
primitives for knowledge representation because they are more structured than above
mentioned representations. In a paper [Niwa 84], an experimental comparison was done
amongst various knowledge representation schemes and was concluded that the use of
structured knowledge representation increases run time efficiency as well as reduces the
effect of knowledge volume on run time.
A frame is basically a structure for holding various types of knowledge. Frames
are given names, with the presumption that the knowledge contained within a particular
frame is in some way interrelated. Many authors and speakers may refer to frame-like
structures as units, objects, concepts, schemas or entities. Most of the expert system
related literature uses the term frame rather than object, while the database literature
generally uses the term object [Parsaye 89]. When we talk about frame representation,
we essentially talk about using OOP in building Expert Systems [Turban 90].
Knowledge representation with frames is being chosen in the proposed thesis
because Frames are structured ways of representing descriptive information & they
provide a natural mapping for the kind of knowledge which is centered around one
concept or object [Hayes 81, Minsky 75]. The organization allows efficient searching
because there is immediate access to relevant information. Frame structure provides a
natural method for representing hierarchies of information, thus allowing the inheritance
of values. Although frames were conceived independently of the object-oriented
paradigm they are in fact consistent with it, and provide an excellent demonstration of
their power. Indeed frames are capable of representing both specific and general
knowledge, and are capable of accommodating both descriptive and prescriptive
7
computations [Zaniolo 86].
Frame Based Systems have many advantages including immediate access to
relevant information, easy to include default information and detect missing values etc.
Frames can easily be used in conjunction with Production rules, thereby facilitating
partitioning, indexing and organizing production rules of a system. The implicit
hierarchy available in frame taxonomies also permits hierarchical segmentation of rules.
Simplicity of the frame structure coupled with the type of knowledge it can possess has
motivated to work in this field.
0.1 Literature Survey
Frame representation languages [Bobrow 77, Brachman 85, Fikes 85, Minsky
75], provide a rich structural metaphor to capture the way humans/experts typically
think about their domains. They also provide efficient special purpose reasoning
techniques that are based on representational structures. These reasoning techniques are
more direct than general methods such as logic. In addition, frames allow descriptive
information to be shared among multiple objects and semantic integrity constraints to be
maintained. This can reduce redundant and incorrect data in a system [Liebowitz 89].
But the existing frame systems do not provide facilities for handling temporal data,
distributed data and multimedia data which are very useful in various real life
applications. The work in the literature has been done on temporal, distributed,
multimedia databases when databases are taken as relational databases. Idea was
8
conceived to add these dimensions to existing frame systems as frame systems are a
better way of organizing data/knowledge than relational databases. They extend
relational databases by providing facets of slots, procedural attachments (Fig. 0.1) and
also allow inheritance of values.
Knowledge bases and databases so far discussed in the literature are generally
designed to contain information only about the "current state" of the world. Changes are
destructive because they replace the old information without remembering the previous
contents, but some applications like medical histories, robot planning activities,
analyzing stories, standardized plans, natural language understanding etc. require the
preservation of old information. Hence, in such situations, it is desirable to associate
time values with knowledge.
Research in temporal information management has been very active in recent
years in various fields of Computer Science [Maiocchi 91]. For example,
A. In Data Bases, the emphasis is on providing a way of storing and retrieving
temporal data. Two main directions of research in this area with respect to relational
databases are
i) extending existing data models.
ii) providing temporal reasoning capabilities for databases.
9
The TQuel system [Snodgrass 87] was designed based on the first category of
systems, because it extends the query language Quel (query language for relational
databases). Under the second type of systems, TSOS [Maiocchi 86] provides an expert
system reasoner to handle temporal data. Another system handling the second category
of systems is Event calculus [Kowalski 86] which focusses on handling the update
problem in deductive databases.
B. In Artificial Intelligence (AI), two types of temporal reasoning systems are
available.
i) Systems that are mainly concerned with interpretation of the data, and their
relationships.
ii) Systems to build plans for future actions, such as, scheduling the use of
resources correctly to solve a given scheduling problem within certain time
constraints.
Allen's interval calculus [Allen 83, Allen 84] is a representative of the first category of
AI temporal reasoning systems and the time map management (TMM) system [Dean
87] represent intelligent schedulers.
7
C. In Software Engineering (SE), the emphasis is on describing the related
properties of real time systems. In general, such systems are used to verify that the
specified properties describe the system completely and correctly. Therefore, the
purpose of such type of temporal systems is not that of managing temporal data and
reasoning as in DB and AI systems but to verify that the system will be able to handle
such data correctly. ERAE model [Dubois 86] is a representative of this category of
systems.
We have defined Tframe (Temporal frame) model based on the TQuel approach
and used Allen's interval calculus for temporal reasoning. Our system takes care of all
type of intervals where one of the endpoints may or may not be defined. In the TQuel
approach, four type of databases [Snodgrass 86, Snodgrass 87] differentiated by their
ability to support time concepts and processing of temporal information can be defined
as follows:
Snapshot databases: Conventional database model an enterprise as it changes
dynamically by a snapshot at a particular point in time. A state or an instance of a
database is its current content. The state of a database is updated using data
manipulation operations such as insertion, deletion or replacement, taking effect as soon
as they are committed. In this process past states of the database, representing those of
the enterprise, are discarded and forgotten. this type of database is known as a snapshot
database.
Rollback databases: In these databases, all past states of the snapshot database as it
8
evolves, are stored indexed by time. By moving along the time axis and selecting a
particular snapshot state, it is possible to get a snapshot of the database at some time in
the past and make queries about it. The operation of selecting a snapshot state is termed
rollback and a database supporting it is termed a rollback database. Changes to a
rollback database may be made only to the most recent snapshot state.
Historical databases: While rollback databases record a sequence of snapshot states,
historical databases record a single historical state per relation. As errors are discovered,
they are corrected by modifying the database. Previous states of the database itself are
not retained, so it is not possible to view the database as it was in the past. No record is
kept of the errors corrected. Historical database resemble snapshot database in this
respect. Historical databases are different than rollback databases in the sense that
historical databases support arbitrary modification, where rollback databases only allow
snapshot states to be appended.
Temporal databases: A temporal database may be regarded as a sequence of historical
states, each a complete historical relation. The rollback operation on a temporal relation
selects a particular historical state, on which a historical query can be executed. Each
transaction causes a new historical state to be created; hence temporal relations are
append only. A clear need for such a data model is evident in a variety of fields which
may be concerned with medical histories, accounting systems, auditing, learning,
robotics movement, etc.
9
A number of time dimensions can be included in a time model. Two of the most
common ones are valid time and transaction time. The valid time represents the actual
time intervals during which a particular fact was true. The transaction time represents
the time where these facts or events were recorded in the database. Snapshot databases
are independent of time whereas rollback databases support transaction time, historical
databases support valid time and temporal databases support both valid and transaction
time.
The Tframe model [Bedi 93a] proposed in the thesis supports both valid and
transaction time. We have also represented frames in first_order logic because predicate
logic provides a powerful system for reasoning, but it lacks facilities, such as,
packaging, built_in inheritance and procedural attachments. Hence logic combined with
frames allows for a flexible method of knowledge and inference. Pimental [Pimentel
89], in his paper has defined temporal frame systems which simply makes temporal
reasoning on frames. The time is not included in the structure of frames but it is
specified only in events. The system Telos [Mylopoulos 90] also associates time values
with entities and its attributes. The concept of static slots, dynamic slots and the concept
of versioning has not been considered in Telos. Proposed work takes care of static and
dynamic slot concepts and is based on slot versioning in contrast to frame versioning.
Lot of work has been done on triggers with respect to relational databases
[Graham 91, Oracle, Perry 88] but enough study has not been done on frames. When
triggers are combined with frames, they facilitate knowledge base processing and one
10
can control the following tasks:
- validate data entry
- protect the frame system from errors such as entry of duplicate instances
- limit user access to specified frame
- expand the functionality of function keys
Also in the proposed frame system inheritance and overloading of triggers are important
features.
Distributed database technology [Ceri 84, Kumar Vijay, Molina 95, Ozsu 91,
Saxena 91] is one of the major recent developments in the database system area. The
technology is the union of the two diametrically opposite approaches of data processing:
database systems and computer network technology. There are many advantages of
using distributed knowledge based systems (DKBS). These include local autonomy,
better reliability, shareability, improved performance, higher availability, expandability.
The only negative point of using DKBS is the software and hardware maintenance cost.
The thesis contains contribution to distributed knowledge using frame system. The
knowledge has been distributed in a point_to_point network environment.
Hypermedia systems such as Hypercard [Goodman 87], Notecard [Halasz 88],
Neptune [Delisle 86] and Intermedia [Yankelovich 88] have a simple data model
consisting of nodes and links. There are several problems in using these current
hypermedia / multimedia technology to complex systems which deal with large amount
11
of data and heterogeneous structures. Lack of abstraction, associative searching
facilities, complex object modelling capabilities, support for database facilities and poor
performance are among these problems.
The Knowledge Management System (KMS) is the commercial face of ZOG
[Akscyn 84], a hypertext system developed at Carnegie Mellon University [Akscyn 88,
Botto 93]. Both ZOG and KMS adopt the frame-based approach, where whole
documents or frames are linked. Each frame is made up of text objects. Many of the
today's commercial implementations adopt this technique.
Quest [Botto 93] is a frame-based authoring system. This package is aimed
mainly at the development of CBT courseware and has the ability to control the
videodisc player. Although Quest has its own language QAL (Quest Authoring
Language) , applications can be created in a menu driven environment. Lessons are
constructed from a number of frames each of which contain a number of objects.
Objects include text, images and branches. You can edit any frame at random. However,
objects can not be edited, instead they have to be erased and then re-established in the
required form. Quest is particularly flexible in terms of monitoring the performance of
students. Indeed it is for this reason that it was chosen. It is also possible to create
interesting animations. Cycle animations, where a number of images are presented in
turn, can be used for micons, though in reality they are rarely used for this purpose. Path
animations, where an image is simply moved from one point to another, are easily
created and one simply defines the path using the arrow keys. However, the version used
12
for this production was unable to load animations from other programs. But in this case
temporal and distributed features are not included.
In [Ishikawa 90, Ishikawa 93] objects are defined as an integration of functional
data model and frames and hence solve the above mentioned problems, but the video is
not taken as a media. In [Oomoto 93] authors have considered that any portion of a
video frame sequence is an independent entity having its own attributes and their values
for arbitrary video frame sequences and called it as a video object. More specifically a
video object corresponds to a certain set of video frame sequences and it has its own
attributes and their values to represent the content (meanings) of the corresponding
video scene. The main features of the OVID model are schemaless description of the
database, interval inclusion inheritance ( this type of inheritance is between instances
and not between traditional classes and subclasses in OODB systems) and composition
of video objects based on is-a hierarchy. In this paper, the concept is not extended to
hypermedia systems.
In this thesis, we have added Multimedia Dimension to the earlier proposed
Temporal Frame Systems which also work well in the Distributed Environment. The
proposed frame system besides providing abstraction, generalization and classification
of data, can also support the basic structure and operations of multimedia data. Both
structural and behavioral knowledge can be represented in this system and the facets of
slots can flexibly represent constraints and triggers. This system has potential to offer
active video presentations and hyperlinks to navigate from one medium to another.
13
Complete syntax and semantics of a query language FSQL, acronym for
"Frame_oriented Structured Query Language" has been designed and developed. A
subset of it has been implemented. FSQL consists of a set of facilities for defining,
manipulating and controlling the knowledge contained in frames. It has features similar
to SQL of relational databases but takes care of multiple facets of slots and inheritance
of values between parent and child frames including temporal information. The frame
based systems have been extended to handle temporal, distributed and multimedia
information. The syntax is defined using BNF like notation. Following factors were kept
in mind while developing FSQL:
a. FSQL is an extended version of SQL which is endorsed by almost all the major
developers of relational systems. Thus the existing application programs can be
supported by FSQL without any change.
b. FSQL has the added advantage of offering time dimension [Bedi 93a,
Mylopoulos 90] which makes it possible to preserve the old information
required in several applications such as medical histories, real-time
applications, historical/temporal databases.
c. FSQL can be used in a distributed environment and also has facilities for basic
multimedia operations.
d. SQL is the only relational language that has a standard developed for it and
14
paves the way for standardizing FSQL.
0.2 Thesis Outline
The thesis is divided into seven chapters described as follows:
Chapter 1 contains brief review of the frame systems with slots and facets
having inheritance properties. We have represented frames in first_order logic because
predicate logic provides a powerful mathematical system for reasoning, but it lacks
facilities, such as, packaging, built_in inheritance and procedural attachments. Hence
logic combined with frames allows for a flexible method of knowledge and inference.
The design and implementation of a Frame System Shell (FS_Shell) [Bedi 91] is
discussed. FS-Shell has been implemented in Turbo Prolog 2.0.
Chapter 2 deals with time dimension to frame system. The Tframe model [Bedi
93a] supports both valid and transaction time and is based on slot versioning
(associating time at slot level) in contrast to frame versioning (associating time at frame
level). A first_order representation for temporal frames is also included in the chapter.
Chapter 3 deals with the triggers in frames[Bedi 93b]. The definition level and
classification of triggers have been considered. Triggers are classified as event_based
and user_named. Temporal triggers are also discussed which are basically triggers
dependent on time. Inheritance and overloading of triggers included in the chapter are
15
important features.
In chapter 4, the design of distributed knowledge based system [Bedi 95] when
the knowledge is represented as frames is proposed. The concept of fragmentation along
with first_order representation for each kind of fragmentation is discussed. It also
presents the concept of different types of distribution transparencies for a given network
of frames.
Chapter 5 deals with further extension of a frame system for representing
multimedia information. Each frame has been defined having static slots and dynamic
slots and each slot can have media such as text, image, video, audio. For a static slot,
whatever value the media may have, the value of slot remains constant with time. In
case of dynamic slots, the value change with time and give rise to animation.
Chapter 6 contains the complete design of Query Language for Frames called
the Frame_oriented Structured Query Language (FSQL). The language handles frame
systems that have been enhanced to contain temporal, distributed and multimedia
information. A prototype of FSQL is implemented using LPA PROLOG Professional
Compiler. The syntax and semantics of the language are given in the chapter.
Chapter 7 contains the conclusion and applications of the proposed system.
16
Chapter 1
A Frame System Shell (FS-Shell)
Of the various knowledge representation schemes which evolved over the years,
the frame based approach received lot of attention [Ito 85, Minsky 75, Parsaye 89].
Information about an object is stored in a frame. The frame has multiple slots used to
define various attributes of the object. The slots can have multiple facets for holding the
value for the attributes, or defaults, or procedures which are called to calculate the value
(Fig. 1.1). This chapter gives a formal introduction to frame systems. A Frame System
Shell (FS-Shell) in Turbo Prolog is also developed [Bedi 91]. FS-Shell can be used to
create existing frame based systems which involves creating the structure and
knowledge base. Knowledge can be queried using the QBE approach of Relational
Databases even without knowing the Frame Language or Prolog. The shell has been
tested by taking the example of Hospital Knowledge Base and University Knowledge
Base which use multiple inheritance instead of usual hierarchical nature of frames.
1.1 Knowledge Representation using Frames
A good knowledge representation tool is not only adequate to the expression, but
also efficacious to the reasoning [Chen 86, Woods 83]. Frames which have good
17
expressive power were first proposed in [Minsky 75]. Since then, several frame-based
languages, such as KRL [Bobrow 77], FRL [Goldstein 79, Rosenberg 79], KL-ONE
[Brachman 85], etc.[Waterman 86, pp.346-350] have been developed and used to
implement systems in a variety of domains. How frames are involved in knowledge
system reasoning process was discussed in [Fikes 85].
Frames are complex data structures for representing objects and events of
situations. Frames provide a method of combining declarations and procedures within a
single knowledge representation environment, i.e., frames package both data and
procedures into knowledge structures [Parsaye 88]. Frames are basically an application
of object-oriented programming for AI and Expert Systems.
1.1.1 Frame Structure
Definition: A frame is a data structure that includes all the knowledge about a
particular object. This knowledge is organized in a special hierarchical
structure that permits a diagnosis of knowledge independence.
Frame Contents: A Frame include two basic elements: Slots and Facets.
Slots This is a set of attributes that describe the object represented by the
frame, i.e., for a hospital frame, phone no. or address will be in the slots.
18
Facets Each slot contains one or more facets (sometimes called subslots) which
describe some knowledge or procedures about the attributes in the slot.
Facets may take many forms, such as:
Values These describe the attributes such as phone no. 548285.
Default This facet is used if the slot is empty, that is, without any
description. For example, in a ward frame, a default value for
no.of beds may be 10 beds, i.e., when we do not know how many
beds are there in a ward, we assume automatically that it is ten.
Range The range indicates what kind of information can appear in a slot and is
useful for validation purpose.
If_added This facet contains procedural information. It specifies an action
to be taken when a value in the slot is added (or modified). Such
procedural attachments are called demons.
If_needed The If_needed facet is used in a case when no slot value is given.
It triggers, much like the if_added situation, i.e., a procedure
that goes out and gets or computes a value.
Other Slots may contain frames, rules, semantic network or any type of
information.
Facets can as well take values of the form:
- Maximum number of values permitted in the slot.
- Minimum number of values permitted in the slot.
- Display format for the slot's value.
19
- Explanation about the purpose or meaning of the slot.
- Text of question to be asked in the event that the user is requested to provide a
value for the slot.
- Text of response to be provided should the user question the purpose of the
request for a slot value.
1.2 Overall Design of the Frame System
1.2.1 The Network of Frames
There can be two types of frames : class frames and instance frames. Class
frames are frames which represent a general type or concept whereas instance frames
represent specific occurrence of these class or type frames. These frames can be linked
using "is_a", "ako" and "a_part_of" links. "is_a" link is used to connect a particular
instance to a general type (class frame) (Fig. 1.2). "a_part_of" link is used to connect
two frames representing objects one of which is contained in the other. "a_part_of" link
can exist either between two class frames (e.g. department, university) or between
instances (e.g. Computer_ science dept., Delhi_University) (Fig. 1.3). "ako" link
connects two class frames, one of which is a specialized version of the other (Fig. 1.4).
This structure can be represented as a three dimensional structure as shown in
Fig. 1.5. The first dimension of the structure corresponds to "a_part_of" link, the second
dimension to "ako" link and the third dimension to "is_a" link. In fact the second
dimension consists of hierarchy of "ako" links (Fig. 1.5). Each frame can have at most
21
two links with the following combinations.
"is_a" & "a_part_of" or "ako" & "a_part_of" but not "is_a" & "ako".
1.2.2 Inheritance
The mechanism for passing knowledge from frame to frame down through the
taxonomy from general to specific is known as inheritance. Inheritance is a good way to
find information that is not stored in the place where we first look. It leads to what is
known as cognitive economy [Parsaye 88], where information is only stored in one
place but can still be retrieved from different parts of the network or hierarchy.
The process of inheritance normally proceeds as follows. First, we examine the
appropriate object/frame. If the information is not stored there, we go to the parent
object/frame and check whether the information is stored there or not. If the information
is still not found, we repeat the process with the parent of the object/frame until the
information is found or we reach the top of the hierarchy (root of the
hierarchy/network).
Various types of Inheritance [Walters 88] can be defined in a Frame System, e.g.,
a. Slot Inheritance
Slot Inheritance takes place when the slot itself, but not its value, is inherited
from its parent frame.
24
b. Value Inheritance
Value Inheritance takes place when the value of a slot in a frame is inherited
from the corresponding slot of the parent.
c. Restriction (Range) Inheritance
Restriction inheritance takes place when it is the restriction on values, rather
than values themselves, that are inherited.
d. Types of Inheritance :Null
In some cases inheritance is not desirable, and all of its forms should be
inhibited.
1.2.3 Multiple Inheritance
Normally frame systems have a hierarchical structure i.e. each subclass has one
and only one superclass but there may be a case when a subclass is being referred to by
more than one superclasses, The mechanism that allows a class to inherit from more
than one immediate parents is called multiple inheritance.
As long as the parents share no common slots, inheritance from multiple parents
is a simple matter. The difficulty arises when the parents have common slots with
different values. Then the class inheritance hierarchy becomes a DAG (directed acyclic
25
graph), since a class can have more than one immediate predecessor [Khoshafian 90]. In
case of multiple inheritance, there can be two kinds of conflicts:
1. The conflicting slots come from a common ancestor.
2. The conflicting slots are totally unrelated.
If the conflicting slots come from a common ancestor, conflict can be resolved
with common ancestry by using the slots and their values from the common ancestor.
One can adopt one of the following strategies to handle inheritance in the
circumstances when the conflicting slots are totally unrelated.
a. Priorities are assigned to paths and one can inherit the value from the path with
highest priority.
b. System adopts some strategy of traversal, e.g., DFS or BFS and inherits value
from the first parent.
c. The linearization strategy for conflict resolution provides an algorithm for
mapping the DAG of the predecessors of a class into a linear order. When a class
indicates its superclasses, the superclass names are given in a particular order.
The linearization strategy uses this ordering of class names to generate a linear
27
order[Khoshafian 90].
d. Conflicting slots of the two superclasses can be renamed to resolve the conflict.
e. Whenever there is an ambiguity in the access or usage of a slot, it must be
resolved by qualifying the slot with the appropriate class name.
Our system qualifies the slot with the appropriate class name in case of conflict.
1.2.4 Subtyping
A type is a set of objects with a set of operations defined on them. The common
elements of different types can be abstracted to form subtyping hierarchy. A type T1 is a
subtype of type T2 if every instance of T1 is an instance of T2 [Khoshafian 90]. In such
a case, T1 is related to T2 by "ako" link. For example, child hospital is a subtype of
hospital because every instance of child instance is an instance of hospital. So subtypes
form a layer between class & it's instances.
A frame defined for the concept of subtyping inherits all the slots of supertype
along with some or none additional slots. For example, if HOSPITAL has slots name,
address, code, phoneno, noofbeds, then the slots of a CHILD HOSPITAL could be
name, address, code, phoneno, noofbeds, ageofpatient etc.
The advantages of using subtyping in frame system will be that all instances of
28
HOSPITAL need not have the same structure, representation becomes more structured
and memory efficient. Such representation will be useful in many applications involving
one particular subtype, for example, list the names and addresses of all child hospitals in
India.
1.2.5 Attached Predicates
Attached predicates allow us to invoke rules from within frames. Attached
predicates extend conventional data structuring paradigms by providing active structures
[Parsaye 88]. Attached Predicates can provide a powerful style of programming. For
example, an attached if_needed predicate may be used for monitoring the behavior of an
expert system and may be used as a debugging tool. Whenever the value of a slot is
read, the predicate may write a message to the screen. The type of trace, which describes
the use of knowledge, might supplement traditional methods that focus on rules that are
being invoked during reasoning. The use of Attached predicates along with the
inheritance provides a new programming paradigm with a number of benefits such as
integrity maintenance and dynamic data management.
Consider for example, an expert system which provides real estate advice
(Example 1.1). While using the system, we might need to check whether Rosen could
afford to buy a certain house. We might know the price of the house, the current interest
30
rate for mortgages, Rosen's salary and Rosen's savings. (If one of these slots is missing,
the expert system could detect the empty slot and ask the user to provide this
information.) Then we might have an algorithm which approximates down the payment,
closing costs, and mortgage payments given the price of the house, and made a
determination on whether Rosen could afford to buy a house. Such a system is given by
the following example:
1.2.5.1 Integrity Maintenance with Attached Predicates
One way to use attached predicates is as guardians for information storage and
retrieval. In this mode the predicate restrict the information that may be retrieved from a
slot or stored in a slot.
As an example of this type of application of an if_needed predicate, one may
restrict access to the data in a frame by defining a password predicate. If_added
predicate may be used to validate the data when the data is added in the value of a slot.
1.2.5.2 Dynamic Data Management with Attached Predicates
Another mode for using attached predicates is for dynamic information retrieval
and storage. In this mode, one may either directly calculate the value of a slot on the
basis of other information or dynamically determine the possible range of values for a
32
slot.
For instance, an if_needed predicate may calculate a person's age by retrieving
the current date and birthdate of the person and subtracting the birthdate from the
current date to obtain the age. Attached predicates allow us to have dynamic menus
whose contents are not fixed before the execution of the program begins, but are
dynamically adjusted with a set of rules [Parsaye 88].
1.3 Representation of Frames in first-order logic
The three dimensional structure of NOF can be represented as
frame(x,[slot1,slot2,...,slotn])
where slot1 ∈ {is_a,ako}
slot2 = a_part_of
slot3 ... slotn represent attributes of the frame.
and in first-order logic [Chen 86] , we can write this as
∀x (frame(x) ≡ ∃y1,y2,...,yn ((is_a(x,y1) ∨ ako(x,y1)) ∧ a_part_of(x,y2) ∧
slot3(x,y3)∧ ... ∧ slotn(x,yn)))
33
Here frame(x) - x is a frame,
sloti(x,yi) - yi is the value of slot sloti of frame x.
Considering the following semantics for class(x), subclass(x) and instance(x),
class(x) - x is a class frame,
subclass(x) - x is a subclass frame,
instance(x) - x is an instance frame.
We can rewrite the definition of the frame as
∀x (frame(x) = class(x) ∨ subclass(x) ∨ instance(x))
Here
class(x) = ( ∃y1,y2,...,yn (a_part_of(x,y1) ∧ slot2(x,y2) ∧ ... ∧
slotn(x,yn) ) )
where y1 represents a class frame.
subclass(x) = ( ∃y0,y1,y2,...,yn (a_part_of(x,y0) ∧ ako(x,y1) ∧
slot2(x,y2) ∧ ... ∧ slotn(x,yn) ) )
or
subclass(x) = ( ∃y1,y2,...,yn (ako(x,y1) ∧ slot2(x,y2) ∧ ... ∧
slotn(x,yn) ) )
34
where y0, y1 represent either class frame or subclass frame.
instance(x) = ( ∃y0,y1,y2,...,yn (is_a(x,y0) ∧ a_part_of(x,y1) ∧
slot2(x,y2) ∧ ... ∧ slotn(x,yn) ) )
where y0 represents either a class frame or a subclass frame and y1 is an instance frame.
In this notation y1 is of the form
[(facet1,val1),...,(facetk,valk)]
where value, type, default, range, if_needed, if_added are some of the possible facets.
We define the root node of the network as a special case of class frame x which
is not a part of any other frame, i.e., a class frame not contained in any other class frame
is known as a root node or a root frame.
1.4 Connecting Rules and Frames
Rules and frames can be integrated to form a hybrid system. The storage and
retrieval properties of frames make them a good way of implementing an intelligent
database. Many knowledge-based systems have to rely heavily on intelligent data
management. An integrated rule-frame system is an ideal environment for intelligent
data management.
35
1.4.1 Rules that act on Frames
Rules can normally be written the form
IF condition THEN action1
ELSE action2
If condition, action1, action2 in the above rule are based on frames or slot of
frames, then we can get a rule based system whose knowledge is represented in the form
of frames. Hence it will be system with frame based representation and rule based
inferencing.
1.4.2 Frames that trigger Rules
Frames can trigger rule in the form of attached predicates. As the number of
production rules in knowledge system grows, it becomes more difficult for a system
designer to understand the interactions among the rules, to debug them, and to control
their behavior. Production rules like conventional programs, need to be organized into
small easily managed modules. A frame based representation facility can provide
significant help with this rule management task by providing a means of organizing and
indexing modular collection of rules according to their intended usage. A slot of a frame
in such a system may point to a set of rules or a rulebase. Hence such a system will
36
partition the rulebase hierarchically, i.e., we will have knowledge in form of rules which
are partitioned in such a way to form a hierarchy/network of rules and also follow class,
subclass paradigm which eliminates the redundancy in the rulebase and makes the set of
rules reusable. This class/subclass structuring in the rulebase also gives rise to object-
oriented features in rule-based systems.
1.5 Implementation of the Frame System
In our system we have designed a frame system in turbo prolog and a query
system for manipulating the information in the frame system. We have taken the
example of Hospital Knowledge Base for testing the system [Tsichritzis 82].
In the example of Hospital Knowledge Base, we have assumed that a country
can have many hospitals, where each hospital can have different wards, labs and
doctors. Staff and patients can be there in a ward. These patients may be seen by doctors
with different specialties. A patient may have a certain diagnosis and various tests may
have been done for him in some lab.(Fig. 1.8- 1.10).
1.5.1 Representing Frames in Prolog
To represent frames in Prolog, the first step is to determine the necessary storage
format. First approach consists of using one large compound clause to create all of the
frame and slot units. The format of such a frame data structure is given below:
37
frame (name, [
slotname1-[
facet1-val11
facet2-val12
. . . ]
slotname2-[
facet1-val21
facet2-val22
. . . ]
. . . ]
)
The second approach uses two different clause formats, "frame-list" for storing frames
and "slot-list" for storing slots of a frame.
We have chosen the second approach for representing frames in turbo prolog
[Weiskamp 88] for the following reasons:
1. It is simple to implement and use.
40
2. In turbo prolog, variable functors are not allowed which makes it impossible to
implement various operations using the first approach.
Later for Quintus Prolog and LPA Prolog, the first approach is chosen.
1.5.2 Design of the Frame System for Implementation
We have used two different clause formats: "frame_list" for storing frames and
"slot_list" for storing slot. To begin with, the clause for creating frames "new_frame" is
discussed below:
database
frame_list(string,string,integer,string)
predicates
new_frame(string,string,string)
clauses
new_frame(F_name,_,_):-
frame_list(F_name,_,_,_),
write("\n Error -Frame:",F_name,"Already Exists").
41
new_frame(F_name,Par-name,Comment):-
frame-list(Par_name,_,Top_level,_),
assertz(frame_list(F_name,Par_name,F_level,Comment)).
new_frame(F_name,_,_):-
write"\n Error - Possibly invalid Parent Name:",F_name).
The arguments for this clause are the frame name, the parent frame name, and the
comment field which can be used to describe the author, use, or other information about
the frame. The parent frame name provides a backward link to the previous frame, thus
creating a hierarchical structure for the knowledge. "new_frame" first verifies that the
frame exists or does not exist. If the frame does not exist, the second "new_frame"
clause verifies that the parent frame exists and then it increments the frame level. This
information is used to assert the new frame. The last "new_frame" is only called if the
parent frame does not exist.
For example
new_frame(ward,hospital,"ward in a hospital").
creates a new frame ward with parent hospital.
To support the frame structure, the following two clauses are developed. The first
initializes the knowledge base while the second lists the current structure:
predicates
42
init()
list(symbol)
clauses
init():-
retract(frame_list(_,_,_,_)),
fail.
init():-
assertz(frame_list(country,world,0,"Top of Structure")).
list(frames):-
makewindow(1,1,7,"FRAME LIST",1,1,20,60),
write("\nFrame\t\tParent\t\tLevel"),
frame_list(F_name,Par_name,F_level,_),
write("\n",F_name,"\t",Par_name,"\t",F_level),
fail.
list(frames):-
write("\nPress any key to continue"),
readchar(_).
The init() clause removes the old frames and asserts a special "end of structure"
frame. This first frame represents the top of frame hierarchy. All other frames are linked
directly or indirectly to this frame.
The "list" clause is a tool for displaying all currently defined frames. Here a
43
window is opened and a column heading is displayed. Each frame is then displayed
along with the name of its parent and it's frame level.
Now let us examine the slot storage structure.
domains
slist=symbol*
vlist=string*
database
slot_list(string,string,symbol,integer,integer,vlist,string,string,string)
The "slot_list" clause is a structure containing a number of arguments such as
frame name, the slot name, the slot value and comments. The comment argument serves
the same purpose as the one found in "new_frame" clause. There are four types of slot
values: integer, symbol, open and frame. An integer slot type indicates that a new slot
value must be compared with the upper and lower limits specified for that slot. For a slot
type of symbol, the "legal_val" argument contains a list of candidate slot values. These
are the only values that a slot is allowed to handle. The open slot type has no restrictions
so that any value can be placed in this type of slot. The last slot type is the frame which
allows the slot to point to another frame. This provides a forward link structure for the
knowledge base.
The clause "new_slot" inserts a new slot after being sure that the frame and slot
44
do not already exist. If frame already exists, then the second "new_slot" clause causes
the "slot_types" clause to be initiated. This clause determines if the specified slot type is
valid. If the slot type is valid, then the "slot_list" clause is asserted. If it isn't, then an
error message is displayed.
The clause "new_slot_value" is used to change a slot's value. Different
"new_slot_value" clauses are written for different slot type. The information is retrieved
from the slots using the clause "get_slot_value" and a slot is deleted using "delete_slot".
The "help" clause summarizes the options that are available for the frame knowledge
representation.
All the above clauses are used for class frames (Fig. 1.8). For implementing the
instances, similar clauses are developed such as "new_iframe" creates an instance frame,
"new_islot" inserts a slot value in an instance.
1.6 Design and Implementation of the FS-Shell
1.6.1 Design of the FS-Shell
Our system (Fig. 1.13) starts with the FSShell menu. This menu of the FS-Shell
gives us the options for creating the frame structure, creating the KB corresponding to a
structure, manipulating the existing KB, querying the given KB and executing a DOS
command (Fig. 1.11).
45
CreateStructure: It creates a new class structure such as shown in Fig. 1.8. It has also an
option for creating KB of the instances for the created structure.
CreateKB: It is used for entering knowledge about instances for an existing structure
(Fig. 1.9-1.10).
ManipulateKB: This option consists of three sub-modules:
insert: option for inserting a new instance frame or slot value for an already created
instance frame.
delete: option for deleting an instance frame or a slot value in a given instance frame.
update: option for updating an instance frame information or a slot information
in a given instance frame. Updating an instance frame mean modify one
or more slot values of an instance frame and updating a slot of an
instance mean that value of a slot of a given instance frame will be
modified.
QuerySystem: It is used for retrieving the information from the KB. The retrieval is
either conditional or unconditional.
DOSshell: This option is used for executing a DOS command.
46
Quit: This option is for quitting the FS-Shell.
1.6.2 Implementation of the FS-Shell
The FS-Shell Menu and its pulldown is shown in Fig. 1.13. The details of its
various options are given below:-
1.6.2.1 Creating the Structure
The module CreateStructure creates the frame structure as shown in Fig.1.8. It
generates hierarchy of class frames. Under this option user is asked for the name of the
class frame (F_name) to be inserted, its parent's name and comment, if any.
The predicate
new_frame(F_name,Par_name,Comment)
creates a new class frame F_name with parent Par_name. User is also asked for slot
name, slot type, comment and default value to be inserted for the frame F_name. Open,
integer, symbol and frame are valid slot types. For integer slot type, upper value &
lower value for the slot are to be entered and for symbol slot type legal values are to be
entered. The predicate
new_slot(F_name,S_name,S_type,Up_val,Low_val,Legal_val,Default,Comment)
47
adds a slot for the class frame F_name. A blank slot name with valid slot type terminates
the process.
1.6.2.2 Creating the KB
The module for creating the KB (CreateKB) uses some structure for classes for
which knowledge is to be created. In case CreateKB is called after CreateStructure, the
created structure is used, otherwise an option comes for consulting the knowledge
structure(KS) with a list of all stored knowledge structures. After consulting a structure,
user is asked for an instance name, its class name and parent name. The predicate
new_iframe(Inst_name,Class_name,Par_name)
inserts an instance frame in the knowledge base. User is also asked for slot names and
values to be inserted for the instance. A blank slot name terminates the slot insertion.
The predicate
new_islot(Inst_name,S_name,Value)
adds a slot S_name with value Value in the instance frame Inst_name.
1.6.2.3 Manipulating the KB
48
In the module for manipulating the KB (ManipulateKB) first KS and KB are
consulted. In case the module is called from CreateKB, there is no need of consulting
the structure and KB. This module has the following three options:
Insert: One can insert either an instance along with its slots or a slot value in an
instance. The following predicates are used to insert an instance and a
slot respectively.
new_iframe(Inst_name,Class_name,Par_name)
new_islot(Inst_name,S_name,Value)
For inserting slot values for an inserted instance new_islot is called in a repeat loop until
S_name="".
Delete: One can delete either an instance along with its slots or a slot value of an
instance. Deletion of a frame results in deletion of all child frames also.
Deletion is done by deleting the corresponding facts from the database.
Update: One can update either an instance information along with its slots
information or a slot's information of an instance frame. Updation of
frame is done by deleting the old information and inserting the new
frame information. Slot updation is done by using the predicate
new_islot_value(Inst_name,S_name,Value)
49
1.6.2.4 Query System
We have developed a query system in Turbo Prolog for frames for retrieving the
information of either a frame or a slot unconditionally or based on some condition.
1.6.2.5 DOS shell
Using this option user comes to DOS prompt and after executing DOS
commands, user can type EXIT for coming back to FS-Shell.
1.6.2.6 Quit
Using this option user comes out of the FS Shell.
1.7 Summary
This chapter contains a brief review of the frame systems. The frames have been
represented in first_order logic because predicate logic provides a powerful system for
reasoning, but it lacks facilities, such as, packaging, built_in inheritance and procedural
attachments. Hence logic combined with frames allows for a flexible method of
knowledge and inference. A Frame System Shell (FS-Shell) has been developed in
Turbo Prolog and tested with Hospital and University knowledge bases. This Frame
System Shell has the facilities for creating the structure, creating the knowledge base,
51
manipulating the knowledge base. In the FS-Shell, a query system has also been
developed to query information stored in the frame system unconditionally or based on
some condition. Even a user who does not know Prolog can use this system for
querying.
53
Chapter 2
Time Dimension to Frame Systems
In many applications of the frame systems such as analyzing stories, robot
planning activities, standardized plans of buildings & equipments, natural language
understanding, it is not appropriate to discard the old information. Hence the addition of
temporal (time) dimension to frame system is important. In this chapter, we have
proposed a temporal extension to existing frame based systems named as Temporal
Frame ( Tframe ) systems. Knowledge in these temporal frame systems has the period
of validity attached to frames and its slots. The Tframe system is based on slot
versioning in contrast to frame versioning because frame versioning approach has high
degree of redundancy owing to duplication of the entire frame, especially when the
changed portion is relatively small compared with the unchanged portion. The design of
Frame_oriented Structured Query Language (FSQL) to process the information stored in
the knowledge base for the temporal system is discussed. The query language takes care
of both valid time and transaction time required for a temporal system.
2.1 The Model of Time
With all physical entities, time can be observed and measured only by
54
superimposing a model on it. A time model allows observations and measurements of
the objects it considers; either instantaneous or lasting phenomena by means of absolute
references to a time scale or mutual relations between observed objects. Measures and
observations can thus be qualitative, i.e., chronologies (before/after relations) or
quantitative, i.e., chronometries, which entail the use of a time unit [Cabodi 91].
In literature and practice, it is common to meet a high-level classification of time
models: continuous vs. discrete. In continuous models the concept of instant is assumed
as primitive and a one-to-one correspondence is established between instants (τ space)
and positive reals (R+ space). In discrete models a minimum duration interval is
assumed, often referred to as a discretization step or basic time unit (BTU) and there is a
one-to-one correspondence between intervals (the primitive entities of τ space) and
natural numbers (N space). Instants in discrete time coincide with minimum duration
intervals.
We define a time interval, denoted by [t1,t2] to be a set of consecutive time
instants, where t1 is the first time instant and t2 is the last time instant of the interval.
The distance between two consecutive time instances can be adjusted based on the
granularity of the application to be equal to months, days, hours, minutes, seconds or
any other suitable time unit. A single discrete time point t is easily represented as an
interval [t,t]. This interval representation can easily be used to represent both stepwise
constant and discrete time sequences and can also be used to represent continuous time
sequences if the interval is dense. Any event that occurs over a period that is less than
55
valid time granularity is considered instantaneous.
We assume that all our references to time are confined to the interval [0,now] of
instants. The most natural subsets of [0,now] are perhaps the intervals but they are not
closed under union, intersection and complementation [Elnasri 90] and thus are not
adequate to model queries involving "or," "and" and "not" respectively. Thus we define
a temporal element to be a finite union of intervals denoted by the set [I1,I2,...,In] where
Ii is an interval in [0,now]. The set of all temporal elements in [0,now] is easily seen to
be closed under the set theoretical operations mentioned above.
2.2 The Temporal Frame Model
The temporal frame model extends the frame model to include the temporal
information. Time/Lifespan can be added with a frame or a slot. Lifespan for the root
node of the network of frames denotes the period for which the problem is to be solved.
For rest of the frames of network, time may or may not be present.
Static Slots: Slots which do not contain time/lifespan facet are called static slots
because they do not change with time. The lifespan of static slot
is same as lifespan of corresponding frame.
Dynamic Slots: Slots which contain time/lifespan facet are called dynamic slots.
The frames having chronologies (i.e. before/after relationships ) can refer to
56
semantic network of events for their lifespan. The arcs of this semantic network
represent chronologies [Anger 88, Anger 89].
If the time information does not exist with the frame, then the time will be
available from its parent, by inheritance.
2.2.1 Representation of Temporal Frames in first_order logic
We define temporal frame (Tframe) similar to the definition of frame as follows:
∀ x ( Tframe(x) ≡ Tclass(x) ∨ Tsubclass(x) ∨ Tinstance(x) )
where
Tclass(x) ≡ class(x) ∨ (class(x) ∧ ∃ yn+1 (T(x,yn+1)))
represents a temporal class frame x which is either a class frame x or class frame x with
time slot T having value yn+1.
Similarly
Tsubclass(x) ≡ subclass(x) ∨ (subclass(x) ∧ ∃ yn+1 (T(x,yn+1)))
Tinstance(x) ≡ instance(x) ∨ (instance(x) ∧ ∃ yn+1 (T(x,yn+1)))
where class(x), subclass(x), instance(x) are defined in section 1.3.
57
Combining this definition of Tframe with the definition of frame as given in
section 1.3, we can define Tframe(x) in terms of frame(x) as follows:
∀x ( Tframe(x) ≡ frame(x) ∨ (frame(x) ∧ ∃ yn+1 (T(x,yn+1))))
i.e., Tframe can be an ordinary frame or a frame with time slot.
2.2.2 Representation of Time in a Dynamic slot
Lifespan is one of the facets in a dynamic slot. Hence for a dynamic slot
sloti(x,yi) denotes sloti of frame x with value yi,
where yi = [(T(sloti),value),(default,_),...].
For frame x having lifespan denoted by T with value yn+1, we can write T(x,yn+1),
k
where yn+1 = U Ii denotes the temporal element of frame x.
i=1
Hence, T can be taken as a function and for a frame/slot x, we define
k
U Ii for chronometries, where Ii is an interval
T(x) = i=1
* for chronologies
Subsequently, we can say that
58
T( sloti(x,yi) ) < = T(x)
i.e. lifespan of a slot is always less than or equal to the lifespan of its parent frame.
2.2.3 Lifespan Computation
2.2.3.1 Lifespan Computation for a slot
Static slot: The lifespan of a static slot is equal to the lifespan of its frame, i.e.,
T(sloti(x,yi)) = T(x)
Dynamic slot: Lifespan is given as one of the facets in a dynamic slot.
2.2.3.2 Lifespan Computation for a frame
In case, the lifespan of a frame is not given we can use the lifespan inheritance
algorithm for inheriting its value from parent. If the lifespan T is given is terms of
chronologies [Allen 83, Allen 84], we attach these in the semantic network of events
where arcs represent the relationships. In case one of endpoints of some intervals of
lifespan are not given, such as may be the case when keeping historical records, in
which date of birth may be unknown, i.e., lifespan tuple of the form [Ts,null] or [null,Te]
is entered into the network of events (or intervals). This network will contain only the
59
events which are not completely specified by time stamps and will maintain, as Allen
does, the known or possible relations between any two related events [Anger 88].
In Allen's system the information stored on the links between related events in
the network consists of pertinent subset of the thirteen possible temporal relations which
he defines between two events (Table. 2.1). These are determined and entered by the
user otherwise they are computed by the system. Since under the proposed scheme,
some time_stamped information will be entered into the network, the system will have
to calculate new values on the arcs. For example, Allen indicates that if A, B and C are
events satisfying (A CONTAINS B) and (B OVERLAPS C), then it is true that (A
OVERLAPS, CONTAINS, OR FINISHED BY C). What if, on the other hand, (A
CONTAINS B), B is specified by an interval [6,null], and C is an interval [8,null]? It
can, in fact, be deduced that A BEFORE, MEETS, OVERLAPS, FINISHED BY, or
CONTAINS C [Anger 89]. It is therefore proposed to extend Allen's reasoning scheme
to deduce relations between the intervals with one or two endpoints known and that this
can be added to the arcs in the network. Table. 2.2 shows the possible deductions, using
the notation of Allen(Allen 83, p.835, Figure 2). Denoting the time interval by [Is,Ie],
chronologies can be represented in our system in terms of intervals as follows:
62
Time/Lifespan Inheritance algorithm
Repeat
for a frame x with lifespan not known
if x is a part of frame f
then T(x) < T(f)
else
if x is an instance of frame f or x is a subtype/subclass of frame f
then T(x) = T(f)
Until ( value of T(x) is found or root node is reached)
2.2.4 Frame versioning vs. slot versioning
Since it is impossible to store all the states of the knowledge base while it
evolves over time and therefore it is needed to represent temporal versions into physical
storage so that we can maintain the past states of the knowledge base without excessive
redundancy and deal with evergrowing storage size effectively. Versions of frame/slot
are created after each update. Update includes insertion, deletion or replacement of the
information.
In frame versioning, each frame is augmented with a valid time interval [Ts,
Te]. When the frame is first inserted, Te component of the interval is set to now
indicating the frame is currently valid. A delete operation on an existing frame changes
63
Te component of the frame now to some t1. The value of t1 is usually the current time
but can be specified explicitly by a 'delete' statement for a historical database. For a
replace operation a new version of the frame augmented with an appropriate interval is
inserted after a valid delete operation is executed as above (Fig. 2.1).
In slot versioning (similar to attribute versioning in relational databases [Ilsoo
86]), a slot is either static or dynamic, depending on whether its value is constant or
changes over time. Each dynamic slot of a frame is set to (value,temporal element) pair,
where handling of the interval [Ts, Te] is similar to the frame versioning except that the
interval is associated with each version of a slot value. When a frame is inserted, the Te
component of the interval for each slot value is set to now. A delete operation on an
existing frame changes Te component of all dynamic slots in the frame from now to
some t1 as in frame versioning. A delete operation on an existing slot changes Te
component of that slot from now to some t1. For a replace operation a new version of the
changed slots augmented with the appropriate intervals are inserted after a valid delete
operation is executed as above (Fig. 2.2 ).
Slot versioning and frame versioning are equivalent in terms of their information
contents, but Slot versioning is preferred in contrast with frame versioning keeping in
view the high degree of redundancy owing to duplication of the entire frame, especially
when the changed portion is relatively small compared with the unchanged portion in
case of frame versioning.
64
2.3 Temporal Frame Query Language
In this section, we will discuss the design of query language for temporal frame
system. The query language is similar to SQL of relational databases. The effect of
temporal aspect on selection, projection and manipulation statements on frames is
shown below:
2.3.1 Selection
Selection basically retrieves instance frame information from class frames or slot
information from instance frames unconditionallly or based on some condition(s).
Selection can be temporal selection or nontemporal selection depending upon whether
the selection is based on time or not. In nontemporal selection, all conditions are
independent of time and in temporal selection the conditions may contain time
information. In case of temporal selection, we use WHEN, VALID and AS_OF clauses.
(a). The WHEN clause is the temporal analogue of the WHERE clause for
nontemporal selection, where the condition is based on time.
(b). The AS_OF clause rolls back the knowledge base to a previous state and
evaluates the rest of the query using the information known only to that point.
65
Addition and error corrections made after that time are not included in the
resulting network of frames.
The desired state is expressed as a temporal expression which evaluates to a
point of time i.e. zero length interval. Only those frames with transaction time on or
before that point are allowed to participate in the derivation. Without the loss of
generality, most queries are concerned with the current state of the knowledge base.
Therefore it is natural to assume AS_OF now, if the clause is omitted.
(c). The VALID clause specifies the value of the valid time attribute in the desired
relation.
Two forms of the VALID clause are
(1). VALID AT
it specifies a time point or an interval.
(2). VALID FROM Vs TO Ve
it specifies the start point and end point of the desired interval.
A nontemporal selection can be represented as
SELECT FROM class_name1
A_PART_OF class_name2
WHERE condition.
or
66
SELECT * FROM instance_name.
which retrieves instance_names of class_name1 which is "a_part_of" class_name2 and
satisfy the given condition or lists all slot_names and their values of instance_name
respectively.
For example,
SELECT FROM research_student
A_PART_OF Delhi_University
WHERE age < 25.
lists research students of Delhi_University whose age is less than 25 years.
and based on the definition of temporal frame given in section 2.2, the temporal
selection statement
Find research students of Delhi_University who joined in 1986 or after 1986
and whose age is less than 25 years as known in the beginning of 1992.
can be written as
SELECT FROM research_student
A_PART_OF Delhi_University
WHERE age < 25
VALID_FROM 1986 TO now
AS_OF 1-1-92.
67
2.4.2 Projection
In projection, we project the selected answer to some specific slots. In case the
projection is done on time slot, it is called temporal projection & if projection is done
on slots other than time slot, it is called nontemporal projection.
A nontemporal projection of the form
Find entryno of research students of Delhi_University whose supervisor is Prof.
Rosen.
can be written as
PROJECT ON entryno FROM research_student
A_PART_OF Delhi_University
WHERE supervisor = Rosen.
or
SELECT entryno FROM research_student
A_PART_OF Delhi_University
WHERE supervisor = Rosen.
The temporal projection statement can be converted to select statement with a projection
on time, e.g.
68
Find entryno of research students of Delhi_University in [1985, now] whose
supervisor is Prof. Rosen.
The above statement means that we want to find entry numbers of all instances of
research student, a part of Delhi_University in [1985, now] whose supervisor is Prof.
Rosen.
The select statement corresponding to this can be written as
SELECT entryno FROM research_student
A_PART_OF Delhi_University
WHERE supervisor = Rosen
VALID_FROM 1985 to now.
2.4.3 Manipulation
Manipulation operation consists of basically three operations.
- Insert
- Delete
- Update
Insertion means a new instance frame is added in the network or a slot value is added
69
to an already existing frame.
For example, the statement
Insert a new instance frame with name John and lifespan [1987, now] to
research student in Delhi_University.
can be written as
INSERT INTO research_student
A_PART_OF Delhi_University
INSTANCE rsjohn
VALUES name John
VALID_FROM 1987 TO now.
Deletion means in the lifespan of frame/slot, the end point of the last interval in the
temporal element is changed to time of deletion, i.e., deletion of information is obtained
by storing knowledge about the end of the period for which the information holds. For
example,
Delete all research students of Delhi_University whose supervisor is Prof. Paul.
70
can be written as
DELETE FROM research_student
A_PART_OF Delhi_University
WHERE supervisor = Paul.
The effect of this deletion statement will be that with all research students of Delhi
University with supervisor Paul, lifespan has its endpoint as the time of deletion.
Update means that in the temporal element of frame/slot another interval is added, e.g.,
k
if T(x)= U Ii
i=1
then after update
k+1
T(x)= U Ii
I=1
where Ik+1 is the interval in which the new value of frame/slot exist. For example,
UPDATE research_student
A_PART_OF Delhi_University
SET supervisor = Rosen
71
WHERE supervisor = Paul.
This statement updates the supervisor to Rosen for research students whose present
supervisor is Paul. Suppose this update is done in the beginning of 1986, then in the
interval ending with 1986, i.e. [_,1986] supervisor is Paul and in [1986,now] supervisor
is Rosen. Therefore,
k
if before update, T(X) = U Ii
i=1
k+1
then after update T(X) = U Ii where Ik+1 = [1986,now]
i=1
A subset of this query language has been implemented using LPA Prolog
Professional Compiler and Quintus Prolog 2.3.
2.4 Summary
In this chapter, a temporal extension to frame model has been presented and the
design of a query language for this model is discussed. The proposed temporal frame (
Tframe) system is based on slot versioning in contrast with frame versioning.
The Tframe model
(1) is based on the TQuel approach, i.e., it extends the existing frame model.
72
(2) uses Allen's interval calculus for temporal reasoning but it uses the concept of a
temporal element which is union of intervals instead of an interval.
(3) integrates with semantic network of events if one of the endpoints of interval is
unknown.
(4) uses both valid time and transaction time for the representation of temporal
information.
The query language has been simulated using LPA Prolog Professional Compiler and
Quintus Prolog 2.3.
73
Chapter 3
Triggers in Frame Systems
This chapter discusses the concept of triggers in frames. The scope of procedural
attachments in frames has been extended and are viewed as triggers which implies the
activation of some other mechanism(s). A trigger recognizes the occurrence of an event
and conditionally performs certain action(s). When triggers are combined with frames,
they facilitate knowledge base processing because triggers are very useful for
performing tasks such as data validation, data entry, data deletion and control the logical
flow of an application.
The frame system with triggers can be treated as an active knowledge base
system since such system can monitor situations of interest by triggering an appropriate
response in a timely manner.
Two categories of triggers in the frames are designed and discussed in this
chapter. One is event_based and the other is user_named. The chapter also deals with
level, scope, context and usage for these triggers. Overloading and inheritance feature of
triggers are also discussed in the chapter. Such a frame based system will find
applications in several areas including flight control, medical histories, corporate
74
management, university environment, railway reservation system.
3.1 Level, Classification, Scope and Contexts of Triggers
We have attached triggers to objects in the network of frames [Bedi 91, Bedi
93b], i.e., a trigger is attached to a slot, an instance frame, a class frame or the root
frame.
3.1.1 Trigger Definition Level
The trigger Definition level defined in this paper refers to the object level to
which one can attach a particular type of trigger. The top down level hierarchy for
triggers in a network of frames works in the following level order:
1. root or network
2. class
3. instance
4. slot
A trigger defined at a higher level can be used at lower levels unless it is redefined.
3.1.2 Classification of Triggers
75
Triggers can be classified into two categories:
- Event_based
- User_named
Event_based triggers
Different types of triggers which are associated with event_based triggers can
be summarized in a table (Table. 3.1). Event_based triggers perform certain actions after
recognizing the occurrence of some event. These triggers are executed when some event
occurs or a function key is pressed. Each of five kinds of event_based triggers are
described below.
A. Entry Triggers: These triggers are executed when we access an object in the network
of frames, i.e., when we enter a network of frames or a class frame or an instance frame
or a slot. They are useful in validation, authorization checks, initialization etc. Under
this category, we have Pre_Network, Pre_Class, Pre_Instance and Pre_Slot triggers.
B. Query Triggers: These triggers are executed before/after querying class/instance
frames or slots. Post_Query triggers are useful in making the system self_learning, i.e.,
after execution of the query, the results of the query can be stored as information for
subsequent use. Pre_Query triggers can be used for checking the authorization of the
user for query operation.
76
C. Change Triggers: These are executed before/after insertion, deletion or updation
operations are done on instance frames or slots. Post_Change triggers are used to give
appropriate message such as success/failure of the operation to the user. Pre_Change
triggers can check the authorization of user for a particular change
(insert/delete/update) operation. They can also be used to perform some preprocessing,
if required, before change such as storing backups etc.
D. Exit Triggers: These are executed when we exit either a network, a class, an instance
or a slot. These triggers can be useful for printing results, giving message to a user and
can activate some other system, if desired.
E. Keystrokes: These are key triggers and are executed when the user presses a function
key. Key triggers are most often used to perform complex or multiple functions with a
single keystroke.
User_named triggers
User_named triggers are common triggers or subtriggers that we want to call
whenever required from other triggers. These are defined by the user giving each one its
own name and are not triggered by a specific event at all. These can be defined at any
level and can then be called from other triggers at that level or levels below. Hence, we
have defined these triggers at root frame level so that they can be called at any level in
the network. These triggers can be used to modularize trigger code that otherwise would
78
have to be repeated in several different triggers. User_named triggers can also be
defined for security purposes imposed by the user.
To call a user_named trigger, one can enter
#EXEMACRO EXETRG (trigger_name)
The processor will search for and execute that trigger.
Example 3.1 :- User_named Trigger
In a library environment, we can define a user_named trigger called GETBOOK that
retrieves a book's name and its authors based on its accession number as follows:
define_trigger GETBOOK(BOOKID) AS
SELECT NAME, AUTHORS
INTO LOAN.BOOKNAME, LOAN.AUTHORNAME
FROM BOOK
WHERE BOOK.ACCNO = BOOKID
This GETBOOK trigger can be called in a post_query trigger for a loan frame. e.g., one
can get the accession numbers of all books issued to a particular person from the loan
frame and can then use GETBOOK trigger to get details of books.
3.1.3 Scope and Contexts of Triggers
79
The scope of a trigger is defined as the domain in which a trigger operates and is
determined by the level at which it is defined. Each type of trigger has been defined at
its desired level or at any higher level, i.e., a slot level trigger can be defined at slot level
or at instance / class / root level. When a trigger is defined at more than one levels, the
specific overrides the general (Example 3.2).
Since triggers can act on classes, instances or slots that are not current, each type of
trigger also has a context that determines which objects are affected by its actions.
Context of a slot level trigger is the slot, of the instance level trigger is all slots of that
instance, of a class level trigger is all instances of that class and of a root level trigger is
the network of frames. Context of a key trigger is slot, instance, class or root frame in
which a function key is pressed. The context of a user_named trigger is same as the
context of trigger calling it.
3.1.4 Overloading of Triggers
Function overloading allows the same function name to be applied with different
types and quantities of arguments [Khoshafian 90]. The same function name can be used
to perform operations on different data types. Several functions can share a name but
completely different implementations. Triggers are procedures and hence have
parameters. The number and nature of these parameters can differ resulting in
overloading of triggers.
81
The proposed system uses the following information to distinguish among different
versions of the same overloaded trigger name:
- parameter types
- number of parameters
For example, one of the parameters can have the value which denotes the slot, instance
or a class frame. Number and nature of other parameters differ depending
upon the first parameter, i.e., we can define a trigger retrieve_value for retrieving a value
as
define_trigger retrieve_value(n,A) AS
case n=1 : get_slot_value(A);
n=2 : get_instance_value(A);
n=3 : get_class_value(A);
else error.
Here in this trigger A represents the name of the slot, instance or class frame depending
upon the value of n.
82
3.2 Inheritance of Triggers
Since triggers can be attached at various levels, i.e., root, class, instance and slot,
triggers can be inherited in the given network of frames. Hence a class level trigger can
be called by its subclasses as well as its instances. This inheritance of triggers can be of
two types:
a. Simple Inheritance
If the trigger is inherited from a single parent, it is the case of simple inheritance
and is same as discussed in section 3.1.3, i.e., scope and context of triggers.
b. Multiple Inheritance
If a trigger is inherited from more than one parent, it becomes the case of
multiple inheritance and one needs to resolve the conflict that from which parent trigger
should be inherited. One can follow the strategies given in section 1.2.3 for resolving the
conflict.
3.3 Temporal Triggers in Frames
These are triggers which are executed at/after specific time points. For example,
in a library environment, temporal triggers are needed for return of books and in hospital
83
environment, temporal triggers are needed for patient's checkup, keeping his records etc.
Allen's theory of action and time [Allen 84] combined with temporal triggers can give
very meaningful results. The thirteen conditions between endpoints of intervals as given
in [Allen 83, Allen 84], can be treated as events and corresponding actions can be
defined.
3.4 Triggers for views of a frame
A view of a frame is defined as either a subframe or a table (relational database)
or a view of a table or combination of views of tables. Hence, if a trigger is defined at
frame level, it will work as a global trigger for all its generated views. A trigger can be
defined at frame level to work only for particular views giving condition as an event in
an event_based trigger.
3.5 Triggers w.r.t. multimedia environment
These triggers are very useful in a multimedia environment. We can use triggers
for representing the information in textual form, in graphical form, in voice or a
combination.
3.6 Implementation of Triggers
Triggers in frame system are defined using
84
1. statements of FSQL[Sharma 88, Chapter 6]
2. some loop constructs
3. user exits
4. few macro type commands like #EXEMACRO, #ERASE, #COPY, #HOST
Most of the triggers in frame systems are defined using the select statements of
FSQL. Only the commit triggers are defined using the manipulate (INSERT, DELETE
and UPDATE) statements of FSQL.
Loop constructs like repeat until, while do, if then, case statements are used in
implementing triggers in frame systems.
Macro type commands like #EXEMACRO, #ERASE, #COPY, #HOST are used
for executing a macro, erasing a global variable, copying a variable value from source to
destination and executing an operating system command respectively.
User Exits are used to perform complex computations, optimize the performance
of an application and can be written in a programming language like Prolog, C.
The syntax of triggers is same as syntax of FSQL[Sharma 88] along with syntax of loop
constructs and user exits.
85
3.7 Summary
In this chapter, triggers have been extended for frame systems giving their
definition level, scope, context and usage. Event_based and User_defined are two
categories of triggers, described in the chapter. Local and global nature of triggers are
also explained. Inheritance of triggers is an important feature which is discussed in the
chapter. The overloading of triggers is also explained in the chapter.
Table 3.2 Key Triggers available in our system
KEY PURPOSE
KEY F0-F9 user_defined function keys and can be programmed to
any desired function.
KEY-HELP displays help messages
KEY-CLRSLOT clears a slot
KEY-CLRINST clears an instance frame by clearing all its slots.
KEY-CLRCLAS clears a class frame by clearing all its instance frames.
KEY-CLRNET clears the network
KEY_COMMIT saves changes since last commit/clear network operation.
It initiates pre and post change triggers.
KEY_PRVSLOT moves cursor to previous slot.
KEY_PRVINST moves cursor to previous instance.
KEY_PRVCLAS moves cursor to previous class.
KEY_NXTSLOT moves cursor to next slot.
KEY_NXTINST moves cursor to next instance.
KEY_NXTCLAS moves cursor to next class.
KEY_SCROLUP scrolls up and shows previous few instances.
KEY_SCROLDN scrolls down and shows next few instances.
KEY_STARTUP it fires after all other triggers (Pre_network, Pre_class,
Pre_instance, Pre_slot) have been executed upon after
entry to a network of frames. It can be used to execute
unrestricted macros to fill and move around the network.
KEY_OTHERS executes when user presses any key for which there is no
explicitly defined trigger.
KEY_DELSLOT deletes a slot.
86
KEY_DELINST deletes an instance.
KEY_DELCLAS deletes a class.
KEY_DUPSLOT copies a slot.
KEY_DUPINST copies an instance.
KEY_CLASMENU menu of classes.
KEY_INSTMENU menu of instances of a class.
KEY_SLOTMENU menu of slots of an instance/ a class.
KEY_ENTQRY enter query.
KEY_EXEQRY execute query.
KEY_EXIT exits the network.
KEY_EDIT activates slot editor.
KEY_UPDINST locks an instance to prevent other users from updating
while user works with it.
KEY_CQUERY counts query hits, i.e., counts the number of instances
returned by execution of a query.
87
Chapter 4
Distributed Frame Systems
In this chapter, we have proposed the design of a transparent and homogenous
frame based system in a point_to_point distributed environment. We have defined three
types of fragmentations: Network fragmentation, Instance fragmentation and Slot
fragmentation for a given network of frames [Bedi 93a]. The first_order representation
for these fragmentations are also given. Message passing amongst objects is used for
communication and knowledge transfer. Since distributed systems are useful in
organizations having decentralized structure such as Airlines, Telecommunications,
Banks, Corporate MIS, Hotel chains, Military commands & control and multiplant
manufacturing, the proposed distributed frame system gets its importance. The design of
the FSQL incorporating distributed frame based queries is discussed. FSQL takes care
of Fragmentation, Location & Local Mapping transparencies.
4.1 Distributed Knowledge Based System
Definition: A knowledge based system (KBS) is said to be distributed if the
knowledge is distributed over different computers connected via a
computer network. Each of these computers has autonomous processing
88
capabilities for performing local applications. These computers at
various sites also participate in at least one global application, which
requires accessing knowledge at other sites using a communication
system.
A homogenous KBS refers to a distributed system with the same knowledge
representation technique used at each site whereas in a heterogenous KBS at least two
knowledge representation techniques are used.
We have used frame based representation for representing knowledge [Bedi 91,
Bedi 93a]. Three types of fragmentation can be defined w.r.t. Network Of
Frames(NOF).
1. Network Fragmentation
2. Instance Fragmentation
3. Slot Fragmentation
We will consider the example of five Institute of Technologies in India denoted
by IITD, IITB, IITK, IITKh, IITM located at Delhi, Bombay, Kanpur, Kharagpur and
Madras respectively. Each one of them being a full fledged educational institute in its
own right with similar academic and administrative structures. Every Institute has
several basic science and engineering departments offering undergraduate, postgraduate
and research degrees in various subjects in Science and Engineering. Besides this, every
89
Institute has administrative wing and other support services.
Network Fragmentation :-
In case of Network fragmentation, NOF is fragmented at the root level, i.e.,
different instances of the root give rise to different fragments. Hence corresponding to
each instance of the root, one instance NOF is created. In general, if R corresponds to
the root of NOF and R1, R2, ...,Rn are instances of R, then after fragmentation R1, R2,
...,Rn will be located at different sites. For example, consider the NOF for five IIT's
having IIT frame as the root frame of NOF and IITD, IITB, IITK, IITM, IITKh as five
instances of IIT. Hence after Network fragmentation, instance NOFs with roots IITD,
IITB, IITK, IITM, IITKh will be created which are located at Delhi, Bombay, Kanpur,
Madras and Kharagpur, i.e., are located at different sites.
Instance Fragmentation :-
In this case, all instances of a particular class frame (e.g. department) of the
instance NOF after network fragmentation are not at the same place, but are contained at
the site of the complete network fragment (or instance NOF). Consider for example, the
instance NOF for IITD. Department is a class frame in this NOF. Comp.Sc.dept.,
Mech.Engg.dept., Electrical Engg.dept., Maths dept. are instances of department and are
located in various blocks within the site of IITD. All these departments give rise to
90
instance fragments for the class frame department.
Slot Fragmentation :-
In case of slot fragmentation, all slots of instances of a class frame are not stored
at one place, i.e., few slots of the instance frames are located at one place and other slots
at other place within the site of instance NOF. Consider, for example, instructor class
frame in Comp.Sc.dept. of IITD. The details of the courses an instructor teaches are
stored within the department whereas salary details, number of years of service, next
promotion due date etc. are with the administrative branch. Hence all the slots of the
instances of instructor are not at one place but are fragmented and are placed at two
locations giving rise to two slot fragments of the class frame instructor.
4.1.1 Operations on Fragments of Frames
The usual operations of selection, union and intersection can be applied to these
fragments. These fragments also satisfy the conditions of Completeness, Reconstruction
and Disjointness.
4.1.2 Representing Fragmentation in first_order logic
The frame system
91
frame(x,[slot1, slot2, ... , slotn]) can be represented in first_order logic as
∀x (frame(x) ≡ ∃ y0, y1, ..., yn (((is_a(x,y0) ∨ ako(x,y0)) ∧ a_part_of(x,y1) ∧
slot2(x,y2) ∧ ...∧ slotn(x,yn))))
where slot1 ∈ {is_a, ako}, slot2 ≡ a_part_of
and slot3, ... , slotn represent the attributes of the frame.
4.1.2.1 Network Fragmentation
In case of network fragmentation, all instances of the root of the NOF give rise
to various fragments. In case of root frame, "a_part_of", "ako" and "is_a" links are
absent. The root x of NOF can be defined in first_order logic as follows:
frame(x) ≡ ∃ y2, y3, ..., yn (slot2(x,y2) ∧ slot3(x,y3) ∧ ...∧ slotn(x,yn))
If the instances x1, x2, ... , xm are defined as
is_a(x,x1) ∧ is_a(x,x2) ∧ ... ∧ is_a(x,xm)
∧
_y ( y ∈{x1, x2, ... , xm} ∧ is_a(x,y) ∧ frame(y))
then
x1, x2, ... , xm are the only instances of x , which form m network fragments of
NOFs with roots x1, x2, ... , xm respectively.
92
4.1.2.2 Instance Fragmentation
In case of instance fragmentation, all instances of a class frame are not at one
place. If x is a class frame, then x can be represented in first_order logic as follows:
frame(x) ≡ ∃ y0, y1, ..., yn (ako(x,y0) ∧ a_part_of(x,y1) ∧
slot2(x,y2) ∧ ...∧ slotn(x,yn))
and the instances x1, x2, ... , xi of x are defined as
is_a(x,x1) ∧ is_a(x,x2) ∧ ... ∧ is_a(x,xi)
∧
( _ xj s.t. xj ∈ { x1, x2, ... , xi } ∧ is_a(x,xj) ∧ frame(xj) )
then x1, x2, ... , xi give rise to instance fragments and this set is maximal.
4.1.2.3 Slot Fragmentation
In case of slot fragmentation, all slots of instance frames of a class frame are not
at one place, i.e., for a class frame x which is defined in first_order logic as follows:
frame(x) ≡ ∃ y0, y1, ..., yn ( ako(x,y0) ∧ a_part_of(x,y1) ∧
slot2(x,y2) ∧ ...∧ slotn(x,yn))
then
93
sloti(x,yi) ∪ ... ∪ slotm(x,ym) , 2 ≤i,m≤ n form slot fragments of x.
4.2 Reference Architecture For Distributed Frame Systems (DFS)
Figure 4.2 shows a reference architecture [Ceri 84] for distributed frame
systems. Global schema of KB is at the top level of this architecture and it defines the
knowledge as if knowledge is not distributed. The global network of frames can be split
into fragments as defined in section 4.1. The mapping between global NOF and
fragments is defined by fragmentation schema. Fragments are logical portions of global
NOF which are physically located at one or several sites of the computer network. The
allocation schema defines the site(s) of the fragment.
4.3 Distribution Transparency in DFS
Transparency is the separation of lower level components from the higher level
components. The implementation details of lower level components are hidden from
user and from the higher level components. The following types of transparencies are
present in our system.
a. Fragmentation Transparency
From the view point of the distribution transparency, the application having
Fragmentation Transparency refers to the NOF completely ignoring the fact that the KB
94
is fragmented and distributed. Hence the application is completely immune to any
change which is applied to all schemas below the global schema in our reference
architecture, i.e., fragmentation schema, allocation schema and local mapping schema.
b. Location Transparency
The application having Location Transparency is independent from changes in
the allocation schema and local mapping schema but not from changes in fragmentation
schema because the fragmentation structure is incorporated in the application. Location
Transparency allows the application to ignore which copies exist of each fragment,
therefore allowing copies to be moved from one site to another and allowing the creation
of new copies without affecting the application.
c. Local Mapping Transparency
At this level of distribution transparency, the application still refers to objects
using names which are independent from the individual local systems. However, it has
to specify at which site the objects reside. The site names are indicated in the distributed
frame query language statements by adding an at clause to the from clause.
4.4 Distributed Frame Management System
In distributed frame management system, there are two basic components. The
96
first component is known as User Request Processor [Bell 92] that handles interaction
with the user. The second component deals with the knowledge and is known as
Knowledge Base Processor.
User Request Processor consists of the following components :
- The User Interface Handler is responsible for interpreting user commands as
they come in and formatting the results to be sent to the user.
- Semantic Data Controller uses the integrity constraints and authorizations to
check if the user query can be processed. Semantic data control includes
- View Management
- Security Control
- Semantic integrity Control
- The Global Query Optimizer determines an execution strategy to minimize a
cost function and translates the global queries into local ones.
- The Global Execution Monitor coordinates the distributed execution of the
user request.
Knowledge Base Processor consists of the following components:
98
a. Level Manager (LM)
Each level manager has a Monitor and it provides a higher level interface to the
operating system. It chooses a message for execution and acts as a demon to provide the
requested service.
Controller KB selects the appropriate Knowledge Source (KS) which is executed by
Local Controller to meet the requirements of the user query.
Knowledge Base (KB) refers to the local KB which is represented as a frame hierarchy,
i.e., a fragment of NOF.
Communication Controller is responsible for all inter LM communication. It has its own
KB to handle the communication for each LM.
The Behaviour Part is a collection of methods and KSs. A method is a procedure written
in a high level language that describes an action of the object. It can be a predefined
method or defined by the user. The KSs are triggers (event_driven processes) which
generate or modify knowledge base objects.
b. Communication Level Manager (CLM)
The Communication Level Manager (CLM) is a specialized LM to handle intersite
99
communication. Each site in the problem solving network has a CLM which is
responsible for message transfer between two sites. It has a structure similar to general
purpose problem solving LM but additionally has communication buffer for message
transfer. One of the CLMs is designated as the Primary Communication Level
Manager (PCLM) and is responsible for dynamic reconfiguration of the network in
case of failure or recovery of the site or link in a NOFs.
c. Recovery Manager
The recovery manager is responsible for making sure that the local KB remains
consistent even if failure occurs. It provides a facility to automatically restart processes
after they have failed or if a site recovers.
4.5 Message Passing in Distributed Frame Management System
A message is a request for an object (frame) to carry out one of its operations. In
DFS, CLM at one site can communicate with CLM at another site in a point to point
fashion by message passing through the network. CLM A can send a message to any
other CLM B as long as it knows the name of the target CLM B at the other site. B need
not know about the address of A to receive the message. However, message will be
processed by B only if CLM A is authorized as per information stored in CLM B. The
message passing takes place in a point_to_point (agent_to_agent) fashion.
101
These messages can be of two types: enquiry messages, instructions. An enquiry
asks the recipient for a value whereas an instruction message tells the recipient what it
should do. Messages representing requests are handled by the monitor of receiving LM.
It examines LM's store, forms a reply and sends a message back to the initiator of the
control request. Control instructions are passed onto the local controller which decides
what is to be done with the instruction.
4.6 Distributed Frame Query Language
We now discuss the design of a structured query language for querying
distributed frame systems. Distributed Frame Systems have a structure similar to the one
given in reference architecture (section 4.2). This model also supports triggers and
temporal aspects in frame systems [Bedi 93a. Bedi 93b]. The following concepts are
added in FSQL to give distributed features.
- Fragmentation
- Transparencies
The Query Language has been implemented using the distributed knowledge at
various sites taking care of various fragmentations and transparencies present in the
system.
Example 4.1:-
102
Query1: Retrieve names of all professors of Computer Science in all IITs.
(i) In case of fragmentation transparency, the query can be written as
SELECT name FROM INSTRUCTOR
WHERE dept = CompSc
desg = Prof.
(ii) In case of Location Transparency, result is the union of the results of the queries
of the form
SELECT name FROM_FRAGMENT INSTRUCTORi
WHERE dept = CompSc
desg = Prof.
executed for all the fragments INSTRUCTORi of INSTRUCTOR.
(iii) In case of local mapping transparency, result is the union of the results of the
queries of the form
SELECT name FROM_FRAGMENT INSTRUCTORi AT_SITE sitej
WHERE dept = CompSc
desg = Prof.
103
executed for all the fragments INSTRUCTORi of INSTRUCTOR present at sitej of the
network for all sites.
Example 4.2:-
Query2 Get the address of Marry, a professor of Computer Science.
(i) In case of fragmentation transparency, the query can be written as
SELECT address FROM INSTRUCTOR
WHERE name = Marry
dept = CompSc
desg = Prof.
(ii) In Location Transparency, the query can be written as combination of five
queries as follows
SELECT address FROM_FRAGMENT INSTRUCTOR1
WHERE name = Marry
dept = CompSc
desg = Prof.
If not found
SELECT address FROM_FRAGMENT INSTRUCTOR2
WHERE name = Marry
dept = CompSc
104
desg = Prof.
If not found
SELECT address FROM_FRAGMENT INSTRUCTOR3
WHERE name= Marry
dept = CompSc
desg = Prof.
If not found
SELECT address FROM_FRAGMENT INSTRUCTOR4
WHERE name = Marry
dept = CompSc
desg = Prof.
If not found
SELECT address FROM_FRAGMENT INSTRUCTOR5
WHERE name = Marry
dept = CompSc
desg = Prof.
(iii) In case of local mapping transparency, at site clause will be written in queries of
Example 4.2(ii) as given in Example 4.1(iii).
4.7 Summary
105
The design of a transparent, homogenous frame based system in a distributed
environment is presented in the chapter. The concepts of Network fragmentation,
Instance fragmentation and Slot fragmentation along with their first_order
representation have been discussed. Various types of distribution transparencies ,i.e.,
fragmentation transparency, Location transparency and Local mapping transparency are
also explained. This model also supports triggers and temporal aspects in frame
systems[Bedi 93a, Bedi 93b]. Design of a query language FSQL with respect to
distributed frame systems has been discussed.
106
Chapter 5
Multimedia Dimension to Frame
Systems
New applications such as CAD, AI, and hypermedia require direct
representation and flexible use of complex objects, behavioral knowledge and
multimedia data. In this chapter, the design of a frame based system that offers
multimedia facilities is discussed. Both structural and behavioral knowledge can be
incorporated in this system. The facets of slots can flexibly represent constraints and
triggers. Besides providing abstraction, generalization and classification of data, the
proposed multimedia frame model supports the basic structure and operations for
multimedia data. The system has the potential of offering active video presentations and
hyperlinks so that the user can navigate from one medium to another. The design of a
query language FSQL for frame based systems with multimedia facilities is also
discussed. A prototype of the query language for querying multimedia frame based
systems is developed using LPA Prolog Professional Compiler.
107
5.1 Basic Terminologies
Hypertext is a mechanism for building and using associative structures. A
normal document is linear, and one tends to read it from beginning to end. In contrast,
reading hypertext is open-ended and one can jump from idea to idea depending on one's
interests. The nearest thing to a hypertext document that most people are familiar with is
a thesaurus. A thesaurus has no single beginning or end. Each time the thesaurus is
consulted, it is entered at a different location based on the word used to initiate the
search. Hypertext can be thought of as an enriched thesaurus where, instead of links
between words, links between documents and text fragments are available. Hypertext
can simply be defined as the creation and representation of links between discrete pieces
of text data. Hypermedia is an extension of hypertext when the data can be of different
media such as graphics, sound, text, numbers, video.
Multimedia means different things to different people, but broadly it is the
name given to the technology that attempts a harmonious real-time integration of
different media like images, full motion video, voice, text, graphics and other computer
data for enhanced man-machine interaction encompassing the audio-visual senses.
Hence, multimedia applications involve integration of various media of information in
its natural form.
Multimedia Information Systems embed various media into diverse
108
applications and allow for creation, processing, storage, management, retrieval, transfer
and presentation of multimedia information. The main characteristic of a multimedia
information system is its ability to deal not only with alphanumeric data (as in
traditional databases) but with images- both still and moving, graphics, text and voice
[Berra 93].
5.2 The Multimedia Frame Model
The Multimedia Frame Model is defined as a frame model that extends the
earlier proposed frame models to include the media information. Different media can be
added in the structure of a frame to give rise to a Multimedia Frame. Media
information can be added to a frame as a slot or to a slot as a facet.
5.2.1 Media as a slot
We can define Media Frame and Simple Frame depending on whether media is
included as a slot or not as follows:
Simple Frame: Frame which does not have a media slot is called a simple frame.
Media Frame: Frame which has a media slot is known as a media frame. These frames
are single media frames. The media slot in these frames can be
text, audio, video, graphics etc. and the other slots depend on the
value of the media slot.
109
- If the media slot is text (Example 5.1), then the other slots will be
no_of_chars(integer), data(long string) and no_of_words (integer).
- If the media slot is audio, then the other slots will be data (bitstream) and
frequency(number).
- If the media slot is graphics, then the other slots will be data(bitmap),
height(number) and width(number).
- If the media slot is video (Example 5.2), then the other slots will be
encoding_format, data_reference, original_size and original_duration..
In case of a media frame, data may be included in the frame or the frame has a reference
to the data. In addition to the encoding scheme, information on the original size of the
object and the original duration of the playout is also stored with the frame. The measure
for these are taken from the generic space, which defines the virtual coordinates on the
x, y, z axes. Each axis goes from -32,768 to 31,767.
At playout time, the physical coordinates of the visual frame are computed from
the virtual coordinates. This virtual coordinate system helps us to avoid device
dependencies in the description of the multimedia objects, such as the number of pixels
in the target window, audio sampling rate. Parameters in the encoding determine the
manner in which a media frame can be manipulated at play-out time. Hence we create
110
virtual views from the given media frame for the actual physical coordinates and these
views contain the actual parameters at the runtime when the frame plays out.
5.2.2 Media as a facet
A slot in a multimedia frame can be either a simple slot or a media slot which
can be defined as follows:
Simple Slot: Slot which does not have a media facet is called a simple slot.
Media Slot: Slot which contains media facet(s) is called a media slot. Each of these
media facets point to a media frame normally a single media frame.
These frames are mixed media frames and are used to represent the
same information in many ways.
Hence, a multimedia frame can be a single media frame or a mixed media frame
whose subclasses are either a single media frame or mixed media frames. So "a_part_of"
hierarchy breaks down a mixed media frame to single media frames.
For example, in Robert frame, name is an example of media slot having facets: value
which gives the string value "Robert", photo which points to student's photo, voice
which speaks the name of the student. Photo actually is an image frame for student and
112
voice is an audio frame with data to speak the name Robert.
In case of Multimedia Frame Systems with Time Dimension, the value of slots
change with time and give rise to animation or moving video with time. Hence, frames
in Multimedia Frame Systems with Time Dimension can be classified as:
- Simple static frames
- Media static frames
- Simple dynamic frames
- Media dynamic frames
Simple Static Frames (SSF):
These frames have no media associated with them and are nontemporal in nature
and hence are same as frames given in literature.
Media Static Frames (MSF):
These frames have media slot/facet but no time information in them.
Simple Dynamic Frames (SDF):
These frames have no media information, but are temporal frames.
Media Dynamic Frames (MDF):
These frames are multimedia frames having media slot as well as are temporal in
nature and hence can be used for video presentations.
113
5.3 System-Defined Classes
The basic functions needed for a hypermedia engine are provided by system-
defined classes (Fig. 5.2) in our system. The user can model the application domain by
using these classes. The system-defined classes [Ishikawa 93] mirror the frame model
semantics.
OBJECT is the root of hierarchy of system-defined classes. OBJECT is divided
into REFERENCE and IMMEDIATE parts, denoting reference and immediate objects.
IMMEDIATE objects do not have object identifier and can be of type ATOMIC which
include NUMBERS and STRINGS or they can be procedures or rules. REFERENCE
objects have identifier associated with them and are divided into MEDIA and
COMPOSITE. User defines frames, rules or semantic net as subclasses of
COMPOSITE. MEDIA has subclasses IMAGE, GRAPHICS, VIDEO, AUDIO and
TEXT. Although they have polymorphic procedures such as input, output, change-size
and move, which have different implementations from one media to another, they have
the same interface. The user can operate on multimedia in a uniform manner.
System-defined classes have system-defined slots which are inherited by user-
defined subclasses and instances.
5.4 System Architecture
114
This architecture combines techniques of various media processing along with
Frame technology. The architectural components and their relationships are shown in
Fig. 5.3.
Multimedia data like images can be stored on Secondary Storage or Optical
Disks and can be accessed whenever required. Instead of copying it in main memory, it
can be copied in buffer and then printed from there.
Vision library contains instances of media image system defined subclass and
routines to manipulate image data. Similarly video/audio library contains instances of
media video/audio system defined subclasses and routines to manipulate video/audio
data. Multimedia frame system consists of multimedia frames which are capable of
storing information such as text, image, video and audio. User makes a query to
multimedia frame system which using various reference tables retrieves the media data
from the corresponding media library. In case of manipulation, operators manipulate
data in the corresponding media library and update the reference tables, if required.
5.5 Multimedia Frame Query Language
In this section, a query language for the frame model with multimedia dimension
is discussed. This is a part of FSQL, i.e., Frame_oriented Structured Query Language
117
[Chapter 6]. Selection, projection and manipulation of frames/slots can be done using
this language. Display, move and change_size are common operations which can be
done independent of media type. The polymorphism feature [Ishikawa 93] is also
supported in our system, i.e., an integrated interface is given to media methods that
perform the same function but have different implementations, depending on the type of
media.
5.5.1 Selection
In selection, knowledge is retrieved from the NOF unconditionally or based on
some condition(s). Selection can be media selection or simple selection depending
upon whether the selection is based on media or not.
For Example, a simple selection of the form
Select research students of Duke_University whose age is less than 25 years.
can be represented as
SELECT FROM research_student
A_PART_OF Duke_University
WHERE age < 25.
and taking the definition of media frame as given in section 5.2, the media selection
statement can be represented as
118
SELECT data FROM TEXT_frame
WHERE no_of_words > 30.
or
SELECT data FROM MEDIA_frame
WHERE media = text
and no_of_words > 30.
This statement retrieves more than 30 words text data.
5.5.2 Projection
In projection, we project the selected answer to some specific slots/facets. In
case the projection is done on media slot/facet, it is called media projection & if
projection is done on slots/facets other than media slot/facet, it is called simple
projection.
A simple projection of the form
Find entryno of research students of Duke_University whose supervisor is Prof.
Rosen.
can be written as
SELECT entryno FROM research_student
119
A_PART_OF Duke_University
WHERE supervisor = Rosen.
The media projection statement can be converted to select statement with a projection
on media, e.g.
Speak entryno of research students of Duke_University whose supervisor is
Prof. Rosen.
The above statement means that we want to find audio representation of entry numbers
of all instances of research student, a part of Delhi_University whose supervisor is
Prof.Rosen.
The select statement corresponding to this can be written as
SELECT audio(entryno) FROM research_student
A_PART_OF Duke_University
WHERE supervisor = Rosen.
5.5.3 Manipulation
Manipulation operation consists of basically three operations.
120
- Insert
- Delete
- Update
Insertion means a new frame is added in the network or a slot value is inserted for
already existing frame.
For example, the statement
Insert a new instance frame with name John to research student in
Duke_University.
can be written as
INSERT INTO research_student
A_PART_OF Duke_University
INSTANCE rsjohn
VALUES name John.
Deletion means a frame is deleted from the network or a slot value is deleted from an
instance frame.
For example, the statement
Delete all research students of Duke_University whose supervisor is Prof. Paul.
can be written as
DELETE FROM research_student
121
A_PART_OF Duke_University
WHERE supervisor = Paul.
Update means an instance frame is modified in the network or a slot value of an
instance frame is modified.
UPDATE research_student
A_PART_OF Duke_University
SET supervisor = Rosen
WHERE supervisor = Paul.
This statement updates the supervisor to Rosen for research students whose present
supervisor is Paul. Suppose this update is done in the beginning of 1986,then in the
interval ending with 1986, i.e. [-,1986] supervisor is Paul and in [1986,now] supervisor
is Rosen. Therefore,
k
if before update, T(X) = U Ii
i=1
k+1
then after update T(X) = U Ii where Ik+1 = [1986,now]
i=1
A prototype of the query language has been implemented using LPA Prolog
Professional Compiler to test the feasibility of the system.
122
5.6 Summary
A frame based system to offer multimedia facilities has been designed in this
chapter. The system has capabilities of representing both structural and behavioral
knowledge. The facets of slots can flexibly represent constraints and triggers. The model
provides abstraction, generalization and classification of data, as well as capable of
supporting the basic structure and operations of multimedia data. The system has the
potential of offering active video presentations and hyperlinks so that the user can
navigate from one medium to another. A query language for such frame based systems
with multimedia facilities has been designed and a prototype is developed for
demonstration using LPA Prolog Professional Compiler.
123
Chapter 6
FSQL - Frame_oriented Structured
Query Language
The name FSQL is an acronym for "Frame_oriented Structured Query
Language". This language consists of a set of facilities for defining, manipulating
and controlling the knowledge contained in frames. "FSQL" has features similar to
SQL of relational databases but takes care of multiple facets of slots and inheritance of
values between parent and child frames including temporal information. FSQL has
been designed as a query language for the frame systems in view of the following
factors:
a. FSQL is an extended version of SQL which is endorsed by almost all the major
developers of relational systems. Thus the existing application programs can be
supported by FSQL without any change.
b. FSQL has the added advantage of offering time dimension [Bedi 93a,
Mylopoulos 90] which makes it possible to preserve the old information
required in several applications such as medical histories, real-time
applications, historical/temporal databases.
124
c. FSQL can be used in a distributed environment and also has facilities for basic
multimedia operations.
d. SQL is the only relational language that has a standard developed for it and
paves the way for standardizing FSQL.
6.1 Some Common Statements of FSQL
Before proceeding to define the syntax and semantics of FSQL, we illustrate
here few statements of FSQL (such as selection, projection and manipulation) to
facilitate the understanding of the language.
6.1.1 Selection
Selection basically retrieves knowledge is from the network of frames [Bedi 91]
unconditionally or based upon some condition(s). Selection can be of the following
types:
- simple selection
- temporal selection
- media selection
- temporal media selection
125
In simple selection, all conditions are independent of time and media whereas in
temporal selection, the conditions may contain time information and require the use of
WHEN, VALID and AS_OF clauses. In media selection, conditions contain media
information and in temporal media selection, condition may contain both time and
media.
a). A simple selection of the form
Select lecturers of Delhi_University whose salary is less than rupees 8000.
can be represented as
SELECT FROM lecturer
A_PART_OF Delhi_University
WHERE salary < 8000.
b). The temporal selection statement
Find lecturers of Delhi_University who joined in 1990 or after 1990 and whose
salary is less than rupees 8000 as known in the beginning of 1996.
can be written as
126
SELECT FROM lecturer
A_PART_OF Delhi_University
WHERE salary < 8000
VALID_FROM 1990 TO now
AS_OF 1-1-96.
c). The media selection statement
Get data of the type text which has more than 300 characters in it.
can be written as
SELECT FROM TEXT_class
A_PART_OF MEDIA_class
WHERE no_of_chars >300.
d). The temporal media selection statement
Get data of the type text which has more than 300 characters in it from 1990 to
1995.
can be written as
SELECT FROM TEXT_class
A_PART_OF MEDIA_class
WHERE no_of_chars >300
127
VALID_FROM 1990 to 1995.
If the frame system is also distributed and system has
- fragmentation transparency, the above queries will remain the same.
- location transparency, fragment identifier will be mentioned in the
FROM_FRAGMENT clause.
- local mapping transparency, fragment identifier will be mentioned in the
FROM_FRAGMENT clause and site identifier will be used in the AT_SITE
clause.
6.1.2 Projection
In projection, we project the selected answer to some specific slots/facets.
In case the projection is done on
- time slot, it is called temporal projection
- media slot/facet, it is called media projection
- else it is simple projection
A simple projection of the form
Find entryno of research students of Delhi_University whose supervisor is Prof.
128
Rosen.
can be written as
SELECT entryno FROM research_student
A_PART_OF Delhi_University
WHERE supervisor = Rosen.
The temporal projection statement can be converted to select statement with a projection
on time, e.g.
Find entryno of research students of Delhi_University in [1985, now] whose
supervisor is Prof. Rosen.
The above statement means that we want to find entry numbers of all instances of
research student, a part of Delhi_University in [1985, now] whose supervisor is
Prof.Rosen.
The select statement corresponding to this can be written as
SELECT entryno FROM research_student
A_PART_OF Delhi_University
WHERE supervisor = Rosen
129
VALID_FROM 1985 to now.
The media projection statement can be converted to select statement with a projection
on media, e.g.
Speak entryno of research students of Delhi_University in [1985, now] whose
supervisor is Prof. Rosen.
This statement means that we want to find audio representation of entry numbers of all
instances of research student, a part of Delhi_University in [1985, now] whose
supervisor is Prof.Rosen.
The select statement corresponding to this can be written as
SELECT audio(entryno) FROM research_student
A_PART_OF Delhi_University
WHERE supervisor = Rosen
VALID_FROM 1985 to now.
6.1.3 Manipulation
Manipulation operation consists of basically three operations:
- Insert
- Delete
- Update
130
Insert
Insert means a new frame is added in the network or a slot value is added to an
already existing instance fraem. For example, the statement
Insert a new instance frame rs009 with name Iman and lifespan [1987, now] to
research student in Delhi_ University.
can be written as
INSERT INTO research_student
A_PART_OF Delhi_University
INSTANCE rs009
VALUES name Iman
VALID_FROM 1987 TO now.
Delete
Delete means in the lifespan of frame/slot, the end point of the last interval in the
temporal element is changed to time of deletion, i.e., deletion of information is obtained
by storing knowledge about the end of the period for which the information holds. For
example,
Delete all research students of Delhi_University whose supervisor is Prof.
131
Keshav.
can be written as
DELETE FROM research_student
A_PART_OF Delhi_University
WHERE supervisor = Keshav.
The effect of this deletion statement will be that for all research students of
Delhi_University with supervisor Keshav, lifespan has its endpoint as the time of
deletion.
Update
Update means that in the temporal element of frame or slot another interval is
added. For example, the statement
UPDATE research_student
A_PART_OF Delhi_University
SET supervisor = Keshav
WHERE supervisor = Berry.
updates the supervisor to Prof. Keshav for research students whose present supervisor
132
is Prof. Berry. Suppose this update is done in the beginning of 1986, then in the
interval ending with 1985, i.e. [_,1985] supervisor is Prof. Berry and in [1986,now]
supervisor is Prof. Keshav.
Therefore, if before update
k
T(x)= ∪ Ii
i=1
then after update
k+1
T(x)= ∪ Ii , where Ik+1 = [1986,now]
i=1
6.2 Syntax of FSQL
We have presented the syntax of FSQL [Sharma 88, Date 87] using the BNF
form with the extensions that the braces { } and [ ] are used to indicate repetition and
optional occurrences respectively. More specifically,
{item}* denotes zero or more items separated by blank(s)
{item}+ denotes one or more items separated by blank(s)
[item] denotes zero or one item
{item}(*)
denotes zero or more items separated by comma
{item}(+)
denotes one or more items separated by comma
In the proposed query language, FSQL, AT/IN/FROM FRAGMENT clauses is
optional and is present in allocation schema. In local mapping schema AT/IN/FROM
133
FRAGMENT is present along with AT/FROM SITE whereas in case of fragmentation
schema both of these clauses are absent.
6.2.1 Frame Knowledge Definition Language (FKDL)
schema
::= CREATE [distributed_schema] schema_name
AUTHORIZATION user
{distributed_schema_element}*
distributed_schema
::= FRAGMENTATION_SCHEMA
/ ALLOCATION_SCHEMA
/ LOCAL_MAPPING_SCHEMA
distributed_schema_element
::= base_class_definition
/ view_definition
/ privilege_definition
base_class_definition
::= CREATE CLASS class_name
[ IN_FRAGMENT fragmenti
134
[ AT_SITE sitei ] ]
[linklist_definition]
[timelist_definition]
[media_element]
{base_class_element}(+)
linklist_definition
::= {link_name-frame_name}*
timelist_definition
::= {[ VALID_FROM Vs ]
[ VALID_TO Ve ]
[ AS_OF Tt ]
[ DELETION_TIME Dt]}*
media_element
::= MEDIA media
base_class_element
::= (slot - slot_value) [timelist_definition]
media
::= text / image / audio / video
135
slot_value
::= {facet_name - facet_value}(*)
facet_name
::= DEFAULT / SLOTTYPE / RANGE / IF_ADDED /
IF_NEEDED / IF_DELETED / IF_CHANGED / media_element
link_name
::= AKO / A_PART_OF / IS_A
view_definition
::= CREATE VIEW view_name [MEDIA media] {slot_name}(+)
AS select_statement
[WITH CHECK OPTION]
If "WITH CHECK OPTION" is included in the view definition, then all INSERTs and
UPDATEs against the view will be checked to ensure that newly INSERTed or
UPDATed instances does indeed satisfy the view condition.
privilege_definition
::= GRANT privileges ON
{class_identifier/slot_identifier}(+)
136
[ OF_FRAGMENT fragmenti
[ AT_SITE sitei ] ]
TO {grantee}(+)
[WITH GRANT OPTION]
Here the GRANT OPTION means that if a user A is allowed to grant some
privilege P to user B WITH GRANT OPTION, then the recipient of the privilege can in
turn grant the same privilege with or without GRANT OPTION to some other user
(and so on, recursively).
privileges
::= ALL [PRIVILEGES] / {operation}(+)
Operation
::= ((SELECT / INSERT / DELETE / UPDATE)
(instance_identifier / slot_identifier)) /
ALTER class_identifier
grantee
::= PUBLIC / user
6.2.2 Module Language
137
module_def
::= MODULE module_name
LANGUAGE {COBOL / PROLOG / PASCAL / C}
AUTHORIZATION user
{procedure_def}*
procedure_def
::= PROCEDURE procedure {parameter_ def}+
manipulative_statement
parameter_def
::= parameter data_type / FSQLCODE
6.2.3 Frame Knowledge Manipulation Language (FKML)
manipulative_statement
::= add_instance_statement
/ alter_statement
/ commit_statement
/ delete_statement
/ drop_statement
/ insert_statement
/ project_statement
138
/ rollback_statement
/ select_statement
/ update_statement
add_instance_statement
::= ADD TO CLASS class
[ OF_FRAGMENT fragmenti
[ AT_SITE sitei ] ]
INSTANCES {instance_name,instance_element+}
+
alter_statement
::= ALTER CLASS class_name
[ IN_FRAGMENT fragmenti
[AT_SITE sitei ] ]
[AKO class]
[A_PART_OF class]
[MEDIA media]
{ADD / DELETE} base_class_element
commit_statement
::= COMMIT WORK
[ IN_FRAGMENT fragmenti
[ AT_SITE sitei ] ]
139
drop_statement
::= DROP CLASS class_name
[ FROM_FRAGMENT fragmenti
[ AT_SITE sitei ] ]
/
DROP VIEW view_name
[ FROM_FRAGMENT fragmenti
[ AT_SITE sitei ] ]
delete_statement
::= delete_instance_statement /
delete_slot_statement
delete_instance_statement
::= DELETE FROM class_identifier
[ OF_FRAGMENT fragmenti
[ AT_SITE sitei ] ]
WHERE condition
WHEN temporal_condition
delete_slot_statement
::= DELETE slot_identifier
140
OF class_identifier
[ OF_FRAGMENT fragmenti
[ AT_SITE sitei ] ]
[WHERE condition]
[WHEN temporal_condition]
/
DELETE slot_identifier
FROM instance_identifier
[ OF_FRAGMENT fragmenti
[ AT_SITE sitei ] ]
insert_statement
::= insert_instance_statement /
insert_slot_statement
insert_instance_statement
::= INSERT INTO class_identifier
[ OF_FRAGMENT fragmenti
[ AT_SITE sitei ] ]
INSTANCE instance_identifier
VALUES (instance_element)(+)
insert_slot_statement
141
::= INSERT INTO instance_identifier
[ OF_FRAGMENT fragmenti
[ AT_SITE sitei ] ]
VALUES instance_element
project_statement
::= PROJECT ON (slot/(facet_name(slot))(+)
FROM (class_identifier)(+)
[ OF_FRAGMENT fragmenti
[ AT_SITE sitei ] ]
[where_clause]
[when_clause]
/
select_statement
rollback_statement
::= ROLLBACK WORK
[ IN_FRAGMENT fragmenti
[AT_SITE sitei ] ]
select_statement
142
::= SELECT (slot_identifier)(*)
FROM (frame_identifier)(+)
[ OF_FRAGMENT fragmenti
[ AT_SITE sitei ] ]
[MEDIA media]
[ where_clause ]
[ when_clause ]
[ VALID_FROM Vs TO Ve ]
[ AS_OF Tt ]
update_statement
::= update_instance_statement
/ update_slot_statement
update_instance_statement
::= UPDATE class_identifier
[ OF_FRAGMENT fragmenti
[ AT_SITE sitei ] ]
SET ({slot_name = expression}(+)
)
[WHERE condition]
[WHEN condition]
VALID_FROM Vs TO Ve
143
update_slot_statement
::= UPDATE instance_identifier
[ OF_FRAGMENT fragmenti
[ AT_SITE sitei ] ]
SET slot_name = expression
VALID_FROM Vs TO Ve
6.2.4 Query Expression
when_clause
::= WHEN temporal_condition
temporal_condition
::= temporal_expression temporal_comparison_operator
{temporal_expression/subquery}
/ NOT temporal_condition
/ temporal_condition {AND/OR} condition
/(temporal_condition)
where_clause
::= WHERE condition
condition
144
::= expression comparison_operator
{expression/subquery}
/ expression [NOT] BETWEEN expression AND
expression
/ expression [NOT] in (constant)(+)
/ expression [NOT] IN subquery
/ expression comparison-operator {ANY/ALL}
(subquery)
/ alphanumeric-expression [NOT] LIKE mask
/ EXISTS (subquery)
/ NOT condition
/ condition {AND / OR} condition
/ (condition)
comparison_operator
::= { = / <> / <= / >= / <> }
temporal_operator
::= overlap/ extend/ thru
temporal_comparison_operator
::= precede/meet/equal
145
6.2.5 Scalar Expression
expression
::= arithmetic_expression
/ alphanumeric_expression
/ temporal_expression
arithmetic_expression
::= constant
/ slot_identifier
/ arithmetic_expression arithmetic_operator
arithmetic_expression
/ (arithmetic_expression)
alphanumeric_expression
::= alphanumeric_constant
/ slot_identifier
temporal_expression
::= temporal_constant
/ expression temporal_operator expression
/ (temporal_expression)
constant
146
::= integer_constant
/ decimal_constant
/ floating_point_constant
/ alphanumeric_constant
subquery
::= select_statement
function
::= {count / MAX / MIN / SUM / AVG} [(distinct)
expression]
/ count (*)}
revoke_statement
::= REVOKE {SELECT / PROJECT / INSERT / DELETE /
UPDATE / ALL}
[ON class_identifier]
FROM {{user}(+)
/ PUBLIC } {privilege}
6.2.6 Miscellaneous
frame_identifier
::= class_identifier / instance_identifier
147
class_identifier
::= class_name
/ class_name [link_element]
/ view_name
set_statement
::= SET AUTO COMMIT { ON/OFF }
slot_identifier
::= slot_name
/ class_identifier.slot_name
instance_identifier
::= instance_name
/instance_name IS_A class_identifier
instance_element
::= {link_element, time_element, ins_slot_element}(+)
link_element
::= {link_name - link_value}(+)
148
link_value
::= frame_name/instance_name
time_element
::= {time_element_name - time_element_value}(+)
time_element_name
::= VALID_BEGIN / VALID_END /
TRANSACTION_BEGIN / TRANSACTION_END
time_element_value
::= day / month / year
ins_slot_element
::= slot_name - ins_slot_value
ins_slot_value
::= {ins_facet_name - facet_value}(+)
ins_facet_name
149
::= VALUE / IF_ADDED / IF_NEEDED / IF_CHANGED /
IF_DELETED / VALID_FROM / VALID_TO / AS_OF /
time_element_name / media_element
6.3 Semantics of FSQL
In this section,the semantics of SELECT, INSERT, DELETE and UPDATE
statements [Clifford 83, Yau 91] including the temporal aspects are defined. The
following notations are used:
- σ represents the predicate used in the WHERE clause and is evaluated as σ'.
- φ represents the predicate used in the WHEN clause and is evaluated as φ'.
- λ represents the temporal expression for the time point specified in the
AS_OF clause and is evaluated to Tλ
- α and ß are temporal expressions that represent the 'from time' and 'to time' of
the VALID clause, and are evaluated to Tα and Tβ respectively.
- TNOW is the current system time.
150
- F.Si represent the ith
slot of frame F.
- F, I and Fi are input frames and D is the derived frame.
SELECT
The SELECT statement of FSQL creates a derived frame with instances
satisfying the constraints in the WHEN, WHERE and AS_OF clauses. The skeleton
SELECT statement is
SELECT (FmSn)r
FROM F1,F2,...,Fk
WHERE σ
WHEN φ
VALID FROM α TO ß
AS_OF λ
The semantics are:
D = { D.S1 ,D.S2 ,...,D.Sr ,D.Vs ,D.Ve ,D.Tt ,D.Dt
where
∃ F1 ,F2 ,...,Fk
( σ'
∧ φ'
∧ (∀i)( 1≤i≤r ((Fm.Sn)i.Tt ≤ Tλ ∧ (Tλ ≤ (Fm.Sn)i.Dt ∨
(Fm.Sn).Dt = NULL)))
151
∧ (∀i)( 1≤i≤r ( D.Si = (Fm.Sn)i))
∧ D.Vs = Tα
∧ D.Ve = Tβ
∧ D.Tt = TNOW
∧ D.Dt= NULL)}
INSERT
INSERT statement is of two types:
a. insert_instance_statement
b. insert_slot_statement
a. The insert_instance_statement inserts an instance frame into a class frame.
The skeleton insert_instance_statement is
INSERT INTO F
VALUES (S1,v1),...,(Sr,vr)
VALID FROM α TO ß
The semantics are:
D = { D.S1,D.S2,...,D.Sr,D.Vs,D.Ve,D.Tt,D.Dt
where
∀F
152
( (∀i)( 1≤i≤r ( D.Si = F.Si)
∧(D.Si).Vs = (F.Si).Vs
∧(D.Si).Ve = (F.Si).Ve
∧(D.Si).Tt = (F.Si).Tt
∧(D.Si).Dt = (F.Si).Dt) )
∧ D.Vs = F.Vs
∧ D.Ve = F.Ve
∧ D.Tt = F.Tt
∧ D.Dt= F.Dt ) }
∪
{ D.S1,D.S2,...,D.Sr,D.Vs,D.Ve,D.Tt,D.Dt
where
¬ ∃ F
( (∀i)( 1≤i≤r (F.Si = vi) ∧ (F.Si).Dt = NULL
∧(F.Si).Vs ≤ Tβ ∧ (F.Si).Ve ≥ Tα )
∧(∀i)( 1≤i≤r ( D.Si = vi)
∧ (D.Si).Vs = Tα
∧ (D.Si).Ve = Tβ
∧ (D.Si).Tt = TNOW
∧ (D.Si).Dt = NULL))}
the first block contains the original instances and the second refers to the inserted
instances.
153
b. The insert_slot_statement inserts a slot value into an existing instance frame.
The skeleton insert_slot_statement is
INSERT INTO I
VALUES (Sr+1,vr+1)
VALID FROM α TO ß
The semantics are:
D = { D.S1,D.S2,...,D.Sr,D.Sr+1,D.Vs,D.Ve,D.Tt,D.Dt
where
( ((∀i)( 1≤i≤r ( D.Si = I.Si)
∧(D.Si).Vs = (I.Si).Vs
∧(D.Si).Ve = (I.Si).Ve
∧(D.Si).Tt = (I.Si).Tt
∧(D.Si).Dt = (I.Si).Dt ) )
∧ D.Vs = I.Vs
∧ D.Ve = I.Ve
∧ D.Tt = I.Tt
∧ D.Dt = I.Dt
∧ D.Sr+1 = vr+1
∧(D.Sr+1).Dt = NULL
∧(D.Sr+1).Vs ≤ Tβ
∧(D.Sr+1).Ve ≥ Tα )}
154
DELETE
DELETE statement is of two types:
a. delete_instance_statement
b. delete_slot_statement
a. The delete_instance_statement logically deletes instances from a class by
updating the deletion time to the current time value. The skeleton
delete_instance_statement is:
DELETE
FROM F
WHERE σ
WHEN φ
The semantics are
D = { D.S1,D.S2,...,D.Sr,D.Vs,D.Ve,D.Tt,D.Dt
where
∃ F
( (¬σ' x ¬φ'
155
∧ (∀i)( 1≤i≤r ( D.Si = F.Si)
∧ (D.Si).Vs = (F.Si).Ve
∧ (D.Si).Ve = (F.Si).Ve
∧ (D.Si).Tt = (F.Si).Tt
∧ (D.Si).Dt = (F.Si).Dt )
∧ D.Vs = F.Vs
∧ D.Ve = F.Ve
∧ D.Tt = F.Tt
∧ D.Dt = F.Dt ))}
∪ { D.S1,D.S2,...,D.Sr,D.Vs,D.Ve,D.Tt,D.Dt
where
∃ F
( σ'
∧φ'
∧(F.Si).Ve = NOW
∧(F.Si).Dt = NULL
∧ (∀i)( 1≤i≤r ( D.Si = F.Si)
∧ (D.Si).Vs = (F.Si).Vs
∧ (D.Si).Ve = TNOW
∧ (D.Si).Tt = (F.Si).Tt
∧ (D.Si).Dt = TNOW)) }
156
∪ { D.S1,D.S2,...,D.Sr,D.Vs,D.Ve,D.Tt,D.Dt
where
∃ F
( σ'
∧φ'
∧(F.Si).Dt = NULL
∧ (∀i)( 1≤i≤r ( D.Si = F.Si )
∧ (D.Si).Vs = (F.Si).Vs
∧ (D.Si).Ve = (F.Si).Ve
∧ (D.Si).Tt = (F.Si).Tt
∧ (D.Si).Dt = TNOW )) }
The first block represents the unaffected frames. The second and third modify the
deletion times Dt of the affected tuples. The second block handles the case when the Ve
of the tuple is 'NOW', which has to be changed to the current time.
b. The delete_slot_statement logically deletes values of slots from an instance by
updating the deletion time to the current time value. The skeleton delete_slot_statement
is:
DELETE Sj
FROM I
/
157
DELETE Si
FROM F
WHERE σ
WHEN φ
b1). DELETE Sj
FROM I
The semantics are
D = { D.S1,D.S2,...,D.Sr,D.Vs,D.Ve,D.Tt,D.Dt
where
( (∀i)( (1≤i≤j-1) ∧ (j+1≤i≤r) D.Si = I.Si
∧ (D.Si).Vs = (I.Si).Vs
∧ (D.Si).Ve = (I.Si).Ve
∧ (D.Si).Tt = (I.Si).Tt
∧ (D.Si).Dt = (I.Si).Dt )
∧ D.Vs = I.Vs
∧ D.Ve = I.Ve
∧ D.Tt = I.Tt
∧ D.Dt = I.Dt
∧ D.Sj = I.Sj
∧( D.Sj).Dt = TNOW
∧( D.Sj).Ve = TNOW )}
158
b2). DELETE Si
FROM F
WHERE σ
WHEN φ
The semantics are
D = { D.S1,D.S2,...,D.Sr,D.Vs,D.Ve,D.Tt,D.Dt
where
∃ F
( (¬σ' ∨ ¬φ'
∧ (∀j)( 1≤j≤r ( D.Sj = F.Sj )
∧ (D.Sj).Vs = (F.Sj).Vs
∧ (D.Sj).Ve = (F.Sj).Ve
∧ (D.Sj).Tt = (F.Sj).Tt
∧ (D.Sj).Dt = (F.Sj).Dt )
∧ D.Vs = F.Vs
∧ D.Ve = F.Ve
∧ D.Tt = F.Tt
∧ D.Dt = F.Dt )) }
∪ { D.S1,D.S2 ,...,D.Sr,D.Vs,D.Ve,D.Tt,D.Dt
where
∃ F
159
( σ'
∧φ'
∧(F.Si).Ve = NOW
∧(F.Si).Dt = NULL
∧ (∀j)( (1≤j≤i-1) ∧ (i+1≤j≤r)( D.Sj = F.Sj )
∧ (D.Sj).Vs = (F.Sj).Vs
∧ (D.Sj).Ve = (F.Sj).Ve
∧ (D.Sj).Tt = (F.Sj).Tt
∧ (D.Sj).Dt = (F.Sj).Dt )
∧ D.Si = F.Si
∧ (D.Si).Vs = (F.Si).Vs
∧ (D.Si).Ve = TNOW
∧ (D.Si).Tt = (F.Si).Tt
∧ (D.Si).Dt = TNOW )}
∪ { D.S1,D.S2,...,D.Sr,D.Vs,D.Ve,D.Tt,D.Dt
where
∃ F
( σ'
∧φ'
∧(F.Si).Dt = NULL
∧ (∀j)( (1≤j≤i-1) ∧ (i+1≤j≤r) ( D.Sj = F.Sj )
160
∧ (D.Sj).Vs = (F.Sj).Vs
∧ (D.Sj).Ve = (F.Sj).Ve
∧ (D.Sj).Tt = (F.Sj).Tt
∧ (D.Sj).Dt = (F.Sj).Dt )
∧ D.Si = F.Si
∧ (D.Si).Vs = (F.Si).Vs
∧ (D.Si).Ve = (F.Si).Ve
∧ (D.Si).Tt = (F.Si).Tt
∧ (D.Si).Dt = TNOW )}
UPDATE
UPDATE statement is of two types:
a. update_instance_statement
b. update_slot_statement
a. The update_instance_statement modifies a class frame by first discarding the
selected instances and then inserting back the updated ones. The skeleton
update_instance_statement is
UPDATE F
161
SET (F.Sm = vm)
WHERE σ
WHEN φ
VALID FROM α TO ß
The semantics are
D = { D.S1,D.S2,...,D.Sr,D.Vs,D.Ve,D.Tt,D.Dt
where
∃ F
( (¬σ' ∨ ¬φ'
∧ (∀i)( 1≤i≤r ( D.Si = F.Si )
∧ (D.Si).Vs = (F.Si).Vs
∧ (D.Si).Ve = (F.Si).Ve
∧ (D.Si).Tt = (F.Si).Tt
∧ (D.Si).Dt = (F.Si).Dt ) )
∧ D.Vs = F.Vs
∧ D.Ve = F.Ve
∧ D.Tt = F.Tt
∧ D.Dt = F.Dt ) }
∪ { D.S1,D.S2,...,D.Sr,D.Vs,D.Ve,D.Tt,D.Dt
where
∃ F
( σ'
162
∧φ'
∧(∀i)( 1≤i≤r (F.Si).Vs = Tα
∧(F.Si).Ve = Tβ
∧(F.Si).Dt = NULL
∧ D.Si = F.Si
∧ (D.Si).Vs = (F.Si).Vs
∧ (D.Si).Ve = (F.Si).Ve
∧ (D.Si).Tt = (F.Si).Tt
∧ (D.Si).Dt = TNOW ) ) }
∪ { D.S1,D.S2,...,D.Sr,D.Vs,D.Ve,D.Tt,D.Dt
where
∃ F
( σ'
∧φ'
∧(∀i)( 1≤i≤r (F.Si).Ve = NOW
∧(F.Si).Dt = NULL
∧ D.Si = F.Si
∧ (D.Si).Vs = (F.Si).Vs
∧ (D.Si).Ve = TNOW
∧ (D.Si).Tt = (F.Si).Tt
∧ (D.Si).Dt = TNOW ) ) }
∪ { D.S1,D.S2,...,D.Sr,D.Vs,D.Ve,D.Tt,D.Dt
where
163
¬∃F
( σ'
∧φ'
∧ (∀i)( 1≤i≤r ( F.Si = Vi ) ∧ (F.Si ).Dt = NULL)
∧ (∀i)( 1≤i≤r ( D.Si = F.Si)
∧ (F.Si).Vs ≤ Tβ
∧ (F.Si).Ve ≥ Tα
∧ (D.Si).Vs = (F.Si).Vs
∧ (D.Si).Ve = (F.Si).Ve
∧ (D.Si).Tt = TNOW
∧ (D.Si).Dt = NULL) ) }
The first block contains the unaffected instances. The second and third deletes
the selected instances and the last gives the inserted instance.
b. The update_slot_statement modifies an instance frame by first discarding the
values of the selected slots and then inserting back the updated ones. The skeleton
update_slot_statement is
UPDATE I
SET (I.Sm = vm)
VALID FROM α TO ß
The semantics are:
164
D = { D.S1,D.S2,...,D.Sr,D.Vs,D.Ve,D.Tt,D.Dt
where
( (∀i)( (1≤i≤m-1) ∧ (m+1≤i≤r) D.Si = I.Si
∧ (D.Si).Vs = (I.Si).Vs
∧ (D.Si).Ve = (I.Si).Ve
∧ (D.Si).Tt = (I.Si).Tt
∧ (D.Si).Dt = (I.Si).Dt )
∧ D.Vs = I.Vs
∧ D.Ve = I.Ve
∧ D.Tt = I.Tt
∧ D.Dt = I.Dt
∧ (D.Sm =I.Sm
∧ (D.Sm).Vs = (I.Sm).Vs
∧ (D.Sm).Ve = (I.Sm).Ve
∧ (D.Sm).Tt = (I.Sm).Tt
∧ (D.Sm).Dt = TNOW )
∧ (D.Sm =vm
∧( D.Sm).Dt = NULL
∧( D.Sm).Vs ≤ Tβ
∧( D.Sm).Ve ≥ Tα ))}
165
6.4 Summary
In this chapter, we have designed and developed FSQL, a structured query
language for enhanced frame systems capable of handling temporal, distributed and
multimedia information. A brief overview of the language has been given with the help
of examples. The complete syntax of FSQL has been designed. The semantics of
important statements has also been included in the chapter. The language has been
simulated using LPA PROLOG Professional Compiler and Quintus Prolog 2.3. The
results of the sample queries are shown in Appendix-I.
166
Chapter 7
Conclusion
7.1 Conclusion
In the thesis, the capabilities of the existing frame based systems have been
enhanced to handle temporal, distributed, multimedia facilities. The syntax and
semantics of the language FSQL, i.e., Frame_oriented Structured Query Language
similar to SQL in structure has been designed and developed. Prototype of FSQL has
been implemented using LPA Prolog Professional Compiler and Quintus Prolog 2.3 for
demonstration purpose.
A temporal extension to frame based system[Bedi 93a] has been presented in the
form of proposed temporal frame (Tframe) system which is based on slot versioning in
contrast with frame versioning keeping in view the high degree of redundancy owing to
duplication of the entire frame, especially when the changed portion is relatively small
compared with the unchanged portion in case of frame versioning. The existing frame
based systems have been extended using Allen's interval calculus for temporal reasoning
along with the concept of a temporal element which is the union of intervals instead of
an interval. This system integrates with semantic network of events if one of the
167
endpoints of interval is unknown. Valid time and transaction time for the representation
of temporal information are used in the presented Tframe system.
The concept of triggers in frames [Bedi 93b] has been explored in the proposed
work giving their definition level, scope, context and usage. Triggers have been
classified as Event_based and User_defined. Local and global nature of triggers has also
been explained. Inheritance and overloading of triggers given in the thesis are important
features.
The design of a transparent, homogenous, frame based system in a distributed
environment has been presented in the next chapter. The concepts of Network
fragmentation, Instance fragmentation and Slot fragmentation along with their
first_order representation have been discussed. Various types of distribution
transparencies, i.e., Fragmentation transparency, Location transparency and Local
mapping transparency have also been explained. The presented model also supports
triggers and temporal aspects in frame systems. The implementation on the Internet of
this distributed frame system has been included in the thesis.
Another contribution in the thesis is the addition of multimedia dimension to
frame systems. A Multimedia Knowledge Base Management System using frames has
been designed extending the current frame based system approach. In this system
structural and behavioral knowledge can be represented. The facets of slots can flexibly
represent constraints and triggers. Abstraction, generalization and classification of data
168
are provided by the proposed multimedia frame based system. The basic structure and
operations of multimedia data are also supported. The system has the potential of
offering active video presentations and hyperlinks so that the user can navigate from one
medium to another.
Finally, a query language FSQL, i.e., Frame_oriented Structured Query
Language has been designed and developed for the enhanced frame systems having
temporal, distributed and multimedia capabilities. The syntax of FSQL has been
designed along with the semantics. Some of the statements of FSQL have been
implemented using LPA Prolog Professional Compiler and Quintus Prolog 2.3.
It may be mentioned here that some of the investigations carried out in this
thesis have been published /communicated for publication in the form of the following
papers.
1. A Frame System Shell (FS_SHELL), Information Technology in Everyday
Life, Proc. XXVl Annual Convention of Computer Society of India, pp.283-
297, 1991.
2. Time Dimension to Frame Systems, Journal of Information Science and
Technology, Vol.2, No.3, pp.212-228, April 1993.
3. Triggers in Frames, Artificial Intelligence Technology Applications and
169
Management, Proc. 4th
International Computing Congress, pp.178-185,
Dec.1993.
4. FSQL- Frame_ oriented Structured Query language, Journal of Information
Science and Technology, Vol.4, No.2, pp.142-168, Jan.1995.
5. Distributed Frame Systems, Communicated For Publications.
6. Multimedia Dimension to Frame Systems, Communicated For Publications.
7.2 Applications of the Proposed System
7.2.1 Intelligent Systems
Temporal and trigger facilities in the proposed system can lead to intelligent and
dynamic systems. Two such systems where the proposed system can be applied are:
- Operating Systems
- Tutoring Systems
Operating Systems
The enhanced frame based systems can be used to develop intelligent Windows
based Operating Systems. In the existing Windows Operating Systems, a window is
nothing but a static object. Dynamic windows can be created using temporal feature of
170
frames which means windows can grow or shrink w.r.t. its contents. Windows can be
made intelligent using trigger concepts of frames. Such operating system will be useful
for distributed environment having multimedia data.
Tutoring Systems
The proposed frame system can also be used to develop intelligent tutoring
systems where students and teachers can be modelled using such powerful frames and
can provide reasoning of various concepts in it by using FSQL.
7.2.2 Extension of DataBase Processing
Since database processing is a special case of frame based processing, all
database applications can be developed using the proposed frame based system, thereby
providing knowledge base processing and intelligence to the applications.
7.2.3 Secure access to a Decision Table
Access control mechanisms can be implemented at the field level in a more
secure fashion than in decision tables using RDBMS.
171
Bibliography
[1] [Akscyn 84] Akscyn R., McCracken D., ZOG and the USS CARL VINSON:
Lessons in System Development, in Proceedings of the First IFIP Conference
on Human-Computer Interaction (Interact'84), Washington D.C., 1984.
[2] [Akscyn 88] Akscyn R., Yoder E., McCracken D., The Data Model is the
Heart of Interface Design, CHI'88.
[3] [Allen 83] Allen J.F., Maintaining knowledge about temporal intervals,
Communications of the ACM, Vol.26, No.11, pp.832-843, Nov.1983.
[4] [Allen 84] Allen J.F., Towards a general theory of action and time, Artificial
Intelligence, Vol.24, No.2, pp.123-154, July 1984.
[5] [Anger 88] Anger Frank D., Morris Robert A., Rodriguez Rita V., Mata- Toledo
Ramon A., A Temporal Relational Calculus, Proc.2nd
Australian Joint AI
Conf., Lecture notes in AI, No.406, Springer Verlag, Nov. 1988.
[6] [Anger 89] Anger Frank D., Morris A.Robert, Rodriguez Rita V., Mata- Toledo
Ramon A., Integrating Semantic Nets and the Relational data model for
Temporal Knowledge Bases, Advances in Artificial Intelligence Research,
Vol.1, pp.49-64, 1989.
[7] [Bedi 91] Bedi Punam, Sharma K.D., Kaushik Saroj, A Frame System Shell
(FS-SHELL), Information Technology in Everyday Life, Proc. XXVl Annual
Convention of Computer Society of India, pp.283-297, 1991.
[8] [Bedi 93a] Bedi Punam, Sharma K.D., Kaushik Saroj, Time Dimension to
Frame Systems, Journal of Information Science and Technology, Vol.2, No.3,
172
pp.212-228, April 1993.
[9] [Bedi 93b] Bedi Punam, Sharma K.D., Kaushik Saroj, Triggers in Frames,
Artificial Intelligence Technology Applications and Management, Proc. 4th
International Computing Congress, pp.178-185, Dec.1993.
[10] [Bedi 95] Bedi Punam, Sharma K.D., Kaushik Saroj, Distributed Frame
Systems, Communicated For Publications.
[11] [Bedi 96] Bedi Punam, Sharma K.D., Kaushik Saroj, Multimedia Dimension to
Frame Systems, Communicated For Publications.
[12] [Bell 92] Bell D. and Grimson J., Distributed Database Systems,
Addison_Wesley, 1992.
[13] [Berra 93] Berra P.B., Golshani F., Mehrotra R., Sheng O.R.Liu, Guest Editors'
Introduction Multimedia Information Systems, IEEE Transactions on
Knowledge and Data Engineering, Vol.5, No.4, August 1993.
[14] [Blair 90] Blair G., Gallagher J., Hutchinson D. and Shepherd D.(University of
Lancaster), Object-Oriented Languages, Systems and Applications, 1990.
[15] [Bobrow 77] Bobrow D.G., Winograd T., An Overview of KRL, a Knowledge
Representation Language, Cognitive Science, Vol.1, No.1, 1977.
[16] [Bobrowki 94] Bobrowki S. M. Mastering Oracle 7 and Client/Server
Computing, BPB Publications, 1994.
[17] [Bodorik 92] Bodorik P., Riordon J.S., Pyra J.S., Deciding to Correct
Distributed Query Processing, IEEE Trans. on Knowledge and Data Engg.,
Vol.4, No.3, June 1992.
[18] [Boudnik 95] Boudnik T.M., Effelsberg W., MHEG Explained, IEEE
173
Multimedia, Spring 1995.
[19] [Botto 93] Botto F., Multimedia, CD-ROM and Compact Disc-a guide for
users and developers, Galgotia Publications, 1993.
[20] [Brachman 85] Brachman R.J., Schmolze J.G., An Overview of the KL-ONE
Knowledge Representation System, Cognitive Science, Vol.9, pp.171-216,
1985.
[21] [Brewka 87] Brewka G., The Logic of Inheritance in Frame Systems,
Proceedings IJCAI-87, pp.483-488, 1987.
[22] [Cabodi 91] Cabodi G., Camurati P., Prinetto P. & Reorda M. Sonza, TPDL*:
Extended Temporal Profile Description Language, Software Practice and
Experience, Vol.22, No.4, pp.355-374, April 1991.
[23] [Cardenas 93] Cardenas A.F., Ieong I.T., Taira R.K., Barker R., Breant C., The
Knowledge-Based Object-Oriented PICQUERY+ Language, IEEE
Transactions on Knowledge and Data Engineering, Vol.5, No.4, August 1993.
[24] [Ceri 84] Ceri Stefeno, Pelagatti Giusippe, Distributed Databases Principles
and systems, McGraw_Hill, 1984.
[25] [Chen 86] Chen Hsin-Hsi, Lin I-Peng, Wu Chien-Ping, A Logic
Programming approach to Frame-based Language Design, Proc. Fall Joint
Computer Conference, INFOMART, Nov 2 - 6, 1986.
[26] [Chen 88] Chen Fu-an, Zhu Yi-fen, PORKS : A Prolog-Based Object-
Oriented Knowledge Representation System, Proc. of the IEEE Int. Conf. on
Systems, Man and Cybernetics, Vol.1, 1988.
[27] [Clifford 83] Clifford J.,Warren D., Formal Semantics of Time in Database
174
Systems, ACM Transactions on Database Systems, Vol.8, No.2, pp.214-264,
1983.
[28] [Clocksin] Clocksin W.F, Mellish C.S., Programming in Prolog, Springer
International Student Edition.
[29] [Dario] Dario Giuse; Efficient Frame Systems; ?
[30] [Date 87] Date C.J., A Guide to THE SQL STANDARD, Addison- Wesley
Publishing Company, 1987.
[31] [Dayal 95] Dayal U., Hanson E., Widom J., Active Database Systems, in [Kim
95].
[32] [Davis 95] Davis R.S., Atlas: A Nested Relational Database System for Text
Applications, IEEE Transactions on Knowledge and Data Engineering, Vol.7,
No.3, June 1995.
[33] [Dean 87] Dean T.L. and McDermott D.V.,Temporal Data Base Management,
Artificial Intelligence, Vol.32, No.1, pp.1-55, 1987.
[34] [Delisle 86] Delisle N. and Schwartz M., Neptune: A Hypertext system for
CAD applications, in Proceedings of the ACM SIGMOD Conference, pp.132-
142, 1986.
[35] [Dubois 86] Dubois E., Hagelstein J., Lahou E.,Ponsaert F., Rifaut A. and
Williams F., The ERAE model: A case study, in T.W.Olle, H.g.Sol,
A.A.Verrijn Sruart (eds.), Information System Design Methodologies:
Improving the Practice , North-Holland, pp.87-106, 1986.
[36] [Egenhofer 94] Spacial SQL: A Query and Presentation Language, IEEE
Transaction on Knowledge and Data Engineering, Vol.6, No.1, Feb.1994.
175
[37] [Elnasri 90] Elnasri Ramez, Wuu Gene T.J., A Temporal Model & Query
Language for ER databases, Proc. 6th
Int. Conf. on Data Engg., IEEE
Computer Society Press, 1990.
[38] [Fikes 85] Fikes Richard, Kehlar Tom, The Role of Frame-based
Representation in Reasoning, Communications of the ACM, Vol.28, No.9,
pp.904-920, Sept.1985.
[39] [Gadia 86] Gadia S.K., Towards a multihomogeneous model for a temporal
database, Proc. Int. Conf. on Data Engineering, IEEE Computer Society,
pp.390-397, 1986.
[40] [Gevarter 87] Gevarter W.B., The Nature and Evaluation of Commercial
Expert System building tools, IEEE Computer, Vol.20, No.5, pp.24-41, 1987.
[41] [Goldstein 79] Goldstein I.P., Roberts R.B., Using Frames in Scheduling, in
Winston P.H., Brown R. (eds.), Artificial Intelligence: An MIT Perspective, Vol.
1, MIT Press, pp.253-284, 1979.
[42] [Goodman 87] Goodman D., The Complete Hypercard Handbook, Bantam
Books, New York, 1987.
[43] [Graham 91] Graham H. Seibert, Working with Oracle Developing Tools,
Windcrest Books, An imprint of TAB Books, 1991.
[44] [Gray 88] Gray P.M.D., Lucas R.J., Prolog and Databases: Implementations
and New Directions, Ellis Harwood series in Artificial Intelligence, 1988.
[45] [Fox 86] Fox M.S., Wright J.M., Adam D., Experiences with SRL: An
Analysis of a Frame-based Knowledge Representation, in [Kerschberg 86].
[46] [Halasz 88] Halasz F. G., Reflections on Notecards: Seven Issues for the Next
176
generation of Hypermedia Systems, Communications of ACM, Vol.31, No.7,
pp.836-852, July 1988.
[47] [Hayes 81] Hayes P., The Logic of Frames, in B.L. Webber and N.J. Nilson
(eds.), Readings in Artificial Intelligence, pp.451-458, 1981.
[48] [Hutchinson 89] Hutchinson A., Inheritance and kinds of slots, The Computer
Journal, Vol.32, No.1, pp.63-67, 1989.
[49] [Ilsoo 86] Ilsoo, Towards An Implementation of Database Management
Systems with Temporal Support, Proc. Int. Conf. on Data Engg., IEEE
Computer Society, 1986.
[50] [Ishikawa 90] Ishikawa H., An Object-Oriented Knowledge Base Approach
to a Next Generation of Hypermedia System, Digest of Papers, Comcon 90,
San Francisco, 35th
IEEE Computer Society International Conference, Feb.26-
March 2, 1990.
[51] [Ishikawa 93] Ishikawa H., Suzuki F., Kozakura F., Makinouchi A.,
Miyagishima M., Izumida Y., Aoshima M., Yamane Y., The Model, Language,
and Implementation of an Object-Oriented Multimedia Knowledge Base
Management System, ACM Transactions on Database Systems, Vol.18, No.1,
pp.1-50, March 1993.
[52] [Ito 85] Ito H., Urno H., ZERO: Frame + Prolog, Logic Programming, Proc. of
the 4th
Conference, Tokyo, Japan, July 1985.
[53] [Joseph 88] Joseph T., Cardenas A,F., PICQUERY: A High Level Query
Language for Pictorial Database Management, IEEE Trans. on Software
Engineering, Vol.14, No.1, 1988.
177
[54] [Kahn 75] Kahn K. & Gorry G.A., Mechanizing Temporal Knowledge,
Artificial Intelligence, Vol.9, pp 87-108, Sept.1975.
[55] [Kerschberg 86] Kerschberg L.(ed.) Expert Database Systems, The
Benjamin/Cummings Publishing Company, Inc., 1986.
[56] [Khoshafian 90] Khoshafian Setrag, Abnous Razmik, OBJECT
ORIENTATION Concepts, Languages, Databases, User Interfaces, John
Wiley and Sons,Inc., 1990.
[57] [Kim 89] Kim Won, Lochovsky Frederick H.(Eds.), Object-Oriented
Concepts, Databases, and Applications, ACM press, Addison-Wesley
Publishing Company, 1989.
[58] [Kim 95] Kim W.(Ed.) Modern Database Systems - The Object Model,
Interoperability, and Beyond, ACM Press, Addison-Wesley Publishing
Company, 1995.
[59] [Kowalski 86] Kowalski R.A. & Sergot M.J., A Logic_based Calculus of
Events, New Generation Computing, Vol.4, No.1, pp.67-95, 1986.
[60] [Kramer 91], Kramer B.M., Metalevel and Temporal Reasoning in
KNOWBEL: Features and Implementations, Proceedings of the IEEE Conf.
on Tools for AI, pp.542-543, 1991.
[61] [Kumar Vijay] Kumar Vijay, Distributed Database Management Systems, A
Tutorial, CSI Indore Chapter.
[62] [Liebowitz 89] Liebowitz Jay, Salvo Daniel A.De (Eds.), STRUCTURING
EXPERT SYSTEMS , Domain, Design and Development, Prentice-Hall Inc.,
1989.
178
[63] [Maiocchi 86] Maiocchi R. and Pernicci B., Time Reasoning in the Office
Environment, in Bracchi G. and Tsichritzis D.(eds.), Methods and Tools for
Office Systems, Amsterdam, The Netherlands: North-Holland, 1986.
[64] [Maiocchi 91] Maiocchi R. and Pernici B., Temporal Data Management
Systems: A Comparative View, IEEE Trans. on Knowledge & Data Engg.,
Vol.3, No.4, Dec.1991.
[65] [Malpas 87] Malpas John, Prolog : A Relational Language and its
Applications, Prentice-Hall Inc., 1987.
[66] [Meghini 92] Meghini Carlo and Thanos Costantino, Multimedia Document
Handling, in [Seshagiri 92].
[67] [Merritt 89] Merritt Dennis, Building Expert Systems in Prolog,
Springer-Verlag, 1989.
[68] [Minsky 75] Minsky M., A Framework for Representing Knowledge in
Winston P.H.(ed.), The Psychology of Computer Vision, McGraw-Hill Book
Company, 1975.
[69] [Mockler 87] Mockler R.J., Knowledge-Based Systems: What They Are and
How They Work, in Mockler R.J., Knowledge-Based Systems for Strategic
Planning, Prentice-Hall, 1987.
[70] [Molina 95] Molina H.G., Hsu M., Distributed Databases, in [Kim 95].
[71] [Mylopoulos 84] Mylopoulos J., Levesque H.J., An Overview of Knowledge
Representation in Topics in Brodie M.L., Mylopoulos J., Schmidt J.W.(eds.),
Information Systems, On Conceptual Modelling, Perspective from AI,
Databases and Programming Languages, Springer-verlag, 1984.
179
[72] [Mylopoulos 90] Mylopoulos J., Borgida A., Jarke M.and Koubarakis M.,
Telos: Representing Knowledge about Information Systems, ACM Trans.
on Information Systems, Vol.8, No.4, pp.325-362, Oct.1990.
[73] [Nelson 88] Nelson T., Managing immense storage, Byte, McGraw Hill,
pp.225-238, January 1988.
[74] [Niwa 84] Niwa K., Sasaki K., Ihara H., An Experimental Comparison of
Knowledge Representation Schemes, AI MAg., pp.29-36, Summer 1984.
[75] [Oomoto 93] Oomoto E., Tanaka K., OVID: Design and Implementation of a
Video-Object Database System, IEEE Transactions on Knowledge and Data
Engineering, Vol.5, No.4, August 1993.
[76] [Oracle] SQL Forms Designer's Reference Manual of Oracle.
[77] [Ozsu 91] Ozsu Tamer M., Valdduriez Patrick, Principles of Distributed
Database Systems, Prentice_Hall, 1991.
[78] [Parsaye 88] Parsaye Kamran, Chignell Mark, Expert Systems for Experts,
John Wiley and Sons, Inc., 1988.
[79] [Parsaye 89] Parsaye K., Chignell M., Khoshafian S., Wong H.,
INTELLIGENT DATABASES Object-Oriented, Deductive Hypermedia
Technologies, John Wiley and Sons,Inc. ,1989.
[80] [Perry 88] Perry James T. and Lateer Joseph G., Understanding ORACLE,
BPB Publications, 1988.
[81] [Pimentel 89] Pimentel S.G. and Cuadrado J.L., A Horn Clause Theory of
Inheritance and Temporal Reasoning, EPIA89, Lecture notes in AI, No.390,
Springer_Verlag, 1989.
180
[82] [Rosenberg 79] Rosenberg S., Roberts B., Coreference in a Frame Database,
Proceedings of the Sixth International Joint Conference on Artificial
Intelligence, Tokyo, Vol.2, pp.729-734, August 1979.
[83] [Rowe 89] Rowe Neil C, Artificial Intelligence through Prolog, Prentice_Hall,
1989.
[84] [Russinoff 89] Russinoff D.M., Proteus: A Frame-Based Nonmonotonic
Inference System, in [Kim 89].
[85] [Saiya 92] Saiya C., Shah A., Jain R., Venkatraman, Media DB: An Object-
Oriented Multimedia DBMS and Application Development Kit, in
[Seshagiri 92].
[86] [Saxena 91] Saxena M.K., DISPROS-A Distributed Blackboard
Architecture, Ph.D. Thesis, Dept. of Computer Science and Engineering,
I.I.T.Delhi, June 1991.
[87] [Seshagiri 92] Seshagiri N., Akapov A., MULTIMEDIA COMPUTER AND
COMMUNICATIONS Technology and Applications, Papers presented at
the International Conference on Multimedia Computer and
Communications: Technology, Applications and Enterprise
(INFOCOM'92), Tata McGraw-Hill Publishing Company Limited, 1992.
[88] [Sharma 95] Sharma K.D., Bedi Punam, Kaushik Saroj, FSQL-Frame_
oriented Structured Query Language, Journal of Information Science and
Technology, Vol.4, No.2, pp.142-168, Jan.1995.
[89] [Snodgrass 86] Snodgrass Richard, Ahn I., Temporal Databases, Computer,
Vol.19, No.9, pp.35-42, Sept.1986.
181
[90] [Snodgrass 87] Snodgrass Richard, The Temporal Query Language TQUEL,
ACM Transactions on Database Systems, Vol.1, No.3, pp.247-298, 1987.
[91] [Swanberg 92] Swanberg D., Weymouth T., Jain R., Content-based Modelling
in Multimedia Information Systems, in [Seshagiri 92].
[92] [Trigg 86] Trigg R. & Weiser M., TEXTNET: a network-based approach to
text handling, ACM Transactions on Office Information Systems, pp.1-23,
January 1986.
[93] [Trigg 88] Trigg. R.,Guided tours and tabletops: tools for communicating in
a hypertext environment, ACM Transactions on Office Information Systems,
pp.398-414, October 1988.
[94] [Tsichritzis 82] Tsichritzis Dionysios C., Lochovsky Frederick H., DATA
MODELS, Prentice-Hall Inc., 1982.
[95] [Turban 90] Turban Efrain, Decision Support and Expert Systems,
Management Support Systems, Second Edition, McMillan Publishing
Company, 1990.
[96] [Yau 91] Yau Chuk and Chat Grau S.W., TempSQL- A Language Interface to
a Temporal Relational Model, Journal of Information Science and
Technology, Vol.1, No.1, Oct.1991.
[97] [Walters 88] Walters John R., Nielsen Norman R., CRAFTING
KNOWLEDGE-BASED SYSTEMS Expert Systems Made realistic, John
Wiley & Sons, 1988.
[98] [Waterman 86] Waterman Donald A., A Guide to Expert Systems, Addison-
Wesley Publishing Company, 1986.
182
[99] [Weiderhold 86] Weiderhold G., Knowledge verses Data, in Brodie M.L. and
Mylopoulos J.(eds.), On Knowledge Base Management Systems, Springer
Verlag, Berlin, West Germany, pp.77-82, 1986.
[100] [Weiskamp 88] Weiskamp Keith, Hengl Terry, Artificial Intelligence
Programming with Turbo Prolog, John Wiley and Sons, 1988.
[101] [Widman 89] Widman Lawrence E., Loparo Kenneth A., Nielsen Norman
R.(eds.), Artificial Intelligence Simulation and Modelling, John Wiley and Sons,
1989.
[102] [Woelk 87] Woelk D., Kim W., Multimedia Information Management in an
Object-Oriented Database System in Proceedings Very Large Data Bases,
Brighton, England, Sept.1987.
[103] [Wong 77] Wong Harry K.T., Mylopoulos J., Two views of Data Semantics:
Data Models in Artificial Intelligence and Database Management, INFOR,
Vol.15, No.3, pp.344-383, 1977.
[104] [Woods 83] Woods W.A., What's Important About Knowledge
Representation?, IEEE Computer, pp.22-27, Oct.1983.
[105] [Yankelovich 88] Yankelovich N. et.al. Intermedia: The Concept and
Construction of a Seamless Information Environment, IEEE Computer,
Vol.21, No.1, pp.81-96, Jan.1988.
[106] [Zaniolo 86] Zaniolo C., Ait-Kaci H., Beech D., Cammarata S., Kerschberg L.,
Maier D., Object-Oriented Database Systems and Knowledge Systems, in
[Kerschberg 86], pp.49-65.
183
Glossary
Abstract class : A class that can not have direct instances but whose descendants can
have instances is known as an abstract class.
Active database system : A database system that monitors situations of interest, and
when they occur, triggers an appropriate response in a timely manner.
Aggregation : It is a special form of association, between a whole and its parts, in
which the whole is composed into parts. Between the component objects and their
aggregate object there exists a 'consists-of' relationship.
Ancestor class : A class that is a direct or indirect superclass of a given class is known
as an ancestor class of the given class.
Association : It is a kind of abstraction in which a relationship between elements is
considered at a higher level object known as set object. Between the elements and its set
object there exists a member-of relationship.
Classification : It is a concept in which objects with common properties (attributes) are
collected to form object types. Between an object and an object type there exists an
'instance-of' relationship.
Context of a Trigger : Context of a trigger determines which objects are affected by its
actions. Context of a slot level trigger is the slot, of the instance level trigger is all slots
of that instance, of a class level trigger is all instances of that class and of a root level
trigger is the network of frames. Context of a key trigger is slot, instance, class or root
frame in which a function key is pressed. The context of a user_named trigger is same as
the context of trigger calling it.
Distributed Knowledge Based System : A knowledge based system (KBS) is said to
184
be distributed if the knowledge is distributed over different computers connected via a
computer network. Each of these computers has autonomous processing capabilities for
performing local applications. These computers at various sites also participate in at
least one global application, which requires accessing knowledge at other sites using a
communication system.
Distribution Transparency : Transparency is the separation of lower level components
from the higher level components. The implementation details of lower level
components are hidden from user and from the higher level components.
Dynamic Slots : Slots which contain time/lifespan facet are called dynamic slots.
Encapsulation : It is defined as the grouping together of various properties associated
with an identifiable entity in the system in a lexical and logical unit, i.e., the object.
Furthermore, access to the object is restricted to a well-defined interface [Blair 90].
Facet : Each slot contains one or more facets (sometimes called subslots) which
describe some knowledge or procedures about the attributes in the slot.
Frame : A frame is a data structure that includes all the knowledge about a particular
object. This knowledge is organized in a special hierarchical structure that permits a
diagnosis of knowledge independence.
Frame Versioning : Associating time at frame level is known as frame versioning.
Function Overloading : Function overloading allows the same function name to be
applied with different types and quantities of arguments [Khoshafian 90]. The same
function name can be used to perform operations on different data types. Several
functions can share a name but completely different implementations.
185
Generalization : It is the relationship between a class and one or more refined or
specialized versions of it. There is an "ako" relationship between the specialized and
generalized object types.
Heterogenous KBS : A distributed knowledge based system with at least two
knowledge representation techniques are used at various sites is known as a
heterogenous knowledge based system.
Homogenous KBS : It refers to a distributed system with the same knowledge
representation technique used at each site.
Hypermedia : It represent extensions of the hypertext concepts where text is combined
with images, i.e., hypermedia is interlinking media components.
Hypertext : It is the term coined in the sixties by Ted Nelson to describe the concept of
linking textual information and presenting it in a non-linear fashion
Inheritance : The mechanism for passing knowledge from frame to frame down
through the taxonomy from general to specific is known as inheritance. Inheritance is a
good way to find information that is not stored in the place where we first look. It leads
to what is known as cognitive economy [Parsaye 88], where information is only stored
in one place but can still be retrieved from different parts of the network or hierarchy.
Instance Fragmentation : In this case, all instances of a particular class frame of the
instance NOF after network fragmentation are not at the same place, but are contained at
the site of the complete network fragment (or instance NOF).
Instantiation : The process of creating instances from classes is known as instantiation.
186
Join class : In multiple inheritance, a class with more than one superclass is known as a
join class.
Multimedia : It is a broad, sometimes vague, and often misunderstood term which can
be applied to a system or process which embodies and combines various kinds of
conventional media. Modern multimedia can be assumed as comprising motion video.
Multiple inheritance : It is a type of inheritance that permits a class to have more than
one superclass and to inherit features from all ancestors.
Network Fragmentation : In case of Network fragmentation, NOF is fragmented at the
root level, i.e., different instances of the root give rise to different fragments. Hence
corresponding to each instance of the root, one instance NOF is created.In general, if R
corresponds to the root of NOF and R1, R2, ...,Rn are instances of R, then after
fragmentation R1, R2, ...,Rn will be located at different sites.
Polymorphism : It implies that objects can belong to more than one classification.
Classification can therefore overlap and intersect. Thus it is possible for two different
classifications to share the common behavior.
Scope of a trigger : It is defined as the domain in which a trigger operates and is
determined by the level at which it is defined.
Slot Fragmentation : In case of slot fragmentation, all slots of instances of a class
frame are not stored at one place, i.e., few slots of the instance frames are located at one
place and other slots at other place within the site of instance NOF.
Slots : This is a set of attributes that describe the object represented by the frame. For
example, for a hospital frame, phone no. or address will be in the slots.
187
Slot Versioning : Associating time at slot level is known as slot versioning.
Static Slots : Slots which do not contain time/lifespan facet are called static slots
because they do not change with time. The lifespan of static slot is same as lifespan of
corresponding frame.
Subtyping : A type T1 is a subtype of type T2 if every instance of T1 is an instance of
T2 [Khoshafian 90]. For example, child hospital is a subtype of hospital because every
instance of child instance is an instance of hospital. So subtypes form a layer between
class & it's instances.
Temporal Frame Model : It is an extension of the frame model which includes the
temporal information. Time/Lifespan can be added with a frame or a slot. Lifespan for
the root node of the network of frames denotes the period for which the problem is to be
solved. For rest of the frames of network, time may or may not be present.
Trigger : The procedural attachments are viewed as triggers which implies the
activation of some other mechanism(s). A trigger recognizes the occurrence of an event
and conditionally performs certain action(s).
188
Abbreviations
AI Artificial Intelligence
CC Communication Controller
CCITT International Telegraphy and Telephony Consultative Committee
CLM Communication Level Manager
DKBS Distributed Knowledge Based System
DFS Distributed Frame System
FKDL Frame Knowledge Definition Language
FKML Frame Knowledge Manipulation Language
FSQL Frame_oriented Structured Query Language
FS-Shell Frame System Shell
ISO International Standards Organization
JPEG Joint Photographic Experts Group
KB Knowledge Base
KBS Knowledge Based System
KR Knowledge Representation
KS Knowledge Source
LC Local Controller
LM Level Manager
MHEG Multimedia Hypermedia Expert group
189
MPEG Moving Pictures Expert Group
NOF Network Of Frames
OAV Object-Attribute-Value
OO Object-Oriented
PCLM Primary Communication Level Manager
RDBMS Relational Data Base Management Systems
RM Recovery Manager
Tframe Temporal frame