Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Resource Type subclasses #10

Closed
bhaugen opened this issue Dec 20, 2014 · 3 comments
Closed

Resource Type subclasses #10

bhaugen opened this issue Dec 20, 2014 · 3 comments

Comments

@bhaugen
Copy link
Contributor

bhaugen commented Dec 20, 2014

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.

@bhaugen
Copy link
Contributor Author

bhaugen commented Dec 20, 2014

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).

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

@bhaugen
Copy link
Contributor Author

bhaugen commented Dec 21, 2014

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).

@ahdinosaur
Copy link
Member

closing in favor of https://github.com/valueflows/resource/issues/4.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants