<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html>
Thilo Schwidurski wrote:
<p>Dear Thilo:
<p>Will you please indicate your home pages and/or references
<br>for me to delve deeper into your intriguing insights?
<br>I kept thinking about them  and indeed  some of your
<br>remarks find  resonance in my inner feelings about
<br>hermeneutic computer science.
<p>Best wishes
<br>Albertina
<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.
<p>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".
<p>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).
<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>-
<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>-
<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 :-/ ...).
<p>I shurely hope this ideas are not to far away from your interests and
<br>would love to discuss them with you.
<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>