Took a pause...
I've been taking a break, thinking about whether it is time to stop working on Brainhat. There's so much to do, yet, and I have so many things to do outside of Brainhat, in life. The pause has been nice. I did not realize how much the stress to keep going affects me.
To stop would be a defeat. But am I already defeated? I ran several of my more interesting test cases through ChatGPT, and it handled them very well. In fact, it was better than Brainhat at Brainhat's own test cases. Smoother. More eloquent. And with an affected sense that we were playing a game together. And there are a million things ChatGPT can do that Brainhat cannot.
So, should I give up?
I might be done, except for a conversation I am having with myself about what can I add to the picture? What can Brainhat contribute?
All the code for learning and retaining information, and all the code for sharing knowledge across a network is written and working. Brainhat can talk to processes, like IOT devices. It can fit in a (relative) thimble. It is potentially unhaltingly redundant. Every instance of Brainhat is capable of holding its own world view, and at the same time incorporating the world views of other Brainhat instances into its local processing. I still don't know how well it would scale. I just haven't had the time.
So, I am a fool; I am going to continue for a while longer. I am going to glue some LLM (CHatGPT or Llama) to the input processing loop, as I did with Pandora years ago (see below), to give Brainhat a larger base of facts and a better interactive feel, even though interaction isn't a current goal of mine.
A past experiment
Twenty years ago, I had an experience with AIML (AI Markup Langueage). Brainhat had been out for several years before AIML came on the scene. Soon, the AIML people were going to rule the world. They would make simulated humans by crafting XML templates with token replacements. Such as:
<category>
<pattern>I LIKE *</pattern>
<template>
Then you should have <star index = "1"/>.
</template>
</category>
It's simple. But, AIML made better chat bots than Brainhat did.
There was an online AIML implementation was called Pandora. It had a large base of AIML patterns; it could field a lot of different types of input. One could connect and hold a text-based session with it remotely. I made a Brainhat process that would pass questions on to Pandora if Brainhat didn't have an answer. When an answer came back, I presented it to the user. I also ran an input cycle against it so that Brainhat could know the answer, too. It improved the Brainhat experience for an interactive user. I didn't use it much, though. It wasn't addressing the fundamental goal, which was knowledge-based computing.
At one point, I pulled down some AIML code, thinking that I could use it as a local preprocessor. It would provide me with a way to pre-preen input before parsing into a knowledge representation. I eventually bailed on that and wrote my own pre-processor. I don't use it much, but here's an example:
/* The three bears for goldilocks
*/
define threebears
label rewrite
rule the three bears $X1
map ROOT,TEXT
xlate &the first bear ^1.&the second bear ^1.&the third bear ^1.
This is how it looks when it runs:
>> the three bears like fish
the second bear likes fish. the third bear likes fish. the first bear likes fish.
...pretty kludgey. I could write a chat bot with it though!