Skip to content
agnostic-workspace edited this page Jul 14, 2022 · 12 revisions

AGI DEV LOG

Y2022M07D14

I fixed the storyteller. Then I'm gone another road. I designed what I call a "natural computer language", that is, a natural language that's natural for computers and easy for humans. Each word has an arity, and it's all that's needed to deterministically parse and stringify stuff. It's small, simple, powerful, and most importantly, implemented. Now I think that building an upper ontology (or worst, using an existing one) is wrong, because we work for the entire world, not for a few selected countries that would like to impose a convenient world-view with strong cultural bias. For the same reason, the natural computer language won't be based on English. But I started to study the Natural Semantic Metalanguage, which would probably form a good basis (the methodology is nice). It would be adapted to computer subjectivity. Then the vocabulary could be borrowed from a well established a posteriori conlang like Elefen. Which also has a bias.

Y2022M07D11

I tried a first straight & dumb approach for my storyteller. It's broken. The plan is to have "tellers" make a natural language description of a situation. A teller is a query, a vector-object (to store the "angle" of the description), and a natural language description builder, in other words a simple template that uses the bindings to build the description. The idea is that the parts of the situation that have been described are marked as "told", and ignored for the following descriptions, so the teller doesn't repeat itself. The angle thing lets you choose what features of the situation should be described first. But this is wrong, too straight. Some cells that have already been described might be parts of other descriptions, you can't just ignore them. And since the thing is broken anyway, I'll just start fresh again. There should be some kind of relevance score, for each possible thing to say.

Y2022M07D08

1 month of work. The UI is stable now, using Tweakpane is more than enough. There's an Ace editor embedded in a pane, configured to highlight Eno language. For the database, I tried Tau-Prolog, Graphology, Heya-unify, LogicJS, Dexie and others I can't remember, before I roll my own: Consnet, a network of cons cells, which can do graph pattern matching & forward chaining, and which is fast enough (the approach is similar to Hexastore). A declarative DSL has been created with PEGjs in order to tersely describe complex and redundant networks. Another DSL has been created to create parsers that target Consnet: these parsers can translate directly from strings to consnets. These 2 DSLs are currently undocumented. I started this devlog.

Clone this wiki locally