Rich, (01)
RCG> I'm thinking of the internal, hot ram memory image of the data
> when I think of lisp, or relational tables for that matter. So
> the software that "eval"s the model expression doesn't have to make
> a lot of inefficient moves. (02)
That is one very nice property of LISP, which belongs to the family
of functional languages. What eval does is to evaluate a list
structure that happens to represent a complex functional composition.
That kind of evaluation is an important kind of operation for many
applications. (03)
RCG> Of course, prolog is a nice language, but has any version ever
> put in a satisfactory "eval" of a simple action representation
> like lisp did? (04)
Prolog is a *relational* language, but Lisp is a *functional* language.
So you wouldn't expect Prolog to evaluate functions. Instead, what
Prolog does is to determine whether relations are true (succeed) or
false (fail). While it's doing that, Prolog uses the unification
algorithm to construct very complex structures -- they resemble Lisp
trees, but they may contain variables that create cross links in
the patterns that represent arbitrary graphs or networks. (05)
The unification algorithm is the single most important feature of
Prolog that distinguishes it from all other major programming
languages. Students who come from other languages often find it
hard to get used to because it works "like magic". But it enables
very complex processing that would take many lines of code in
Lisp or any more conventional language. (06)
Conceptual graphs are a graphic representation for logic. Like
Prolog, CGs emphasize relational properties (but they can also
represent functions, as does CLIF). In fact, there is a nice
implementation of CGs that has an inference engine that is
upward compatible with Prolog. It includes CGs as a built-in
datatype and it can perform graph unifications in addition to
the usual Prolog unifications. See (07)
http://sourceforge.net/projects/amine-platform (08)
RCG> I haven't gotten the economic rationale - why would I want
> to use CGs instead of IDEF0 as a graphical representation
> for linguistic information? (09)
The word 'graphical' in that sentence is ambiguous: do you
mean it in the sense 'visual' or 'network'? As a formal
system, conceptual graphs use the mathematical theory of
graphs in a very direct way. But they also happen to have
a readable visual representation. Those are two very different
properties, which may be related, but they have very different
implications. (010)
As for the differences between IDEF0 and CGs, the answer is
that CGs are a very general representation, but IDEF0 is
tailored for a specific domain. It was originally designed
for SADT (Structured Analysis and Design Technique). If you
wish, you could map each node and arc of an IDEF0 diagram
to a concept or relation in conceptual graphs. (011)
Since the ISO standard for CGs only specifies the CGIF linear
form, you could use CGIF as the linear exchange format for
any IDEF0 representation. In other words, an IDEF0 graph
happens to be a special case of a conceptual graph, and
you could specify every transformation that is permissible
on IDEF0 graphs by If-Then rules stated in CGIF. And if
you used an inference engine for CGs, it would perform
those IDEF0 transformations. (012)
In any case, I didn't design CGs for the purpose of representing
IDEF0, but since CGs, like any dialect of Common Logic, are
designed to represent everything and anything, they can represent
IDEF0. But for this particular application, CGIF has an important
advantage over CLIF: there is a one-to-one mapping between the
nodes of IDEF0 and CGIF, but the mapping to CLIF is not quite
as direct. (013)
For further discussion of these and other issues, I recommend
the following article: (014)
http://www.jfsowa.com/pubs/cg4cs.pdf
Conceptual Graphs for Representing Conceptual Structures (015)
John (016)
_________________________________________________________________
Message Archives: http://ontolog.cim3.net/forum/ontolog-forum/
Config Subscr: http://ontolog.cim3.net/mailman/listinfo/ontolog-forum/
Unsubscribe: mailto:ontolog-forum-leave@xxxxxxxxxxxxxxxx
Shared Files: http://ontolog.cim3.net/file/
Community Wiki: http://ontolog.cim3.net/wiki/
To join: http://ontolog.cim3.net/cgi-bin/wiki.pl?WikiHomePage#nid1J
To Post: mailto:ontolog-forum@xxxxxxxxxxxxxxxx (017)
|