valueflows / forum.valueflo.ws

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

Clarifying vf:Action for HoloREA #124

Closed bhaugen closed 4 years ago

bhaugen commented 5 years ago

Maybe this should be in another repo dedicated to EconomicEvent, but that repo does not exist yet, and issue #57 is closely related.

In ValueFlows UML... ValueFlows UML ...Action appears to have one and only one attribute, rdfs:label. This is not enough. Action needs to specify at least what is the intended effect on Resources. And I think it would be good to at least suggest a set of Actions that would suffice for most purposes, while allowing for community-specific changes and extensions.

In the Vocabulator, I added a resource_effect field, copied from NRP:

RESOURCE_EFFECT_OPTIONS = (
    ('increment', _('Increment')),
    ('decrement', _('Decrement')),
    ('none', _('None')),
)

@python_2_unicode_compatible
class Action(VocabBase):
    """
    vf:Action:
    https://valueflows.gitbooks.io/valueflows/content/specification/generated-spec.html#d4e688
    """
    label = models.CharField(_('label'), max_length=255, blank=True, null=True)
    note = models.TextField(_('note'), blank=True, null=True)
    resource_effect = models.CharField(_('resource effect'),
        max_length=16, choices=RESOURCE_EFFECT_OPTIONS)

In NRP, Actions are called EventTypes, and have become fairly elaborate, following Sensorica's requirements. This does not mean that either HoloREA or ValueFlows vocabulary need to do all of those, but HoloREA will need to build in some Actions, and the NRP ones have all worked in some years of experience.

In NRP, the RESOURCE_EFFECT_OPTIONS include:

(
    ('+', _('increase')),
    ('-', _('decrease')),
    ('+-', _('adjust')),
    ('=', _('no effect')),
    ('<', _('failure')),
    ('+~', _('create to change')),
    ('>~', _('to be changed')),
    ('~>', _('change')),
)

The options with "change" in their label are used for processes where the same resource is both an input and an output, like fixing a bike or editing a translation.

NRP has a set of automatically-created EventTypes, all of which are used by Sensorica. I do not suggest anybody use these without rethinking. Some of them were improvised and should be rethought. But they are an example of the full set of actions that one active network needed.

(Edited to conform to @fosterlynn 's corrected list below, which means that her comment that "Many of those are no longer valid in Sensorica's NRP"...etc might not make total sense anymore, but it does for people who saw the first version of my comment. I'd like this comment to still be useful.)

bhaugen commented 5 years ago

The Actions I implemented for the Vocabulator are

Refresh was used in this model which I created for a Category Theory class: http://valueflows.pythonanywhere.com/vocab/egg2worm-flow/

I think both use and work should be rethought for VF and maybe also for HoloREA. See also https://github.com/valueflows/resource/issues/51

fosterlynn commented 5 years ago

NRP has a set of automatically-created EventTypes, all of which are used by Sensorica. I do not suggest anybody use these without rethinking. Some of them were improvised and should be rethought. But they are an example of the full set of actions that one active network needed.

Many of those are no longer valid in Sensorica's NRP, were superceded by exchange and transfer type definitions. Here is a current list. And some of these I'm pretty sure never were used and would be better done a different way. And.... don't use these for VF based Actions, some of them have been renamed and some won't be valid for VF.... Continued evolution.....

fosterlynn commented 5 years ago

Action appears to have one and only one attribute, rdfs:label. This is not enough. Action needs to specify at least what is the intended effect on Resources.

Yes, not enough probably. But the actions in VF do inherit from vf:increment and vf:decrement (or neither), at least for the rdf version. Here is that list in case it is a helpful contrast. (For non-rdf versions, I think we will need to add the resource effect property.)

vf:increment  a                vf:Action ;
        rdfs:label          "increment" .

vf:decrement  a                vf:Action ;
        rdfs:label          "decrement" .

vf:unload  a                vf:Action ;
        rdfs:label          "unload" ;
        rdfs:subPropertyOf  vf:increment .

vf:load  a                vf:Action ;
        rdfs:label          "load" ;
        rdfs:subPropertyOf  vf:decrement .

vf:consume  a                vf:Action ;
        rdfs:label          "consume" ;
        rdfs:subPropertyOf  vf:decrement .

vf:use  a                vf:Action ;
        rdfs:label          "use" .

vf:work  a                vf:Action ;
        rdfs:label          "work" .

vf:cite  a                vf:Action ;
        rdfs:label          "cite" .

vf:produce  a                vf:Action ;
        rdfs:label          "produce" ;
        rdfs:subPropertyOf  vf:increment .

vf:accept  a                vf:Action ;
        rdfs:label          "accept" .

vf:improve  a                vf:Action ;
        rdfs:label          "improve" .

vf:give  a                  vf:Action ;
        rdfs:label          "give" ;
        rdfs:subPropertyOf  vf:decrement .

vf:receive  a                vf:Action ;
        rdfs:label          "receive" ;
        rdfs:subPropertyOf  vf:increment .
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/124.

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