Skip to content

Tier 0: Incorrect subclass expansion pattern #153

@tokebe

Description

@tokebe

The below query to Tier 0 causes nearly nonsense responses, clearly due to one of the subclass query forms being applied incorrectly.

Retriever should NEVER seek subclasses of an unpinned node.

curl -X POST \
https://dev.retriever.biothings.io/query \
-H 'Content-Type: application/json' \
--data '{
  "parameters": {
    "timeout": -1,
    "tiers": [
      0
    ]
  },
  "message": {
    "query_graph": {
      "nodes": {
        "n0": {
          "ids": [
            "CHEBI:2666"
          ]
        },
        "n1": {
          "categories": [
            "biolink:PhenotypicFeature"
          ]
        }
      },
      "edges": {
        "e0": {
          "object": "n0",
          "subject": "n1",
          "predicates": [
            "biolink:related_to_at_instance_level"
          ]
        }
      }
    }
  }
}'

This is the dgraph query payload (with some formatting for readability):

{
  q0_node_n0(func: eq(vN_id, "CHEBI:2666")) @cascade(vN_id) {
    expand(vN_Node) in_edges_e0: ~vN_object @filter(eq(vN_predicate_ancestors, "related_to_at_instance_level")) @cascade(vN_predicate, vN_subject) {
      expand(vN_Edge) { vN_sources expand(vN_Source) } 
      node_n1: vN_subject @filter(eq(vN_category, "PhenotypicFeature")) @cascade(vN_id) { expand(vN_Node) } 
    } out_edges-symmetric_e0: ~vN_subject @filter(eq(vN_predicate_ancestors, "related_to_at_instance_level")) @cascade(vN_predicate, vN_object) {
      expand(vN_Edge) { vN_sources expand(vN_Source) } 
      node_n1: vN_object @filter(eq(vN_category, "PhenotypicFeature")) @cascade(vN_id) { expand(vN_Node) } 
    } out_edges-subclassObjB_e0: ~vN_subject @filter(eq(vN_predicate_ancestors, "related_to_at_instance_level")) @cascade(vN_predicate, vN_object) {
      expand(vN_Edge) { vN_sources expand(vN_Source) } 
      node_intermediate_n1: vN_object @filter(has(vN_id)) @cascade(vN_id, ~vN_subject) {
        expand(vN_Node) out_edges-subclassObjB-tail_e0: ~vN_subject @filter(eq(vN_predicate_ancestors, "subclass_of")) @cascade(vN_predicate, vN_object) {
          expand(vN_Edge) { vN_sources expand(vN_Source) } 
          node_n1: vN_object @filter(eq(vN_category, "PhenotypicFeature")) @cascade(vN_id) { expand(vN_Node) }
        }
      }
    }
  } 
}

Metadata

Metadata

Labels

bugSomething isn't workingtier0Concerns Tier 0

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions