Birdy

  • 8 Replies
  • 330 Views
*

Zero

  • Trusty Member
  • *******
  • Starship Trooper
  • *
  • 403
  • Fictional character
    • SYN CON DEV LOG
Birdy
« on: October 01, 2017, 08:07:59 pm »
Hi,

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

https://hackmd.io/OwNgrAzATAZgjAQwLSjABiQFgJxwwI2wBM4kYBjcQhGbADjQFMg=?view

This is a publicly editable markdown document. Don't hesitate, you can modify it if you think things could be explained better. Be bold!

*

ivan.moony

  • Trusty Member
  • *********
  • Terminator
  • *
  • 757
  • look, a star is falling
Re: Birdy
« Reply #1 on: October 01, 2017, 09:52:23 pm »
Escape block description is truncated.
Wherever you see a nice spot, plant another knowledge tree :favicon:

*

Zero

  • Trusty Member
  • *******
  • Starship Trooper
  • *
  • 403
  • Fictional character
    • SYN CON DEV LOG
Re: Birdy
« Reply #2 on: October 01, 2017, 10:24:15 pm »
Because you can see the text appearing as I type. And I type slooowly.  :)

*

WriterOfMinds

  • Trusty Member
  • **
  • Bumblebee
  • *
  • 45
    • WriterOfMinds Blog
Re: Birdy
« Reply #3 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.

*

Zero

  • Trusty Member
  • *******
  • Starship Trooper
  • *
  • 403
  • Fictional character
    • SYN CON DEV LOG
Re: Birdy
« Reply #4 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.

*

Zero

  • Trusty Member
  • *******
  • Starship Trooper
  • *
  • 403
  • Fictional character
    • SYN CON DEV LOG
Re: Birdy
« Reply #5 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.?

*

Zero

  • Trusty Member
  • *******
  • Starship Trooper
  • *
  • 403
  • Fictional character
    • SYN CON DEV LOG
Re: Birdy
« Reply #6 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!
« Last Edit: October 11, 2017, 03:06:46 pm by Zero »

*

Freddy

  • Administrator
  • **********************
  • Colossus
  • *
  • 6187
  • Mostly Harmless
Re: Birdy
« Reply #7 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 ?

*

Zero

  • Trusty Member
  • *******
  • Starship Trooper
  • *
  • 403
  • Fictional character
    • SYN CON DEV LOG
Re: Birdy
« Reply #8 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.