Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Document project philosophy #66

Open
masaeedu opened this issue Dec 19, 2022 · 1 comment
Open

Document project philosophy #66

masaeedu opened this issue Dec 19, 2022 · 1 comment

Comments

@masaeedu
Copy link
Member

masaeedu commented Dec 19, 2022

It'd be good to explain the high level "philosophy" of this project in the README. I think this can be boiled down to the idea that chat bots and the servers they speak to are dynamical systems, and can be fruitfully modeled using coalgebras.

This library aims to provide a number of tools for working with bots-and-servers-as-coalgebras:

  • composition operations for building up bots and servers
  • mapping operations for adjusting the input/output interfaces of bots and servers
  • serialization disciplines that allow bots to cooperate when interacting with a textual server
  • a testing framework for validating interaction sequences with composite bots
  • a generic state serialization mechanism for bots
  • (eventually) "focusing" combinators that use optics to lift simple-to-write bots which are fixated on some tiny input/output language into broader conversations
  • (eventually) a typed wire protocol and packaging format for bots themselves, so that they can be implemented language-agnostically and distributed, and nevertheless composed and adapted in the ways we currently support
@solomon-b
Copy link
Member

This is a great idea. I'll try sketch out a draft updated readme next week.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants