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 (https://aidreams.co.uk/forum/index.php?topic=13207.msg53675#msg53675) 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 (http://www.webgraphviz.com/). Just copy/paste the code to see the graph.
To say that Renault and Peugeot are cars, we could use the following network:
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:
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:
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 (https://aidreams.co.uk/forum/index.php?topic=12949.msg51313#msg51313) would fit nicely here!
So...
This graph
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
}
can be represented using the following language
[#: (Symbol [#: Thing ISA_Car]) (Definition [#: ISA #: Car Thing]) ]