The state of the art for Arrow specs (clarifications and additions)

Brian Rice
Fri, 29 Oct 1999 23:34:03 -0700

[functions and graphs]
>  Brian> I hope that this clears things up.
>Not really. In fact I understand the what you say, I was just noticing
>that if the only entities that you manipulate in the system are arrows
>and stes of arrows, it may lead to difficulties when comparing
>objects. If you are given an object, you can't tell if it's a function
>or a graph. This is not really a problem for functions since they use
>objects the way they to use them anyway, but the user will want to
>know if the result of a function call is a graph or a function. 
>Laurent Martelli

Well, here's the answer to that: Don't confuse a graph for an object.  It's
a formalism, not a fundamental conceptual unit.  The level that the spec
deals with is nothing like what the user-interface (read ontology) will
look like.  Keep in mind also that I have not specified the system for
dealing with meta-information, which in many contexts will nearly entirely
define the meaning of an object.  You are confusing the shape of a graph
with its identity.

In other words, the user will not be concerned or need to be concerned with
"what a graph is".  You are never just given an object.  It is constructed
from other things which are already familiar, so that "what an object is"
is just what you build.  The combination of the semantics of its parts is
all that the object is.  This is why I chose not to use constructs with
inherent semantic content.  Arrows and graphs are first and foremostly
representations, not objects.

If you want to generalize, you have to identify patterns from various
semantic domains as meaning the same thing, so that getting information
about one construction of the concept relates to the other constructions.

This will allow you to get into the level where ontologies will eventually
be.  There, graphs and arrows form the underlying mechanics of
representation, instead of "actual objects" as you now see them.  The
intended way for the user to deal with an object is to deal with a
structured collection of representation types, so that the object's
information translates to arbitrary domains by automating the generation of
new representations.

Yes, this is vague, but I have not yet built up the system to the point
where I can say for sure how ontologies will work, and therefore I can't
say how the user's questions about objects will be answered by the
underlying system of graphs and arrows.  I do feel confident, however, that
graphs will almost never be objects themselves, so that this confusion of
shape for identity is not an issue as far as I am concerned.