Holochain Forum

How does Holo-REA treat 'complete/fully-coherent products' after resources have gone through a recipe?

I’m curious about a usecase. Say I am making a loaf of bread, and it takes 10 steps (events), after which it becomes a ‘coherent product’ or a unit of account. How do you handle this? Or how does REA accounting include the ‘product’, or in other words how does this look in the system, this outcome(?) of a REA accounting chain?

If I’m understanding you correctly then probably it just gets modeled as an output resource on the last process in that set of steps.

REA has evolved over the years to include ‘product’ as part of the core grammar. The model is really two things- an exchange model (from accounting), and an input-process-output model (from production / chemistry / lots of other disciplines).

In the case of events which transform one type of resource into another, we model that as I-P-O. It ends up looking kinda like this:

In terms of the model, in your example case the last step (call it “bake loaf”?) is a process which consumes the dough (as well as consuming electricity, using the oven etc), and produces the bread loaf.

Flow traversal algorithms can then then follow through the events, resources and processes in order to discover the full provenance chain of the bread.


Beautiful, thanks! I love the diagram

Nice explanation, @pospi !

Small clarification: I think this means not that the term ‘product’ is part of the vocabulary, but that it is an ‘economic resource’, the same as the flour, yeast, etc. One agent’s output can be another agent’s input kind of thing, it’s resources all the way down.


Under REA methodology and/or maybe in the Valueflows system, is there a scale that is used to describe/mark how refined a resource/material is?

In other words: different resource flows in the supply chain will have different levels of refinement (according to their blueprint/design) - how would we communicate this clearly in a Valueflows system?

So anything from an ‘alive resource’ (like a tree), to the harvested raw material from that alive resource (logs/wood), to a finished ‘product’ (e.g. a chair, or a CNC machine or a smartphone). Another way to refer to this could maybe be as a (sub-)components/parts of a larger whole. Or maybe they could be seen as ‘dependencies’: e.g. maybe a simple wooden chair needs 2 resources: wood and nails, so it has 2 dependencies. This can fan out in a fractal way.

Nothing about this is new, I am just curious what you think this will look like in Valueflows, and if there are maybe systems/ideas we can take or remix/repurpose from today’s ERP systems.

How important (or not) do you think something like this is?

I’m also thinking about resources that degrade due to wear and tear. Finished products that break can either be taken apart and their components can become inputs again for a new finished product, or hopefully it is carefully maintained/conserved. Especially if it is a product with a modular design, new components can replace any broken parts for as long as possible.

Since capitalist firms do not publish what is inside their products or who produces which parts, or which blueprints/designs they use, ‘consumers’ often cannot take part in the repair, dis-assembly and/or recycling (transforming outputs into inputs). Especially the re-use/repair of today’s complex products is made impossible (hence huge amounts of e-waste are being created daily).

Side note on terminology: I keep referring to these finished resources that are a finished product (for most of it’s lifetime) as products, but is there a term that is better suited for this?

I’m very curious to hear how you have thought about this so far.

ping also @bhaugen


These are great questions I’d also be interested in knowing from an expert as when I read @zeemarx_jeremyboom8’s post my initial thoughts were that the description of “refined” could be a calculated result of other measured indicators, this is not something defined by REA/Valueflows but that’s without checking and just going from what I’ve read.

As for wear & tear, in ‘normal’ accounting I always had an amount each year in my accounts for ‘depreciation of assets’. I’m not sure how different that would/could be, except perhaps a little more ‘correct’ due to more parts of the system being measured.

This is a response to @zeemarx_jeremyboom8 and @stephenbpurkiss

This was one of the first software experiments that @lynnfoster and I did:

They did value-added timber processing: a forester marked up trees to be cut down for woodlot owners who were members of the network. The selection of trees to cut was done in a way that improved the health of the forest instead of the usual clear-cutting. Then they milled the logs into lumber, dried the lumber in a solar kiln, and processes the wood into floorboards and counter-tops that they installed in houses. One of the members also used the scraps to make fancy wooden toilet seats.

Each of the processes that you see on the diagram at that link above, Log, Saw, Dry, Finish, and Install, takes Resources from the previous process and transforms them into different (more refined) Resources as outputs.

Could be put through a repair process or as you mentioned be taken apart into components to be used as inputs to other processes to create different resources. “Taking apart” would be a Valueflows Process where the whole resource would be an input and the outputs would be the components which would be inputs to other processes to create other outputs.

Used to be that auto companies published repair manuals for their cars. I bought a repair manual for my first car, a used 1949 Chevvy, and repaired it myself. I don’t know any auto companies that do that anymore, alas.

“Product” is fine. It’s all Resources to Valueflows, but there’s a user-or-community-defined “Knowledge Layer” of Type Objects such as Resource Specification where you can call some of them Products if you want.

See Type Object · Behavioral Patterns · Game Programming Patterns for more about Type Objects.


OMG! Printed & read the whole book a long long time ago… Never expected to hear a mention of this great book (a must read for programmers of any kind, not just game developers, in my opinion) in a context like this… Enlightened my heart, really, to see its mention… It’s great that you found it useful in your field… :blue_heart:

REA (the ontology that Valueflows is based on, among other influences from many contributors) has had a layer of type objects since at least the 1990’s. The first REA-like system I worked on was written in Smalltalk, where type objects originated.

They will make Holo-REA very flexible. If you want to call a Resource a Product, or a 3d Printer, or a Granny Smith Apple, just give it the appropriate Resource Specification. User-or-community-defined, does not need reprogramming.


A couple additions to @bhaugen 's comments in response to @zeemarx_jeremyboom8 and @stephenbpurkiss :

Important! Valueflows actually has remixed ERP (and its predecessors like MRP), thanks in large part to @bhaugen 's experience and analysis over many years. Where VF goes is to take that kind of planning and production logic to economic networks, beyond the enterprise view. I think it is important because 1) production is where value is created, and thus perhaps the key place we have to do something different than what we do now if we’re going to address this endless growth for the sake of growth, as well as fairness, and 2) a lot of people who are thinking about alternative economic systems tend to focus on exchange only, which is definitely an essential part of the big picture, but very limited without also thinking about production. We need to think about the whole economic cycle. imo :blush:

That makes sense to me, and yes VF allows tracing historical data to have actual relevant knowledge, if the data is open. I also think, without having tried it, that if someone wanted to do a basic straight line depreciation, which would be a lot easier than applying a formula to the data, that we could use an element called ValueCalculation, that isn’t in VF yet, but will be when we have a bit more experience with it. It basically lets you create formulas to calculate “value” of any sort for various purposes, thus far: creating reward tokens based on donations of textiles (part of textile circular economy work in Amsterdam); and part of the “benefit redistribution algorithm” (aka “value equation”) used in contribution economy software.


Beautiful! :blush: I’m slowly learning more about ERP, MRP + NRP systems, so stories and explanations like these (about Bob remixing) are really useful. Thanks for sharing your great insight too, about your desire (for VF) to create/participate in shift(s) in production process(es) especially

1 Like

I had the joy of learning RPG (Report Program Generator, not Role Playing Game unfortunately!) back in 1990 when I followed my dreams of becoming a professional software developer.

Did “work experience” in Jerome’s Mill in Shipley Yorkshire who supplied material for M&S suits where I learned about warps and wefts and wrote basically a spreadsheet program in a database language which operated the machines in a vast satanic feeling mill which used to be filled with people then a company where I’d finished the work they gave me & my team leader said delete that and write it again which was the day I told the company boss some truths. But I did learn about 4GLs & how the dream of the easy app build is still alive today. Then JBA which was one of the big ERP software houses of the day.

That was 30 years before I discovered what ADHD, ASD & PDA are :wink: But I did get a good grounding learning what physical and logical files were, why backup routines are important, and how tragic industry is.