feat: adds default ontology resolver

This commit is contained in:
hajdul88 2025-09-17 12:44:04 +02:00
parent c5e6c69e54
commit 6261fca0c4
3 changed files with 24 additions and 4 deletions

View file

@ -9,6 +9,7 @@ from cognee.modules.engine.utils import (
)
from cognee.shared.data_models import KnowledgeGraph
from cognee.modules.ontology.rdf_xml.RDFLibOntologyResolver import RDFLibOntologyResolver
from cognee.modules.ontology.get_default_ontology_resolver import get_default_ontology_resolver
def _create_node_key(node_id: str, category: str) -> str:
@ -320,7 +321,7 @@ def expand_with_nodes_and_edges(
existing_edges_map = {}
if ontology_resolver is None:
ontology_resolver = RDFLibOntologyResolver()
ontology_resolver = get_default_ontology_resolver()
added_nodes_map = {}
added_ontology_nodes_map = {}

View file

@ -0,0 +1,18 @@
from typing import Optional
from cognee.modules.ontology.base_ontology_resolver import BaseOntologyResolver
from cognee.modules.ontology.rdf_xml.RDFLibOntologyResolver import RDFLibOntologyResolver
from cognee.modules.ontology.matching_strategies import FuzzyMatchingStrategy
def get_default_ontology_resolver(ontology_file: Optional[str] = None) -> BaseOntologyResolver:
"""Get the default ontology resolver (RDFLib with fuzzy matching).
Args:
ontology_file: Optional path to ontology file
Returns:
Default RDFLib ontology resolver with fuzzy matching strategy
"""
fuzzy_strategy = FuzzyMatchingStrategy()
return RDFLibOntologyResolver(ontology_file=ontology_file, matching_strategy=fuzzy_strategy)

View file

@ -2,12 +2,13 @@ import pytest
from rdflib import Graph, Namespace, RDF, OWL, RDFS
from cognee.modules.ontology.rdf_xml.RDFLibOntologyResolver import RDFLibOntologyResolver
from cognee.modules.ontology.models import AttachedOntologyNode
from cognee.modules.ontology.get_default_ontology_resolver import get_default_ontology_resolver
def test_ontology_adapter_initialization_success():
"""Test successful initialization of OntologyAdapter."""
adapter = RDFLibOntologyResolver()
adapter = get_default_ontology_resolver()
adapter.build_lookup()
assert isinstance(adapter.lookup, dict)
@ -106,7 +107,7 @@ def test_get_subgraph_no_match_rdflib():
"""Test get_subgraph returns empty results for a non-existent node."""
g = Graph()
resolver = RDFLibOntologyResolver()
resolver = get_default_ontology_resolver()
resolver.graph = g
resolver.build_lookup()
@ -164,7 +165,7 @@ def test_refresh_lookup_rdflib():
"""Test that refresh_lookup rebuilds the lookup dict into a new object."""
g = Graph()
resolver = RDFLibOntologyResolver()
resolver = get_default_ontology_resolver()
resolver.graph = g
resolver.build_lookup()