Basic graph transformations

This page is written in the context of multi-labeled nodes as they are implemented in standard graph databases.

Node structure

Basic Python structure features:

Questions:

Relationship

To be thought through: a graph based on arrays of neighborhood may be sufficient

Graph

Node dictionary -> Neighbors dictionary -> Dictionary of attribute links

Unitary GTs

GT have two modes:

Gt1: filter Remove void attributes/columns

Gt2: a column is a type Change the type and remove the attribute

Gt3: foreign key column Remove attribute and create a link

Gt4: references hidden in a label Remove attribute and create a link

Gt5 : references hidden towards a concept that does not exist

Gt6 : link in the past PREVIOUS

GT Interface

graph, rootnode, options = GT(graph, rootnode, options)

rootnode is in the graph

options = {key : value, etc.}

For instance:

GT can forward parameters such as:

CloneGt(None, root, params)
Gt6(None, root, params) -> None, root, params
clonegt(Gt6) -> None, root, params

By forwarding the rest, we can compose GTs.

Edited: better interface

graph2, rootnode2 = GT1(graph1, rootnode1, options1)
graph3, rootnode3 = GT2(*GT1(graph1, rootnode1, options1), option2)

This enables to set the options at each stage. For sure, depending on the case, the graph or the rootnode may be None.

Flexible interface:

Questions