{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Debugging\n", "\n", "This notebook shows how to set a knowledge graph forge session in debug mode." ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "ExecuteTime": { "end_time": "2019-09-23T18:50:20.068658Z", "start_time": "2019-09-23T18:50:19.054054Z" } }, "outputs": [], "source": [ "from kgforge.core import KnowledgeGraphForge" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Imports" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "ExecuteTime": { "end_time": "2019-09-23T18:50:20.127987Z", "start_time": "2019-09-23T18:50:20.119390Z" } }, "outputs": [], "source": [ "from kgforge.core import Resource" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "from kgforge.specializations.mappings import DictionaryMapping" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Data & Mapping" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "scientists = [\n", " {\n", " \"id\": 123,\n", " \"name\": \"Marie Curie\",\n", " },\n", " {\n", " \"id\": 456,\n", " \"name\": \"Albert Einstein\",\n", " },\n", "]" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "mapping = DictionaryMapping(\"\"\"\n", " id: forge.format(\"identifier\", \"contributions\", x.id)\n", " type: Contribution\n", " agent: forge.resolve(x.name)\n", "\"\"\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Not activated" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [], "source": [ "forge_1 = KnowledgeGraphForge(\"../../configurations/forge.yml\")" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " resolve\n", " ResolvingError: resolving scope or resolver name should be specified in case of multiple available resolvers\n", "\n" ] } ], "source": [ "resources_1 = forge_1.map(scientists, mapping)" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "True" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "resources_1 is None" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Activated" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [], "source": [ "def pexc(e: Exception) -> None:\n", " print(f\"{type(e).__name__}: {e}\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### at initialization" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [], "source": [ "forge_2 = KnowledgeGraphForge(\"../../configurations/forge.yml\", debug=True)" ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "scrolled": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "ResolvingError: resolving scope or resolver name should be specified in case of multiple available resolvers\n" ] } ], "source": [ "try:\n", " resources_2 = forge_2.map(scientists, mapping)\n", "except Exception as e:\n", " pexc(e)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### on demand" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [], "source": [ "forge_3 = KnowledgeGraphForge(\"../../configurations/forge.yml\")" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [], "source": [ "forge_3._debug = True" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "ResolvingError: resolving scope or resolver name should be specified in case of multiple available resolvers\n" ] } ], "source": [ "try:\n", " resources_3 = forge_3.map(scientists, mapping)\n", "except Exception as e:\n", " pexc(e)" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [], "source": [ "forge_3._debug = False" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " resolve\n", " ResolvingError: resolving scope or resolver name should be specified in case of multiple available resolvers\n", "\n" ] } ], "source": [ "resources_4 = forge_3.map(scientists, mapping)" ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "True" ] }, "execution_count": 18, "metadata": {}, "output_type": "execute_result" } ], "source": [ "resources_4 is None" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3.7 (nexusforgelatest)", "language": "python", "name": "nexusforgelatest" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.7.10" } }, "nbformat": 4, "nbformat_minor": 4 }