This is an automated email from the ASF dual-hosted git repository. joshsh pushed a commit to branch TINKERPOP-2563-language in repository https://gitbox.apache.org/repos/asf/tinkerpop.git
commit 7e7f7d37f8973e2958685c4ac30dd1fa385a5a15 Author: Joshua Shinavier <[email protected]> AuthorDate: Mon Jul 5 18:10:39 2021 -0700 Add a model for Graph.Features --- .../tinkerpop/gremlin/language/graph_features.yaml | 114 +++++++++++++++++++++ 1 file changed, 114 insertions(+) diff --git a/gremlin-language/src/main/yaml/org/apache/tinkerpop/gremlin/language/graph_features.yaml b/gremlin-language/src/main/yaml/org/apache/tinkerpop/gremlin/language/graph_features.yaml new file mode 100644 index 0000000..be29175 --- /dev/null +++ b/gremlin-language/src/main/yaml/org/apache/tinkerpop/gremlin/language/graph_features.yaml @@ -0,0 +1,114 @@ +description: "TinkerPop graph features" +status: development +comments: + - > + Note: many graph features have to do with writes (i.e. whether adds or removals of a given kind are allowed). + These are excluded from the current data types, though noted below. + Also note that these types rearrange the features somewhat, preserving information. + - > + Excluded ElementFeatures (vertex and edge): + FEATURE_ADD_PROPERTY, FEATURE_REMOVE_PROPERTY, FEATURE_CUSTOM_IDS, FEATURE_USER_SUPPLIED_IDS + - > + Excluded EdgeFeatures: + FEATURE_ADD_EDGES, FEATURE_REMOVE_EDGES + - > + Excluded VertexFeatures: + FEATURE_ADD_VERTICES, FEATURE_REMOVE_VERTICES + - > + Excluded DataTypeFeatures: none + - > + Excluded GraphFeatures: all of them, i.e. + FEATURE_COMPUTER, FEATURE_CONCURRENT_ACCESS, FEATURE_PERSISTENCE, FEATURE_THREADED_TRANSACTIONS, FEATURE_TRANSACTIONS + +definitions: + + - name: AtomicType + description: "Any of a set of atomic types specifically supported as a graph feature in TinkerPop" + type: + enum: + - boolean + - byte + - double + - float + - integer + - long + - string + + - name: DataType + description: "A data type for property values" + type: + union: + - name: atomic + description: > + The type of an atomic value + type: AtomicType + + - name: array + description: > + The type of an array of values + type: DataType + + - name: map + description: > + The type of map values. The map can contain arbitrary serializable values + that may or may not be defined as features themselves. + + - name: mixedList + description: > + The type of a mixed list; as such lists are "mixed", they may contain objects of different types. + These objects may be arbitrary serializable values that may or may not be defined as features themselves. + + - name: serializable + description: "The type of a Java serializable value" + + - name: uniformList + description: > + The type of a uniform list; as such lists are "uniform", they must contain objects of the same type. + These objects may be arbitrary serializable values that may or may not be defined as features themselves. + + - name: Feature + description: "A supported feature" + type: + union: + - name: supportsVertexIds + description: "All supported id types for vertices" + type: + set: IdType + + - name: supportsEdgeIds + description: "All supported id types for edges" + type: + set: IdType + + - name: supportsVertexProperties + description: > + Determines whether a Vertex allows for the processing of at least one data type defined by the features. + In this case "processing" refers to at least "reading" the data type. + + - name: supportsEdgeProperties + description: > + Determines whether an Edge allows for the processing of at least one data type defined by the features. + In this case "processing" refers to at least "reading" the data type. + + - name: supportsVertexMetaProperties + description: > + Determines whether a Vertex can support properties on vertex properties. + + - name: supportsVertexMultiProperties + description: > + Determines whether a Vertex can support multiple properties with the same key. + + - name: supportsDataTypes + description: > + This bundles together individual features relating to supported property value types. + type: + set: DataType + + - name: IdType + description: "A supported id type" + type: + enum: + - any + - numeric + - string + - uuid
