Skip to content

Commit

Permalink
Merge pull request #190 from biothings/kl-at
Browse files Browse the repository at this point in the history
Add knowledge_level/agent_type to edges
  • Loading branch information
tokebe authored Apr 12, 2024
2 parents 55811ee + ac88bfc commit 499b09c
Show file tree
Hide file tree
Showing 4 changed files with 22 additions and 3 deletions.
6 changes: 6 additions & 0 deletions src/graph/graph.ts
Original file line number Diff line number Diff line change
Expand Up @@ -104,6 +104,12 @@ export default class BTEGraph {
.map((item) => {
this.edges[recordHash].addAdditionalAttributes(item, record.mappedResponse[item]);
});
if (record.knowledge_level) {
this.edges[recordHash].addAdditionalAttributes('biolink:knowledge_level', record.knowledge_level);
}
if (record.agent_type) {
this.edges[recordHash].addAdditionalAttributes('biolink:agent_type', record.agent_type);
}
this.edges[recordHash].addSource(record.provenanceChain);
Object.entries(record.qualifiers).forEach(([qualifierType, qualifier]) => {
this.edges[recordHash].addQualifier(qualifierType, qualifier);
Expand Down
9 changes: 7 additions & 2 deletions src/graph/knowledge_graph.ts
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,8 @@ import { APIDefinition } from '@biothings-explorer/types';

const debug = Debug('bte:biothings-explorer-trapi:KnowledgeGraph');

const NON_ARRAY_ATTRIBUTES = ['biolink:knowledge_level', 'biolink:agent_type'];

export default class KnowledgeGraph {
nodes: {
[nodePrimaryID: string]: TrapiKGNode;
Expand Down Expand Up @@ -114,11 +116,14 @@ export default class KnowledgeGraph {
}

Object.entries(kgEdge.attributes).forEach(([key, value]) => {
if (key == 'edge-attributes') return;
if (key === 'edge-attributes') return;
// if (key == 'edge-attributes') return;
attributes.push({
attribute_type_id: key,
value: Array.from(value as Set<string>),
value: // technically works for numbers as well
NON_ARRAY_ATTRIBUTES.includes(key)
? [...(value as Set<string>)].reduce((acc, val) => acc + val)
: Array.from(value as Set<string>),
//value_type_id: 'bts:' + key,
});
});
Expand Down
4 changes: 4 additions & 0 deletions src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -173,6 +173,8 @@ export default class TRAPIQueryHandler {
const source = Object.entries(ontologyKnowledgeSourceMapping).find(([prefix]) => {
return expanded.includes(prefix);
})[1];
subclassEdge.addAdditionalAttributes('biolink:knowledge_level', 'knowledge_assertion')
subclassEdge.addAdditionalAttributes('biolink:agent_type', 'manual_agent')
subclassEdge.addSource([
{ resource_id: source, resource_role: 'primary_knowledge_source' },
{
Expand Down Expand Up @@ -221,6 +223,8 @@ export default class TRAPIQueryHandler {
object: object,
});
boundEdge.addAdditionalAttributes('biolink:support_graphs', [supportGraphID]);
boundEdge.addAdditionalAttributes('biolink:knowledge_level', 'logical_entailment')
boundEdge.addAdditionalAttributes('biolink:agent_type', 'automated_agent')
boundEdge.addSource([
{
resource_id: this.options.provenanceUsesServiceProvider
Expand Down
6 changes: 5 additions & 1 deletion src/inferred_mode/inferred_mode.ts
Original file line number Diff line number Diff line change
Expand Up @@ -332,7 +332,11 @@ export default class InferredQueryHandler {
resource_role: 'primary_knowledge_source',
},
],
attributes: [{ attribute_type_id: 'biolink:support_graphs', value: [] }],
attributes: [
{ attribute_type_id: 'biolink:support_graphs', value: [] },
{ attribute_type_id: 'biolink:knowledge_level', value: "prediction" },
{ attribute_type_id: 'biolink:agent_type', value: "computational_model" },
],
};
}
let auxGraphSuffix = 0;
Expand Down

0 comments on commit 499b09c

Please sign in to comment.