a) confirm context of the speaker (link to conversation context/history) - can just assume one user for now (it's probably an optional feature we'll not add for a long time - always just assume the given speaker is the only person in the universe)
a1)
>> arko
>> [name=Ed] [color=red]
>
>> yes, who am I speaking with?
>> [name=arko][color=blue]
>
>> It's Ed
>> [name=Ed] [color=red]
>
>> hi Ed
>> [name=arko][color=blue]
a2)
>> arko
>> [name=Ed] [color=red]
>
>> yes, who am I speaking with?
>> [name=arko][color=blue]
>
>> It's ok
>> [name=Ed] [color=red]
>
>> hi ok
>> [name=arko][color=blue]
>
>> no, my name is Ed
>> [name=Ed] [color=red]
>
>> oh ok, hi Ed
>> [name=arko][color=blue]
> Notes (Karl): makes me think about my model idea - the computer needs to have some kind of representation of 'what is going on', e.g. "someone is trying to talk to me" or "someone wants something from me".
> state changes: `nothing happening` -> `someone is trying to talk to me` -> `ed is trying to talk to me`. and with each state we can have an action... or an interaction with a state and an event, so `nothing happening` + `sound` = `check if someone is trying to talk to me`. perhaps we can write everything in terms of ... interactions between states? maybe there is a `nothing has happened in 60 seconds` state, and then that with `sound playing` state produces the `check if someone is talking to me` state... then we can react to that, like "arko: oh, i thought you were trying to talk to me"
---
b) Now that that's out of the way, here's some kind of purchase assistant
b1)
>> I want to buy something
>> [name=Ed] [color=red]
>
>> ok. what do you want to buy?
>> [name=arko][color=blue]
>
>> shoes
>> [name=Ed] [color=red]
>
>> ok. what kind of "shoes"?
>> [name=arko][color=blue]
>
>> red ones
>> [name=Ed] [color=red]
>
>> "red" "shoes"?
>> [name=arko][color=blue]
>
>> yes
>> [name=Ed] [color=red]
:::info
arko googles "buy red shoes", goes to a bunch of sites and finds that there are a bunch of filters you can usually use - "size" is a filterable part of most of the page hits, so "size" seems like info arko needs :mega:
:::
>> what is the "size" of the "shoe" you need?
>> [name=arko][color=blue]
>
>> size 9 UK
>> [name=Ed] [color=red]
>
:::info
arko uses "9 uk" as the filter in the above sites and generates a bunch of images of relevbnt shoes :mega:
:::
>> "size" "9 uk" "red" "shoes". ok - I've found these <images> - do you like any?
>> [name=arko][color=blue]
>
>> 4, 5 and 17 are ok
>> [name=Ed] [color=red]
:::info
arko google image searches shoes that look like those shoes using some off the shelf tin eye like search :mega:
:::
>> ok - I've found more shoes that look like those. <images>
>> [name=arko][color=blue]
>
>> 8 is outragous and mad, that sounds great
>> [name=Ed] [color=red]
>
>> do you want to buy 8?
>> [name=arko][color=blue]
>
>> No. I want to buy 6
>> [name=Ed] [color=red]
>
>> you want to buy 6. ok - I'll search for the best deal and add it to your basket
>> [name=arko][color=blue]
:::info
arko searches for the best deal on said shoes, etc.. :mega:
:::