Advanced usage of Dataview : Representing PMI processes using data structured in Notes

Context

I am preparing a PMP certification, and, as a way of studying the (large) matter of the PMI, I transcribe part of it in an Obsidian Vault. My end goal is probably to keep that vault as a reference for future use, and being able to communicate with it to projects’ stakeholders later.

So here, we’re only dealing with the PG² (Process Groups : A Pratice Guide) and all 49 processes described in it. Each process has an individual Note with a #Process tag. Properties are basically only :

  • ProcessGroupIdx to identify the Process Group it belongs to,
  • ProcessIndex to be able to sort them in lists,
  • A List of ProcessOutputs (the Assets produced or altered by the process, as defined below)
  • A List of ProcessChildren (with links to any other Process that relies on this one to exist)

We’ve got assets that can be both Input or Output of one or many different processes (all declared as separate Notes with #InputOrOutput).

For some reason, part of these assets are considered as member of a family of similare assets, that I called myself InputOrOutputContainer (as a tag, with #InputOrOutputContainer).

Then, we have these ToolsAndTechniques (again, each one having an individual Note with a #ToolsandTechniques), and families of them, designed as #GroupOfToolsAndTechniques.

In order to get my arrows well oriented when using Graph View of these Processes, here are the type of links I have made :

  • #InputOrOutput Notes have a List field called “UsedAsInputIn”, where I put a link towards each single Processes where this Asset is used as an Input
  • There are several #InputOrOutputGroup Notes for each process, in order to define the relationships of every single Asset as an Input or an Output of the Process (sometimes it can be both), but also to which subgroups they belong (e.g., [[5.17 Inputs - Project documents]] or [[5.17 Outputs - Project management plan updates]])
  • There is one Note with a #GroupOfToolsAndTechniques tag for each process, linking all sub GroupOfToolsAndTechniques and ToolsAndTechniques Notes used in this process

As an example, here is the representation in the PMI book of the process :

And now, this is the result I get with my Vault :

  • As a Graph View for one process in particular

Things I have tried

Right now, what is running and helps me already are the following :

  • the data is well structured
  • the graph view of a process is great and pretty accurate (even if it is a bit messy with the dynamic placement of nodes, but at least, you can navigate easily, or highlight part of it, what you cannot achieve with a harcover version of the process representation

What I’m trying to do

First improvement I seek

The one thing I miss and I cannot produce by myself, is a more condensed way of presenting the whole Inputs and Ouputs thing for a single process. Right above, I used the following codes to get the lists in the image :

# Inputs
``dataview
TABLE
FROM #InputsAndOutputs 
WHERE contains(file.outlinks,this.file.link)
SORT file.name ASC
``
# Outputs
``dataview
TABLE
FROM #InputsAndOutputs AND outgoing([[5.17 Plan Communications Management]])
SORT file.name ASC
``
# Tools and Techniques
``dataview
TABLE
FROM #ToolsAndTechniques 
WHERE contains(file.outlinks,this.file.link)
SORT file.name ASC
``

By doing this, I have the list of all Inputs and all Outputs, but on two different lists. I would really like to have them in the same list, as well as with additional data on them, like this :

Asset Belongs to Input subgroup ? Input ? Output ? Belongs to Output subgroup ?
Stakeholder register 5.17 Inputs - Project documents Input Ouput 5.17 Outputs - Project documents updates
Stakeholder engagement plan 5.17 Inputs - Project management plan Input 5.17 Outputs - Project management plan updates
Resource management plan 5.17 Inputs - Project management plan Input
Requirements documentation 5.17 Inputs - Project documents Input
Project schedule Ouput 5.17 Outputs - Project documents updates
Project charter Input
Organizational process assets Input
Enterprise environmental factors Input
Communications management plan Ouput

The fact that an Asset is part of a subgroup is supported by explicit link between the Asset Note and the Subgroup Note (from the Subgroup to the Asset).
The fact that an Asset is an Input for a specific Process is supported by a link from the Asset Note to the Process Note. And the same thing for a SubGroup of Assets as Inputs to a Process.
The fact that an Asset is an Ouput for a specific Process is supported by a link from the Process Note to the Asset Note. And the same thing for a given Process to all SubGroups of Assets as Outputs.

The intent here is to clarify which Assets are only consumed in the Process, which Assets are only created be the process, and which ones are altered (used as Inputs and as Outputs by the Process)

Second improvement I seek

I would love to be able to create automatically a “Life Cycle” for each one of the Asset.
These notes would have a Dataview code to gather three types of linked Processes :

  • The only Proces that create the Asset : meaning that the Asset is only in the Process’ Outputs, but not in the Inputs (there should be only one, the Creator)
  • All processes (#Process tag Notes) that alter the Asset (#InputOrOutput tag Notes) : meaning that these Processes are using the Asset as an Input and as an Output
  • Finally, if there is any, the only or all the Processes that use the Asset as an Input but are not having it as an Output : meaning, the Asset is ending (partially) its life there

I feel like the first exercise is similar to the second and that having the answer to one will definitely helps me with the other. I also feel like there is probably something around the use of FLATTEN somewhere, but I just do not know where to start.

I acknowledge that this is a big job. I someone is ready to help based solely on what I have written or prefer to discuss on a vocal chat in order to get me started, I would be eternally grateful. :pray:

Bump ?