Ai Dreams Forum

Member's Experiments & Projects => General Project Discussion => Topic started by: Zero on October 01, 2017, 08:07:59 pm

Title: Birdy
Post by: Zero on October 01, 2017, 08:07:59 pm

I'm currently working on a chatbot engine concept. It's in very early stage, but I can share it here with you. (

This is a publicly editable markdown document. Don't hesitate, you can modify it if you think things could be explained better. Be bold!
Title: Re: Birdy
Post by: ivan.moony on October 01, 2017, 09:52:23 pm
Escape block description is truncated.
Title: Re: Birdy
Post by: Zero on October 01, 2017, 10:24:15 pm
Because you can see the text appearing as I type. And I type slooowly.  :)
Title: Re: Birdy
Post by: WriterOfMinds on October 02, 2017, 12:26:04 am
I think your document explains the message protocol reasonably well. I guess what I'd be interested to see added is some more "big picture" material. A chatbot composed of a swarm of smaller agents sounds interesting and novel. What motivated this architectural idea, and what do you see as its advantages? What design strategy might be followed by someone creating a chatbot using this architecture -- i.e. what considerations would enter into the allocation of functionality to different agents, or the selection of pre-built agents from a library? What kinds of messages might agents want to pass to each other? That sort of thing.
Title: Re: Birdy
Post by: Zero on October 02, 2017, 09:39:14 am
Thank you for the feedback, WriterOfMinds. Clean and useful input as always. I'll do my best to include all these elements.

I'm not sure it will be a production-ready tool one day, but it raises interesting questions like: after an initial input effect propagation in the network, how do we concentrate the reaction chain towards a single output reaction.
Title: Re: Birdy
Post by: Zero on October 06, 2017, 09:45:15 am
I'm still working on this baby. There's a lot more material now. So far I like it. I'm almost done with low-level stuff, big picture is coming soon.

I never tried to create a windows app, on the windows store. This project could be a good candidate for this.

Any thought, criticism, typo, ...etc.?
Title: Re: Birdy
Post by: Zero on October 11, 2017, 01:08:23 pm
Here's the list of math operators in Birdy.

    precedence      syntax          name
    ==========      ======          ====
    1               ( x )           grouping
    1               | x |           abs
    2               x!              factorial
    2               ~x              not
    2               -x              unary minus
    2               _x              truncate
    3               x ^ y           power
    3               x V y           root
    4               x * y           mul
    4               x / y           div
    4               x % y           mod

    5               x + y           add
    5               x - y           sub

    6               x < y           smaller       
    6               x > y           larger
    6               x <= y          smallereq
    6               x >= y          largereq
    6               x = y           equal
    6               x <> y          unequal

    7               x & y           and
    7               x \ y           or

    8               x ? y : z       condition

I'm not satisfied with V representing "root"...

EDIT: And... a first message has been published from user to 1 peer in my little draft JS implementation!
Title: Re: Birdy
Post by: Freddy on October 11, 2017, 06:14:34 pm
Great fun making your own language isn't it ?  :)

In ElfScript I decided not to do a lot with maths as it's primarily chat. I might do basic maths.

Are you going to develop an interpreter and in what language to start with ?
Title: Re: Birdy
Post by: Zero on October 12, 2017, 08:37:14 am
:) Yes, definitely a great feeling. It's almost like creating a world!

At the beginning, there was no math at all in Birdy. Then I thought potential users (if any) might miss it. But I want to keep math really not essential, rather a handy tool to have at hand sometimes.

I'm going to develop a little app, targetting browsers, maybe windows store and android. Javascript seems to be a natural choice, since I like this language. PEGjs ( lets you create parser in a few minutes. You can easily make a clean UI with HTML... In short, you can focus on the core concepts. There are interesting components in it: I'll need a efficient wildcard algorithm, a graphmaster-derived algorithm to broadcast messages. Lot of fun!

I'd like to make it look like an old scientific calculator, or an organizer from the 80s. Like the PSION Organizer II ( for instance. On my smartphone, I like apps that mimic these fantastic tools from the past.