From 7f617a693f6a7ac6f3e9024c652f7d36ff18b983 Mon Sep 17 00:00:00 2001 From: Barry Nouwt Date: Fri, 10 Apr 2026 16:39:59 +0200 Subject: [PATCH] Modify common KBs to accept domain knowledge. --- examples/common/asking_kb/asking_kb.py | 15 +++++++++++++++ examples/common/posting_kb/posting_kb.py | 16 ++++++++++++++++ examples/multiple-runtimes/docker-compose.yml | 10 ++++++++-- 3 files changed, 39 insertions(+), 2 deletions(-) diff --git a/examples/common/asking_kb/asking_kb.py b/examples/common/asking_kb/asking_kb.py index cf1659554..73cdf6beb 100644 --- a/examples/common/asking_kb/asking_kb.py +++ b/examples/common/asking_kb/asking_kb.py @@ -3,6 +3,7 @@ import time import json import signal +import requests from knowledge_mapper.tke_client import TkeClient from knowledge_mapper.knowledge_base import KnowledgeBaseRegistrationRequest @@ -19,6 +20,7 @@ else: PREFIXES = None GRAPH_PATTERN = os.getenv("GRAPH_PATTERN") +DOMAIN_KNOWLEDGE= os.getenv("DOMAIN_KNOWLEDGE") log = logging.getLogger(KB_NAME) log.setLevel(logging.INFO) @@ -32,6 +34,11 @@ def handle_sigterm(*args): signal.signal(signal.SIGTERM, handle_sigterm) +def register_domain_knowledge(domain_knowledge): + resp = requests.post(url = KE_URL + "/sc/knowledge", headers = {"Knowledge-Base-Id":KB_ID}, data = DOMAIN_KNOWLEDGE); + if resp.status_code != 200: + log.error(f"Our domain knowledge register should return 200 and not {resp.status_code} with message: " + resp.text); + def kb_1(): client = TkeClient(KE_URL) client.connect() @@ -43,6 +50,14 @@ def kb_1(): description=f"{KB_NAME}", ) ) + + # register domain knowledge + if DOMAIN_KNOWLEDGE is not None: + register_domain_knowledge(DOMAIN_KNOWLEDGE) + log.info("Domain knowledge registered!") + else: + log.debug(f"No domain knowledge found!") + log.info(f"KB registered!") log.info(f"registering ASK KI...") ask: AskKnowledgeInteraction = kb.register_knowledge_interaction( diff --git a/examples/common/posting_kb/posting_kb.py b/examples/common/posting_kb/posting_kb.py index 7c1224582..51bd4f0a3 100644 --- a/examples/common/posting_kb/posting_kb.py +++ b/examples/common/posting_kb/posting_kb.py @@ -3,6 +3,7 @@ import time import json import signal +import requests from knowledge_mapper.utils import match_bindings from knowledge_mapper.tke_client import TkeClient @@ -22,6 +23,7 @@ PREFIXES = None ARGUMENT_GRAPH_PATTERN = os.getenv("ARGUMENT_GRAPH_PATTERN") RESULT_GRAPH_PATTERN = os.getenv("RESULT_GRAPH_PATTERN") +DOMAIN_KNOWLEDGE= os.getenv("DOMAIN_KNOWLEDGE") log = logging.getLogger(KB_NAME) log.setLevel(logging.INFO) @@ -35,6 +37,11 @@ def handle_sigterm(*args): signal.signal(signal.SIGTERM, handle_sigterm) +def register_domain_knowledge(domain_knowledge): + resp = requests.post(url = KE_URL + "/sc/knowledge", headers = {"Knowledge-Base-Id":KB_ID}, data = DOMAIN_KNOWLEDGE); + if resp.status_code != 200: + log.error(f"Our domain knowledge register should return 200 and not {resp.status_code} with message: " + resp.text); + def kb_1(): client = TkeClient(KE_URL) client.connect() @@ -46,6 +53,15 @@ def kb_1(): description=f"{KB_NAME}", ) ) + + # register domain knowledge + if DOMAIN_KNOWLEDGE is not None: + register_domain_knowledge(DOMAIN_KNOWLEDGE) + log.info("Domain knowledge registered!") + else: + log.debug(f"No domain knowledge found!") + + log.info(f"KB registered!") log.info(f"registering POST KI...") post: PostKnowledgeInteraction = kb.register_knowledge_interaction( diff --git a/examples/multiple-runtimes/docker-compose.yml b/examples/multiple-runtimes/docker-compose.yml index 97cf886c9..abf4ef756 100644 --- a/examples/multiple-runtimes/docker-compose.yml +++ b/examples/multiple-runtimes/docker-compose.yml @@ -38,6 +38,12 @@ services: } GRAPH_PATTERN: | ?a ex:relatedTo ?b . + DOMAIN_KNOWLEDGE: | + @prefix ex: . + + #domain rules + (?a ex:bRelatedTo ?b) -> (?a ex:relatedTo ?b) . + (?a ex:aRelatedTo ?b) -> (?a ex:relatedTo ?b) . kb2: build: ../common/answering_kb environment: @@ -48,7 +54,7 @@ services: "ex": "http://example.org/" } GRAPH_PATTERN: | - ?a ex:relatedTo ?b . + ?a ex:aRelatedTo ?b . KB_DATA: | [ { @@ -70,7 +76,7 @@ services: "ex": "http://example.org/" } GRAPH_PATTERN: | - ?a ex:relatedTo ?b . + ?a ex:bRelatedTo ?b . KB_DATA: | [ {