nicholascgilpin / universal-build-tree

An open graph database describing the minimum resources and processes needed to manufacture anything.
MIT License
10 stars 1 forks source link

Request for Comments #1

Open nicholascgilpin opened 2 years ago

nicholascgilpin commented 2 years ago

Are there any changes that should be made to the initial plan before I start coding? It's a startup style quickstart.

The initial plan is to import a bunch of data from cooking recipes (easy to market), build demo display inside a Notebook, and use that as a marketing tool to 10X the volunteer team again.

When there's no time for coding, we can:

nicholascgilpin commented 2 years ago

@oliverevans96 @avianworld @luizeduu @amoffat

amoffat commented 2 years ago

I like the demo project and agree it will be necessary for marketing. Imo, the thing that will make or break this project will be the tooling that volunteers will use to contribute. If it's not incredibly simple for a layperson to contribute, they will bounce away and the marketing momentum will be lost.

I should clarify, these "volunteers" that I'm referring to are the ones who would build out the demo project further. In you original post, I think your "volunteers" refer to engineers that will help scaffold the engine?

uwu64 commented 2 years ago

Hey, I'm more of an electronics engineer without any experience with developing software projects. I really can't contribute much to the code or planning (sorry!)

However I had ideas for recipes for semiconductor fabrication (specific to particular processes) which might be useful to demo some more "advanced" use case. (I would certainly need to do more searching around before I could write content for that)

Another idea.. How to make: Rolled film capacitor

Ingredients: Insulating film (or plastic or any material with sufficient dielectric quality) Conductive sheet (aluminum or any material that's inert and conductive)

Instructions:

  1. Layer a piece of insulating film on top of conductive sheet
  2. Layer another piece of conductive sheet on top of insulating film, making no direct contact and keep enough distance from first conductive sheet
  3. Repeat as desired for increasing capacitance
  4. Optional: roll and attach electrodes for more compact form factor
OliverEvans96 commented 2 years ago

Have you considered using RDF / semantic triples for describing the relationships between nodes?

Also, are you familiar with the ontology editor Protege?

OliverEvans96 commented 2 years ago

Also, keep in mind that most things can be created multiple ways.

nicholascgilpin commented 2 years ago

I like the demo project and agree it will be necessary for marketing. Imo, the thing that will make or break this project will be the tooling that volunteers will use to contribute. If it's not incredibly simple for a layperson to contribute, they will bounce away and the marketing momentum will be lost.

I should clarify, these "volunteers" that I'm referring to are the ones who would build out the demo project further. In you original post, I think your "volunteers" refer to engineers that will help scaffold the engine?

GUI's take a lot of man power, so my plan was to snowball the manpower:

  1. 10 engineers chip away at about 10 hours of work (the Notebook)
  2. The notebook helps us market to get 100 engineers
  3. 100 engineers chip away at 100 hours of work (the GUI)
  4. The GUI helps us market to get 1000 regular people.
  5. 1000 regular people can sustain the project (1% rule social media) @amoffat
OliverEvans96 commented 2 years ago

I propose a real-time chat about this for whoever's interested on Monday 2022-03-21 at 6pm US Pacific time: https://meet.jit.si/UniversalBuildTreeRFCDiscussion.

OliverEvans96 commented 2 years ago

https://github.com/nicholascgilpin/universal-build-tree/blob/027353db3fad153893831223c1e38ca2ce3a8d73/README.md?plain=1#L44-L46

It might sometimes be hard to determine a single "official" name for a resource. What something is called depends both on the context and the speaker/reader.

This reminds me of disambiguation on wikipedia, although this is sort of the opposite - a thing with multiple names vs. multiple things with the same name.

OliverEvans96 commented 2 years ago

Also, resources/processes can be described at various levels of detail.

In a somewhat similar vein, many processes are hierarchical. Individual steps in a procedure can likely also be described as procedures.

OliverEvans96 commented 2 years ago

https://github.com/nicholascgilpin/universal-build-tree/blob/027353db3fad153893831223c1e38ca2ce3a8d73/README.md?plain=1#L57

Not every process happens on the order of seconds. You gave a good example - the chemical reaction to produce sugar. On the other side of the scale, how long does a star take to form? That might cause integer overflow if measured in seconds :)

It probably makes sense to use a float w/ units for durations.

OliverEvans96 commented 2 years ago

This might be a bit of a separate topic, but I'm also interested in deconstructing resources into other resources. I think this is valuable for recycling. I think your framework is sufficiently general to cover this as well. A "destructive" process also has a list of inputs and a list of outputs.

Although this would likely introduce cycles in the graph, so it would no longer be a DAG. Maybe acyclic is not a necessary restriction?

uwu64 commented 2 years ago

Destructive processes depend on how good you are at destructing something right? You can rip out the guts of a PC to get power supply and memory and processor, and maybe desolder individual components like capacitors or crystals, but its kinda hard to get all the atoms back (would require a lot of energy I believe)

OliverEvans96 commented 2 years ago

I agree. Apparently not every constructive process can be reversed. But there do exist useful destructive processes.

And to your point, the form and quantity of energy required may be a valuable parameter for many processes.

nicholascgilpin commented 2 years ago

Good comments.

To make thinking about the current design easier. I stole this dependency graph model from functions. It's a program only using functions, but in graph form. It might be officially called a "data flow graph", but I'm not sure.

Reponses:

nicholascgilpin commented 2 years ago

My schedule's pretty booked until June, so I'll be back then move things to the next stage.

Feel free to do investigations, add wiki notes, build prototypes, or fix the specification before then.