valueflows / forum.valueflo.ws

forum.valueflo.ws has moved to https://lab.allmende.io/valueflows/forum-valueflo-ws
3 stars 1 forks source link

Moinho Mesh project - VF mapping #118

Closed fosterlynn closed 4 years ago

fosterlynn commented 6 years ago

I'm moving some ongoing discussion here so other VF participants can chime in if they like. This is a project in Brazil being done by @Luandro using ssb and dat, to wire a village for internet and social / economic interaction. He wants to use VF for this. And there is one other person wanting to use VF with ssb (for processes), so these projects will be the start of implementing VF standard message types in ssb.

The first user story is to get broadband installed. I'll include a picture from Luandro when I resolve a problem I'm having with github. :(

fosterlynn commented 6 years ago

Here's the start of a VF treatment for @Luandro 's use case. I've fudged a few things, and not completed everything. Most fudges are noted I think. I'll finish it if it is helping Luandro.

Recipe (to be figured out)

AgentRelationshipRole: member -- label: 'is member of' -- inverseLabel: 'has member' supplier -- label: 'is supplier for' -- inverseLabel: 'has supplier'

Agent: a community member -- name: 'Alice' -- image: -- primaryLocation: (a reference to a mappable Location object, not defined in VF, let's use something standard) -- note: 'Alice is ....' another community member -- name: 'Bob' -- etc. the telecom operator -- name: 'Brazil Telecom' -- etc. the community organization -- name: 'Moinho Community' -- etc.

AgentRelationship: each community member "is member of" the community organization (or maybe that happens when they pay the share?) -- subject: ref to Alice -- relationship: ref to member role -- object: ref to Moinho Community etc. for each person and the telecom operator

ResourceClassification: House -- label: 'House' or, maybe it is better to have the service of having broadband installation in one's house as the resource classification? Broadband installation (or maybe it needs to be broken down more, not sure - equipment?) -- label: 'Broadband Installation' Broadband service (in some unit - maybe what is installed in one house?) -- label: 'Broadband Service' (the types of work would go here if you were logging processes and work) Broadband community share -- label: 'Broadband Share'

AgentResourceRelationshipRole: (not VF yet, but minimally something like this) ownership -- label: 'owns'

the house EconomicResource: -- name: 'Bob's house' -- currentQuantity: ---- numericValue: 1 ---- unit: 'Each' (actually a reference to a standard unit in a vocabulary, we are currently using QUDT, but may want to switch) -- currentLocation: ref to a Location.... -- note: "Bob's house has plenty of room in the entry way to install broadband." AgentResourceRelationship: (not VF yet, but something like this) -- agent: ref to Bob -- relationship: ref to 'owns' -- resource: ref to Bob's house (In a full value flow, this could have been created by an event(s) when Bob bought or produced his house. But there will always need to be "beginning inventory" when a system starts up.)

a bank account EconomicResource: -- name: 'Alice's bank account' -- trackingIdentifier: '348432783' -- currentQuantity: ---- numericValue: 100 ---- unit: whatever currency is appropriate -- currentLocation: ref to the bank.... -- note: AgentResourceRelationship: (not VF yet, but something like this) -- agent: ref to Alice -- relationship: ref to 'owns' -- resource: ref to Alice's bank account

(Note knowing that Bob is the owner of the house gives the ability to track back to give Bob credit for use of his house if desired. But the whole thing could also be done as a service provided by Bob.)

Listing: (not yet in VF, but something like this - this is the intents) the community offers broadband shares -- name: 'community broadband shares' -- validFrom: -- validThrough: -- note: 'Community members are invited...' -- offer: (a reference to an Intent) ---- action: give ---- provider: ref to Moinho Community ---- resourceClassifiedAs: ref to 'Broadband Share' ---- intendedQuantity: ------ numericValue: 1 ------ unit: 'Share' (or 'Each'?) ---- note: 'A share entitles you to 1 year of.... We have 5 available right now.' -- reciprocalRequest: (a reference to an Intent) ---- action: give ---- name: 'payment' ---- intendedQuantity: ------ numericValue: 25 ------ unit: 'dollars' or whatever is the right one! ---- note: 'Per share. This amount covers the installation of broadband with other community members....' Listing: -- name: 'broadband' -- request: (a reference to an Intent) ---- action: receive ---- provider: ref to Alice ---- resourceClassifiedAs: ref to 'Broadband Share'

each community member commits to pay a share to the community organization, the community organization commits to the share ExchangeAgreement: (this is the commitments at this stage) -- ? (could spell out everything in the contract in general, but this detail is not defined in VF) Transfer: -- under: ref to the ExchangeAgreement -- name: 'Payment' -- note: Commitment: -- inputOf: ref to the Transfer -- action: give -- provider: ref to Alice -- receiver: ref to Moinho Community -- committedQuantity: ---- numericValue: 25 ---- unit: whatever currency is the right one -- committedStart: 2018-10-01 -- note: -- satisfies: a ref to the Intent above, although may be a bit more complicated if a commitment satisfies only part of the intent Transfer: -- under: ref to the ExchangeAgreement -- name: 'Share' -- note: Commitment: -- inputOf: ref to the Transfer -- action: give -- provider: ref to Moinho Community -- receiver: ref to Alice -- resourceClassifiedAs: ref to the Broadband Share -- committedQuantity: ---- numericValue: 1 ---- unit: share (or each?) -- committedStart: 2018-10-01 -- note: -- satisfies: a ref to the Intent above...

the house owner commits to the community organization the service of use of their house for broadband equipment the community organization commits to the house owner to pay something for use of the house (?)

each community member pays for their share to the community organization, which fulfills their commitments EconomicEvent: -- inputOf: ref to the payment transfer -- fulfills: ref to the payment commitment (this is actually a many-to-many to handle partial payments, etc. - but simplifying a bit here for now) -- action: give -- provider: ref to Alice -- receiver: ref to Moinho Community -- affects: ref to Alice's bank account -- affectedQuantity: ---- numericValue: 25 ---- unit: whatever currency is the right one -- start: 2018-10-01 -- note: (this event will decrement Alice's bank account by 25, leaving 75 as its quantity) EconomicEvent: -- outputOf: ref to the payment transfer -- action: receive -- provider: ref to Alice -- receiver: ref to Moinho Community -- affects: ref to Moinho Community bank account -- affectedQuantity: ---- numericValue: 25 ---- unit: whatever currency is the right one -- start: 2018-10-01 -- note: (this event will increment Moinho Community bank account by 25) EconomicEvent: -- inputOf: ref to the share transfer -- fulfills: ref to the share commitment (this is actually a many-to-many to handle partial payments, etc. - but simplifying a bit here for now) -- action: give -- provider: ref to Moinho Community -- receiver: ref to Alice -- affects: could reference an EconomicResource that has only a reference to the share resourceClassifiedBy... probably don't inventory shares, although they could -- affectedQuantity: ---- numericValue: 1 ---- unit: share (or each?) -- start: 2018-10-01 -- note: (this event will create a share with Alice as owner, or could transfer an existing share to Alice, still making her owner) EconomicEvent: -- outputOf: ref to the share transfer -- action: receive -- provider: ref to Moinho Community -- receiver: ref to Alice -- affects: could reference an EconomicResource that has only a reference to the share resourceClassifiedBy... probably don't inventory shares, although they could -- affectedQuantity: ---- numericValue: 1 ---- unit: share (or each?) -- start: 2018-10-01 -- note:

Commitment (all part of an ExchangeAgreement, Transfers): the telecom operator commits to the community organization that they will install the equipment on a date the community organization commits to the telecom operator that they will pay for that

EconomicEvent: the telecom operator installs the equipment, fulfilling the commitment the community organization pays the telecom operator, fulfilling the commitment

bhaugen commented 6 years ago

Luandro's diagram: screenshot from 2018-08-18 10-13-58

elf-pavlik commented 5 years ago

Any updates on this exploration? Actually last few months we also use broadband connection installed in a small town 5km from here. We've setup a wireless bridge and made it available here to couple other bungalows.

In setup above, why do you need a 'Share'? People can't just use the broadband connection or receive a service? Our setup doesn't require us to distribute expense related to electricity used by equipment running 24/7 but I think it also could play role in this scenario.

luandro commented 5 years ago

Heya @elf-pavlik, unfortunately I haven't been able to ship any apps to the community yet. I plan on getting back to work on everything early next year after a pause and better planning.

In our case we need to "share" because the service is too expensive for one person alone to pay for. But that's slowly changing, and I'm on my way now into town to try and find out our options to buy in "bulk" and make our own radio setup from there (~15Km).

Where can I learn more about your experience?

almereyda commented 4 years ago

We have moved the ValueFlows organization from GitHub to https://lab.allmende.io/valueflows.

This issue has been closed here, and all further discussion on this issue can be done at

https://lab.allmende.io/valueflows/forum-valueflo-ws/-/issues/118.

If you have not done so, you are very welcome to register at https://lab.allmende.io and join the ValueFlows organization there.