Flows

Flows come as fundamental construct in ValueFlows ontology. When put in chronological order, they form a progression:

  1. Intents which can lead to Commitments
  2. Commitments which can lead to Economic Events

Intent

Intents describe potential future events which have not been agreed to by other agents. Intents are often used for discovering another agent to participate in a desired event. On the process side, for example, planned work could be an Intent, but planned work that some agent committed to is a Commitment.

Commitment

Commitments describe potential future events which the involved agents already agreed to pursue. Commitments can be considered contractual promises from one agent to another. Commitments are "mirrors" of economic events, and Economic Events can fulfull Commitments. Commitments can satisfy Intents.

Economic Events

Economic Events describes past events, something observed, never some potential future event. They can fulfill Commitments or satisfy Intents (when there is no Commitment).

Claims

Claims resemble commitments, but are initiated by the receiver, not the provider. An economic event can trigger a reciprocal claim. Claims do not have to be instantiated, often they can be implied from an economic event and an agreement.

Timeline, plans and observations

Figure below shows that Economic Events have to be observed and for that reason only appear as records of the past. Future plans get represented with Intents and Commitments.

flows

Matching Intents

Often agents will start their plans independently and record their initial intents. Later once they make a Commitment with other agent, it will represent a specific shared part of their plans. For that reason any Commitment can result in Satisfaction of providing agent's Intent as well as Satisfaction of receiving agent Intent.

matching

Granularity

Intents, Commitments, and Economic Events can occur at any granularity that is needed or for which data can be obtained. So they primarily are used for all operational needs, but can also be used at higher levels for analytical and high level planning needs for communities or regions, for example.

Intent-Commitment-Event

Actions

All flows use an action property to designate what the flow is doing and how it will affect an economic resource (or not). Actions are defined as follows.

  • vf:produce - new resource created in that process or an existing stock resource added to
  • vf:use - for example a tool used in process, after the process, the tool still exists
  • vf:consume - for example an ingredient composed into the output, after the process the ingredient is gone
  • vf:cite - for example a design file, neither used nor consumed, the file remains available at all times
  • vf:work - labor power towards a process
  • vf:load - transported resource enters the process, the same resource will appear in output with vf:unload verb
  • vf:unload - transported resource leaves the process, the same resource will appear in input with vf:load verb
  • vf:accept - in processes like repair or maintentance, the same resource will appear in output with vf:modify verb
  • vf:modify - in processes like repair or maintentance, the same resource will appear in input with vf:accept verb
  • vf:service - new service produced and delivered (being a service implies that an agent actively receives the service
  • vf:give - give rights and responsibilities for the resource
  • vf:receive - receive rights and responsibilites for the resource
  • vf:raise - adjusts a quantity up based on a beginning balance or inventory count
  • vf:lower - adjusts a quantity down based on a beginning balance or inventory count
Action Affect I/O Changes existence Pairs with
produce Increment Output Yes N/A
consume Decrement Input Yes N/A
use No effect Input No N/A
work No effect Input N/A N/A
cite No effect Input No N/A
load Decrement Input No unload
unload Increment Output No load
accept No effect Input No modify
modify No effect Output No accept
service No effect either Yes N/A
give Decrement Input No receive
receive Increment Output No give
raise Increment N/A N/A N/A
lower Decrement N/A N/A N/A

We have defined a core set of actions, but expect that this will be extended with others. If extended, they should be defined as part of this or another formal vocabulary so that all can use them and assume the same meaning.

Temporary note: The actions use and work are time-based actions, either with or without an explicit schedule. How to handle time-based resources is still under discussion.

Examples

# Example: Intent - satisfied by - Commitment - fulfilled by - EconomicEvent

'@context':
  - https://git.io/vf-examples-jsonld-context
  - bob: https://bob.example/
    mfg: https://manufacturer.example/

'@id': rgh:valueflows/valueflows/master/examples/fulfill-satisfy.yaml
'@graph':

  # A manufacturer makes a plan that includes an intent for some work which 
  # they want someone in their network to commit to doing on Oct. 14 - 15

  - '@id': mfg:e1721a61-cd47-4556-84b9-8b1b81da15bf
    '@type': Intent
    action: work
    receiver: https://manufacturing.example/
    resourceClassifiedAs: https://www.wikidata.org/wiki/Q192047 # machining
    intendedQuantity:
      qudt:unit: unit:Hour
      qudt:numericValue: 8
    intendedTime:
      '@type': time:ProperInterval
      time:intervalStarts:
        '@type': time:Instant
        time:inXSDDateTimeStamp: 2018-10-14T8:00:00-0:00
      time:intervalEnds:
        '@type': time:Instant
        time:inXSDDateTimeStamp: 2018-10-15T18:00:00-0:00

  # Bob commits to doing the work on Oct. 14

  - '@id': mfg:02b39a30-3e04-4305-9656-7f261aa63c84
    '@type': Commitment
    action: work
    provider: https://bob.example/
    receiver: https://manufacturing.example/
    resourceClassifiedAs: https://www.wikidata.org/wiki/Q192047 # machining
    committedQuantity:
      qudt:unit: unit:Hour
      qudt:numericValue: 8
    committedTime:
      '@type': time:ProperInterval
      time:intervalStarts:
        '@type': time:Instant
        time:inXSDDateTimeStamp: 2018-10-14T8:00:00-0:00
      time:intervalEnds:
        '@type': time:Instant
        time:inXSDDateTimeStamp: 2018-10-14T17:00:00-0:00


  - '@id': mfg:b52a5815-fae9-43bf-be95-833b95dc0adb
    '@type': Satisfaction
    satisfies: mfg:e1721a61-cd47-4556-84b9-8b1b81da15bf # the intent
    satisfiedBy: mfg:02b39a30-3e04-4305-9656-7f261aa63c84 # the commitment
    satisfiedQuantity:
      qudt:unit: unit:Hour
      qudt:numericValue: 8

  # Bob does the work in two 4-hour shifts on Oct. 14

  - '@id': mfg:d4d2fd71-34f2-41c3-b1c5-19ad5ed2da59
    '@type': EconomicEvent
    action: work
    provider: https://bob.example/
    receiver: https://manufacturing.example/
    resourceClassifiedAs: https://www.wikidata.org/wiki/Q192047 # machining
    affectedQuantity:
      qudt:unit: unit:Hour
      qudt:numericValue: 4
    hasBeginning: 2018-10-14T8:00:00-0:00
    hasEnd: 2018-10-14T12:00:00-0:00

  - '@id': mfg:6f438393-7f87-4914-806c-e23a4fd15e89
    '@type': Fulfillment
    fulfills: mfg:02b39a30-3e04-4305-9656-7f261aa63c84 # the commitment
    fulfilledBy: mfg:d4d2fd71-34f2-41c3-b1c5-19ad5ed2da59 # the economic event
    fulfilledQuantity:
      qudt:unit: unit:Hour
      qudt:numericValue: 4

  - '@id': mfg:c7897c39-7f05-4a5d-a487-80e130a2414b
    '@type': EconomicEvent
    action: work
    provider: https://bob.example/
    receiver: https://manufacturing.example/
    resourceClassifiedAs: https://www.wikidata.org/wiki/Q192047 # machining
    affectedQuantity:
      qudt:unit: unit:Hour
      qudt:numericValue: 4
    hasBeginning: 2018-10-14T13:00:00-0:00
    hasEnd: 2018-10-14T17:00:00-0:00

  - '@id': mfg:0f563083-8da4-46fe-adc3-68b05ba06320
    '@type': Fulfillment
    fulfills: mfg:02b39a30-3e04-4305-9656-7f261aa63c84 # the commitment
    fulfilledBy: mfg:c7897c39-7f05-4a5d-a487-80e130a2414b # the second economic event
    fulfilledQuantity:
      qudt:unit: unit:Hour
      qudt:numericValue: 4

results matching ""

    No results matching ""