diff --git a/src/operations_builder/async_operations_builder_with_reasoner.ts b/src/operations_builder/async_operations_builder_with_reasoner.ts index fb6d5e9..165f7c0 100644 --- a/src/operations_builder/async_operations_builder_with_reasoner.ts +++ b/src/operations_builder/async_operations_builder_with_reasoner.ts @@ -67,9 +67,11 @@ export default class AsyncOperationsBuilderWithReasoner extends AsyncOperationsB association: { input_type: this.removeBioLinkPrefix(sbj), output_type: this.removeBioLinkPrefix(obj), - predicate: this.removeBioLinkPrefix(pred), + predicate: this.removeBioLinkPrefix(typeof(pred) === "string" ? pred : pred.predicate), api_name: metadata.title, smartapi: metadata.smartapi, + association_id: typeof(pred) === "string" ? undefined : pred.association_id, + qualifiers: typeof(pred) === "string" ? undefined : pred.qualifiers, "x-translator": metadata["x-translator"], }, tags: [...metadata.tags, ...["bte-trapi"]], diff --git a/src/operations_builder/sync_operations_builder_with_reasoner.ts b/src/operations_builder/sync_operations_builder_with_reasoner.ts index 8fed28c..c723e86 100644 --- a/src/operations_builder/sync_operations_builder_with_reasoner.ts +++ b/src/operations_builder/sync_operations_builder_with_reasoner.ts @@ -48,9 +48,11 @@ export default class SyncOperationsBuilderWithReasoner extends BaseOperationsBui input_id: metadata?.nodes?.[sbj]?.id_prefixes, output_type: this.removeBioLinkPrefix(obj), output_id: metadata?.nodes?.[obj]?.id_prefixes, - predicate: this.removeBioLinkPrefix(pred), + predicate: this.removeBioLinkPrefix(typeof(pred) === "string" ? pred : pred.predicate), api_name: metadata.association.api_name, smartapi: metadata.association.smartapi, + association_id: typeof(pred) === "string" ? undefined : pred.association_id, + qualifiers: typeof(pred) === "string" ? undefined : pred.qualifiers, "x-translator": metadata.association["x-translator"], "x-trapi": metadata.association["x-trapi"], }, diff --git a/src/parser/endpoint.ts b/src/parser/endpoint.ts index b92a082..7c622d5 100644 --- a/src/parser/endpoint.ts +++ b/src/parser/endpoint.ts @@ -84,6 +84,7 @@ export default class Endpoint { output_id: this.removeBioLinkPrefix(output.id), output_type: this.removeBioLinkPrefix(output.semantic), predicate: this.removeBioLinkPrefix(op.predicate), + association_id: this.removeBioLinkPrefix(op.biolink_association_type), qualifiers: op.qualifiers ? Object.fromEntries( Object.entries(op.qualifiers).map(([qualifierType, qualifier]) => [ diff --git a/src/parser/types.ts b/src/parser/types.ts index 15cc99b..9989e6e 100644 --- a/src/parser/types.ts +++ b/src/parser/types.ts @@ -111,6 +111,7 @@ export interface XBTEKGSOperationObject { inputs: XBTEKGSOperationBioEntityObject[]; outputs: XBTEKGSOperationBioEntityObject[]; predicate: string; + biolink_association_type?: string; qualifiers?: { [qualifierType: string]: string; }; source?: string; parameters?: XBTEParametersObject; @@ -158,6 +159,7 @@ interface KGAssociationObject { api_name?: string; component?: string; smartapi?: SmartAPIRegistryRecordObject; + association_id?: string; "x-translator"?: any; "x-trapi"?: XTRAPIObject; qualifiers?: { diff --git a/src/types.ts b/src/types.ts index 839c17f..6150c68 100644 --- a/src/types.ts +++ b/src/types.ts @@ -37,6 +37,7 @@ interface PredicatesQueryOperationInterface { interface PredicatesAssociationInterface { api_name: string; smartapi: SmartAPIRegistryRecordObject; + association_id?: string; "x-translator": any; "x-trapi"?: XTRAPIObject; } @@ -58,7 +59,7 @@ interface PredicatesNode { } interface ReasonerSubjectAndPredicate { - [propName: string]: string[]; + [propName: string]: any[]; } export interface ReasonerPredicatesResponse {