incubator-graphar icon indicating copy to clipboard operation
incubator-graphar copied to clipboard

[Feat][Format] Distinguish the concepts of vertex/edge label and vertex/edge type

Open lixueclaire opened this issue 1 year ago • 0 comments

Is your feature request related to a problem? Please describe. In GraphAr, we use vertex/edge label to represent the type of vertices or edges, which is a single string. Vertices/edges of the same type have the same schema. However, in some other graph systems, such as Neo4j, the label is a concept different with the type, which could include arbitrary number of strings, and used for filtering vertices/edges. To cooperate with these systems, we need to distinguish the concepts of label and type in GraphAr.

Describe the solution you'd like

  • replace label in the GraphAr file format (specifically, the Vertex/Edge info Yaml files) with type
  • update all related interfaces in GraphAr C++/Spark to use type instead of label
  • when the data type of the property is required, use data_type instead of simply type
  • update the documentation of the file format design and API reference
  • labels could be stored in a separate column as an array of strings, or a sparse matrix, as mentioned in issue #96

lixueclaire avatar May 22 '23 02:05 lixueclaire