Skip to content

Flatten edge_bindings into a list of strings (edge IDs) #515

@colleenXu

Description

@colleenXu

[Depends on #506, similar to what's being proposed in #505 for path_bindings]

The edge_bindings values (defined using additionalProperties) are arrays of EdgeBinding objects. If we decide to remove attributes from EdgeBinding (see #506), this object will only have 1 defined property, id.

If we aren't taking advantage of the EdgeBinding object structure (having other properties besides id), it would be more concise and simple to make the edge_bindings value an array of strings (edge ids) instead.


The current spec

            edge_bindings:
              type: object
              description: >-
                The dictionary of input Query Graph to Knowledge Graph edge
                bindings where the dictionary keys are the key identifiers of
                the Query Graph edges and the associated values of those keys
                are instances of EdgeBinding schema type (see below). This
                value is an array of EdgeBindings since a given query edge may
                resolve to multiple Knowledge Graph Edges.
              additionalProperties:
                type: array
                items:
                  $ref: '#/components/schemas/EdgeBinding'
...
    EdgeBinding:
      type: object
      description: >-
        A instance of EdgeBinding is a single KnowledgeGraph Edge mapping,
        identified by the corresponding 'id' object key identifier of the
        Edge within the Knowledge Graph. Instances of EdgeBinding may include
        extra annotation (such annotation is not yet fully standardized).
        Edge bindings are captured within a specific reasoner's Analysis
        object because the Edges in the Knowledge Graph that get bound to
        the input Query Graph may differ between reasoners.
      properties:
        id:
          type: string
          description: The key identifier of a specific KnowledgeGraph Edge.
          nullable: false
        attributes:
          type: array
          description: >-
            A list of attributes providing further information about the
            edge binding. This is not intended for capturing edge attributes
            and should only be used for properties that vary from result to
            result.
          items:
            $ref: '#/components/schemas/Attribute'
          minItems: 1
          nullable: false
      additionalProperties: true
      required:
        - id

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions