t.F. · 2025-04-18 03:12
Greetings. I'm trying to make a diagram showing the entire production chain involved in making a normal PC, and I'd like your help.
To understand what I mean, I'll use something much more simple (a chair) as an example.
As you can see in pic 1, to make a chair you need some wooden planks, some iron nails, and a hammer to pin down the nails to the planks.
In pic 2 we do the same, this time with the planks: to make a plank we need a tree and a saw; after adding them, I marked the plank's border in bold to show that particular part of the graph is finished and needs no further elaboration; to make a tree you need nothing else, since trees are alredy available in nature, so I marked "tree" as finished too.
In pic 3 we do the same with the nails; since the same process can also be used to make the tongs and anvil, I put arrows going back to those, and marked them as finished too.
(continue...)
t.F. · 2025-04-18 03:20
We keep doing the same with every unfinished part of the graph, and so on...
we should end up with something like pic N. There are still some unfinished parts, but that's just to give you an idea of the final result.
t.F. · 2025-04-18 03:40
You get the gist.
I'm trying to do something similar with a PC.
Pic related is my first draft; of course the final result will be much more huge, but that's as far as my current knowledge goes; I reused parts of the chair graph since they're also involved to some degree.
Do you have something to add/change?
Agent Jones · 2025-04-18 06:06
>>85357
my first instinct would be to represent it as a matrix rather than a graph, and use weights instead of color coding, like
| nails | planks | hammer | chair | saw | tree
--------------------------------------------------------
chair | 20 | 4 | 10e-4 | 0 | 10e-3 | 0
planks | 0 | 0 | 0 | 0 | 10e-3 | 10e-1 to make a chair you use 20 nails, 4 planks, 0.0001 hammers and 0.001 saws, etc.
there are programs to automatically generate weighted graphs and it seems like it would be easy to write some glue code to feed them this data. this will probably reduce your workload a lot and you will be able to focus on the content instead of the representation
as this grows the matrix will become sparse, so it might be better to store it as a map of lists. in json:
{
"chair": [
{
"name": "nails",
"weight": 20
},
{
"name": "planks",
"weight": 4
},
{
"name": "hammer",
"weight": 10e-4
},
{
"name": "saw",
"weight": 10e-3
}
],
"planks": [
{
"name": "saw",
"weight": 10e-3
},
{
"name": "tree",
"weight": 10e-1
}
]
}
Unnamed · 2025-04-18 07:56
>>85376
If your main goal is generating graphs then you could also look into using using the graphviz dot format.
Appleman1234 · 2025-04-20 04:48
>>85357
Checkout petri nets, https://en.wikipedia.org/wiki/Petri_net,
Process graphs https://github.com/tsyet12/Pgraph
and Knowledge Graphs https://github.com/rahulnyk/knowledge_graph
For further resources see https://github.com/totogo/awesome-knowledge-graph
https://github.com/topics/petrinet
https://www-dssz.informatik.tu-cottbus.de/DSSZ/Software/Software
http://p-graph.org/
https://github.com/shaoxiongji/knowledge-graphs
https://github.com/Bayer-Group/cmc-knowledge-graph-setup
https://github.com/xmy2000/DPMKG
I also remember similar stuff in a book called Computer Repair with Diagnostic Flowcharts, which just had regular compositional flowcharts.
But basically you want to look at existing stuff that is used to diagram / or schedule this sort of parts or decompositional manufacturing.