raphtory 0.17.0

raphtory, a temporal graph library
Documentation
syntax = "proto3";

package serialise;

enum GraphType {
  EVENT = 0;
  PERSISTENT = 1;
}

message Graph {
  GraphType graph_type = 1;
  repeated NewMeta metas = 2;
  repeated NewNode nodes = 3;
  repeated NewEdge edges = 4;
  repeated GraphUpdate updates = 5;
}

message NewMeta {
  oneof meta {
    NewNodeType new_node_type = 2;
    NewNodeCProp new_node_cprop = 3;
    NewNodeTProp new_node_tprop = 5;
    NewGraphCProp new_graph_cprop = 7;
    NewGraphTProp new_graph_tprop = 9;
    NewLayer new_layer = 11;
    NewEdgeCProp new_edge_cprop = 14;
    NewEdgeTProp new_edge_tprop = 16;
  }

  message NewNodeType {
    string name = 1;
    uint64 id = 2;
  }

  message NewGraphCProp {
    string name = 1;
    uint64 id = 2;
  }

  message NewGraphTProp {
    string name = 1;
    uint64 id = 2;
    PropType.PropType p_type = 3 [deprecated = true];
    PropType.PType p_type2 = 4;
  }

  message NewNodeCProp {
    string name = 1;
    uint64 id = 2;
    PropType.PropType p_type = 3 [deprecated = true];
    PropType.PType p_type2 = 4;
  }

  message NewNodeTProp {
    string name = 1;
    uint64 id = 2;
    PropType.PropType p_type = 3[deprecated = true];
    PropType.PType p_type2 = 4;
  }

  message NewEdgeCProp {
    string name = 1;
    uint64 id = 2;
    PropType.PropType p_type = 3[deprecated = true];
    PropType.PType p_type2 = 4;
  }

  message NewEdgeTProp {
    string name = 1;
    uint64 id = 2;
    PropType.PropType p_type = 3 [deprecated = true];
    PropType.PType p_type2 = 4;
  }

  message NewLayer {
    string name = 1;
    uint64 id = 2;
  }
}

message NewNode {
  oneof gid {
    string gid_str = 1;
    uint64 gid_u64 = 2;
  };
  uint64 vid = 3;
  uint64 type_id = 4;
}

message NewEdge{
  uint64 src = 1;
  uint64 dst = 2;
  uint64 eid = 3;
}

message GraphUpdate {
  oneof update {
    UpdateNodeCProps update_node_cprops = 1;
    UpdateNodeTProps update_node_tprops = 2;

    UpdateGraphCProps update_graph_cprops = 3;
    UpdateGraphTProps update_graph_tprops = 4;

    DelEdge del_edge = 5;
    UpdateEdgeCProps update_edge_cprops = 6;
    UpdateEdgeTProps update_edge_tprops = 7;

    UpdateNodeType update_node_type = 8;
  }

  message UpdateNodeTProps {
    uint64 id = 1;
    int64 time = 2;
    uint64 secondary = 3;
    repeated PropPair properties = 5;
  }

  message UpdateNodeCProps {
    uint64 id = 1;
    repeated PropPair properties = 2;
  }

  message UpdateNodeType {
    uint64 id = 1;
    uint64 type_id = 2;
  }

  message UpdateEdgeTProps {
    uint64 eid = 1;
    int64 time = 2;
    uint64 secondary = 3;
    uint64 layer_id = 4;
    repeated PropPair properties = 5;
  }

  message DelEdge{
    uint64 eid = 1;
    int64 time = 2;
    uint64 secondary = 3;
    uint64 layer_id = 4;
  }

  message UpdateEdgeCProps {
    uint64 eid = 1;
    uint64 layer_id = 2;
    repeated PropPair properties = 3;
  }

  message UpdateGraphCProps {
    repeated PropPair properties = 1;
  }

  message UpdateGraphTProps {
    int64 time = 1;
    uint64 secondary = 2;
    repeated PropPair properties = 3;
  }

  message PropPair {
    uint64 key = 1;
    Prop value = 2;
  }
}

message PropType {
  enum PropType {
    Str = 0;
    U8 = 1;
    U16 = 2;
    I32 = 3;
    I64 = 4;
    U32 = 5;
    U64 = 6;
    F32 = 7;
    F64 = 8;
    Bool = 9;
    List = 10;
    Map = 11;
    NDTime = 12;
    Graph = 13 [deprecated = true];
    PersistentGraph = 14 [deprecated = true];
    Document = 15;
    DTime = 16;
  }

  message Array {
    PropType p_type = 1;
  }

  message Scalar {
    PropType p_type = 1;
  }

  message Decimal{
    uint32 scale = 1;
  }

  message PType{
    oneof kind {
      Scalar scalar = 1;
      Array array = 2;
      Decimal decimal = 3;
    }
  }
}

message Prop {
  oneof value {
    string str = 1;
    uint32 u8 = 2; // Note: Protobuf does not have a UInt8 type, using uint32 instead.
    uint32 u16 = 3; // Note: Protobuf does not have a UInt16 type, using uint32 instead.
    int32 i32 = 4;
    int64 i64 = 5;
    uint32 u32 = 6;
    uint64 u64 = 7;
    float f32 = 8;
    double f64 = 9;
    bool bool_value = 10;
    Props prop = 11;
    Dict map = 12;
    Graph graph = 13 [deprecated = true]; // Assuming Data can be represented as bytes.
    Graph persistentGraph = 14 [deprecated = true]; // Assuming Data can be represented as bytes.
    NDTime ndTime = 15;
    string dTime = 16;
    DocumentInput documentInput = 17;
    Array array = 18;
    string decimal = 19;
  }

  message Array {
    bytes data = 1;
  }

  message NDTime{
    uint32 year = 1;
    uint32 month = 2;
    uint32 day = 3;
    uint32 hour = 4;
    uint32 minute = 5;
    uint32 second = 6;
    uint32 nanos = 7;
  }

  message Dict{
    map<string, Prop> map = 1;
  }

  message Props{
    repeated Prop properties = 1;
  }

  message DocumentInput {
    string content = 1;
    Lifespan life = 2;
  }

  message Lifespan {
    oneof l_type {
      Interval interval = 1;
      Event event = 2;
      // Inherited is represented by the absence of both interval and event.
    }

    message Interval {
      int64 start = 1;
      int64 end = 2;
    }

    message Event {
      int64 time = 1;
    }
  }
}