|
from rdflib import Graph, Namespace, URIRef |
|
from typing import List, Dict |
|
import logging |
|
|
|
class BaseAgent: |
|
def __init__(self, rdf_graph: Graph, namespace: Namespace): |
|
self.graph = rdf_graph |
|
self.ns = namespace |
|
logging.debug("BaseAgent initialized.") |
|
|
|
def query_ontology(self, query: str) -> List[Dict[str, str]]: |
|
"""Execute a SPARQL query and return results as a list of dictionaries.""" |
|
try: |
|
results = self.graph.query(query) |
|
logging.debug(f"Executing query: {query}") |
|
return [ |
|
{"drug1": str(row[0]).split('#')[-1], |
|
"drug2": str(row[1]).split('#')[-1]} |
|
for row in results |
|
] |
|
except Exception as e: |
|
logging.error(f"Error executing query: {e}") |
|
return [] |
|
|