Skip to content

Conversation

@sierra-moxon
Copy link
Member

No description provided.

@sierra-moxon sierra-moxon marked this pull request as ready for review September 6, 2022 19:47
1. Making predicates more specific, e.g. responding to a query for “affects expression of” with an edge with predicate “increases expression of”. In the response, the more specific edge must occur in the knowledge_graph portion of the response, and in individual results, that more specific edge will be bound to the less specific query edge. Query Graph and Knowledge Graph edges need not match in either predicate or direction to be bound in an answer.
1. Inverting symmetric predicates, e.g. if the KP contains information that A and B are correlated, then it should respond with that information whether the query is asked in the form A-[correlated_with]->B or B-[correlated_with]->A.
1. Making identifiers more specific, e.g. responding to a query involving an entity with information related to a subclass of that entity. In practice, the more-specific ID is a node linked to the less-specific node by a subclass_of edge in the knowledge graph. In the knowledge_graph portion of the response, the more-specific identifier must be present and linked to the less-specific identifier. In the results portion of the response, the more-specific response node will be bound to the less-specific query node.
2. Making categories and qualifiers in a query more specific. e.g. responding to a query for a biolink:NamedThing with a particular biolink:ChemicalEntity.
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is there any difference in the qualifiers mentioned in item 2 vs item 4?

@edeutsch
Copy link
Collaborator

edeutsch commented Sep 8, 2022

  1. Making identifiers more specific, e.g. responding to a query involving an entity with information related to a subclass of that entity. In practice, the more-specific ID is a node linked to the less-specific node by a subclass_of edge in the knowledge graph. In the knowledge_graph portion of the response, the more-specific identifier must be present and linked to the less-specific identifier. In the results portion of the response, the more-specific response node will be bound to the less-specific query node.

Perhaps this is too pedantic, but I'm thinking that identifiers can't be more specific; they are identifiers. only entities (or concepts or nodes?) can be made more specific? Perhaps this refinement is more accurate:

  1. Making entities more specific, e.g. responding to a query involving an entity with information related to a subclass of that entity. In practice, the more-specific entity is a node linked to the less-specific node by a subclass_of edge in the knowledge graph. In the knowledge_graph portion of the response, the more-specific node must be present and linked to the less-specific node. In the results portion of the response, the more-specific response node will be bound to the less-specific query node.

This also seems to imply that if my query involved concept_X and I only have an edge for child_concept_of_X, I MUST still include concept_X in my KG even if I don't really have much to say about it. I MUST NOT just have child_concept_of_X bound to the query node? Is that really what we want to require? If so, maybe this could be a bit more explicit since I am not confident in this inference.

@suihuang-ISB
Copy link

suihuang-ISB commented Sep 9, 2022

Also, perhaps on the pedantic side... Agree with Eric that ID are just that, ids, that is: atomic units.
But there is also a problem with the term "qualifier" in terms of making them "more specific".

  1. Making categories and qualifiers in a query more specific. e.g. responding to a query for a biolink:NamedThing with a particular biolink:ChemicalEntity.

We at SPOKE had originally used the term 'qualifier' for indicating the CONDITIONAL validity, Eg: "Compound X activates Gene G" BUT: with the qualifier that this is is only true in TISSUE T. Or in the case of correlations/cooccurrences in clinical/multiomics data, A and B are correlated, but only in the cohort of the elderly (age > X)... etc.
Over time, I think 'qualifier' has evolved away from this original meaning to indicate a more granular specification. down the tree of sub-types (as evident in the recent discussions. )

These two meanings of 'qualifier', that is, CONDITION for validity of a predicate vs. finer-grained SPEIFICATION of said predicate, are fundamentally different from the user perspective, and affect the query. May be useful to say what we mean by 'qualifier' here - and perhaps structurally encode this distinction??

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants