This notebook shows how to set the Forge in debug mode.
from kgforge.core import KnowledgeGraphForge
from kgforge.specializations.mappings import DictionaryMapping
scientists = [
{
"id": 123,
"name": "Marie Curie",
},
{
"id": 456,
"name": "Albert Einstein",
},
]
mapping = DictionaryMapping("""
id: forge.format("identifier", "associations", x.id)
type: Association
agent: forge.resolve(x.name)
""")
forge_1 = KnowledgeGraphForge("../../configurations/demo-forge.yml")
resources_1 = forge_1.map(scientists, mapping)
<action> resolve <error> ResolvingError: resolving scope or resolver name should be specified
type(resources_1)
NoneType
def pexc(e: Exception) -> None:
print(f"{type(e).__name__}: {e}")
forge_2 = KnowledgeGraphForge("../../configurations/demo-forge.yml", debug=True)
try:
resources_2 = forge_2.map(scientists, mapping)
except Exception as e:
pexc(e)
ResolvingError: resolving scope or resolver name should be specified
try:
resources_2
except Exception as e:
pexc(e)
NameError: name 'resources_2' is not defined
forge_3 = KnowledgeGraphForge("../../configurations/demo-forge.yml")
forge_3._debug = True
try:
resources_3 = forge_3.map(scientists, mapping)
except Exception as e:
pexc(e)
ResolvingError: resolving scope or resolver name should be specified
try:
resources_3
except Exception as e:
pexc(e)
NameError: name 'resources_3' is not defined
forge_3._debug = False
resources_4 = forge_3.map(scientists, mapping)
<action> resolve <error> ResolvingError: resolving scope or resolver name should be specified
type(resources_4)
NoneType