<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html>
 
<br>Thilo Schwidurski wrote:
<p>Dear Thilo:
<br> 
<br> 
<blockquote TYPE=CITE>Dear members,
<p>the group lately adressed unification of languages (vs. "Babel
<br>effect") and metaprogramming and other philosophical concepts. So I
<br>felt that it might be a good place for a discussion of some thoughts
<br>about programming and more general about knowledge representation.
<br> </blockquote>
Wonderful connection!!! I get distressed because there is a real
<br>gap here. People from artificial intelligence do not get involved with
<br>people from software engineering! It is changing however slowly!
<blockquote TYPE=CITE> 
<br>Please forgive in the case that I even use whole phrases that were
<br>already written here (or elsewhere) without quoting properly - in the
<br>end nothing I have to say is possibly really new - maybe/hopefully
<br>except of the overall picture. But I can say that I definitly got
<br>inspired and encouraged by the Self-, the Merlin- (Jecels not Suns),
<br>the Tunes project and of course of all of what I read from you that
<br>are devoted to thinking about programming in this group (and a couple
<br>of others).
<p>A first helpful step to deal with the "Babel effect"-problem could be
<br>changing the view on what programming is. I see Programming (perhaps
a
<br>bit more general as usual) as gaining and writing down knowledge. You
<br>could associate "gaining knowledge" with "designing/architecturing
<br>programs".
<br> </blockquote>

<p><br>A broader  definition of programming. Curiously for me programming
<br>has always been just this. This is the reason why I cannot accept
<br>any language to implement my ideas. However it is common to hear
<br>computer scientists saying: you can implement your ideas in any
<br>language!!! This sounds and will sound as very awkward!
<blockquote TYPE=CITE> 
<br>I don't see so much use any more in the partitioning of knowledge in
<br>data and programs/algorithms. An example: every program code that
<br>contains constants contains "plain" data. Every database that contains
<br>a kind of rules (I am thinking of values of string-fields that contain
<br>code) contains programs.
<p>So what I am aiming at ?
<p>-
<br>Knowledge can be represented as a directed graph, which' nodes could
<br>be seen as extremly fine grained objects - possibly only "containing"
<br>one value of a POD-Type like String or Number. Maybe there has to be
<br>also a Bitarray Datatype but 'only' for efficiency in storing
<br>"multimedia data" streams.
<br>All other common named properties of objects like attributes, methods,
<br>inheritence parents (each also representable by slots) and types are
<br>realized by named edges. An edge can be named because edges can also
<br>be connected - with edges or objects. The names are just objects (a
<br>string-value-node).
<br>This special graph (I would like to call it hypergraph but the term
is
<br>already defined differently - so I will just refer to it as graph)
can
<br>be seen as an "amalgamated structure" of semantic networks, object
<br>networks and hypermedia in respect of what it can represent. I see
it
<br>as kind of "mother of representations" or *the* model (like in
<br>model-view).</blockquote>

<p><br>Well it is difficult to follow your reasoning here. I found it interesting
<br>because I have always dealth with graph theory. It has been fundamental
<br>to make explicit layers of architectural reasoning that cannot be represented
<br>by verbal languages such as English, Portuguese, etc.
<br>So graphs are fundamental as visual formalisms. There are several kinds
<br>of graphs. Hypergraphs (directed or acyclic) are graphs in which the
<br>relation being specified  is not necessarily binary: in fact,
it need not
<br>even be of fixed arity. Formally, an edge no longer connects a pair
<br>of nodes, but rather a subset thereof.
<p>The information conveyed by a graph or a hypergraph is nonmetric
<br>and captured by the purely topological notion of connectedness; shapes,
<br>locations, distances and sizes have no significance.
<br>As far as I know it is widely used in all fields of knowledge. And
<br>concerning implementation , data structures that already exist
<br>or that can be easily invented based on them implement them
<br>easily.
<br>On visual formalisms  Communications of the ACM May 1988 Volu
31
<br>number 5
<br>For example Kirk Martini, architect and structural engineer used
<br>it to generate structural design. I use it to generate architectural
<br>design. Curiously it was Christopher Alexander who introduced
<br>graph theory in architecture. He was considered a genius in the
<br>sixties for this. Later on he was strongly criticized wrote a book
<br>entitled a city is not a tree  and then created "A pattern
language"
<br>which is inspiring  the Design Patterns from GOF.
<blockquote TYPE=CITE> 
<br>One motivation for this represention structure is that I found that
<br>the relations between objects are at least as important as the objects
<br>itself.
<br>For example is deleting an object almost always really the unlinking
<br>of two objects (that a historizing mechanism can and should take care
<br>of).
<br>-
<br>The basic language concepts (message passing, delegation to prototypes
<br>and classes, ...) can be plugged in (and perhaps sometimes even out
<br>of) the environment (that means getting assigned to the
<br>"environment?-object").
<br>I am not sure if this is partly not even already state of the art in
<br>Smalltalk/Self/other environments.
<br>-</blockquote>
I was invited by the Head of the Department of Electronic Systems
<br>of the Polytechnic School USP to give a course on Hermeneutic
<br>Computer Science starting next September for graduate students.
<p>I will deal basically with the acquisition of knowledge. For me it is
<br>easy to build a bridge between mathematics the way you are
<br>putting forward ideas and art. Being a conceptual artist it is easy
<br>for me to perceive that art = object + idea. For me these are different
<br>faces of the same coin.
<br>So I feel that the great advance introduced by Self is the ability
<br>to stress the thingness of things. Moreover Self is essentially
<br>hermeneutic (there is nothing more hermeneutic than music)
<br>hence musical. For me it was very rewarding to discover that
<br>Randy Smith is a jazz musician.  I would like him to tell us
<br>how music influenced his Self concepts besides being a physicist.
<p>It is Peter Wegner's belief that in the XXIst century, there will
<br>be an amalgama between interaction and algorithms.
<p>The knowledge based system I am building has this potential.
<br>So please do not forget interaction!!! when you argue especially
<br>because you belong to the Self community!
<blockquote TYPE=CITE> 
<br>To represent code of the conventional textual programming languages
<br>each language concept can be assigned to an arbitrary syntax (of
<br>course carefully, without violating inherent constraints like "no two
<br>concepts may be assigned to the same syntax within the same
<br>environment") or even a set of alternative syntaxes. For example would
<br>I prefer to write down mathematical code expressions in the common
<br>mathematical symbol language (probably enhanced to be
<br>computer-interpretable).
<br>As far as I know there are functional languages that have this feature
<br>of syntax-adaption. I am not sure at all (because I never designed
a
<br>language) if this "separating of concepts" works at all. I just have
a
<br>good feeling that it should anyway ;-)
<br>-
<br>Each language concept is assigned to (and gets processed by) an
<br>interpreting machine (part of a compiler or interpreter or VM) - this
<br>machine solely works with the underlying graph (seeing it as the
<br>traditional AST-structure).
<br>-</blockquote>

<p><br>Dave Ungar has a nice paper on the transporter, where he comments
<br>the difference of the way ASTs are used in the OO BETA programming\
<br>language and the way the transporter is built in modules.
<br>It would be nice his comments here for you to perceive that the
<br>mathematical notation alone are not very expressive, although
<br>there are moments they fit perfectly well and add expression
<br>how I use it in architecture.
<blockquote TYPE=CITE> 
<br>All the other common representations (e.g. textual program code, but
<br>also "more visual" representations like UML, just everything that is
<br>known as hypermedia) can be generated (temporarily) as *views* an the
<br>graph by transforming-adapters.
<br>-
<br>A persistence-mechanism (mapping between different "layers" of
<br>storage) only deals with graphs (resp. queried portions of the "whole"
<br>graph). That means that the underlying graph/OO-database (virtual
<br>memory management ? - I get confused what the different "parts" of
the
<br>concepts behind these terms really are) just works with graphs.
<br>-
<br>Historizing information is embedded in the graph and the processing
<br>and usage of it is a crucial part of the KlDE (knowledge development
<br>environment) as it seems to be very important to being able to track
<br>the evolution of knowledge (especially the evolution of the linking).
<br>-
<br>Also like Historizing is Personalization (think of ownership,
<br>authorship and privacy) a basic concept that has to be serviced by
the
<br>system.
<br>-
<p>After all could this system be the foundation of something like "open
<br>knowledge" (in contrast to "open software") development - aiming at
<br>breaking down the borderwalls of heterogenic knowledge representation
<br>systems (possibly just yet another holy grail dream :-/ ...).
<br> </blockquote>

<p><br>This sounds great!  So could you give us references for us
to delve deeper
<br>into your ideas.
<blockquote TYPE=CITE> 
<br>I shurely hope this ideas are not to far away from your interests and
<br>would love to discuss them with you.</blockquote>
It fits perfectly well with my ideas and I hope you can contribute to
<br>help me to climb higher and higher to  see broader and broader
<br>horizons.
<p>Best wishes
<br>Albertina
<blockquote TYPE=CITE> 
<p>Regards,
<br>Thilo.</blockquote>

<pre>-- 
.----------------------------------------------------------.
| Albertina Lourenci                                       |
| PhD  in Architecture and Urbanism                        |
| post-doctorate researcher                                |
| Laboratory of Integrated Systems University of Sao Paulo |
| Avenida Professor Luciano Gualberto, 158 Travessa 3      |
| CEP: 05508-900                                           |
| Sao Paulo Sao Paulo State Brazil                         |
| Voice: +55 011 818 5254                                  |
| Fax: +55 11 211 4574                                     |
.----------------------------------------------------------.</pre>
 </html>