Notes and examples towards a language for declaring action chain patters so that actions can be authenticated and validated when they are posted to a weal card.
Arrows (->) indicate the next state of the weal
Action: new: Create an -> intention weal
new :generative : Create a new intention with the ":generative" property which means that the intention is recreated for each request or offer as needed. This way the same intention can be the parent of many weal cycles.
destroy <weal> (only possible if it has no links) -> null
Actions for Weal Type: Intention:
is_aligned: Declare as co-holder of this intention
is_interested: Declare that another intention or weal supports this intension, that it is wealth for us in the context of this intension.
is_offered: Declare value offered, requests that you are open to
make_request: Enter negotiation -> <interested weal (self)> requests <contract> from <offered weal>
make_proposal: Enter negotiation: -> <offering weal (self)> proposes <contract> to <interested weal>
satisfied: Declare the intention -> completed
cancel: Reverses a declaration of alignment
# self is the counter-party of the offer, the from side who has offered something that is requested now.
Actions for Weal Type: Request:
promise <contractor> agrees to <contract> (Contract includes interested weal and details, must be able to contract to the terms, have capacity to perform and be authorized as <contractor> (user or circle)
counter-offer (counter request with offer at different terms)
# self is the counter-party to the request. Counter-offer and counter request will ping pong between
Actions for Weal Type: Offer:
accept <contract> -> promise
counter-request: (counter an offer with a request at different terms)
Actions for Weal Type: Promise:
satisfied: Declare that <contract> terms are met, the weal action is complete -> satisfied
modify_promise <new contract>: enter negotiation for new terms (change delivery date, costs, etc.)
cancel: Declare that the promise will not be completed. -> default
Actions for Weal Type: Satisfied/Default:
acknowledge <value>: Declares the wealth created or destroyed -> complete
nack: <why> Negative acknowledgement, declares non-acceptance of the completion declaration (satisfied vs. default) back to -> promise
I think the main differences from current FP work is they way intentions are handled. Eric says they already have the idea of :generative for intentions to stay around, so that isn't a real difference.
The way the idea of interested and offers that can link intentions into chains and as decompositions of smaller tasks and goals within overarching global intentions help by many.
The request/offer and promised actions following is from my experience with the Coordinator and I am confident in this design because of that experience. I don't think it is that different than FP weal transitions, but there are some details to work out.
--Gerry.....Thu Oct 22 19:49:21 +0200 2009