Coder Social home page Coder Social logo

valueflows / valueflows Goto Github PK

View Code? Open in Web Editor NEW
133.0 31.0 24.0 192.96 MB

valueflows repo has moved to https://lab.allmende.io/valueflows/valueflows

License: Creative Commons Attribution Share Alike 4.0 International

Shell 0.19% JavaScript 0.67% CSS 0.01% HTML 99.13%

valueflows's Introduction

Valueflows vf vocabs

Valueflows icon

Here is the current release spec, which also includes concepts: https://valueflo.ws/

Some specific links of interest for devs:

  • Classes and Properties. This is the standard specification format, which includes the VF namespace only. (We have tried to re-use other vocabularies when we can.) For a view of the whole model with references to the vocabularies used, see this diagram.
  • Other Namespaces/Terms. This references the other vocabulary elements that are also necessary for a complete value flows economic model.
  • RDF Reference This is the "turtle" file that is the system of record source for the specification. It includes only the VF namespace.
  • GraphQL Reference. This is actively used, and maintained mostly by the projects using it. It includes the whole vocabulary.
  • JSON-schema Reference. This is out of date, but will be updated upon request if a project wants to use it. It includes the whole vocabulary.
  • Procedures for moving changes to the website.

If you would like to be part of the Valueflows conversation, please raise an issue here, or fork this or any of the related repositories and issue pull requests. You can also pop into our welcome matrix chat to make comments, ask questions, or introduce yourself!

Also please visit the matrix chat if you have difficulty accessing the gitlab repositories! There have been closures due to spam that may affect your ability to register.

License

Creative Commons License
This vocabulary and documentation is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.

Domain info

The domain name valueflo.ws is registered at gandi.net. The people with access currently are Lynn Foster and elf Pavlik. The registration is paid through 2027-10-01.

valueflows's People

Contributors

ahdinosaur avatar almereyda avatar bhaugen avatar connoropolous avatar djodjoni avatar elf-pavlik avatar elioqoshi avatar fkleedorfer avatar fosterlynn avatar hoijui avatar nogo10 avatar orthecreedence avatar pmackay avatar stevebosserman avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

valueflows's Issues

update README to match rename / restructure / overview

per #23 (comment), i renamed this repo to valueflows/valueflows, to act as our "home repo" for this org.

i reckon we should update the README to:

  • reflect the "OpenVocab" -> "Value Flows" rename
  • provide an overview of the project (pretty much done, maybe needs an update?)
  • provide links to each vocab repo (so far), namely agent, resource, process, and exchange

thoughts? anyone (particularly @bhaugen or @fosterlynn) want to tackle this?

Circular economy as focus for VF?

I am thinking about @pmackay 's and @djwesto 's work with the circular economy. I like focusing on these use cases because 1) I think that's where we need to go in all economic work ultimately; and 2) it will challenge the model to be as complete as possible because it creates cycles, which are more difficult to work with in directed graphs. ( @bhaugen has more experience in dealing with cycles in the logic of following value flows, so he can explain this better than I can, if needed.)

So this issue is to start a discussion / brainstorming / get people's thoughts.

And at some point (if you're willing, Paul and Chris), I'd be very interested to hear more about what you have going in your local work and if/how it might make sense to use that in developing VF, and if that VF work can help develop what you are doing now. (I know you are trying to figure that out, and I feel like I haven't understood enough to be necessarily on target. And I haven't even looked at what you have in code now, which I am willing to do if it would be helpful and if you can give some direction into the code. And no worries if this is premature or otherwise unwelcome, let us know and I'll back off!)

Intent (Offer/Request) <-> Resource(Want/Product/Service/Currency)

I create this issue to address common issue with conflating Intent and Resource.

It relates to:

We can see an Intent as an Agent offering/wanting certain Resource.

Responsibility of Resource

  • What exactly or vaguely agent casting this intent offers/wants

Responsibility of Intent

  • On what conditions agent wants to make it happen

Often agent can create many intents for the same Resource. For example offer particular Resource on different conditions in different social circles - eg. borrow a Product to friends but only use-together for everyone.

owl:inverseOf

I will use this issue to explain various nuances of owl:inverseOf

In examples which I added I use only single instance of rdf:Property - vf:member

As I understand @ahdinosaur currently uses in holodex two different properties hdx:hasMember and hdx:isMemberOf. To formalize that they have exactly the same semantics, but only reverse position of rdf:subject and rdf:object in rdf:Statement, one can use owl:inverseOf

I see need to explore those two ways of approaching the issue. As I see it now it may not make major difference when one traverses the graph, but it may complicate querying it by matching graph patterns!

With defining only one property on vocabulary level, both individual and group will have a single way to describe member relations

member

With defining both directions on vocabulary level, we end up in situation where individual and group can describe their relation in 3 different ways!

member-inverse-a

member-inverse-b

member-inverse-c

  1. Please notice that last diagram (using only hasMember) differs from the very first one (member) only by naming of the property/predicate.
  2. While from given individual perspective of given group perspective it may make more sense to use hasMember or isMemberOf in statements. When we describe something from 3rd person perspective, we can choose directions very arbitrary.

TODO explain difference when used with Collections

Meta project content

TODO list for myself, gonna submit these as separate PRs.

also wrote some content in describing Value Flows to @Connoropolous, it's just refinement of existing content, might be worth a few more refinement cycles then merge into the README.md (or not):

  • merged

How would you most succinttly summarize the goals and intentions and short and long term plans of the valueflows space?

the purpose of Value Flows is define a common vocabulary so a lot of alternative economic software projects that are solving different pieces of the same puzzle are able to work together.

our principles for success are:

  1. the vocabulary must support coordinating work between different people in different organizations using different software on different platforms using different human and programming languages.
  2. the vocabulary must track the flows of resources (value) forwards and backwards.
  3. the vocabulary must distribute income (rewards) according to peoples' contributions, regardless of where and when in the network those contributions occurred.
  4. the vocabulary must be fractal: it must support high-level views of networks as well zooming in to lower and lower levels of detail.
  5. the vocabulary must work at the recipe, planning, and accounting levels.
  6. the vocabulary must work for alternative and traditional organizing shapes and economic relationships.

our next deliverable is to have separate API and UI apps playing with each others' people, groups, and relationships in-between by communicating through a common vocabulary.

our long-term plan is to refine our common vocabularies, design a set of interoperable protocols for decentralized economic infrastructure, and deploy an ecosystem of interconnected apps to form the backbone of an alternative economic system that supports recipes, planning, and accounting for fractal networks.

Ingredient, Tool, Skill

I would see distinction between various types of resources/assets which one can use as input for a process.

  • Ingredient - gets consumed during a process
  • Tool - gets used during a process but only wears off by some %
  • Skill - a human capacity which gets used during a process, on contrary to tool it grows / improves when put in use ๐Ÿ˜„

If we define them as sub types of Resource (Asset) expected by Process input/output. We can than easily use any of sub types which can have more specific attributes, for example how much it will wear off or grow when used in process. Actually increasing skill one can see as side effect or even intentional output of a process

@Lars2i what do you think?

See also: valueflows/agent#8 (skills)

Inventory (and sub inventories)

From conversation about what does and what doesn't involve an exchange

If someone works on something (this work goes as input in the process), do you consider it and exchange?
working on something sounds like a Service to me, eg. fixing 3 open bugs which took me 3 hours
for tangible items, i guess whatever happens within a single 'Inventory' doesn't involve an Exchange step, single 'Inventory' in sense of 'owned' by same agent...

No 'Access-Control-Allow-Origin' header causes error in Linked Data Browser

We tried NRP jsonld error in @ahdinosaur 's Linked Data Browser

http://dinosaur.is/linked-data-browser/?focusId=http%3A%2F%2Fnrp.webfactional.com%2Faccounting%2Fagent-jsonld%2F

focus @id:
http://nrp.webfactional.com/accounting/agent-jsonld/

we get this error:

Fetch API cannot load http://nrp.webfactional.com/accounting/agent-jsonld/. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://dinosaur.is' is therefore not allowed access.

We'll add the required header. This issue is just to record the requirement. This is not a bug in the Linked Data Browser, just in the NRP jsonld feed. (Or so I think...)

Pools of physical resources

In many cases group of resources co-create a particular pool. While sometimes we have intent to offer/want a particular resources, sometimes we just care about any one out of particular pool. Some examples:

Very likely we will need to model such pools of resources and logs of accessing them.

Resource Type subclasses

As discussed in issue #8, Lynn and I have not subclassed Resource and Resource Type in our existing NRP software because we are using a relational database and the available subclassing options are all ugly.

However, openvocab/ovn does not have the same constraints, and subclassing is an easy option.

In that other issue, we also discussed subclasses of Resource and Resource Type that have very different behaviors, such as money, human labor and energy.

So what subclasses of Resource Type would be useful? And would they also require subclassing Resource, or would Resources be handled sufficiently by subclassing Resource Types?

@elf-pavlik had a bunch of ideas about subclassing money. I have some ideas about subclassing human labor. I also have some ideas about subclassing stuff like tools.

This issue is focused on discussing all of those questions.

Resource Type behaviors

harvested from #10.

@bhaugen:
Here are some of the behavior quirks of tools and equipment, at least as they relate to processes:

Common behavior as output, different behavior as input: You can make tools, so as an output, tools behave like any other manufactured product. But as an input, they behave differently: they are used, but not consumed (unless you count a little wear and tear).

Different units for input and output: Equipment units of measure differ depending on whether they are an input or an output. As an input, their use might be measured in hours or some other unit of use. > As an output, they are usually measured in eaches (by count).

Available by schedule in addition to count: To inventory tools, you might want a count (how many of that tool do we have on hand). But when it comes to availability, tools are different from (for example) nuts and bolts or apples. Availability of tools not only depends on the count but on the time you want to use them.

For example, Sensorica has a 3D printer. You must schedule its use. So its availability might be managed by a resource scheduling app.

Maintenance process input resource = output resource: Equipment also requires maintenance. Machine maintenance is one of the cases where the input resource to a process is also the output resource: the machine comes in needing repairs, for example, and maybe some replacement parts. It comes out repaired with some new parts.

Access rules: A machine will often have some natural constraints on who can use it effectively without damage, which might be enforced by those responsible for maintenance.

Work spaces have some (but not all) of the same behavior differences (for example, the Sensorica lab).

Food also has some quirks as an Economic Resource Type, especially perishable food, which has an edible life beyond which it becomes compost.

Food also has seasonal rhythms of planning, planting, growing, harvesting, and storage. Manufactured products these days often use "just-in-time" planning, driven by demand. Food has its own timing, which does not care about what is just in time for you, and it is at least partly driven by supply (as in, the food is ready now, we need to do something with it).

This is not an exhaustive list of the behavior differences of tools, just a starter.

Next video call: every 2 weeks Sunday at 20:00:00 UTC

we had our first video call earlier this week, minutes are here, where we agreed that our first deliverable is to have separate API and UI apps playing with each others' people, groups, and relationships in-between by communicating through a common data format.

there's a private email thread about scheduling the next meeting, since we agreed to try having a meetup every other week. i'm bringing this conversation here so more people can be involved. (/cc @valueflows/members @almereyda @Connoropolous @acorbi)

current known availability:

@fosterlynn: Bob and I are available 7am to 9pm CDT (UTF-5), and could do earlier. And
maybe later if really necessary.

@elf-pavlik 6:00-20:00UTC... i can stay up bit later as well :)

@ahdinosaur: at the moment, i have Monday and Friday roughly open for my open source
work (Holodex and Value Flows), i'm currently contracting (and organizing 2 weekly evening meetups) Tues, Wed, Thurs, and i also want to sleep in on my weekends.

the time that fit all these timezone constraints was to start at 20:00UTC and end before 22:00 UTC: http://www.timeanddate.com/worldclock/fixedtime.html?iso=20151004T20.

the current discussion is around picking a day, since Bob and Lynn can't make the previous day. i'm flexible, since most of my work (all except meetings or evening meetups) is actually independent of datetime (i just attempt at structure but usually fail).

Our github workflow

I'd like to reconsider our workflow. And just so y'all know: this is the first project I have used pull requests, Bob and I just branch (or not) and merge. So I'm learning.

I thought we were doing a fork and pull request work flow, although I might have completely misunderstood. Last time I had to re-fork because I couldn't sync the upstream because history had been changed. I think Mikey is branching and issuing pull requests from the branch. This seems like it would be a lot easier than what I am doing!

I would suggest we all to do the branch and pull request work flow. Thoughts?

Reference: http://scottchacon.com/2011/08/31/github-flow.html

Next steps 2015-10-15

Question asked in https://github.com/valueflows/valueflows/issues/55#issuecomment-148491552

I tried a feeble answer, but hope other people will help. And the answer might depend on where you are coming from.

For example, for the active participants in the project, we are focused on getting the first cross-project connections up and running, using the agent-organization vocab. You might fit nicely into that. My personal want is for the stuff that @fosterlynn is putting out from NRP instances to be visualized in Holodex. And we got at least one nagging technical issue to solve. We have a meeting next Tuesday, which all are welcome to attend.

For the project's external relationships, Lynn and I have been trying to get representatives from some other networks to join up: for example, the Mutual Aid Network, where we have at least a verbal commitment to help with the intents vocab.

For the 'collaborative software consortium', your guess is better than mine.

The Impact Economy participants are figuring out what they do next, which may or may not intersect with ValueFlows.

For people who have not yet joined the project, please jump in and we'll figure it out.

Faceted Classification

from the valnet core model

# I see a lot of implementations of Faceted Classification
# in different semantic web formats.
# We should pick one.
# For some of the difficulties, see http://www.webpages.uidaho.edu/~mbolin/putkey.pdf
*Facet:
"Used with FacetValue to classify ResourceTypes."
    name = text
    description = text


*FacetValue:
"Used with Facet to classify ResourceTypes."
    facet = reference to Facet
    value = text
    description = text


*ResourceTypeFacetValue:
    resource_type = reference to EconomicResourceType
    facet_value = reference to FacetValue

@id vs. url

I should clarify my current use of @id vs url

Many platforms nowadays separate their API and web pages eg.

Data Presentation
http://graph.facebook.com/ http://facebook.com/
https://api.github.com/ https://github.com/
https://api.twitter.com/ https://twitter.com/

Besides that Linked Data deals with an issue, which many people find very tricky httpRange-14

Schema.org tends to use url and still doesn't make it clear how it relates to @id schemaorg/schemaorg#410

As you can find in examples elf-pavlik & hackers4peace, I use graph. subdomain for @id (~API) and top level domains for url. This way people can follow url and use standard browser which requests text/html. While 'smart clients' can follow @id and content negotiate for application/ld+json or text/turtle. In my case I will use 'httpRange-14' compliant pattern and use HTTP 303 redirect from @id to url for text/html, similar @id + ".jsonld" for application/ld+json and @id + ".ttl" for text/turtle

I will provide more explainations soon, but I see interesting possibility of using this pattern. In practice top level domain will act as one of rendering proxies to present data stored on graph. subdomain. Some more explanations available here: solid/solid-spec#20 (comment)

@ahdinosaur do you plan to support content negotiation application/ld+json (MUST) and text/turtle (MAY) for values which you use for @id?

More details to come...

Broken bike repair issues

Preliminary comments on this use case: https://github.com/valueflows/valueflows/blob/master/use-cases/circular-economy/broken-bike-repair.md

  • I would separate this resource:
    • Daveโ€™s bike shop that provides a repair service
  • into two resources:
    • Dave's bike shop
    • Repair service (which I'll detail out more below)

Dave's bike shop could mean a physical facility (maybe a building or some rooms in a building)
or it could be a business. If it's a physical facility, it is a resource. But it can't do anything like provide repair service, that requires an agent. If it's a business, it's an agent, and can provide repair services.

Otherwise, Dave the person provides the repair service.

The process of repair is really interesting. It is one of those cases where the same resource is both an input (the broken bike) and an output (the repaired bike, but it's still the same bike, but maybe with some new parts).

So I think the process should go like this:

Resource flows

  • Input
    • John gives Dave the bike
    • Dave gets some new parts
    • Dave does some work, applying his repair skills
  • Process
    • Dave repairs bike, using the new parts and his repair skills
  • Output
    • Repaired bike
    • Repair service
  • Exchange
    • Dave transfers the repair service to John, which includes Dave's work and the new parts
      • (Literally, Dave gives John a bill that includes both of those items.)
    • John pays Dave for the repair service

Questions

  • Is this a process of repair or a temporary exchange?
    • The repair is a process, the exchange is for the repair service
  • Is the repair service a property of the shop or a skill of Dave?
    • The repair service is provided by Dave, but includes his work and some new parts
      • (That is, unless the shop is a business, in which case the shop might provide the service, which would include Dave's skilled work.)
    • In either case, the service provider is an agent and the service is a combination, package, or bundle of some work and some parts, all of which are resources. The service itself would be defined by a resource type.

Resources can be instantiated as objects, or may not be worth instantiating as objects. Dave's work would be an input value flow, defined by a resource type (maybe Bike Repair Skills), but would probably not be instantiated as a separate resource. It's more like an implicit resource. Please let me know if that makes sense or needs more discussion or work.

@fosterlynn did a recent service package for 3D printers that was a lot like the bike service package. Maybe she can help detail this out a bit more?

Versioning systems for informational resources

I did a quick repo search and couldn't find anything relevant, so I'm making a quick Issue.

I'm interested in the potential value of versioning systems to value flows accounting for the collaborative development and (when applicable) the use rights for any type of informational resource.

For example, it could theoretically be relevant to specify that someone contributed code to App X version 1.11.03 instead of simply specifying that they contributed code to App X. I doubt that that info would typically be used in calculations (such as determining compensation), but it'd be really good IMO for the info to be available for future reference. (And in theory, the info could be automatically mined from a codebase in version control, such as on github.)

My overall interest in version control is more personal: i.e., I'd like clear version control for all collaborative creative projects.

With that in mind: Semantic Versioning 2.0.0 http://semver.org/ is rigorous. Any opinions?
@elf-pavlik this may be particularly up your alley? I'd appreciate any feedback!

Finishing context creation

I know @ahdinosaur and @elf-pavlik have worked on this, or at least understand how we want to do it. I'm wondering if we could get that working so we can have one combined context to actually use. (I'm trying to get my jsonld data to work round trip, and I think that might be an issue.)

Apologies for asking you to do work! (I haven't the slightest idea how to do it.....)

If you disagree, or just personally don't want to do it in the near term, just let me know! And thanks!!

Or maybe it is done, and I just don't know how to use it, if so, cool!

add few more examples of resources to start working on relationships

In similar selfdogfood spirit as valueflows/agent#29

CreativeWork

Spec

SourceCode

I would propose to keep Resource - sub -> Resource relationships details for later and start with simplest possible cases. I hope ASAP we will get examples with @id / url hosted on at least 4-5 different domains which will allow testing apps getting data from multiple sources, for now via most simple HTTP GET with header "Accept: application/ld+json"

@bhaugen @fosterlynn @ahdinosaur @Connoropolous

Link dumps

I thought we had one of these issues, but don't find it. If so, I'll move this. Credit Holodex @simontegg @ahdinosaur .

The purpose is to stash links that might prove useful later. Does NOT imply that anyone has read the contents, approves, or anything else.

Should we rename conversations for action to conversations for agreement?

I'm connecting to @gcassel 's Agreement-based Organization theme. I think that intents are the bridge between social and economic networks. All the intents I listed in the readme for this repo were about leadups to economic interactions, but you could also have conversations using the same kinds of protocols about forming organizations, or setting organizational rules, or almost any other kind of agreement.

Can't remember if I posted this issue before, but looked in the usual places and did not see it.

selfdogfood proposal

Thinking about how to do some selfdogfooding based on last meeting. This is perhaps not even a proposal yet, just trying to brainstorm what would be interesting and real, and based on code that we have.

  1. Some people record their valueflows time against a process in NRP, we have an instance we can use. Process could be to create Process valueflows vocab.
  2. Some other people record their valueflows time against a process in @elf-pavlik and @samsemilio app that we looked at last meeting. Creates the software.
  3. The output from 2. is cited as input to 1. Will have to find it where it lives. Or could fake that for now if we do 4.
    1. and 2. need to publish their data in json-ld.
  4. We write something similar to @ahdinosaur agent browser that can display (ugly) the value flow, with data from two sources.

Trying to make this small, but actually this could be a lot of work. On the other hand, it resides in the guts of the value flow project.

Another possible selfdogfood use case that resides in the guts would be around exchanges, maybe around circular economy. But I think the process model can be developed more easily than the exchange model, it is more stable right now.

Relationship and RelationshipType

from @bhaugen,

Possible test cases:

But the NRP AssociationType and the ovn/vocab RelationshipType assume
symmetrical relationships, while vocab.org/relationship assumes
asymmetric (one-way) relationships. So to define a symmetric
relationship, they separately define each end (childOf, parentOf).

So they can't tell it's the same relationship, but on the other hand,
we can't define asymmetric relationships like Follower, Like or
Circled.

Do we care? Will we confuse people if our relationship is different
from their relationship?

agrelon.owl contrastingly appears to define both each end of a binary
relationship singly and also the combination:
Combinations are classes:
http://d-nb.info/standards/elementset/agrelon.owl#HasChildParent
Each end is a property, and the properties specify their inverse:
http://d-nb.info/standards/elementset/agrelon.owl#hasChild
http://d-nb.info/standards/elementset/agrelon.owl#hasParent

Very complicated ontology. Also has class and property hierarchies,
and they obviously did not read the memo about type objects...

/cc @fosterlynn

Hard vs loose specs for Offers and Wants and beyond

We met Wednesday with the Madison WI Mutual Aid Network. It was the second session in an ongoing project to define vocabs and protocols for intertrading between different software (Community Forge and Wezer, for example) and different Mutual Aid Networks (Madison and St Johns, Newfoundland, for example).

One interesting aspect of their vocabs is that their Offers and Wants are described much more loosely than so far described in this (OVN) vocabulary.

The OVN vocab, inherited from REA and https://github.com/valnet/valuenetwork, describes resources that flow in networks as Resource Types, which are usually (but not always) described relatively precisely. In commercial exchanges, for example, material resources exchanged are usually described by a Global Trade Identification Number (GTIN).

Offers and Wants in the Mutual Aid Network, on the other hand, are described by plain text, one of some fairly general categories, and some tags.

The organizers of the Mutual Aid Network would prefer somewhat more precision, but more in terms of lists of desired features than one named type that comes with its own definition. It reminded me of Netention.

It also made me think, maybe we should separate out a Resource vocab. Related to (but not the same as) https://schema.org/Product and gr:ProductOrService (both of which are Resource Types in the current OVN vocab). Resource Type would be part of that vocab.

Aside: gr:Individual is GoodRelations new name for "an actual product or service instance", (that is, a Resource). Seems like a uniquely bad name...

Broken bike give away issues

About this use case https://github.com/valueflows/valueflows/blob/master/use-cases/circular-economy/broken-bike-give-away.md, as @elf-pavlik rightly pointed out, there is a useful distinction between the Freecycle group Agent and the medium used to exchange info about things. Does the current entities now look better?

One of the other aspects of this that I'm still puzzling over is the need to define more specific models for different things and how much that could use existing models? E.g. could the Organisation and ContactPoint schema.org models be used to define a Freecycle group and its online presence? If not, what are the problems/concerns?

Subclasses and renaming

I'm thinking about renaming Commitment to Plan (which might communicate better with more people) and subclassing for inputs and outputs as in the diagram on the ovn homepage, so for example:
o vn_subclasses

Same for Events, we'd have:

  • EconomicEvent
    • InputEvent
    • OuputEvent

I think those subclasses will align better with (for example) IPOTables.

Opinions?

Then we will still need to subclass for different input and output behaviors, e.g. consume, use, cite, etc.

This is related to #8 and #10 and visual language.

When does a Resource become a new Resource

Or, what is the definition of "the same resource".

  • For example, if a resource is transferred to a new owner, is it the same resource?
    • If it has a serial number or lot ID, it's the same resource with a new owner.
      • But what if the lot is split and you become the new owner of part of the lot and somebody else becomes the new owner of the other part of the lot. Are they the same resource?
    • But what if it is a bin of flour in the coop grocery and you take some of it home. Is it the same resource?
  • How about if it is moved to a new location?
    • Same sub-questions as a new owner.
  • How about if it is repaired and has a lot of new parts?
  • What if the resource becomes part of another resource?
    • If it has a serial number and can still be identified and detached, it's the same resource.
    • If it's paint, is it the same resource?
  • What if it's a new version of something like software?
  • What other similar questions have you encountered?
  • Is there an ontological category that this issue fits into? Like mereology for part/whole relationships?
    • If there is, will it help to study it? (I can't say that reading about mereology helped me any...)

Explaining the difference between ResourceType and Resource

Excerpts from a Gitter chat:

elf-pavlik 13:27
Q: does it make sense to think in your terminology of ResourceType as ~ class definition and Resource as an instance of this class? - looking at diagrams again https://github.com/valueflows/valueflows#process-oriented-flow
elf-pavlik 13:33
so Resource on reality level would actually mean a particular one /resources/243242
back on resource pattern which one could use in a want, this could work also similar to http://www.hydra-cg.com/spec/latest/triple-pattern-fragments/
bhaugen 13:39
Yes, loosely, ResourceType = class, Resource=instance, but...
some patterns of use of ResourceType:
Family: describing a family of resources, e.g. Herb
elf-pavlik 13:40
looking at diagrams https://github.com/valueflows/valueflows#process-oriented-flow
bhaugen 13:40
Species: describing something more specific than a Family, e.g. Basil
ResourceTypes in practice are a taxonomy
elf-pavlik 13:41
would it make sense to replace Resrouce with /resources/123 and Process with /processes/456 ?
bhaugen 13:41
yes
elf-pavlik 13:42
this way ResourceType could become just Resrouce and ProcessType could become just Process
bhaugen 13:42
No
Need distinction between type and instance levels
Amazon offers ResourceTypes. You order one, you get a Resource.
http://dhen.webfactional.com/accounting/resource-type/14/
elf-pavlik 13:44
https://schema.org/Product has 3 rdf:subClassOf https://schema.org/IndividualProduct | https://schema.org/ProductModel | https://schema.org/SomeProducts
bhaugen 13:44
e.g. Dried Basil, Dried Basil in 2-oz package, etc
schema.org is confused
http://dhen.webfactional.com/accounting/resource-type/81/
http://dhen.webfactional.com/accounting/resource/477/
if Product = ResourceType, IndividualProduct is not a subclass
not if you want it to actually work
elf-pavlik 13:46
what problem do you see with it?
bhaugen 13:47
they are ontologically different
elf-pavlik 13:47
rdf:subClassOf ~= somehow more specific than but still qualifies as
bhaugen 13:47
exactly
an individual resource does not qualify as a type
elf-pavlik 13:48
http://dhen.webfactional.com/accounting/resource-type/81/ (ResrouceType) and http://dhen.webfactional.com/accounting/resource/477/ (Resource) ?
bhaugen 13:48
yes
elf-pavlik 13:48
but Resource has particular instances
bhaugen 13:48
yes
elf-pavlik 13:48
ResourceType not as far as I understand
bhaugen 13:49
depends on what you mean
by instance
elf-pavlik 13:49
a particular one http://dhen.webfactional.com/accounting/resource-type/81/
bhaugen 13:49
that's a particular type
http://dhen.webfactional.com/accounting/resource/477/
that's a particular instance
you can transfer the resource
buy and sell
elf-pavlik 13:50
but instance as IndividualProduct
bhaugen 13:50
eat
can't do any of that with the ResourceType
hard to eat ResourceType
elf-pavlik 13:51
how about https://schema.org/model
bhaugen 13:51
dry, tasteless
model looks like a ResourceType
e.g. a particular model of a car
elf-pavlik 13:51
IndividualProduct - model -> ProductModel
bhaugen 13:51
an instance of that model of a car has a serial number and you can drive it
if you can drive it or eat it or buy it at a store, it's a Resource
the label describes its ResourceType
a Species is analogous to a ResourceType
our cat is analogous to a Resource
an instance of (loosely) Domestic Cat
@elf-pavlik looking again at http://www.productontology.org/#faq
bhaugen 13:56
exactly what I am trying to say here
Unfortunately, you cannot use DBpedia identifiers to indicate class membership, because they have a strange semantics. For instance, the DBpedia entry for "Soldering_iron",
http://dbpedia.org/resource/Soldering_iron
is defined to be an instance (!!) of the class
http://dbpedia.org/class/yago/ElectronicsWorkTools
That means, DBpedia says that the entity is an actual soldering iron, instead of being the topic "soldering iron" or a class.

Assemble / Disassemble

https://github.com/openvocab/process/issues/1#issuecomment-136420374

we should also differentiate ingredients, which lose their identity in the output of the process, from components, which do not lose their identity and can be removed and replaced.

Let's define a use case where we assemble something and disassemble it later in fully reversible way? I think scaffold for construction site makes a nice use case, or maybe even better a geodesic dome like https://twitter.com/thewoodendome currently participating in http://poc21.cc/

@Lars2i do you know people from thewoodendome project or would like to connect with them to describe assemble/disassemble processes to serve as use cases? I also takes various tools like ladders, wrenches etc.

Participation in developer consortium?

I've posted this idea several places, you all probably got it somewhere.... but just in case..... :)

It feels right now like there is some momentum building for getting developers and projects together for infrastructure work for next economy or solidarity economy or solidarity non-economic infrastructure, etc..... valueflows being a big part of this!

Another one is a new tech workgroup coming out of the Impact Economy summit in BC (http://www.impacteconomy.io/). It comes out of media and fundraising, but several of us are determined that it will be a broad consortium to make this stuff happen, and not fall under any fundraising or other umbrella.

Also triggered by @elf-pavlik thoughts on collaborative fundraising somewhere else in this project.

Some starting thoughts:

I think it would be really helpful to create a list and eventually a technical architectural diagram of some sort to depict all the pieces of software and how they fit into the picture. Possible data to include (for discussion):

  • Functionality - maybe with some categorization or tagging?
  • Software layer - like Ethereum is a different layer than Loomio for example
  • What kind of users it supports
  • What kind of operability or integration it supports; or could support
  • Source software
  • Website or contact info
  • State of the software: running code, users, etc.; or in development

Information that could be gleaned:

  • For a group looking for software, what is available, how ready is it
  • For developers, what can we be collaborating on instead of working on the same problem separately
  • For developers, where are gaps that should be filled with new software
  • For developers looking for funding, where are opportunities for joint funding rather than competing for the same funds

Potential principles (for group discussion):

  • Software is open source
  • People are interested in collaborating for a greater ecosystem, not promoting their software as a product over others
  • ??

Process Type taxonomy

Process Types come in a taxonomy, with meta-types and recipe-layer types all over the place.

For example, #2 assembly and disassembly.

Lots of Forming process types: molding, stamping, pressing, etc.

Lots of food process types, like mixing, leavening, fermenting, baking, frying, boiling, steaming, etc.

Baking recipes have their own conventions: e.g. Baker's Percentage.

Lots of chemical process types.

Then in the recipe layer, like IPO tables, we would find application of a meta type to specific input and output resource types.

Like, assemble and disassemble a wooden dome.

Then, a particular instance of assembling a wooden dome at POC21 and then disassembling.

Back to the meta-types: I might have a chance in the near future to work with some manufacturing experts in defining some of them. Will report back.

Making/assembling processes

I like this type of thing to start with, I think it is conceptually the simplest and very concrete. I'm starting a new issue because the original model issue is more broad, as well as old. :)

This reflects use cases:

Will start commenting with suggestions using loosely documented data/vocab, then moving to more rigorous doc. :)

improve repository structure in openvocab orga

https://github.com/openvocab

  • seem not used or needed: membership, role, place, group, person, core
  • ovn - makes sense as general workspace focused on putting all other elements together
  • holodex - rename to agent? while I find it a cool name, for most people it will make no sense. also brings confusion with https://github.com/holodex
  • exchange - makes sense to me as one of ovn sub workstreams, for example IPO tables experiment might ignore this part and focus just on process

Start to model process for discussion

I started to model Process. This is the simplest I could make it for starting a discussion. This is only actuals (no recipe, no plan or commitment). It is only assembly type processes, making things out of other things. And it is missing some properties. But I'm sure there are lots of things to discuss even with this scope! I expect it to be torn apart! ๐Ÿ˜„

(If anyone thinks we should start with something smaller, like ValueFlow (economic event) or EconomicResource, that would be fine too. My thinking was to put those things into something more concrete to think about.)

UML attempt
process_uml

RDF attempt (sort of - I know I need to do some more RDF think on this!)
processrdf

Thinking ahead to some possible questions:

  • A ValueFlow (economic event) needs to reference a EconomicResource or a ResourceType (maybe should be EconomicResourceType? or other name?). It needs the ResourceType if the economic resource is not inventoried for whatever reason.
  • Each subclass of ValueFlow would know its effect on the EconomicResource, e.g. increase, decrease, leave the same.
  • isSubstitutable means any EconomicResource of the same ResourceType can be substituted for any other EconomicResource of the ResourceType.
  • We need a standard unit thingy. I need to go back and study the one @ahdinosaur had a while back....

Model issue: currency unit vs currency resource type

This is a duplicate of this valnet issue, which I will copy and paste here to get a different set of comments. Although you can comment on valnet, too, if you like.

We got currency Units and currency Resource Types whose unit is the currency unit.

For example, in Sensorica, we got Canadian Dollars whose unit is the currency Canadian Dollars.

Something is probably wrong with this picture, but I don't know exactly what it is or how to fix it.

We also have Virtual Account Resources, Economic Events, prices, and other things measured in CAD, so the CAD currency Unit seems to be necessary, and is not always a duplication.

And then we got Payments and other Economic Events whose Resource Type is CAD the Resource Type and whose unit is CAD the currency Unit. So in that case, it is a duplication.

We may need to consult a philosopher...

I can hear @elf-pavlik laughing at this all the way from Europe...but many of us still need to be able to deal with money, unfortunately.

How should we go about this?

Spinoff from #13

@fosterlynn starts with models in something like (but not necessarily) UML. @ahdinosaur started with json-schema code. @bshambaugh in an email suggested starting with "the Ontology builder Protege", but aiming for json-ld. I said I was also aiming for json-ld.

The conversations in Loomio that this project emerged from wanted Linked Open Data. But I am a noob in linked open data land. Lynn is studying the Working Ontologist book via a recommendation from @elf-pavlik.

So can we come to some rough consensus on an approach? Or maybe everybody take their own approach and try to converge?

Separate repo for Resource and ResourceType?

See also #17 (comment) and #23 (comment)

I would like to do this. But do we have enough agreement on resources, and what is and is not a resource, to create one? Should we discuss those questions upfront here, or as issues in a separate resource vocab repo?

For example, we [NRP] consider anything that is an input or output to a process, or transferred from one agent to another in an exchange, to be a resource. That includes material goods, work, money, designs, whatever. All of those would be subclasses of Resource that have different behaviors as inputs and outputs and in exchanges. But one of the benefits of REA as a minimal model is that the base models for processes and exchanges are simple and symmetrical, and composable into resource flow networks (graphs).

But I know some people have philosophical differences about treating money as a resource, and some have reservations about work.

Also, in #23 (comment) , @ahdinosaur says,

it seems "assets" from "Open OS" (which i'm now using as my reference Enspiral
use case for Holodex) would be resources with relationships but no exchanges or processes.

I'm sure those assets have histories and futures: are not static things, but got their relationships with e.g. agents through processes and/or exchanges, and will go on to participate in other processes and/or exchanges. Those events are captured in a conventional accounting systems through journal entries of economic events that may or may not be connected to processes and exchanges in the accounting system, but were so connected in the real world. Everything exists in streams of change, flow, flux, whatever you want to call it.

consistent labelling system across our vocab

as mentioned in valueflows/agent#30 (comment) and valueflows/agent#9 (comment), i think we should aim for a consistent labelling system across all our domains. i'm bringing this issue up here and now so i don't block valueflows/agent#30 and valueflows/agent#31.

features we need in our labels:

possible options:

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.