-
Notifications
You must be signed in to change notification settings - Fork 7
Description
From living-room created by jedahan : living-room/living-room#37
This has a lot of implications, and i'm looking for feedback if this improves clarity and implementation of working with the living room
-
facts => messages
Moving away from 'facts' has been a goal for a while. -
assert => say
I'm worried that 'say' is a bit ableist, but kinda fits with the casualness of the system -
subscribe => listen
I'm thinking about removing 'select' and just having subscriptions. Right now HTTP is the only stateless way to 'select' something. So like, a listen() over http works just like select does now, otherwise, it will be a subscription -
retract => transform
So I want to allow for consuming subscriptions - that is a thing that does select() and immediately retracts any matching sentences, and optionally emits new messages.
In this case, a retract is just a transform with no messages sent. Maybe transform should be 'consume' and we just have people manually say things in the consume listener.
room.consume(`$animal is scared of mice`, ({ animal }) => {
room.say(`${animal} is unafraid of mice`)
})
high level version, that starts to look a lot like rules in datalog
room.transform(`$animal is scared of mice`, `${animal is unafraid of mice`)
equivalent to retract today:
room.transform(`$animal is scared of mice`)
- sensors/visualizers => speakers, listeners, transformers
I think these become natural, we are reducing the number of new vocabulary people need to learn.
Even just reactions to this issue with 👍 or 👎 will help me judge if this is a step in the right direction