Thread Links Date Links
Thread Prev Thread Next Thread Index Date Prev Date Next Date Index

SUO: RE: General Design





Jon Awbrey wrote:
> Richard Cooper wrote:
> > 
> > John F. Sowa wrote:
> > >
> > > Julian and Jon,
> > >
> > > I agree with Julian's three levels, but I would use
> > > different labels for them:
> > >
> > > JF> thing
> > > > philosophical-stuff
> > > > useful-stuff
> > >
> > > The top node could be called the "empty" node since
> > > it has no axioms and is true of everything.  The bottom
> > > level could be called the "concrete instance" level,
> > > since the categories apply to instances of things that
> > > people see, hear, feel, smell, and taste.  The middle
> > > level is the level of generalizations or abstractions
> > > from the lower levels.
> > >
> > > Some labels in the middle may come from philosophical
> > > discussions, but many of them come from physics (which
> > > used to be called "natural philosophy").  They are
> > > extremely useful for stating general principles that
> > > apply to more than one application.  Without them,
> > > there is no hope of sharing modules between different
> > > concrete applications.
> > 
> > Consider an algorithm that takes a bottom-up learning approach.
> > First, it would have a set of bottom level sensors that would
> > assert propositions into a context (called the present situation)
> > and use this as a measure of reality at event T[i].  So the
> > ith situation S[i] is made up of a bunch of object names and
> > propositions about the objects which hold true at event T[i].
> 
> Rich,
> 
> Starting with propositions in a general sense is way higher 
> than the bottom.
> More likely I'm guessing you mean the detected presence of a 
> positive feature,
> say a_j out of some predisposed alphabet !A! = {a_1, a_2, 
> ..., a_j, ..., a_n?}?
> 
> Jon Awbrey

Yes, the standard CS approach to AI is to posit sensors that
measure the world.  In the blocks world, there would be
objects like "green block", "red pyramid", "blue sphere",
"table", and so on.  Example propositions would be "OnTopOf(_A,_B)",
"CanSupport(_A,_B)", "MoveTo(_X,_Y)", "PutOnTopOf(_C,_D)" and
so forth.  

You could imagine a vision system that recognizes colors,
and processing software that distinguishes blocks, pyramids,
spheres, table tops, and so on.  

The output at the very bottom level of the lattice would be
situations, such as 

 OnTop("red pyramid", "green block")
^OnTop("green block", "table")
^OnTop("blue sphere", "table")

which is arbitrarily designated the name Situation S[i].



> > Then, at event T[j], it would sample the jth context,
> > providing a set of object names and propositions that
> > hold true at event T[j].  So far so good.

 OnTop("red pyramid", "table")
^OnTop("green block", "table")
^OnTop("blue sphere", "green block")

which would arbitrarily be named Situation S[j].  

So there is some unnamed action that transitions the system
from S[i] to S[j].  Call it A[i,j].  Not very meaningful,
huh?  


> > The next steps are
> > 1) to relate S[i] and S[j] so that we can distinguish
> >    between the two situations based on sampled observations.
> >
> > 2) to name the action we assign to the thing that causes our
> >    universe to move from S[i] to S[j].
> > 
> > With the results of these steps, we may have developed a new
> > bottom level node at the "useful stuff" level.  If so, there
> > is a third step:
> > 
> > 3) calculate S[i^j]   :=  S[i] ^  S[j];

 (
 OnTop("red pyramid", "green block")
^OnTop("green block", "table")
^OnTop("blue sphere", "table"))
^(
 OnTop("red pyramid", "table")
^OnTop("green block", "table")
^OnTop("blue sphere", "green block"))

-> S[i^j] = 

OnTop("green block", "table")

Showing the single common element of both S[i] and S[j]
which was unaffected by A[i,j].  

> >              S[i^~j]  :=  S[i] ^ ~S[j];

 (
 OnTop("red pyramid", "green block")
^OnTop("green block", "table")
^OnTop("blue sphere", "table"))
^~(
 OnTop("red pyramid", "table")
^OnTop("green block", "table")
^OnTop("blue sphere", "green block"))

-> S[i^~j]


> >              S[~i^j]  := ~S[i] ^  S[j];

 ~(
 OnTop("red pyramid", "green block")
^OnTop("green block", "table")
^OnTop("blue sphere", "table"))
^(
 OnTop("red pyramid", "table")
^OnTop("green block", "table")
^OnTop("blue sphere", "green block"))

-> S[~i^j]


> >              S[~i^~j] := ~S[i] ^ ~S[j];

 ~(
 OnTop("red pyramid", "green block")
^OnTop("green block", "table")
^OnTop("blue sphere", "table"))
^~(
 OnTop("red pyramid", "table")
^OnTop("green block", "table")
^OnTop("blue sphere", "green block"))

-> S[~i^~j]


> > Leaving the psychological projection of symbols onto the
> > four quadrants of comparison as a human, and possibly
> > manual editing step, for the purpose of building a
> > communicable ontology.


Here is the crux of my confusion.  How can the program give 
meaningful names and descriptions to the latter three conditions 
as it define nodes slightly higher up the lattice from S[i] 
and S[j]?



> > Of course, we should repeat the process for every new
> > situation the system observes.  Eventually, the lattice
> > fills in and gets pretty complicated.

So a mechanism is needed to decide which nodes are either
common or important, and which should be forgotten (deleted)
from the database of nodes in the lattice.  This is a matter
of judgement, and I think it could be handled with heuristic
measures, but the heuristic measures should (ideally) be
automated so the algorithm can refine heuristics with further
experience.  


> > And the final step in each iteration:
> > 
> > 4) solve the issue of how to name the quadratures
> > of experience, the actions that caused transitions from
> > one situation to another, and any other human projections
> > we wish to use for discussing changes in the system as
> > it evolves.


To repeat:

> > I find this step most mysterious.  WordNet or other
> > source of symbols might help choose names for the objects,
> > propositions and actions, possibly even for the intermediate
> > levels between nil and reality, but no approach suggests
> > itself to me that could conceivably be automated.
> > 
> > Suggestions, extensions and elaborations appreciated,
> >
> > Rich

Again, suggestions, extensions and elaborations appreciated,
Rich



> > > Jon Awbrey stated it well:
> > >
> > > JA> Or maybe axioms are the cart and experiences are the cartload.
> > >  > It can a take a couple hundred or a couple thousand years of
> > >  > experience with a motley crue of crude examples before some
> > >  > people will start to notice that the same darn patterns of
> > >  > thought tend to keep turning up in what appears to be the
> > >  > darndest places, and the useful sorts of axioms only but
> > >  > gradually percolate themselves to the top of the heap.
> > >  > But even this is a retrospective illusion.  At the
> > >  > beginning of the story you don't even know what
> > >  > the "examples" are supposed to be examples of.
> > >
> > > My major criticism of Cyc, Sumo, and Dolce is that
> > > the developers started from the top down with some
> > > preconceived assumptions about what would be
> > > necessary for every level beneath the top.
> > >
> > > I believe that it is important to scour the philosophical
> > > and scientific literature in order to take an inventory
> > > of all the best distinctions and generalizations that
> > > anyone has ever discovered.  But rather than organize
> > > those distinctions according to somebody's best guess,
> > > I would recommend using an algorithm that would generate
> > > the organization automatically.  And I would iterate and
> > > reiterate the application of that algorithm with every
> > > new addition at any level of the hierarchy.
> > >
> > > There is a lot more to be said about the algorithms and
> > > how to use them.  But for starters, I would suggest that
> > > people look at the work on Formal Concept Analysis (FCA)
> > > for deriving lattices from low-level distinctions.  For
> > > a brief discussion of lattices with an example of FCA,
> > > see Section 7 of my tutorial on math & logic:
> > >
> > >     http://www.jfsowa.com/logic/math.htm#Lattice
> > >
> > > Note that when you apply FCA or any other method for
> > > deriving lattices, the algorithms often generate new
> > > nodes that don't correspond to any names in the original
> > > language.  When philosophers and scientists find such
> > > nodes, they coin new words from Greek roots.  Those are
> > > the "philosophical terms" that Julian said were not
> > > useful.  But mathematically, they are important for
> > > labeling potential generalizations, which may turn
> > > out to be very useful for applications that no one
> > > had ever considered before.
> > >
> > > I won't say that FCA is the answer to all our prayers,
> > > but I will say that it is better than drawing trees or
> > > lattices by hand.
> > >
> > > John Sowa