Thoughts on graphs & XML

  • 11 Replies
  • 337 Views
*

Zero

  • Trusty Member
  • *********
  • Terminator
  • *
  • 760
  • Ready?
    • Thinkbots are free
Thoughts on graphs & XML
« on: June 21, 2019, 09:45:31 am »

Hi,

I wanted to share my current point of view about symbolic Ai: how to manipulate it, and where it could live. I'm just talking about my own approach of course, nothing more.

I work with Javascript. It's cheap, fast enough, and it's everywhere. And, the ecosystem is just huge.

Whatever I explore, I always go back to my "consnet" idea, which is a network of cons cell (sort of like lisp's cons cells). The "brain" of the system, would be a directed graph. This graph would be modified step by step, by a rule engine. Rules would be stored in the very graph they modify. My best luck would be Cytoscape, a Js library for graph visualization& manipulation.

Then. This is a brains' world, but it wouldn't be nothing without a body. An Ai wouldn't learn anything without a teacher, like a parent, who lives in the same world, and who has approx the same body. During the 80's, MUDs were a popular type of text-based multiplayer "online" video-games. That would be the "physical world" intelligent agents and teachers live in. The problem is that natural language, traditionally used in MUDs, is not appropriate for a baby Ai, since it would be hard to "decrypt". The solution I see here, is to use XML descriptions instead of natural language descriptions.

So the world is a set of XML "rooms", containing XML "objects", that XML "bodies" (Ai's and teacher's bodies) can manipulate.

With such a setting, the teacher can actually teach things to Ai, about how this world works. There can be a need for food for example, how to find it, how to cook it, whatever you want. The bodies can "talk", in natural language, to each others. So the Ai can learn how to talk, how to express desires, ...etc.

Then one day, you can connect this XML world to the real world, either through sensors or to through the internet, or both.

That's how I see things currently. :)

*

ivan.moony

  • Trusty Member
  • **********
  • Millennium Man
  • *
  • 1221
    • Some of my projects
Re: Thoughts on graphs & XML
« Reply #1 on: June 21, 2019, 06:31:16 pm »
Hi Zero :)

Nice. I think one of possible tests of the system capabilities would be self exploring. The system could try to investigate itself to find out how it functions and try to explain that knowledge in its own words/symbols, possibly replicating itself in itself... Something like a recursion.
Dream big. The bigger the dream is, the more beautiful place the world becomes.

*

Zero

  • Trusty Member
  • *********
  • Terminator
  • *
  • 760
  • Ready?
    • Thinkbots are free
Re: Thoughts on graphs & XML
« Reply #2 on: June 21, 2019, 08:23:03 pm »
Hi Ivan, I'm glad to read you, my friend :)

You're right, that would even be the ultimate test IMO!

Specific patterns in the graph can represent other parts (bigger parts) of the graph, which is a way to "define symbols", so to speak. It is a basis for:
- data compression
- hand coding the graph in high level, in case we need it
- internal representation of self in time
- functional / logic manipulation
- mapping conceptual structures on natural language propositions

*

AndyGoode

  • Nomad
  • ***
  • 74
Re: Thoughts on graphs & XML
« Reply #3 on: June 22, 2019, 02:42:04 am »
Then one day, you can connect this XML world to the real world, either through sensors or to through the internet, or both.

I'm not a fan of symbolic AI. I also don't know how large a claim you are making with your post. Are you saying that even vision is explainable by symbolic AI? I find that very difficult to believe. How could someone connect an XML world through sensors when an XML world is nothing but symbols, and symbols have no inherent meaning?

*

LOCKSUIT

  • Emerged from nothing
  • Trusty Member
  • ****************
  • Admiral
  • *
  • 3154
  • First it wiggles, then it is rewarded.
Re: Thoughts on graphs & XML
« Reply #4 on: June 22, 2019, 04:42:19 am »
All sensories are symbols, it's the compposition of them in the dataset/patterns that gives it a meaning, or agenda, that machines use to survive/find food. Senses don't make sense, per see. Faces don't make sense either, its how a culture uses them to say 'I'M ANGRY!! PASS THE BREAD!!'. Same for a picture of a smile or frown. Context gives meaning, and even after that, only the dataset patterns give meaning, and even after that, only the result of the body gives meaning.
« Last Edit: June 22, 2019, 07:08:05 am by LOCKSUIT »
Emergent

*

Zero

  • Trusty Member
  • *********
  • Terminator
  • *
  • 760
  • Ready?
    • Thinkbots are free
Re: Thoughts on graphs & XML
« Reply #5 on: June 22, 2019, 08:48:02 am »
Then one day, you can connect this XML world to the real world, either through sensors or to through the internet, or both.

I'm not a fan of symbolic AI. I also don't know how large a claim you are making with your post. Are you saying that even vision is explainable by symbolic AI? I find that very difficult to believe. How could someone connect an XML world through sensors when an XML world is nothing but symbols, and symbols have no inherent meaning?
Well I'm not "claiming", I'm just thinking out loud. Good input! Symbolic Ai is more interesting at high-level than low, you're right.

[edit] XML itself is meaningless, but what we (Ai & teacher) could say about it is not. What do you think? [/edit]



This post is all related to the consnet idea in the other thread.

A directed graph can represent a network of cells that all point to 2 other cells. Each node has an maximum outdegree of 2.

The following graphs can be viewed online with webgraphviz. Just copy/paste the code to see the graph.

To say that Renault and Peugeot are cars, we could use the following network:
Code: [Select]
digraph G {

    id1 -> Renault
    id1 -> Car
    id2 -> id1
    id2 -> ISA

    id3 -> Peugeot
    id3 -> Car
    id4 -> id3
    id4 -> ISA
}

The nodes named "id1", "id2", ...etc. are anonymous nodes. As you can see, we link Renault to Car with a node which is then linked to ISA, to signify that Renault IS A Car. Simple enough.

There's a pattern coming twice in the above graph. It's not DRY. That's why we'd like to create a symbol for this pattern, so we don't have to repeat ourselves. Here is the high-level version of the same situation:
Code: [Select]
digraph G {

    id5 -> Renault
    id5 -> ISA_Car

    id6 -> Peugeot
    id6 -> ISA_Car
}

This time, nodes "ISA" and "Car" have been merged in a single "ISA_Car" node. It's a bit like a function call, if you want to see it like that. Well, how would we define such a function? Like this:
Code: [Select]
digraph G {

    subgraph cluster_0 {
        id9 -> ISA_Car
        label = "Symbolizing\nsubgraph";
    }

    subgraph cluster_1 {
        id7 -> Car
        id8 -> id7
        id8 -> ISA
        label = "Symbolized\nsubgraph";
    }

    id9 -> Thing
    id7 -> Thing

    subgraph cluster_2 {
        id10 -> id11
        id10 -> id15
        label = "Core";
    }

    id11 -> Symbol
    id15 -> Definition

    id11 -> id12
    subgraph cluster_3 {
        id13 -> id9
        id12 -> id13
        id13 -> id14
        id14 -> ISA_Car
    }
    id12 -> Thing

    id15 -> id16
    subgraph cluster_4 {
        id16 -> id8
        id16 -> id17
        id17 -> id7
        id17 -> id18
        id18 -> ISA
        id18 -> id19
        id19 -> Car
        id19 -> id20
    }
    id20 -> Thing
}

I added rectangles to clarify things (they are not part of the model). What you see here is a symbol definition. It's like a function. There's a function head (the symbolizing subgraph) and a function body (the symbolized subgraph). The node "Thing" is a parameter of this function.

The s-expression query language would fit nicely here!
« Last Edit: June 22, 2019, 01:22:16 pm by Zero »

*

LOCKSUIT

  • Emerged from nothing
  • Trusty Member
  • ****************
  • Admiral
  • *
  • 3154
  • First it wiggles, then it is rewarded.
Re: Thoughts on graphs & XML
« Reply #6 on: June 22, 2019, 02:10:17 pm »
Can we get a drawing of this on paper?

Is this a binary graph, where we say ex.:
Tom isA man
isA isA thing
Thing isA cluster
So each layer/level is a summarization of more defined parts/translations? Like better encodings?
Emergent

*

Zero

  • Trusty Member
  • *********
  • Terminator
  • *
  • 760
  • Ready?
    • Thinkbots are free
Re: Thoughts on graphs & XML
« Reply #7 on: June 22, 2019, 04:04:39 pm »
Exactly! It doesn't need to be a rooted graph though (not a binary tree).  :)

When I created those graphs, I had to put arrows everwhere in the code. A shorter syntax could be simple prefix notation, à la Logo.

id2 ISA id1 Renault/ Car/

would mean

id1 -> Renault
id1 -> Car
id2 -> ISA
id2 -> id1

The slashes mean "what follows doesn't belong to me". Without them, Renault would point to Car, which we don't want here.

If anonymous nodes don't need a name, we could use the # character.

# ISA # Renault/ Car/


If they do need a name, but are still not real constant nodes (like "x" in "f(x)") we can append a dummy identifier (#dummy), so we can reference them later. They're like Prolog variables, starting with an uppercase letter.

Yes Lock you can print the graphs. Use webgraphviz to draw them and ask your browser to print the page. If it doesn't work, tell me and I'll help you.

*

Zero

  • Trusty Member
  • *********
  • Terminator
  • *
  • 760
  • Ready?
    • Thinkbots are free
Re: Thoughts on graphs & XML
« Reply #8 on: June 22, 2019, 04:57:23 pm »
The symbol definition is now:


#10
   #11 Symbol/
      #12 Thing/
      #13 #9 Thing/ ISA_Car/
      #14 ISA_Car/ #
   #15 Definition/
      #16 #8 ISA/ #7 Thing/ Car/
      #17 #7/
      #18 ISA/
      #19 Car/
      #20 Thing/ #


...this mess can probably be improved!

*

LOCKSUIT

  • Emerged from nothing
  • Trusty Member
  • ****************
  • Admiral
  • *
  • 3154
  • First it wiggles, then it is rewarded.
Re: Thoughts on graphs & XML
« Reply #9 on: June 23, 2019, 02:19:14 am »
Ah! Cool images it makes!

I sorta feel like I beat you to the finish line here though, I had an employee make me a 600USD code a year ago, see attached image. This I believe is the natural way to make a brain of knowledge. Everything is made of common parts.
Emergent

*

goaty

  • Autobot
  • ******
  • 234
Re: Thoughts on graphs & XML
« Reply #10 on: June 23, 2019, 08:37:16 am »
I think symbolic neural networks are going to replace mutation  because it doesn't require huge simulations of play for it to know if its done something better, it gets there through building relations.

The lack of explanation in your output symbols, has to be implemented at the end at the motor output complete to the finished activity.

And input-wise the computer vision is the connection from the symbols to the pixels.

*

Zero

  • Trusty Member
  • *********
  • Terminator
  • *
  • 760
  • Ready?
    • Thinkbots are free
Re: Thoughts on graphs & XML
« Reply #11 on: June 23, 2019, 03:04:44 pm »
Are you talking about genetic programming mutations?

Quote
The lack of explanation in your output symbols, has to be implemented at the end at the motor output complete to the finished activity.

I didn't understand...

 


Users Online

77 Guests, 1 User
Users active in past 15 minutes:
LOCKSUIT
[Trusty Member]

Most Online Today: 76. Most Online Ever: 340 (March 26, 2019, 09:47:57 pm)

Articles