Ricgraph (Research in context graph) is a graph with nodes (sometimes called vertices) and edges (sometimes called links) to represent objects and their relations. It can be used to store, manipulate and read metadata of any object that has a relation to another object, as long as every object can be "represented" by at least a name and a value. In Ricgraph, one node represents one object, and an edge represents the relation between two objects. It is written in Python and uses Neo4j as graph database engine.
Metadata of an object are stored as "properties" in a node, i.e. as information associated with a node. For example, a node may store two properties, name = PET and value = cat. Another node may store name = FULL_NAME and value = John Doe. Then the edge between those two nodes means that the person with FULL_NAME John Doe has a PET which is a cat.
The philosophy of Ricgraph is that it stores metadata, not the objects the metadata refer to. To access an object, a node has a link to that object in the system it was obtained from. The objective is to get metadata from objects from a source system in a process called "harvesting". All information harvested from several source systems will be combined into one graph. Modification of metadata of an object is done in the source system the object was harvested from, and then reharvesting of that source system.
For more information and extensive documentation, see GitHub: https://github.com/UtrechtUniversity/ricgraph. Of course, this is also on the Research Software Directory https://research-software-directory.org/software/ricgraph and on Zenodo https://doi.org/10.5281/zenodo.7524314.