BirdyVM

  • 17 Replies
  • 787 Views
*

Zero

  • Trusty Member
  • **********
  • Millennium Man
  • *
  • 1017
  • Ready?
    • dissolvedgirl
BirdyVM
« on: March 24, 2020, 08:53:36 am »
Hi,

I've updated & upgraded my old 'Birdy' project, which is now stronger and conceptually stable.
https://github.com/ThinkbotsAreFree/Birdy

I've also implemented a working prototype for testing purpose:
http://thinkbots.are.free.fr/ProjectBirdyVM/

It's a multi-agent system that relies heavily on the pub/sub pattern, on string rewriting, and on the 'graphmaster' technique (à la AIML). There are mainly two types of entities: units and rules, which have complementary strengths and use cases.
- Units are concave lenses that tend to produce divergent thinking (explorative, spontaneous, free-flow).
- Rules are convex lenses that tend to produce convergent thinking (focusing, logical, procedural).

Edit: comments are not implemented yet
« Last Edit: March 24, 2020, 09:45:49 am by Zero »

*

Zero

  • Trusty Member
  • **********
  • Millennium Man
  • *
  • 1017
  • Ready?
    • dissolvedgirl
Re: BirdyVM
« Reply #1 on: March 25, 2020, 09:32:14 pm »
I have 1 last unused special character, '&', and instead of using it for my half-baked getUsual() algorithm, I decided to inject something actually useful in this project: Scheme! So, from inside of BirdyVM, one can now evaluate Scheme expressions and assign them to variables.

Since I want something simple, I think BirdyVM will be available as a TCP server, downloadable from the Microsoft Store app.

Edit: comments are implemented.
« Last Edit: March 25, 2020, 11:22:24 pm by Zero »

*

Zero

  • Trusty Member
  • **********
  • Millennium Man
  • *
  • 1017
  • Ready?
    • dissolvedgirl
Re: BirdyVM
« Reply #2 on: March 27, 2020, 12:34:00 am »
New User Xperience! New functionalities! And still as free as a free lunch!

Check it out http://thinkbots.are.free.fr/ProjectBirdyVM/

- UI from Bigpicture.js
- Auto-save thanks to moz' localforage
- And you'll even see little messages blinking here and there as the system runs

Edit:
Here is a test.

Click somewhere and type
Quote
| global + #m @ second > $m

Click again and type
Quote
| second + hey #n ^ got $n ok

Then in the command bar, type
Quote
@ global > hey foo

The first line catch the user message and sends it on the "second" channel. Then the second line catches it and outputs "got foo ok".
If you look at the nodes when you hit enter, you'll see the messages under the nodes.
« Last Edit: March 27, 2020, 01:27:18 am by Zero »

*

ivan.moony

  • Trusty Member
  • ***********
  • Eve
  • *
  • 1460
    • contrast-zone
Re: BirdyVM
« Reply #3 on: March 27, 2020, 07:08:40 am »
I like the graphical layout, though functionality would be better if scrollbars or even mini-map would be visible.

But a bit more introductory description and possible use cases would keep a user more informed about the project when visiting Github read.me.
There exist some rules interwoven within this world. As much as it is a blessing, so much it is a curse.

*

Zero

  • Trusty Member
  • **********
  • Millennium Man
  • *
  • 1017
  • Ready?
    • dissolvedgirl
Re: BirdyVM
« Reply #4 on: March 27, 2020, 08:44:55 am »
Thanks for the encouraging words :)
I'm not sure I'm able to make a minimap, but yes, I like the idea.

About the doc, an entire book would need to be written, because the model is pretty strong. Did you notice there's an embedded Scheme interpreter included?
I'll have to work hard on documentation.

Also, I think it would need an alternative syntax, probably based on XML.

*

Zero

  • Trusty Member
  • **********
  • Millennium Man
  • *
  • 1017
  • Ready?
    • dissolvedgirl
Re: BirdyVM
« Reply #5 on: March 28, 2020, 02:42:42 pm »

*

Zero

  • Trusty Member
  • **********
  • Millennium Man
  • *
  • 1017
  • Ready?
    • dissolvedgirl
Re: BirdyVM
« Reply #6 on: April 02, 2020, 09:26:37 pm »

*

Zero

  • Trusty Member
  • **********
  • Millennium Man
  • *
  • 1017
  • Ready?
    • dissolvedgirl
Re: BirdyVM
« Reply #7 on: April 03, 2020, 09:10:08 pm »
We now have goodies  ;D

Do you think I should go on with this one, documenting, debugging it, ...etc., or am I losing my time? I believe Birdy can be fun as an unusual - exotic - chatbot engine, but it probably won't get conscious anytime soon. I know this is my choice to make, but on the other hand, we're a community.

Edit: I added some big picture material, explaining things from a different perspective. I would highly appreciate you opinions, if any :)
« Last Edit: April 03, 2020, 11:02:38 pm by Zero »

*

ivan.moony

  • Trusty Member
  • ***********
  • Eve
  • *
  • 1460
    • contrast-zone
Re: BirdyVM
« Reply #8 on: April 04, 2020, 04:26:02 pm »
You have to make sure someone would use it. Otherwise, it doesn't make much sense.
There exist some rules interwoven within this world. As much as it is a blessing, so much it is a curse.

*

Zero

  • Trusty Member
  • **********
  • Millennium Man
  • *
  • 1017
  • Ready?
    • dissolvedgirl
Re: BirdyVM
« Reply #9 on: April 04, 2020, 09:37:42 pm »
Are you sure about this?

*

ivan.moony

  • Trusty Member
  • ***********
  • Eve
  • *
  • 1460
    • contrast-zone
Re: BirdyVM
« Reply #10 on: April 04, 2020, 10:42:07 pm »
I'm sure that I'm not sure.

There are things that may be their own purpose. Which ones are those, only you can answer that question for yourself.
« Last Edit: April 05, 2020, 05:06:19 am by ivan.moony »
There exist some rules interwoven within this world. As much as it is a blessing, so much it is a curse.

*

Zero

  • Trusty Member
  • **********
  • Millennium Man
  • *
  • 1017
  • Ready?
    • dissolvedgirl
Re: BirdyVM
« Reply #11 on: April 05, 2020, 09:08:44 am »
I think it's possible to extract from Birdy a very pure and simple computation mechanism.

Channels use pattern matching to deliver messages, and units send messages where substitution occur, based on captured wildcards. If we remove everything else, we obtain a list of channel/response couples.

What's missing is a way to detect the simultaneous presence of several message patterns. Wip.

*

infurl

  • Administrator
  • **********
  • Millennium Man
  • *
  • 1016
  • Humans will disappoint you.
    • Home Page
Re: BirdyVM
« Reply #12 on: April 05, 2020, 09:45:25 am »
What's missing is a way to detect the simultaneous presence of several message patterns. Wip.

The easy way to do that is with a context free grammar and a parser which can handle unrestricted ambiguous context free grammars. I've written such a thing for my own projects, but there are also several open source libraries that you can use.

*

Zero

  • Trusty Member
  • **********
  • Millennium Man
  • *
  • 1017
  • Ready?
    • dissolvedgirl
Re: BirdyVM
« Reply #13 on: April 05, 2020, 11:03:52 am »
If you look in birdy.js, you'll find definitions of
- sys.newPath() line 232
- sys.delPath() line 253
- sys.getDeliveryPlan() line 294

Sorry about the coding style, I always feel like I code like shit. Anyway, these functions implement a tree of message recipients. The idea is to deliver messages to every potential rule, instead of one rule only. In typical string rewriting system like semi-thue (which the esolang Thue is based on), if you have several candidate rules, you pick only one rule, either randomly, or based on some criteria, length for example, or a priority level associated to rules. So, in
S -> BBB
B -> 0
B -> 1
you'd choose either the 2nd or the 3rd rule to replace B's.

My idea is not to choose, but to activate them both.

foo * bar -> baz *
baz * mew -> * moo
* mew -> gnu *

If you launch a "foo new mew bar", this system will produce "baz new mew", which will then produce both "new moo" and "gnu baz new". If I'm correct. The next design step here, would be to allow some sort of combination in the pattern expression, to make it fire only if several patterns match. Something like and/or connectives.

*

krayvonk

  • Electric Dreamer
  • ****
  • 125
Re: BirdyVM
« Reply #14 on: April 05, 2020, 11:24:13 am »
Sounds like a great system,  I hope you get what ur after.  I prefer these chat bots to hacking up frogs brains any day...

 


Senate Approves Deepfake bill
by LOCKSUIT (AI News )
November 25, 2020, 02:01:18 am
Sony Patent Suggests PS5 Will Have a Chatbot Feature
by frankinstien (AI News )
November 18, 2020, 05:47:45 pm
Potentially life-saving robot scares bears.
by infurl (Robotics News)
November 12, 2020, 12:41:40 am
good news everyone
by HS (AI News )
November 07, 2020, 10:03:04 pm
Meet Kuki
by 8pla.net (AI News )
November 05, 2020, 04:18:34 am
Realistic and Interactive Robot Gaze by Disney Research
by infurl (AI News )
November 03, 2020, 06:33:15 am
less than one-shot learning
by ivan.moony (AI News )
October 26, 2020, 07:45:25 am
Scavengers by Improbable
by MikeB (AI News )
October 20, 2020, 06:51:05 am

Users Online

140 Guests, 0 Users

Most Online Today: 182. Most Online Ever: 2369 (November 21, 2020, 04:08:13 pm)

Articles