Engineering Design Knowledge Representation Based On Logic and Objects
Engineering Design Knowledge Representation Based On Logic and Objects
FindBestStuff.com
Google Search
Web
FindBestStuff
com
Coffee
Cooking Tips
Recipes & Food and Drink
Wine & Spirits
Elder Care
Babies & Toddler
Pregnancy
Acne
Aerobics & Cardio
Alternative Medicine
Beauty Tips
Depression
Diabetes
Exercise & Fitness
Hair Loss
Medicine
Meditation
Muscle Building & Bodybuilding
Nutrition
Nutritional Supplements
Weight Loss
Yoga
Martial Arts
Finding Happiness
Inspirational
Breast Cancer
Mesothelioma & Cancer
Fitness Equipment
Nutritional Supplements
Weight Loss
Credit
Currency Trading
Debt Consolidation
Debt Relief
Loan
Insurance
Investing
Mortgage Refinance
Personal Finance
Real Estate
Taxes
Stocks & Mutual Fund
Structured Settlements
Leases & Leasing
Wealth Building
Home Security
Affiliate Revenue
Blogging, RSS & Feeds
Domain Name
E-Book
E-commerce
Email Marketing
Ezine Marketing
Ezine Publishing
Forums & Boards
Internet Marketing
Online Auction
Search Engine Optimization
Spam Blocking
Streaming Audio & Online
Music
Traffic Building
Video Streaming
Web Design
Web Development
Web Hosting
Web Site Promotion
Broadband Internet
VOIP
Computer Hardware
Data Recovery & Backup
Internet Security
Software
Copyright 2007
FindBestStuff
Advertising
Branding
Business Management
Business Ethics
Careers, Jobs & Employment
Customer Service
Marketing
Networking
Network Marketing
Pay-Per-Click Advertising
Presentation
Public Relations
Sales
Sales Management
Sales Telemarketing
Sales Training
Small Business
Strategic Planning
Entrepreneur
Negotiation Tips
Team Building
Top Quick Tips
Book Marketing
Leadership
Positive Attitude Tips
Goal Setting
Innovation
Success
Time Management
Public Speaking
Get Organized - Organization
Book Reviews
College & University
Psychology
Science Articles
Religion
Personal Technology
Humanities
Language
Philosophy
Poetry
Book Reviews
Medicine
Coaching
Creativity
Dealing with Grief & Loss
Motivation
Spirituality
Stress Management
Article Writing
Writing
Political
Copywriting
Parenting
Divorce
PII: sow-7949(%)00247-7
COMPENDIUM
ENGINEERING DESIGN KNOWLEDGE REPRESENTATION
BASED ON LOGIC AND OBJECTS
J. Bento,t$ B. Feij&@ and D. L. Smitht
t Department of Civil Engineering, Instituto Superior TQnico, Technical University of Lisbon, Av.
Rovisco Pais, 1096 Lisboa Codex, Portugal
Laboratory, Imperial College of Science, Technology and Medicine, University of
London, Imperial College Road, London SW3 2BU, U.K.
5 ICAD-Intelligent
CAD Laboratory, Department of Computer Science, Pontificia Universidade
Catblica do Rio de Janeiro, Rua Marques de S%o Vicente, 225, CEP 22453, Rio de Janeiro, RJ, Brazil
$ Expert
Systems
Abstract-This paper presents a hybrid framework to integrate first-order logic into the object-oriented
paradigm for representing engineering design knowledge. The object-oriented nature of engineering design
activities are analysed and details of the programming environment are provided. 0 1997 Elsevier Science
Ltd.
1.
INTRODUCIION
The hierarchical o:rganization of structural engineering objects is inherent to the structural engineering
design activity. The following object-oriented concepts can be found in this kind of activity: (a) the
aggregation of structural engineering objects from
other structural engineering objects, i.e. some objects
have parts which are themselves other objects-a
framed-building has a roof, a system of foundations,
walls, etc.; (b) the zsharing of properties amongst a
number of similar objects defining classes of
objects-all
framed-buildings
have a number of
common properties; and (c) the inheritance of
properties from more abstract objects to more
concrete ones (e.g. a framed building is a building,
that is it inherits all typical building properties).
In the context of proposing a framework for
building ICAD (intelligent CAD) systems in structural steel design, the present paper proposes a
knowledge representation scheme and a programming environment capable of addressing the objectoriented aspects above mentioned. The programming
environment incorporates first-order logic into the
object-oriented paradigm.
The main motivation of the present work is related
to the fact that a previous and strict commitment to
logic as a programming paradigm, and especially as
a knowledge repressentation formalism in a design
environment [ 11, has revealed some deficiencies,
namely when the explicit representation of design
objects is under consideration. Furthermore, it being
thoroughly accepted1 that first-order logic provides
the most robust and efficient model of deductive
thought, it is then indisputable that logical deduction
1015
1016
Compendium
(Bl next-to
Cl).
(5)
Compendium
3. OBJECT-ORIENTED
REPRESENTATIONS
1017
/L
%
objects name
parent objects name
(a)
Fig. 2. (a) Class-as-prototype;
(b)
(b) derived
object.
1018
IWliW
parents name
J,
Value
attributes
methods
L
Fig. 3. Property inheritance between two objects.
child
is derived
from
its ancestor
classes. The
(a)
(b)
Fig. 4. (a) Directed acyclic graph of structural components; (b) equivalent tree representation
Compendium
1019
of
section_Sl
(x)
) ?
(6)
1020
Compendium
OF AN XLOG +
OBJECT
parentj,_)
(value), (if-needed),
(if-changed)]
I, i-1
STRUCTURE
whenever
(7)
(8)
1021
1022
Compendium
IN XLOG +
Compendium
1023
9
1
(a)
:zt
:...:
:
:
:.,..:
..
!!
:.,..i
q
7
: .,~
i
, - . ..
I._
2.
(4
object
rootobject
Compendium
1024
AS MESSAGE PASSING
(1) ask(value(salary
(2) check salary
Fig. 8. XLOG
of Lecturer(?sal)))
(?obj ?sal) if
valuetsalary of ?obj (?old_sal)) and
greater (?sal ?old_sal)
and
add-value
(salary
of ?obj (?sal) )
8. METHODS
AS PROCEDURAL
AITACHMENT
Compendium
base by means omfthe available tools for adding
clauses.
In Example 2(a), a predicate called x_momqroc is
attached to an attribute called x_moment_of_inertia
of an object named rectangular_shaped_section. The
predicate add-if-rtd denotes add as a if-needed
procedure. The clause or the set of clauses containing
the body of the attached procedure associated with
x_mom_proc has to be asserted independently to the
knowledge base, as suggested in Example 2(b).
Consequently, the object will contain no more of the
attached procedure than its name (Fig. 8).
Example 2(a). Attaching
object.
a predicate name to an
~add-if-nd(x_Inoment_of_inertia
of
rectang_shaped_sect
>_
(x_momgroc) )
1025
of ?obj
( ?w) )
and
OBJECB
1026
Compendium
the implementation
and usage of composite objects,
the network of objects of Figure 9, used in the partial
description
of a Car. This example suggests that a
composite object like Car may be organized in terms
of information
located at the following different
sources:
l
l
tyres
attributes
of
Car
(?mat)))
(10)
ask(value(materialoftyresofCar(?mat)))
(11)
The alternative approach to the implementation
of
composite objects consists in keeping local pointers
within the composite object to the objects defined as
parts. An effectively modular approach may then be
attainable, in the sense that any kind of alteration,
occurring at any time, at the level of the constituent
objects, becomes automatically
reflected (i.e. propagated) in the composite
object. This alternative
approach is adopted in XLOG + by simply defining
object names as the values of composite
objects
attributes.
Figure
11 illustrates
the support
for
composite objects in XLOG + .
From the strict point of view of knowledge based
organization,
the level of nesting that a part-of
hierarchy
may support
should
have no clear
limitations. There is, however, an impairment arising
from cognitive limitations of human behaviour when
Compendium
11. IMPLEMENTATION
OF XLOG +
1027
in structural design.
1028
Compendium
Table 1. Some XLOG + built-in medicates
Creation:
add-obj ((object)
( [(parent-i)]
[, (parent-i
+ l>l [_I ) 1
add-attr((attribute) of (object) [((value))I)
add-if-ndi(attribute)of(object)((predicate_name))
1
add-if-ch((attribute)of(object)((predicate_name)))
add((Clause))
Destruction:
dal-obj ((object))
del-attr((attribute) of (object))
Information/Modification:
list-obj ((n) to (m) [attrl)
list-obj(al1 [attrl)
list(obj [attrl [vail [attl [pranl)
liet((obj)
[attrl
i-11
[attl
[pranl)
list-attrs ((obj) [vail [att-oredl)
list ((object)
[attrl [vail [attl )
is-a((object)(ancestor))
is a( (variable) (variable))
has-a((object)
(variable))
has-a((variable)
(variable))
has-val((attribute) of (object>)
has-parant((object)
(parent))
Assignment/Retrieval:
add-value((attr) of (obj) ((val)))
put-value((attr) of (obj) ((val))1
ask (value((attr)of(obj-ref)((val)))
General purpose:
readf((file-name))
eave( (file-name))
display((string))
Example 3.
)add-obj (employee)
)add-attr(age of employee)
)add-if-nd(age
of emPloyee(calc_age))
)add( calc_age(?obj) if
current_year(?current)
and
value(year-of-birthof
?obj (?year)) and
subt(?AGE ?current ?year) and
add-value(age of obj (?AGE)))
)add(current_year(1991))
)add-obj(Fernando-Pessoa
(employee))
)add-attr(year-of-birth
of Fernando-Pessoa(l955))
)ask(value (age of Fernando-Pessoa( ?age)) and
dieglay(The age of the employee is ?age))
class tbl_attrs
struct attribute
1
char *name;
char *value;
char *if-changed;
char *if-needed
attribute *next
va ue
if-&an
if-needed
// xlog+ attributes
attribute l*is;
// Table size
int size;
public:
// COnStrUCtor
tbl_attrs(int sz = 20);
// Destructor
-tbl_attrsO;
attribute llook(char *); // lookup
attribute*insert(char'.char'.char*,char',chdr*):
void listattrs(int, int): // listing
Compendium
class object : public tbl_attrs
friend class obj_tbl:
1
"name;
char
lst_objs "Parents;
lst_objs "Children;
*next;
object
public:
object(char*. lst_objs* = 0):
-objectO,
void updateChildren(object *newChild)
( Children->append(newChild);
1
ask_value(char');
char*
add_value(char*. char*);
int
put_value(char*, char');
int
add_if_changed(char*. char*):
int
al~d_if_needed(char', char*);
int
object* i';_a(char*, int=l);
attribute* has_a(char', int=l):
list_my_attrs(int. int);
void
object* find_child(char*. int=l);
gat_if_needed(char*, int=l);
char*
get_if_changed(char*, int=l):
char*
1;
Fig.
14. Header
depiction
of
an
1:Z. RELATED
WORK
1029
1030
Compendium
Compendium
the ISTRLJDS intelligent structural design system [39]. The basic idea is, once more, to promote
the development of knowledge bases which make use
of objects, rules and user-defined functions. However,
the resulting tool corresponds to a mere mixture of
production rules and frame-like entities. It has
extremely severe limitations, both from a programming and a knowledge representation point of view;
a remarkable example is the prohibition of the
occurrence of variables inside rules.
An object-oriented language specially developed
with the aim of encoding design knowledge and
intelligent computer-aided
design systems is the
IDDL-integrateId
data description language [ 111.
IDDL uses the logic programming paradigm in order
to express design processes, whereas the object-oriented paradigm is used to represent the design objects
those processes manipulate.
At a later stage of development, IDDL was still
facing some important conceptual problems: one
such, raised by its authors, queries when to evaluate
terms involving functions to be evaluated during
unification [26].
13. CONCLUSION
1031
1032
Compendium
View, CA (1988).
35. GEC Research, An Introduction to the STRATA AI
Toolkit. Marconi Research Centre, Great Braddow,
Essex (1987).
36. W. A. Kornfeld, Equality for prolog. Proc. Inr. Joint
Conf. on Artificial Intelligence, pp. 514-519, Karlsme,
Germany (1983).
37. E. Shapiro and A. Takeuchi, Object-oriented programming in concurrent Prolog. New Generut. Compur. l(l),
2548
(1983).
38. K. Bowen and R. Kowalski, Amalgamating language