1 | Hello!
|
2 |
|
3 | My name is Stefan, and I am creating artificial intelligence - thinking programs. (And I am creating the "New Freshmeat".)
|
4 |
|
5 | Here is the point: We can make an AI together! Just follow me and join in.
|
6 |
|
7 |
|
8 | First lesson!
|
9 |
|
10 | I am proposing a number of principles.
|
11 |
|
12 | Each of these principles will make our task easier, until it is fully solved.
|
13 |
|
14 | Just bear with me and turn on your head! :-)
|
15 |
|
16 |
|
17 | Principle: Store everything
|
18 |
|
19 | In legacy (today's) computing, things that happen are often not stored. Can you tell my which programs you ran yesterday between 1 and 2 pm? No? It seems your computer is forgetful :)
|
20 |
|
21 | The point is that logs of program runs are valuable information. You ran a program, so you had something in mind you wanted to do, right? We should record this information because that is precisely what an AI will want to learn about.
|
22 |
|
23 | After all, we are making an AI to serve the user. So we want to understand his intentions and needs and do something about them.
|
24 |
|
25 |
|
26 | Principle: Have a simple standard database
|
27 |
|
28 | Where do we "store everything"? We need a "data base" (using the word in the most general way).
|
29 |
|
30 | I propose a very simple structure that, at the same time, adapts for just any kind of content easily.
|
31 |
|
32 |
|
33 | The Flora database
|
34 |
|
35 | My implementation of the database concept is called "Flora". From flora.tinybrain.de:
|
36 |
|
37 | [quote]
|
38 | A simple database concept
|
39 |
|
40 | Every object in a Flora database consists of just 4 elements:
|
41 |
|
42 | a type (just a string)
|
43 | a description (another string)
|
44 | a number of key/value pairs called "pointers" (both keys and values are strings)
|
45 | an ID generated by the system
|
46 |
|
47 | Objects can reference each other by mentioning the other object's ID in a pointer.
|
48 | [/quote]
|
49 |
|
50 | Object IDs start with a hashtag so they are easily distinguished from other content. By default, Flora uses #t1, #t2 etc., by that could be changed.
|
51 |
|
52 | And that's actually all. Flora is schemaless (schemas are only in our heads and used by convention) - and totally flexible.
|
53 |
|
54 | Oh, and all the strings are, of course, in Unicode. ^^
|
55 |
|
56 |
|
57 | Meta attributes
|
58 |
|
59 | As you know, the pointers (you could also call them attributes) of a Flora object have arbitrary strings as keys.
|
60 |
|
61 | Let us make a distinction between normal attributes and meta attributes, and prefix the latter with an underscore (_).
|
62 |
|
63 | Meta attributes are attributes that describe the database object itself. Examples:
|
64 |
|
65 | _created - time of object creation
|
66 | _modified - time of last object modification
|
67 | _author - name of user or software who created the object
|
68 | _receivedfrom - machine that this object was sent from
|
69 | _humanartifact - is this object hand-made by a human? (1=yes, 0=no)
|
70 |
|
71 | The point with all these conventions is that they are very relaxed. For example, we don't even enforce a format for the dates.
|
72 |
|
73 | Why not? Because then we don't have to remember so many rules.
|
74 |
|
75 | How do we query a database with relaxed conventions? By using AI. The AI will know the actually used standard formats. And if it encounters an unknown format, it asks someone and upgrades its capabilities.
|
76 |
|
77 | Simple as that! Learning makes the difference :o)
|
78 |
|
79 |
|
80 | End of lesson. Next lesson will be about... well, who knows :-) Stay tuned! :-)
|
81 |
|
82 | Cheers,
|
83 | Stefan
|
84 |
|
85 |
|
86 | Links:
|
87 | tinybrain.de - AI home page and New Freshmeat
|
88 | flora.tinybrain.de - the database |