cognee/notebooks/node_scores.ipynb
Diego Baptista Theuerkauf 13bb244746
feat: Create notebook to show how to compute ranks from graph (#771)
<!-- .github/pull_request_template.md -->

## Description
As discussed with @hande-k and Lazar, I've created a short demo to
illustrate how to get the pagerank rankings from the knowledge graph
given the nx engine. This is a POC, and a first of step towards solving
#643 .

Please let me know what you think, and how to proceed from here. :)

## DCO Affirmation
I affirm that all code in every commit of this pull request conforms to
the terms of the Topoteretes Developer Certificate of Origin.

---------

Co-authored-by: Boris <boris@topoteretes.com>
Co-authored-by: Hande <159312713+hande-k@users.noreply.github.com>
Co-authored-by: Vasilije <8619304+Vasilije1990@users.noreply.github.com>
2025-05-13 16:36:51 +02:00

634 lines
191 KiB
Text
Vendored

{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"id": "fb1fc4002c4652fc",
"metadata": {
"ExecuteTime": {
"end_time": "2025-04-22T20:11:34.191932Z",
"start_time": "2025-04-22T20:11:28.743188Z"
}
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"\u001b[2m2025-04-30T14:54:11.306050\u001b[0m [\u001b[32m\u001b[1minfo \u001b[0m] \u001b[1mDeleted old log file: /Users/handekafkas/Documents/local-code/new-cognee/cognee/logs/2025-04-30_13-33-09.log\u001b[0m [\u001b[0m\u001b[1m\u001b[34mcognee.shared.logging_utils\u001b[0m]\u001b[0m\n",
"\n",
"\u001b[1mHTTP Request: GET https://raw.githubusercontent.com/BerriAI/litellm/main/model_prices_and_context_window.json \"HTTP/1.1 200 OK\"\u001b[0m\n",
"/Users/handekafkas/Library/Caches/pypoetry/virtualenvs/cognee-jGxqfqQ0-py3.11/lib/python3.11/site-packages/tqdm/auto.py:21: TqdmWarning: IProgress not found. Please update jupyter and ipywidgets. See https://ipywidgets.readthedocs.io/en/stable/user_install.html\n",
" from .autonotebook import tqdm as notebook_tqdm\n",
"\n",
"\u001b[2m2025-04-30T14:54:14.614192\u001b[0m [\u001b[33m\u001b[1mwarning \u001b[0m] \u001b[1mOntology file 'None' not found. Using fallback ontology at http://example.org/empty_ontology\u001b[0m [\u001b[0m\u001b[1m\u001b[34mOntologyAdapter\u001b[0m]\u001b[0m\n",
"\u001b[2m2025-04-30T14:54:14.614870\u001b[0m [\u001b[32m\u001b[1minfo \u001b[0m] \u001b[1mLookup built: 0 classes, 0 individuals\u001b[0m [\u001b[0m\u001b[1m\u001b[34mOntologyAdapter\u001b[0m]\u001b[0m"
]
}
],
"source": [
"import asyncio\n",
"import cognee"
]
},
{
"cell_type": "markdown",
"id": "6c18de8dad96c3f8",
"metadata": {},
"source": [
"# Basic setup"
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "initial_id",
"metadata": {
"ExecuteTime": {
"end_time": "2025-04-22T20:11:04.996737Z",
"start_time": "2025-04-22T20:11:04.992873Z"
},
"collapsed": true
},
"outputs": [],
"source": [
"# cognee knowledge graph will be created based on this text\n",
"text = \"\"\"\n",
"Natural language processing (NLP) is an interdisciplinary\n",
"subfield of computer science and information retrieval.\n",
"\"\"\""
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "a2989b7d8237bd7d",
"metadata": {
"ExecuteTime": {
"end_time": "2025-04-22T20:13:18.624544Z",
"start_time": "2025-04-22T20:13:15.107863Z"
}
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"\u001b[2m2025-04-30T14:54:14.746929\u001b[0m [\u001b[32m\u001b[1minfo \u001b[0m] \u001b[1mModel not found in LiteLLM's model_cost.\u001b[0m [\u001b[0m\u001b[1m\u001b[34mcognee.shared.logging_utils\u001b[0m]\u001b[0m\n",
"\u001b[1mLangfuse client is disabled since no public_key was provided as a parameter or environment variable 'LANGFUSE_PUBLIC_KEY'. See our docs: https://langfuse.com/docs/sdk/python/low-level-sdk#initialize-client\u001b[0m"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Adding text to cognee:\n",
"Natural language processing (NLP) is an interdisciplinary\n",
"subfield of computer science and information retrieval.\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"\u001b[1m\n",
"LiteLLM completion() model= gpt-4o-mini; provider = openai\u001b[0m\n",
"\u001b[1mselected model name for cost calculation: openai/gpt-4o-mini-2024-07-18\u001b[0m\n",
"\u001b[1mEmbeddingRateLimiter initialized: enabled=False, requests_limit=60, interval_seconds=60\u001b[0m\n",
"\u001b[1mselected model name for cost calculation: openai/gpt-4o-mini-2024-07-18\u001b[0m\n",
"\u001b[1mselected model name for cost calculation: openai/text-embedding-3-large\u001b[0m\n",
"\u001b[2m2025-04-30T14:54:16.103704\u001b[0m [\u001b[32m\u001b[1minfo \u001b[0m] \u001b[1mPipeline run started: `4b84e400-23fc-5976-bbb4-f8ee303eed81`\u001b[0m [\u001b[0m\u001b[1m\u001b[34mrun_tasks(tasks: [Task], data)\u001b[0m]\u001b[0m\n",
"\u001b[2m2025-04-30T14:54:16.104162\u001b[0m [\u001b[32m\u001b[1minfo \u001b[0m] \u001b[1mCoroutine task started: `resolve_data_directories`\u001b[0m [\u001b[0m\u001b[1m\u001b[34mrun_tasks_base\u001b[0m]\u001b[0m\n",
"\u001b[2m2025-04-30T14:54:16.104884\u001b[0m [\u001b[32m\u001b[1minfo \u001b[0m] \u001b[1mCoroutine task started: `ingest_data`\u001b[0m [\u001b[0m\u001b[1m\u001b[34mrun_tasks_base\u001b[0m]\u001b[0m/Users/handekafkas/Library/Caches/pypoetry/virtualenvs/cognee-jGxqfqQ0-py3.11/lib/python3.11/site-packages/dlt/destinations/impl/sqlalchemy/merge_job.py:201: SAWarning: Table 'file_metadata' already exists within the given MetaData - not copying.\n",
" staging_table_obj = table_obj.to_metadata(\n",
"/Users/handekafkas/Library/Caches/pypoetry/virtualenvs/cognee-jGxqfqQ0-py3.11/lib/python3.11/site-packages/dlt/destinations/impl/sqlalchemy/merge_job.py:236: SAWarning: implicitly coercing SELECT object to scalar subquery; please use the .scalar_subquery() method to produce a scalar subquery.\n",
" order_by=order_dir_func(order_by_col),\n",
"\n",
"\u001b[2m2025-04-30T14:54:16.390194\u001b[0m [\u001b[32m\u001b[1minfo \u001b[0m] \u001b[1mCoroutine task completed: `ingest_data`\u001b[0m [\u001b[0m\u001b[1m\u001b[34mrun_tasks_base\u001b[0m]\u001b[0m\n",
"\u001b[2m2025-04-30T14:54:16.390525\u001b[0m [\u001b[32m\u001b[1minfo \u001b[0m] \u001b[1mCoroutine task completed: `resolve_data_directories`\u001b[0m [\u001b[0m\u001b[1m\u001b[34mrun_tasks_base\u001b[0m]\u001b[0m\n",
"\u001b[2m2025-04-30T14:54:16.390816\u001b[0m [\u001b[32m\u001b[1minfo \u001b[0m] \u001b[1mPipeline run completed: `4b84e400-23fc-5976-bbb4-f8ee303eed81`\u001b[0m [\u001b[0m\u001b[1m\u001b[34mrun_tasks(tasks: [Task], data)\u001b[0m]\u001b[0m"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Text added successfully.\n",
"\n"
]
}
],
"source": [
"print(\"Adding text to cognee:\")\n",
"print(text.strip())\n",
"# Add the text, and make it available for cognify\n",
"await cognee.add(text)\n",
"print(\"Text added successfully.\\n\")"
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "3034ec43e0339d72",
"metadata": {
"ExecuteTime": {
"end_time": "2025-04-22T20:13:46.162905Z",
"start_time": "2025-04-22T20:13:27.466606Z"
}
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"\u001b[2m2025-04-30T14:54:16.395097\u001b[0m [\u001b[32m\u001b[1minfo \u001b[0m] \u001b[1mModel not found in LiteLLM's model_cost.\u001b[0m [\u001b[0m\u001b[1m\u001b[34mcognee.shared.logging_utils\u001b[0m]\u001b[0m\n",
"\u001b[2m2025-04-30T14:54:16.395691\u001b[0m [\u001b[33m\u001b[1mwarning \u001b[0m] \u001b[1mOntology file 'None' not found. Using fallback ontology at http://example.org/empty_ontology\u001b[0m [\u001b[0m\u001b[1m\u001b[34mOntologyAdapter\u001b[0m]\u001b[0m\n",
"\u001b[2m2025-04-30T14:54:16.396729\u001b[0m [\u001b[32m\u001b[1minfo \u001b[0m] \u001b[1mLookup built: 0 classes, 0 individuals\u001b[0m [\u001b[0m\u001b[1m\u001b[34mOntologyAdapter\u001b[0m]\u001b[0m\n",
"\u001b[2m2025-04-30T14:54:16.406077\u001b[0m [\u001b[32m\u001b[1minfo \u001b[0m] \u001b[1mPipeline run started: `5a8d7dd2-fd20-53c3-a8f7-45edf0f84677`\u001b[0m [\u001b[0m\u001b[1m\u001b[34mrun_tasks(tasks: [Task], data)\u001b[0m]\u001b[0m\n",
"\u001b[2m2025-04-30T14:54:16.406441\u001b[0m [\u001b[32m\u001b[1minfo \u001b[0m] \u001b[1mCoroutine task started: `classify_documents`\u001b[0m [\u001b[0m\u001b[1m\u001b[34mrun_tasks_base\u001b[0m]\u001b[0m\n",
"\u001b[2m2025-04-30T14:54:16.406742\u001b[0m [\u001b[32m\u001b[1minfo \u001b[0m] \u001b[1mCoroutine task started: `check_permissions_on_documents`\u001b[0m [\u001b[0m\u001b[1m\u001b[34mrun_tasks_base\u001b[0m]\u001b[0m\n",
"\u001b[2m2025-04-30T14:54:16.413513\u001b[0m [\u001b[32m\u001b[1minfo \u001b[0m] \u001b[1mAsync Generator task started: `extract_chunks_from_documents`\u001b[0m [\u001b[0m\u001b[1m\u001b[34mrun_tasks_base\u001b[0m]\u001b[0m\n",
"\u001b[2m2025-04-30T14:54:16.417771\u001b[0m [\u001b[32m\u001b[1minfo \u001b[0m] \u001b[1mCoroutine task started: `extract_graph_from_data`\u001b[0m [\u001b[0m\u001b[1m\u001b[34mrun_tasks_base\u001b[0m]\u001b[0m\n",
"\u001b[2m2025-04-30T14:54:16.418491\u001b[0m [\u001b[32m\u001b[1minfo \u001b[0m] \u001b[1mModel not found in LiteLLM's model_cost.\u001b[0m [\u001b[0m\u001b[1m\u001b[34mcognee.shared.logging_utils\u001b[0m]\u001b[0m\n",
"\u001b[1m\n",
"LiteLLM completion() model= gpt-4o-mini; provider = openai\u001b[0m\n",
"\u001b[1mselected model name for cost calculation: openai/gpt-4o-mini-2024-07-18\u001b[0m\n",
"\u001b[1mselected model name for cost calculation: openai/gpt-4o-mini-2024-07-18\u001b[0m\n",
"\u001b[2m2025-04-30T14:54:21.815475\u001b[0m [\u001b[32m\u001b[1minfo \u001b[0m] \u001b[1mNo close match found for 'concept' in category 'classes'\u001b[0m [\u001b[0m\u001b[1m\u001b[34mOntologyAdapter\u001b[0m]\u001b[0m\n",
"\u001b[2m2025-04-30T14:54:21.816140\u001b[0m [\u001b[32m\u001b[1minfo \u001b[0m] \u001b[1mNo close match found for 'natural language processing' in category 'individuals'\u001b[0m [\u001b[0m\u001b[1m\u001b[34mOntologyAdapter\u001b[0m]\u001b[0m\n",
"\u001b[2m2025-04-30T14:54:21.816543\u001b[0m [\u001b[32m\u001b[1minfo \u001b[0m] \u001b[1mNo close match found for 'field' in category 'classes'\u001b[0m [\u001b[0m\u001b[1m\u001b[34mOntologyAdapter\u001b[0m]\u001b[0m\n",
"\u001b[2m2025-04-30T14:54:21.816923\u001b[0m [\u001b[32m\u001b[1minfo \u001b[0m] \u001b[1mNo close match found for 'computer science' in category 'individuals'\u001b[0m [\u001b[0m\u001b[1m\u001b[34mOntologyAdapter\u001b[0m]\u001b[0m\n",
"\u001b[2m2025-04-30T14:54:21.817289\u001b[0m [\u001b[32m\u001b[1minfo \u001b[0m] \u001b[1mNo close match found for 'information retrieval' in category 'individuals'\u001b[0m [\u001b[0m\u001b[1m\u001b[34mOntologyAdapter\u001b[0m]\u001b[0m\n",
"\u001b[1mselected model name for cost calculation: openai/text-embedding-3-large\u001b[0m\n",
"\u001b[1mselected model name for cost calculation: openai/text-embedding-3-large\u001b[0m\n",
"\u001b[1mselected model name for cost calculation: openai/text-embedding-3-large\u001b[0m\n",
"\u001b[1mselected model name for cost calculation: openai/text-embedding-3-large\u001b[0m\n",
"\u001b[1mselected model name for cost calculation: openai/text-embedding-3-large\u001b[0m\n",
"\u001b[2m2025-04-30T14:54:26.192667\u001b[0m [\u001b[32m\u001b[1minfo \u001b[0m] \u001b[1mCoroutine task started: `summarize_text`\u001b[0m [\u001b[0m\u001b[1m\u001b[34mrun_tasks_base\u001b[0m]\u001b[0m\n",
"\u001b[2m2025-04-30T14:54:26.193519\u001b[0m [\u001b[32m\u001b[1minfo \u001b[0m] \u001b[1mModel not found in LiteLLM's model_cost.\u001b[0m [\u001b[0m\u001b[1m\u001b[34mcognee.shared.logging_utils\u001b[0m]\u001b[0m\n",
"\u001b[1m\n",
"LiteLLM completion() model= gpt-4o-mini; provider = openai\u001b[0m\n",
"\u001b[1mselected model name for cost calculation: openai/gpt-4o-mini-2024-07-18\u001b[0m\n",
"\u001b[1mselected model name for cost calculation: openai/gpt-4o-mini-2024-07-18\u001b[0m\n",
"\u001b[2m2025-04-30T14:54:27.293265\u001b[0m [\u001b[32m\u001b[1minfo \u001b[0m] \u001b[1mCoroutine task started: `add_data_points`\u001b[0m [\u001b[0m\u001b[1m\u001b[34mrun_tasks_base\u001b[0m]\u001b[0m\n",
"\u001b[1mselected model name for cost calculation: openai/text-embedding-3-large\u001b[0m\n",
"\u001b[1mselected model name for cost calculation: openai/text-embedding-3-large\u001b[0m\n",
"\u001b[1mselected model name for cost calculation: openai/text-embedding-3-large\u001b[0m\n",
"\u001b[1mselected model name for cost calculation: openai/text-embedding-3-large\u001b[0m\n",
"\u001b[1mselected model name for cost calculation: openai/text-embedding-3-large\u001b[0m\n",
"\u001b[1mselected model name for cost calculation: openai/text-embedding-3-large\u001b[0m\n",
"\u001b[2m2025-04-30T14:54:30.517782\u001b[0m [\u001b[32m\u001b[1minfo \u001b[0m] \u001b[1mCoroutine task completed: `add_data_points`\u001b[0m [\u001b[0m\u001b[1m\u001b[34mrun_tasks_base\u001b[0m]\u001b[0m\n",
"\u001b[2m2025-04-30T14:54:30.518304\u001b[0m [\u001b[32m\u001b[1minfo \u001b[0m] \u001b[1mCoroutine task completed: `summarize_text`\u001b[0m [\u001b[0m\u001b[1m\u001b[34mrun_tasks_base\u001b[0m]\u001b[0m\n",
"\u001b[2m2025-04-30T14:54:30.518642\u001b[0m [\u001b[32m\u001b[1minfo \u001b[0m] \u001b[1mCoroutine task completed: `extract_graph_from_data`\u001b[0m [\u001b[0m\u001b[1m\u001b[34mrun_tasks_base\u001b[0m]\u001b[0m\n",
"\u001b[2m2025-04-30T14:54:30.518943\u001b[0m [\u001b[32m\u001b[1minfo \u001b[0m] \u001b[1mAsync Generator task completed: `extract_chunks_from_documents`\u001b[0m [\u001b[0m\u001b[1m\u001b[34mrun_tasks_base\u001b[0m]\u001b[0m\n",
"\u001b[2m2025-04-30T14:54:30.519272\u001b[0m [\u001b[32m\u001b[1minfo \u001b[0m] \u001b[1mCoroutine task completed: `check_permissions_on_documents`\u001b[0m [\u001b[0m\u001b[1m\u001b[34mrun_tasks_base\u001b[0m]\u001b[0m\n",
"\u001b[2m2025-04-30T14:54:30.519661\u001b[0m [\u001b[32m\u001b[1minfo \u001b[0m] \u001b[1mCoroutine task completed: `classify_documents`\u001b[0m [\u001b[0m\u001b[1m\u001b[34mrun_tasks_base\u001b[0m]\u001b[0m\n",
"\u001b[2m2025-04-30T14:54:30.519997\u001b[0m [\u001b[32m\u001b[1minfo \u001b[0m] \u001b[1mPipeline run completed: `5a8d7dd2-fd20-53c3-a8f7-45edf0f84677`\u001b[0m [\u001b[0m\u001b[1m\u001b[34mrun_tasks(tasks: [Task], data)\u001b[0m]\u001b[0m"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Cognify process complete.\n",
"\n"
]
}
],
"source": [
"# Use LLMs and cognee to create knowledge graph\n",
"await cognee.cognify()\n",
"print(\"Cognify process complete.\\n\")"
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "3144acc7a837e75a",
"metadata": {
"ExecuteTime": {
"end_time": "2025-04-22T20:15:01.401236Z",
"start_time": "2025-04-22T20:15:01.397148Z"
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Searching cognee for insights with query: 'Tell me about NLP'\n"
]
}
],
"source": [
"query_text = \"Tell me about NLP\"\n",
"print(f\"Searching cognee for insights with query: '{query_text}'\")"
]
},
{
"cell_type": "code",
"execution_count": 6,
"id": "3c3eba3dc338dda2",
"metadata": {
"ExecuteTime": {
"end_time": "2025-04-22T20:15:25.805Z",
"start_time": "2025-04-22T20:15:24.475476Z"
}
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"\u001b[1mselected model name for cost calculation: openai/text-embedding-3-large\u001b[0m\n",
"\u001b[1mselected model name for cost calculation: openai/text-embedding-3-large\u001b[0m"
]
}
],
"source": [
"from cognee.api.v1.search import SearchType\n",
"\n",
"# Query cognee for insights on the added text\n",
"search_results = await cognee.search(query_type=SearchType.INSIGHTS, query_text=query_text)\n"
]
},
{
"cell_type": "code",
"execution_count": 7,
"id": "3dd224c6791db5e0",
"metadata": {
"ExecuteTime": {
"end_time": "2025-04-22T20:15:48.466032Z",
"start_time": "2025-04-22T20:15:48.460739Z"
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"({'created_at': 1746017656416, 'updated_at': datetime.datetime(2025, 4, 30, 12, 54, 16, 416000, tzinfo=datetime.timezone.utc), 'ontology_valid': False, 'version': 1, 'topological_rank': 0, 'metadata': {'index_fields': ['text']}, 'type': 'DocumentChunk', 'belongs_to_set': None, 'text': '\\nNatural language processing (NLP) is an interdisciplinary\\nsubfield of computer science and information retrieval.\\n', 'chunk_size': 36, 'chunk_index': 0, 'cut_type': 'paragraph_end', 'id': UUID('af7dc18b-4818-5bae-acc7-f886c2932baf')}, {'source_node_id': UUID('af7dc18b-4818-5bae-acc7-f886c2932baf'), 'target_node_id': UUID('bc338a39-64d6-549a-acec-da60846dd90d'), 'relationship_name': 'contains', 'updated_at': datetime.datetime(2025, 4, 30, 12, 54, 29, 658259, tzinfo=datetime.timezone.utc)}, {'created_at': 1746017661816, 'updated_at': datetime.datetime(2025, 4, 30, 12, 54, 21, 816000, tzinfo=datetime.timezone.utc), 'ontology_valid': False, 'version': 1, 'topological_rank': 0, 'metadata': {'index_fields': ['name']}, 'type': 'Entity', 'belongs_to_set': None, 'name': 'natural language processing', 'description': 'An interdisciplinary subfield of computer science and information retrieval.', 'id': UUID('bc338a39-64d6-549a-acec-da60846dd90d')})\n",
"({'created_at': 1746017661816, 'updated_at': datetime.datetime(2025, 4, 30, 12, 54, 21, 816000, tzinfo=datetime.timezone.utc), 'ontology_valid': False, 'version': 1, 'topological_rank': 0, 'metadata': {'index_fields': ['name']}, 'type': 'Entity', 'belongs_to_set': None, 'name': 'natural language processing', 'description': 'An interdisciplinary subfield of computer science and information retrieval.', 'id': UUID('bc338a39-64d6-549a-acec-da60846dd90d')}, {'source_node_id': UUID('bc338a39-64d6-549a-acec-da60846dd90d'), 'target_node_id': UUID('dd9713b7-dc20-5101-aad0-1c4216811147'), 'relationship_name': 'is_a', 'updated_at': datetime.datetime(2025, 4, 30, 12, 54, 29, 658261, tzinfo=datetime.timezone.utc)}, {'created_at': 1746017661816, 'updated_at': datetime.datetime(2025, 4, 30, 12, 54, 21, 816000, tzinfo=datetime.timezone.utc), 'ontology_valid': False, 'version': 1, 'topological_rank': 0, 'metadata': {'index_fields': ['name']}, 'type': 'EntityType', 'belongs_to_set': None, 'name': 'concept', 'description': 'concept', 'id': UUID('dd9713b7-dc20-5101-aad0-1c4216811147')})\n",
"({'created_at': 1746017661816, 'updated_at': datetime.datetime(2025, 4, 30, 12, 54, 21, 816000, tzinfo=datetime.timezone.utc), 'ontology_valid': False, 'version': 1, 'topological_rank': 0, 'metadata': {'index_fields': ['name']}, 'type': 'Entity', 'belongs_to_set': None, 'name': 'natural language processing', 'description': 'An interdisciplinary subfield of computer science and information retrieval.', 'id': UUID('bc338a39-64d6-549a-acec-da60846dd90d')}, {'relationship_name': 'is_a_subfield_of', 'source_node_id': UUID('bc338a39-64d6-549a-acec-da60846dd90d'), 'target_node_id': UUID('6218dbab-eb6a-5759-a864-b3419755ffe0'), 'ontology_valid': False, 'updated_at': datetime.datetime(2025, 4, 30, 12, 54, 26, 171965, tzinfo=datetime.timezone.utc)}, {'created_at': 1746017661817, 'updated_at': datetime.datetime(2025, 4, 30, 12, 54, 21, 817000, tzinfo=datetime.timezone.utc), 'ontology_valid': False, 'version': 1, 'topological_rank': 0, 'metadata': {'index_fields': ['name']}, 'type': 'Entity', 'belongs_to_set': None, 'name': 'computer science', 'description': 'The study of computers and computational systems.', 'id': UUID('6218dbab-eb6a-5759-a864-b3419755ffe0')})\n",
"({'created_at': 1746017661816, 'updated_at': datetime.datetime(2025, 4, 30, 12, 54, 21, 816000, tzinfo=datetime.timezone.utc), 'ontology_valid': False, 'version': 1, 'topological_rank': 0, 'metadata': {'index_fields': ['name']}, 'type': 'Entity', 'belongs_to_set': None, 'name': 'natural language processing', 'description': 'An interdisciplinary subfield of computer science and information retrieval.', 'id': UUID('bc338a39-64d6-549a-acec-da60846dd90d')}, {'relationship_name': 'is_a_subfield_of', 'source_node_id': UUID('bc338a39-64d6-549a-acec-da60846dd90d'), 'target_node_id': UUID('02bdab9a-0981-518c-a0d4-1684e0329447'), 'ontology_valid': False, 'updated_at': datetime.datetime(2025, 4, 30, 12, 54, 26, 171974, tzinfo=datetime.timezone.utc)}, {'created_at': 1746017661817, 'updated_at': datetime.datetime(2025, 4, 30, 12, 54, 21, 817000, tzinfo=datetime.timezone.utc), 'ontology_valid': False, 'version': 1, 'topological_rank': 0, 'metadata': {'index_fields': ['name']}, 'type': 'Entity', 'belongs_to_set': None, 'name': 'information retrieval', 'description': 'The activity of obtaining information system resources that are relevant to an information need from a collection of those resources.', 'id': UUID('02bdab9a-0981-518c-a0d4-1684e0329447')})\n"
]
}
],
"source": [
"# Display results\n",
"for result_text in search_results:\n",
" print(result_text)"
]
},
{
"cell_type": "markdown",
"id": "129615f70ac937ef",
"metadata": {},
"source": [
"## Assigning scores to nodes in the graph\n",
"In this section, we show how to assign scores to nodes in the graph. We will use the page rank\n",
"algorithm for this purpose."
]
},
{
"cell_type": "markdown",
"id": "2d5cb30252b5993a",
"metadata": {},
"source": [
"First, we get the graph (knowledge_graph) from the cognee engine."
]
},
{
"cell_type": "code",
"execution_count": 8,
"id": "8d81b01a72d42529",
"metadata": {
"ExecuteTime": {
"end_time": "2025-04-22T20:28:17.193207Z",
"start_time": "2025-04-22T20:28:17.186961Z"
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Graph engine loaded successfully.\n",
"\n",
"Graph object:\n",
"930 nodes\n",
"914 edges\n"
]
}
],
"source": [
"from cognee.infrastructure.databases.graph import get_graph_engine\n",
"graph_engine = await get_graph_engine()\n",
"knowledge_graph = graph_engine.graph\n",
"print(\"Graph engine loaded successfully.\\n\")\n",
"print(\"Graph object:\")\n",
"print(knowledge_graph.number_of_nodes(), 'nodes')\n",
"print(knowledge_graph.number_of_edges(), 'edges')"
]
},
{
"cell_type": "markdown",
"id": "253c3e7a55a627ae",
"metadata": {},
"source": [
"Then, we inspect the nodes and its data in the graph."
]
},
{
"cell_type": "code",
"execution_count": 9,
"id": "5c48132d2d16b777",
"metadata": {
"ExecuteTime": {
"end_time": "2025-04-22T20:20:19.362858Z",
"start_time": "2025-04-22T20:20:19.356823Z"
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"--- (UUID('a244724f-3087-55d1-83f6-03abab613487'), {'created_at': 1745938597192, 'updated_at': datetime.datetime(2025, 4, 29, 14, 56, 37, 192000, tzinfo=datetime.timezone.utc), 'ontology_valid': False, 'version': 1, 'topological_rank': 0, 'metadata': {'index_fields': ['name']}, 'type': 'TableType', 'belongs_to_set': None, 'name': '_dlt_loads', 'description': 'Table: _dlt_loads', 'id': UUID('a244724f-3087-55d1-83f6-03abab613487')})\n",
"--- (UUID('ec94ecca-6f04-5127-9d0a-f622b0893251'), {'created_at': 1745938597193, 'updated_at': datetime.datetime(2025, 4, 29, 14, 56, 37, 193000, tzinfo=datetime.timezone.utc), 'ontology_valid': False, 'version': 1, 'topological_rank': 0, 'metadata': {'index_fields': ['properties']}, 'type': 'TableRow', 'belongs_to_set': None, 'name': '_dlt_loads:1745938590.355844', 'is_a': {'id': 'a244724f-3087-55d1-83f6-03abab613487', 'created_at': 1745938597192, 'updated_at': 1745938597192, 'ontology_valid': False, 'version': 1, 'topological_rank': 0, 'metadata': {'index_fields': ['name']}, 'type': 'TableType', 'belongs_to_set': None, 'name': '_dlt_loads', 'description': 'Table: _dlt_loads'}, 'description': 'Row in _dlt_loads with load_id=1745938590.355844', 'properties': \"{'load_id': '1745938590.355844', 'schema_name': 'pokemon', 'status': 0, 'inserted_at': '2025-04-29 14:56:37.006893', 'schema_version_hash': 'eANwGJAu1ljP89lshmMNHuh3R0zXPDW7nENqxuFMaPM='}\", 'id': UUID('ec94ecca-6f04-5127-9d0a-f622b0893251')})\n",
"--- (UUID('a9c0572e-3dec-5729-8453-f627bd010b98'), {'created_at': 1745938597193, 'updated_at': datetime.datetime(2025, 4, 29, 14, 56, 37, 193000, tzinfo=datetime.timezone.utc), 'ontology_valid': False, 'version': 1, 'topological_rank': 0, 'metadata': {'index_fields': ['name']}, 'type': 'TableType', 'belongs_to_set': None, 'name': '_dlt_pipeline_state', 'description': 'Table: _dlt_pipeline_state', 'id': UUID('a9c0572e-3dec-5729-8453-f627bd010b98')})\n",
"--- (UUID('84c8e4a0-8551-5d3c-a724-6738f342a0d5'), {'created_at': 1745938597193, 'updated_at': datetime.datetime(2025, 4, 29, 14, 56, 37, 193000, tzinfo=datetime.timezone.utc), 'ontology_valid': False, 'version': 1, 'topological_rank': 0, 'metadata': {'index_fields': ['properties']}, 'type': 'TableRow', 'belongs_to_set': None, 'name': '_dlt_pipeline_state:2', 'is_a': {'id': 'a9c0572e-3dec-5729-8453-f627bd010b98', 'created_at': 1745938597193, 'updated_at': 1745938597193, 'ontology_valid': False, 'version': 1, 'topological_rank': 0, 'metadata': {'index_fields': ['name']}, 'type': 'TableType', 'belongs_to_set': None, 'name': '_dlt_pipeline_state', 'description': 'Table: _dlt_pipeline_state'}, 'description': 'Row in _dlt_pipeline_state with version=2', 'properties': \"{'version': 2, 'engine_version': 4, 'pipeline_name': 'pokemon_pipeline', 'state': 'eNpVT0tvgkAQ/i97lWhi2oMkHuBg09KLx8aYzQSmZXF2ecxQH4T/3t1UDF6/9zcozQKC+hc7NrVT8TqaIHQ/xs2Yl0gV+A09iea8RAvagUUVq6Y+ofWKSDWmQQqmZ0ZPuJcUIMAok8KCCcZZIKv48Ig8hk4W40D8Bi3XJpgKkuUM5iW3BBQirurZ8N/ieiJ/6/5El8ClTzmfk9dTsq++qg/apZRleZtWablapF2+aDeX99vOJvLG2WeyDRPrvsvDuuGxLh7GcfwDW+J0aw==', 'created_at': '2025-04-29 14:56:35.591214', 'version_hash': 'wwA5kAQjYjJlFBlKKcqBjBh/+Brc+q9xIzFmAtGsKLA=', '_dlt_load_id': '1745938590.355844', '_dlt_id': '6HlttmUVNm2e7A'}\", 'id': UUID('84c8e4a0-8551-5d3c-a724-6738f342a0d5')})\n",
"--- (UUID('a44c5a8b-ed77-5f32-863f-7994fa541427'), {'created_at': 1745938597193, 'updated_at': datetime.datetime(2025, 4, 29, 14, 56, 37, 193000, tzinfo=datetime.timezone.utc), 'ontology_valid': False, 'version': 1, 'topological_rank': 0, 'metadata': {'index_fields': ['name']}, 'type': 'TableType', 'belongs_to_set': None, 'name': '_dlt_version', 'description': 'Table: _dlt_version', 'id': UUID('a44c5a8b-ed77-5f32-863f-7994fa541427')})\n",
"--- (UUID('30f578f0-cce2-5d8a-bab0-c93752f4cf9a'), {'created_at': 1745938597193, 'updated_at': datetime.datetime(2025, 4, 29, 14, 56, 37, 193000, tzinfo=datetime.timezone.utc), 'ontology_valid': False, 'version': 1, 'topological_rank': 0, 'metadata': {'index_fields': ['properties']}, 'type': 'TableRow', 'belongs_to_set': None, 'name': '_dlt_version:2', 'is_a': {'id': 'a44c5a8b-ed77-5f32-863f-7994fa541427', 'created_at': 1745938597193, 'updated_at': 1745938597193, 'ontology_valid': False, 'version': 1, 'topological_rank': 0, 'metadata': {'index_fields': ['name']}, 'type': 'TableType', 'belongs_to_set': None, 'name': '_dlt_version', 'description': 'Table: _dlt_version'}, 'description': 'Row in _dlt_version with version=2', 'properties': '{\\'version\\': 2, \\'engine_version\\': 11, \\'inserted_at\\': \\'2025-04-29 14:56:36.360501\\', \\'schema_name\\': \\'pokemon\\', \\'version_hash\\': \\'eANwGJAu1ljP89lshmMNHuh3R0zXPDW7nENqxuFMaPM=\\', \\'schema\\': \\'{\"version\":2,\"version_hash\":\"eANwGJAu1ljP89lshmMNHuh3R0zXPDW7nENqxuFMaPM=\",\"engine_version\":11,\"name\":\"pokemon\",\"tables\":{\"_dlt_version\":{\"name\":\"_dlt_version\",\"columns\":{\"version\":{\"name\":\"version\",\"data_type\":\"bigint\",\"nullable\":false},\"engine_version\":{\"name\":\"engine_version\",\"data_type\":\"bigint\",\"nullable\":false},\"inserted_at\":{\"name\":\"inserted_at\",\"data_type\":\"timestamp\",\"nullable\":false},\"schema_name\":{\"name\":\"schema_name\",\"data_type\":\"text\",\"nullable\":false},\"version_hash\":{\"name\":\"version_hash\",\"data_type\":\"text\",\"nullable\":false},\"schema\":{\"name\":\"schema\",\"data_type\":\"text\",\"nullable\":false}},\"write_disposition\":\"skip\",\"resource\":\"_dlt_version\",\"description\":\"Created by DLT. Tracks schema updates\"},\"_dlt_loads\":{\"name\":\"_dlt_loads\",\"columns\":{\"load_id\":{\"name\":\"load_id\",\"data_type\":\"text\",\"nullable\":false},\"schema_name\":{\"name\":\"schema_name\",\"data_type\":\"text\",\"nullable\":true},\"status\":{\"name\":\"status\",\"data_type\":\"bigint\",\"nullable\":false},\"inserted_at\":{\"name\":\"inserted_at\",\"data_type\":\"timestamp\",\"nullable\":false},\"schema_version_hash\":{\"name\":\"schema_version_hash\",\"data_type\":\"text\",\"nullable\":true}},\"write_disposition\":\"skip\",\"resource\":\"_dlt_loads\",\"description\":\"Created by DLT. Tracks completed loads\"},\"pokemon_details\":{\"columns\":{\"base_experience\":{\"name\":\"base_experience\",\"data_type\":\"bigint\",\"nullable\":true},\"cries__latest\":{\"name\":\"cries__latest\",\"data_type\":\"text\",\"nullable\":true},\"cries__legacy\":{\"name\":\"cries__legacy\",\"data_type\":\"text\",\"nullable\":true},\"height\":{\"name\":\"height\",\"data_type\":\"bigint\",\"nullable\":true},\"id\":{\"name\":\"id\",\"data_type\":\"bigint\",\"nullable\":true},\"is_default\":{\"name\":\"is_default\",\"data_type\":\"bool\",\"nullable\":true},\"location_area_encounters\":{\"name\":\"location_area_encounters\",\"data_type\":\"text\",\"nullable\":true},\"name\":{\"name\":\"name\",\"data_type\":\"text\",\"nullable\":true},\"order\":{\"name\":\"order\",\"data_type\":\"bigint\",\"nullable\":true},\"species__name\":{\"name\":\"species__name\",\"data_type\":\"text\",\"nullable\":true},\"species__url\":{\"name\":\"species__url\",\"data_type\":\"text\",\"nullable\":true},\"sprites__back_default\":{\"name\":\"sprites__back_default\",\"data_type\":\"text\",\"nullable\":true},\"sprites__back_shiny\":{\"name\":\"sprites__back_shiny\",\"data_type\":\"text\",\"nullable\":true},\"sprites__front_default\":{\"name\":\"sprites__front_default\",\"data_type\":\"text\",\"nullable\":true},\"sprites__front_shiny\":{\"name\":\"sprites__front_shiny\",\"data_type\":\"text\",\"nullable\":true},\"sprites__other__dream_world__front_default\":{\"name\":\"sprites__other__dream_world__front_default\",\"data_type\":\"text\",\"nullable\":true},\"sprites__other__home__front_default\":{\"name\":\"sprites__other__home__front_default\",\"data_type\":\"text\",\"nullable\":true},\"sprites__other__home__front_shiny\":{\"name\":\"sprites__other__home__front_shiny\",\"data_type\":\"text\",\"nullable\":true},\"sprites__other__official_artwork__front_default\":{\"name\":\"sprites__other__official_artwork__front_default\",\"data_type\":\"text\",\"nullable\":true},\"sprites__other__official_artwork__front_shiny\":{\"name\":\"sprites__other__official_artwork__front_shiny\",\"data_type\":\"text\",\"nullable\":true},\"sprites__other__showdown__back_default\":{\"name\":\"sprites__other__showdown__back_default\",\"data_type\":\"text\",\"nullable\":true},\"sprites__other__showdown__back_shiny\":{\"name\":\"sprites__other__showdown__back_shiny\",\"data_type\":\"text\",\"nullable\":true},\"sprites__other__showdown__front_default\":{\"name\":\"sprites__other__showdown__front_default\",\"data_type\":\"text\",\"nullable\":true},\"sprites__other__showdown__front_shiny\":{\"name\":\"sprites__other__showdown__front_shiny\",\"data_type\":\"text\",\"nullable\":true},\"sprites__versions__generation_i__red_blue__back_default\":{\"name\":\"sprites__versions__generation_i__red_blue__back_default\",\"data_type\":\"text\",\"nullable\":true},\"sprites__versions__generation_i__red_blue__back_gray\":{\"name\":\"sprites__versions__generation_i__red_blue__back_gray\",\"data_type\":\"text\",\"nullable\":true},\"sprites__versions__generation_i__red_blue__back_transparent\":{\"name\":\"sprites__versions__generation_i__red_blue__back_transparent\",\"data_type\":\"text\",\"nullable\":true},\"sprites__versions__generation_i__red_blue__front_default\":{\"name\":\"sprites__versions__generation_i__red_blue__front_default\",\"data_type\":\"text\",\"nullable\":true},\"sprites__versions__generation_i__red_blue__front_gray\":{\"name\":\"sprites__versions__generation_i__red_blue__front_gray\",\"data_type\":\"text\",\"nullable\":true},\"sprites__versions__generation_i__red_blue__front_transparent\":{\"name\":\"sprites__versions__generation_i__red_blue__front_transparent\",\"data_type\":\"text\",\"nullable\":true},\"sprites__versions__generation_i__yellow__back_default\":{\"name\":\"sprites__versions__generation_i__yellow__back_default\",\"data_type\":\"text\",\"nullable\":true},\"sprites__versions__generation_i__yellow__back_gray\":{\"name\":\"sprites__versions__generation_i__yellow__back_gray\",\"data_type\":\"text\",\"nullable\":true},\"sprites__versions__generation_i__yellow__back_transparent\":{\"name\":\"sprites__versions__generation_i__yellow__back_transparent\",\"data_type\":\"text\",\"nullable\":true},\"sprites__versions__generation_i__yellow__front_default\":{\"name\":\"sprites__versions__generation_i__yellow__front_default\",\"data_type\":\"text\",\"nullable\":true},\"sprites__versions__generation_i__yellow__front_gray\":{\"name\":\"sprites__versions__generation_i__yellow__front_gray\",\"data_type\":\"text\",\"nullable\":true},\"sprites__versions__generation_i__yellow__front_transparent\":{\"name\":\"sprites__versions__generation_i__yellow__front_transparent\",\"data_type\":\"text\",\"nullable\":true},\"sprites__versions__generation_ii__crystal__back_default\":{\"name\":\"sprites__versions__generation_ii__crystal__back_default\",\"data_type\":\"text\",\"nullable\":true},\"sprites__versions__generation_ii__crystal__back_shiny\":{\"name\":\"sprites__versions__generation_ii__crystal__back_shiny\",\"data_type\":\"text\",\"nullable\":true},\"sprites__versions__generationk6j2kastal__back_shiny_transparent\":{\"name\":\"sprites__versions__generationk6j2kastal__back_shiny_transparent\",\"data_type\":\"text\",\"nullable\":true},\"sprites__versions__generation_ii__crystal__back_transparent\":{\"name\":\"sprites__versions__generation_ii__crystal__back_transparent\",\"data_type\":\"text\",\"nullable\":true},\"sprites__versions__generation_ii__crystal__front_default\":{\"name\":\"sprites__versions__generation_ii__crystal__front_default\",\"data_type\":\"text\",\"nullable\":true},\"sprites__versions__generation_ii__crystal__front_shiny\":{\"name\":\"sprites__versions__generation_ii__crystal__front_shiny\",\"data_type\":\"text\",\"nullable\":true},\"sprites__versions__generationxcyebgtal__front_shiny_transparent\":{\"name\":\"sprites__versions__generationxcyebgtal__front_shiny_transparent\",\"data_type\":\"text\",\"nullable\":true},\"sprites__versions__generation_ii__crystal__front_transparent\":{\"name\":\"sprites__versions__generation_ii__crystal__front_transparent\",\"data_type\":\"text\",\"nullable\":true},\"sprites__versions__generation_ii__gold__back_default\":{\"name\":\"sprites__versions__generation_ii__gold__back_default\",\"data_type\":\"text\",\"nullable\":true},\"sprites__versions__generation_ii__gold__back_shiny\":{\"name\":\"sprites__versions__generation_ii__gold__back_shiny\",\"data_type\":\"text\",\"nullable\":true},\"sprites__versions__generation_ii__gold__front_default\":{\"name\":\"sprites__versions__generation_ii__gold__front_default\",\"data_type\":\"text\",\"nullable\":true},\"sprites__versions__generation_ii__gold__front_shiny\":{\"name\":\"sprites__versions__generation_ii__gold__front_shiny\",\"data_type\":\"text\",\"nullable\":true},\"sprites__versions__generation_ii__gold__front_transparent\":{\"name\":\"sprites__versions__generation_ii__gold__front_transparent\",\"data_type\":\"text\",\"nullable\":true},\"sprites__versions__generation_ii__silver__back_default\":{\"name\":\"sprites__versions__generation_ii__silver__back_default\",\"data_type\":\"text\",\"nullable\":true},\"sprites__versions__generation_ii__silver__back_shiny\":{\"name\":\"sprites__versions__generation_ii__silver__back_shiny\",\"data_type\":\"text\",\"nullable\":true},\"sprites__versions__generation_ii__silver__front_default\":{\"name\":\"sprites__versions__generation_ii__silver__front_default\",\"data_type\":\"text\",\"nullable\":true},\"sprites__versions__generation_ii__silver__front_shiny\":{\"name\":\"sprites__versions__generation_ii__silver__front_shiny\",\"data_type\":\"text\",\"nullable\":true},\"sprites__versions__generation_ii__silver__front_transparent\":{\"name\":\"sprites__versions__generation_ii__silver__front_transparent\",\"data_type\":\"text\",\"nullable\":true},\"sprites__versions__generation_iii__emerald__front_default\":{\"name\":\"sprites__versions__generation_iii__emerald__front_default\",\"data_type\":\"text\",\"nullable\":true},\"sprites__versions__generation_iii__emerald__front_shiny\":{\"name\":\"sprites__versions__generation_iii__emerald__front_shiny\",\"data_type\":\"text\",\"nullable\":true},\"sprites__versions__generationzbu5nqered_leafgreen__back_default\":{\"name\":\"sprites__versions__generationzbu5nqered_leafgreen__back_default\",\"data_type\":\"text\",\"nullable\":true},\"sprites__versions__generationeoxbwairered_leafgreen__back_shiny\":{\"name\":\"sprites__versions__generationeoxbwairered_leafgreen__back_shiny\",\"data_type\":\"text\",\"nullable\":true},\"sprites__versions__generation9btomgred_leafgreen__front_default\":{\"name\":\"sprites__versions__generation9btomgred_leafgreen__front_default\",\"data_type\":\"text\",\"nullable\":true},\"sprites__versions__generationknigvgrered_leafgreen__front_shiny\":{\"name\":\"sprites__versions__generationknigvgrered_leafgreen__front_shiny\",\"data_type\":\"text\",\"nullable\":true},\"sprites__versions__generation_iii__ruby_sapphire__back_default\":{\"name\":\"sprites__versions__generation_iii__ruby_sapphire__back_default\",\"data_type\":\"text\",\"nullable\":true},\"sprites__versions__generation_iii__ruby_sapphire__back_shiny\":{\"name\":\"sprites__versions__generation_iii__ruby_sapphire__back_shiny\",\"data_type\":\"text\",\"nullable\":true},\"sprites__versions__generation_iii__ruby_sapphire__front_default\":{\"name\":\"sprites__versions__generation_iii__ruby_sapphire__front_default\",\"data_type\":\"text\",\"nullable\":true},\"sprites__versions__generation_iii__ruby_sapphire__front_shiny\":{\"name\":\"sprites__versions__generation_iii__ruby_sapphire__front_shiny\",\"data_type\":\"text\",\"nullable\":true},\"sprites__versions__generation_iv__diamond_pearl__back_default\":{\"name\":\"sprites__versions__generation_iv__diamond_pearl__back_default\",\"data_type\":\"text\",\"nullable\":true},\"sprites__versions__generation_iv__diamond_pearl__back_shiny\":{\"name\":\"sprites__versions__generation_iv__diamond_pearl__back_shiny\",\"data_type\":\"text\",\"nullable\":true},\"sprites__versions__generation_iv__diamond_pearl__front_default\":{\"name\":\"sprites__versions__generation_iv__diamond_pearl__front_default\",\"data_type\":\"text\",\"nullable\":true},\"sprites__versions__generation_iv__diamond_pearl__front_shiny\":{\"name\":\"sprites__versions__generation_iv__diamond_pearl__front_shiny\",\"data_type\":\"text\",\"nullable\":true},\"sprites__versions__generationrps16qold_soulsilver__back_default\":{\"name\":\"sprites__versions__generationrps16qold_soulsilver__back_default\",\"data_type\":\"text\",\"nullable\":true},\"sprites__versions__generationp6nlzqtgold_soulsilver__back_shiny\":{\"name\":\"sprites__versions__generationp6nlzqtgold_soulsilver__back_shiny\",\"data_type\":\"text\",\"nullable\":true},\"sprites__versions__generationfderbgld_soulsilver__front_default\":{\"name\":\"sprites__versions__generationfderbgld_soulsilver__front_default\",\"data_type\":\"text\",\"nullable\":true},\"sprites__versions__generationpecz7wgold_soulsilver__front_shiny\":{\"name\":\"sprites__versions__generationpecz7wgold_soulsilver__front_shiny\",\"data_type\":\"text\",\"nullable\":true},\"sprites__versions__generation_iv__platinum__back_default\":{\"name\":\"sprites__versions__generation_iv__platinum__back_default\",\"data_type\":\"text\",\"nullable\":true},\"sprites__versions__generation_iv__platinum__back_shiny\":{\"name\":\"sprites__versions__generation_iv__platinum__back_shiny\",\"data_type\":\"text\",\"nullable\":true},\"sprites__versions__generation_iv__platinum__front_default\":{\"name\":\"sprites__versions__generation_iv__platinum__front_default\",\"data_type\":\"text\",\"nullable\":true},\"sprites__versions__generation_iv__platinum__front_shiny\":{\"name\":\"sprites__versions__generation_iv__platinum__front_shiny\",\"data_type\":\"text\",\"nullable\":true},\"sprites__versions__generationazl8xqhite__animated__back_default\":{\"name\":\"sprites__versions__generationazl8xqhite__animated__back_default\",\"data_type\":\"text\",\"nullable\":true},\"sprites__versions__generationug4uuw_white__animated__back_shiny\":{\"name\":\"sprites__versions__generationug4uuw_white__animated__back_shiny\",\"data_type\":\"text\",\"nullable\":true},\"sprites__versions__generationpgybaqite__animated__front_default\":{\"name\":\"sprites__versions__generationpgybaqite__animated__front_default\",\"data_type\":\"text\",\"nullable\":true},\"sprites__versions__generationhvpcvawhite__animated__front_shiny\":{\"name\":\"sprites__versions__generationhvpcvawhite__animated__front_shiny\",\"data_type\":\"text\",\"nullable\":true},\"sprites__versions__generation_v__black_white__back_default\":{\"name\":\"sprites__versions__generation_v__black_white__back_default\",\"data_type\":\"text\",\"nullable\":true},\"sprites__versions__generation_v__black_white__back_shiny\":{\"name\":\"sprites__versions__generation_v__black_white__back_shiny\",\"data_type\":\"text\",\"nullable\":true},\"sprites__versions__generation_v__black_white__front_default\":{\"name\":\"sprites__versions__generation_v__black_white__front_default\",\"data_type\":\"text\",\"nullable\":true},\"sprites__versions__generation_v__black_white__front_shiny\":{\"name\":\"sprites__versions__generation_v__black_white__front_shiny\",\"data_type\":\"text\",\"nullable\":true},\"sprites__versions__generationybnnugalphasapphire__front_default\":{\"name\":\"sprites__versions__generationybnnugalphasapphire__front_default\",\"data_type\":\"text\",\"nullable\":true},\"sprites__versions__generationrgxpagy_alphasapphire__front_shiny\":{\"name\":\"sprites__versions__generationrgxpagy_alphasapphire__front_shiny\",\"data_type\":\"text\",\"nullable\":true},\"sprites__versions__generation_vi__x_y__front_default\":{\"name\":\"sprites__versions__generation_vi__x_y__front_default\",\"data_type\":\"text\",\"nullable\":true},\"sprites__versions__generation_vi__x_y__front_shiny\":{\"name\":\"sprites__versions__generation_vi__x_y__front_shiny\",\"data_type\":\"text\",\"nullable\":true},\"sprites__versions__generation_vii__icons__front_default\":{\"name\":\"sprites__versions__generation_vii__icons__front_default\",\"data_type\":\"text\",\"nullable\":true},\"sprites__versions__generationwpf5kgun_ultra_moon__front_default\":{\"name\":\"sprites__versions__generationwpf5kgun_ultra_moon__front_default\",\"data_type\":\"text\",\"nullable\":true},\"sprites__versions__generationr1ahxg_sun_ultra_moon__front_shiny\":{\"name\":\"sprites__versions__generationr1ahxg_sun_ultra_moon__front_shiny\",\"data_type\":\"text\",\"nullable\":true},\"sprites__versions__generation_viii__icons__front_default\":{\"name\":\"sprites__versions__generation_viii__icons__front_default\",\"data_type\":\"text\",\"nullable\":true},\"weight\":{\"name\":\"weight\",\"data_type\":\"bigint\",\"nullable\":true},\"_dlt_load_id\":{\"name\":\"_dlt_load_id\",\"data_type\":\"text\",\"nullable\":false},\"_dlt_id\":{\"name\":\"_dlt_id\",\"data_type\":\"text\",\"nullable\":false,\"unique\":true,\"row_key\":true},\"sprites__back_female\":{\"name\":\"sprites__back_female\",\"data_type\":\"text\",\"nullable\":true},\"sprites__back_shiny_female\":{\"name\":\"sprites__back_shiny_female\",\"data_type\":\"text\",\"nullable\":true},\"sprites__front_female\":{\"name\":\"sprites__front_female\",\"data_type\":\"text\",\"nullable\":true},\"sprites__front_shiny_female\":{\"name\":\"sprites__front_shiny_female\",\"data_type\":\"text\",\"nullable\":true},\"sprites__other__home__front_female\":{\"name\":\"sprites__other__home__front_female\",\"data_type\":\"text\",\"nullable\":true},\"sprites__other__home__front_shiny_female\":{\"name\":\"sprites__other__home__front_shiny_female\",\"data_type\":\"text\",\"nullable\":true},\"sprites__other__showdown__back_female\":{\"name\":\"sprites__other__showdown__back_female\",\"data_type\":\"text\",\"nullable\":true},\"sprites__other__showdown__front_female\":{\"name\":\"sprites__other__showdown__front_female\",\"data_type\":\"text\",\"nullable\":true},\"sprites__other__showdown__front_shiny_female\":{\"name\":\"sprites__other__showdown__front_shiny_female\",\"data_type\":\"text\",\"nullable\":true},\"sprites__versions__generation_iv__diamond_pearl__back_female\":{\"name\":\"sprites__versions__generation_iv__diamond_pearl__back_female\",\"data_type\":\"text\",\"nullable\":true},\"sprites__versions__generationlzmycaond_pearl__back_shiny_female\":{\"name\":\"sprites__versions__generationlzmycaond_pearl__back_shiny_female\",\"data_type\":\"text\",\"nullable\":true},\"sprites__versions__generation_iv__diamond_pearl__front_female\":{\"name\":\"sprites__versions__generation_iv__diamond_pearl__front_female\",\"data_type\":\"text\",\"nullable\":true},\"sprites__versions__generationdzub4gnd_pearl__front_shiny_female\":{\"name\":\"sprites__versions__generationdzub4gnd_pearl__front_shiny_female\",\"data_type\":\"text\",\"nullable\":true},\"sprites__versions__generationh9ctxggold_soulsilver__back_female\":{\"name\":\"sprites__versions__generationh9ctxggold_soulsilver__back_female\",\"data_type\":\"text\",\"nullable\":true},\"sprites__versions__generationmysahqoulsilver__back_shiny_female\":{\"name\":\"sprites__versions__generationmysahqoulsilver__back_shiny_female\",\"data_type\":\"text\",\"nullable\":true},\"sprites__versions__generationahtqlqold_soulsilver__front_female\":{\"name\":\"sprites__versions__generationahtqlqold_soulsilver__front_female\",\"data_type\":\"text\",\"nullable\":true},\"sprites__versions__generationa5zt9aulsilver__front_shiny_female\":{\"name\":\"sprites__versions__generationa5zt9aulsilver__front_shiny_female\",\"data_type\":\"text\",\"nullable\":true},\"sprites__versions__generation_iv__platinum__back_female\":{\"name\":\"sprites__versions__generation_iv__platinum__back_female\",\"data_type\":\"text\",\"nullable\":true},\"sprites__versions__generation_iv__platinum__back_shiny_female\":{\"name\":\"sprites__versions__generation_iv__platinum__back_shiny_female\",\"data_type\":\"text\",\"nullable\":true},\"sprites__versions__generation_iv__platinum__front_female\":{\"name\":\"sprites__versions__generation_iv__platinum__front_female\",\"data_type\":\"text\",\"nullable\":true},\"sprites__versions__generation_iv__platinum__front_shiny_female\":{\"name\":\"sprites__versions__generation_iv__platinum__front_shiny_female\",\"data_type\":\"text\",\"nullable\":true},\"sprites__versions__generationtrqxzgwhite__animated__back_female\":{\"name\":\"sprites__versions__generationtrqxzgwhite__animated__back_female\",\"data_type\":\"text\",\"nullable\":true},\"sprites__versions__generationz6he2g_animated__back_shiny_female\":{\"name\":\"sprites__versions__generationz6he2g_animated__back_shiny_female\",\"data_type\":\"text\",\"nullable\":true},\"sprites__versions__generationjelegahite__animated__front_female\":{\"name\":\"sprites__versions__generationjelegahite__animated__front_female\",\"data_type\":\"text\",\"nullable\":true},\"sprites__versions__generationnmlgbqanimated__front_shiny_female\":{\"name\":\"sprites__versions__generationnmlgbqanimated__front_shiny_female\",\"data_type\":\"text\",\"nullable\":true},\"sprites__versions__generation_v__black_white__back_female\":{\"name\":\"sprites__versions__generation_v__black_white__back_female\",\"data_type\":\"text\",\"nullable\":true},\"sprites__versions__generation_v__black_white__back_shiny_female\":{\"name\":\"sprites__versions__generation_v__black_white__back_shiny_female\",\"data_type\":\"text\",\"nullable\":true},\"sprites__versions__generation_v__black_white__front_female\":{\"name\":\"sprites__versions__generation_v__black_white__front_female\",\"data_type\":\"text\",\"nullable\":true},\"sprites__versions__generationi6tmfgck_white__front_shiny_female\":{\"name\":\"sprites__versions__generationi6tmfgck_white__front_shiny_female\",\"data_type\":\"text\",\"nullable\":true},\"sprites__versions__generation4ydklg_alphasapphire__front_female\":{\"name\":\"sprites__versions__generation4ydklg_alphasapphire__front_female\",\"data_type\":\"text\",\"nullable\":true},\"sprites__versions__generationxv3wvqsapphire__front_shiny_female\":{\"name\":\"sprites__versions__generationxv3wvqsapphire__front_shiny_female\",\"data_type\":\"text\",\"nullable\":true},\"sprites__versions__generation_vi__x_y__front_female\":{\"name\":\"sprites__versions__generation_vi__x_y__front_female\",\"data_type\":\"text\",\"nullable\":true},\"sprites__versions__generation_vi__x_y__front_shiny_female\":{\"name\":\"sprites__versions__generation_vi__x_y__front_shiny_female\",\"data_type\":\"text\",\"nullable\":true},\"sprites__versions__generation61zspgsun_ultra_moon__front_female\":{\"name\":\"sprites__versions__generation61zspgsun_ultra_moon__front_female\",\"data_type\":\"text\",\"nullable\":true},\"sprites__versions__generation6ymmxatra_moon__front_shiny_female\":{\"name\":\"sprites__versions__generation6ymmxatra_moon__front_shiny_female\",\"data_type\":\"text\",\"nullable\":true},\"sprites__versions__generation_viii__icons__front_female\":{\"name\":\"sprites__versions__generation_viii__icons__front_female\",\"data_type\":\"text\",\"nullable\":true}},\"write_disposition\":\"append\",\"name\":\"pokemon_details\",\"resource\":\"pokemon_details\",\"x-normalizer\":{\"seen-data\":true}},\"pokemon_list\":{\"columns\":{\"name\":{\"name\":\"name\",\"data_type\":\"text\",\"nullable\":true},\"url\":{\"name\":\"url\",\"data_type\":\"text\",\"nullable\":true},\"_dlt_load_id\":{\"name\":\"_dlt_load_id\",\"data_type\":\"text\",\"nullable\":false},\"_dlt_id\":{\"name\":\"_dlt_id\",\"data_type\":\"text\",\"nullable\":false,\"unique\":true,\"row_key\":true}},\"write_disposition\":\"replace\",\"name\":\"pokemon_list\",\"resource\":\"pokemon_list\",\"x-normalizer\":{\"seen-data\":true}},\"_dlt_pipeline_state\":{\"columns\":{\"version\":{\"name\":\"version\",\"data_type\":\"bigint\",\"nullable\":false},\"engine_version\":{\"name\":\"engine_version\",\"data_type\":\"bigint\",\"nullable\":false},\"pipeline_name\":{\"name\":\"pipeline_name\",\"data_type\":\"text\",\"nullable\":false},\"state\":{\"name\":\"state\",\"data_type\":\"text\",\"nullable\":false},\"created_at\":{\"name\":\"created_at\",\"data_type\":\"timestamp\",\"nullable\":false},\"version_hash\":{\"name\":\"version_hash\",\"data_type\":\"text\",\"nullable\":true},\"_dlt_load_id\":{\"name\":\"_dlt_load_id\",\"data_type\":\"text\",\"nullable\":false},\"_dlt_id\":{\"name\":\"_dlt_id\",\"data_type\":\"text\",\"nullable\":false,\"unique\":true,\"row_key\":true}},\"write_disposition\":\"append\",\"file_format\":\"preferred\",\"name\":\"_dlt_pipeline_state\",\"resource\":\"_dlt_pipeline_state\",\"x-normalizer\":{\"seen-data\":true}},\"pokemon_details__abilities\":{\"name\":\"pokemon_details__abilities\",\"columns\":{\"ability__name\":{\"name\":\"ability__name\",\"data_type\":\"text\",\"nullable\":true},\"ability__url\":{\"name\":\"ability__url\",\"data_type\":\"text\",\"nullable\":true},\"is_hidden\":{\"name\":\"is_hidden\",\"data_type\":\"bool\",\"nullable\":true},\"slot\":{\"name\":\"slot\",\"data_type\":\"bigint\",\"nullable\":true},\"_dlt_parent_id\":{\"name\":\"_dlt_parent_id\",\"data_type\":\"text\",\"nullable\":false,\"parent_key\":true},\"_dlt_list_idx\":{\"name\":\"_dlt_list_idx\",\"data_type\":\"bigint\",\"nullable\":false},\"_dlt_id\":{\"name\":\"_dlt_id\",\"data_type\":\"text\",\"nullable\":false,\"unique\":true,\"row_key\":true}},\"parent\":\"pokemon_details\",\"x-normalizer\":{\"seen-data\":true}},\"pokemon_details__forms\":{\"name\":\"pokemon_details__forms\",\"columns\":{\"name\":{\"name\":\"name\",\"data_type\":\"text\",\"nullable\":true},\"url\":{\"name\":\"url\",\"data_type\":\"text\",\"nullable\":true},\"_dlt_parent_id\":{\"name\":\"_dlt_parent_id\",\"data_type\":\"text\",\"nullable\":false,\"parent_key\":true},\"_dlt_list_idx\":{\"name\":\"_dlt_list_idx\",\"data_type\":\"bigint\",\"nullable\":false},\"_dlt_id\":{\"name\":\"_dlt_id\",\"data_type\":\"text\",\"nullable\":false,\"unique\":true,\"row_key\":true}},\"parent\":\"pokemon_details\",\"x-normalizer\":{\"seen-data\":true}},\"pokemon_details__game_indices\":{\"name\":\"pokemon_details__game_indices\",\"columns\":{\"game_index\":{\"name\":\"game_index\",\"data_type\":\"bigint\",\"nullable\":true},\"version__name\":{\"name\":\"version__name\",\"data_type\":\"text\",\"nullable\":true},\"version__url\":{\"name\":\"version__url\",\"data_type\":\"text\",\"nullable\":true},\"_dlt_parent_id\":{\"name\":\"_dlt_parent_id\",\"data_type\":\"text\",\"nullable\":false,\"parent_key\":true},\"_dlt_list_idx\":{\"name\":\"_dlt_list_idx\",\"data_type\":\"bigint\",\"nullable\":false},\"_dlt_id\":{\"name\":\"_dlt_id\",\"data_type\":\"text\",\"nullable\":false,\"unique\":true,\"row_key\":true}},\"parent\":\"pokemon_details\",\"x-normalizer\":{\"seen-data\":true}},\"pokemon_details__moves\":{\"name\":\"pokemon_details__moves\",\"columns\":{\"move__name\":{\"name\":\"move__name\",\"data_type\":\"text\",\"nullable\":true},\"move__url\":{\"name\":\"move__url\",\"data_type\":\"text\",\"nullable\":true},\"_dlt_parent_id\":{\"name\":\"_dlt_parent_id\",\"data_type\":\"text\",\"nullable\":false,\"parent_key\":true},\"_dlt_list_idx\":{\"name\":\"_dlt_list_idx\",\"data_type\":\"bigint\",\"nullable\":false},\"_dlt_id\":{\"name\":\"_dlt_id\",\"data_type\":\"text\",\"nullable\":false,\"unique\":true,\"row_key\":true}},\"parent\":\"pokemon_details\",\"x-normalizer\":{\"seen-data\":true}},\"pokemon_details__moves__version_group_details\":{\"name\":\"pokemon_details__moves__version_group_details\",\"columns\":{\"level_learned_at\":{\"name\":\"level_learned_at\",\"data_type\":\"bigint\",\"nullable\":true},\"move_learn_method__name\":{\"name\":\"move_learn_method__name\",\"data_type\":\"text\",\"nullable\":true},\"move_learn_method__url\":{\"name\":\"move_learn_method__url\",\"data_type\":\"text\",\"nullable\":true},\"version_group__name\":{\"name\":\"version_group__name\",\"data_type\":\"text\",\"nullable\":true},\"version_group__url\":{\"name\":\"version_group__url\",\"data_type\":\"text\",\"nullable\":true},\"_dlt_parent_id\":{\"name\":\"_dlt_parent_id\",\"data_type\":\"text\",\"nullable\":false,\"parent_key\":true},\"_dlt_list_idx\":{\"name\":\"_dlt_list_idx\",\"data_type\":\"bigint\",\"nullable\":false},\"_dlt_id\":{\"name\":\"_dlt_id\",\"data_type\":\"text\",\"nullable\":false,\"unique\":true,\"row_key\":true},\"order\":{\"name\":\"order\",\"data_type\":\"bigint\",\"nullable\":true}},\"parent\":\"pokemon_details__moves\",\"x-normalizer\":{\"seen-data\":true}},\"pokemon_details__past_abilities\":{\"name\":\"pokemon_details__past_abilities\",\"columns\":{\"generation__name\":{\"name\":\"generation__name\",\"data_type\":\"text\",\"nullable\":true},\"generation__url\":{\"name\":\"generation__url\",\"data_type\":\"text\",\"nullable\":true},\"_dlt_parent_id\":{\"name\":\"_dlt_parent_id\",\"data_type\":\"text\",\"nullable\":false,\"parent_key\":true},\"_dlt_list_idx\":{\"name\":\"_dlt_list_idx\",\"data_type\":\"bigint\",\"nullable\":false},\"_dlt_id\":{\"name\":\"_dlt_id\",\"data_type\":\"text\",\"nullable\":false,\"unique\":true,\"row_key\":true}},\"parent\":\"pokemon_details\",\"x-normalizer\":{\"seen-data\":true}},\"pokemon_details__past_abilities__abilities\":{\"name\":\"pokemon_details__past_abilities__abilities\",\"columns\":{\"is_hidden\":{\"name\":\"is_hidden\",\"data_type\":\"bool\",\"nullable\":true},\"slot\":{\"name\":\"slot\",\"data_type\":\"bigint\",\"nullable\":true},\"_dlt_parent_id\":{\"name\":\"_dlt_parent_id\",\"data_type\":\"text\",\"nullable\":false,\"parent_key\":true},\"_dlt_list_idx\":{\"name\":\"_dlt_list_idx\",\"data_type\":\"bigint\",\"nullable\":false},\"_dlt_id\":{\"name\":\"_dlt_id\",\"data_type\":\"text\",\"nullable\":false,\"unique\":true,\"row_key\":true}},\"parent\":\"pokemon_details__past_abilities\",\"x-normalizer\":{\"seen-data\":true}},\"pokemon_details__stats\":{\"name\":\"pokemon_details__stats\",\"columns\":{\"base_stat\":{\"name\":\"base_stat\",\"data_type\":\"bigint\",\"nullable\":true},\"effort\":{\"name\":\"effort\",\"data_type\":\"bigint\",\"nullable\":true},\"stat__name\":{\"name\":\"stat__name\",\"data_type\":\"text\",\"nullable\":true},\"stat__url\":{\"name\":\"stat__url\",\"data_type\":\"text\",\"nullable\":true},\"_dlt_parent_id\":{\"name\":\"_dlt_parent_id\",\"data_type\":\"text\",\"nullable\":false,\"parent_key\":true},\"_dlt_list_idx\":{\"name\":\"_dlt_list_idx\",\"data_type\":\"bigint\",\"nullable\":false},\"_dlt_id\":{\"name\":\"_dlt_id\",\"data_type\":\"text\",\"nullable\":false,\"unique\":true,\"row_key\":true}},\"parent\":\"pokemon_details\",\"x-normalizer\":{\"seen-data\":true}},\"pokemon_details__types\":{\"name\":\"pokemon_details__types\",\"columns\":{\"slot\":{\"name\":\"slot\",\"data_type\":\"bigint\",\"nullable\":true},\"type__name\":{\"name\":\"type__name\",\"data_type\":\"text\",\"nullable\":true},\"type__url\":{\"name\":\"type__url\",\"data_type\":\"text\",\"nullable\":true},\"_dlt_parent_id\":{\"name\":\"_dlt_parent_id\",\"data_type\":\"text\",\"nullable\":false,\"parent_key\":true},\"_dlt_list_idx\":{\"name\":\"_dlt_list_idx\",\"data_type\":\"bigint\",\"nullable\":false},\"_dlt_id\":{\"name\":\"_dlt_id\",\"data_type\":\"text\",\"nullable\":false,\"unique\":true,\"row_key\":true}},\"parent\":\"pokemon_details\",\"x-normalizer\":{\"seen-data\":true}},\"pokemon_details__held_items\":{\"name\":\"pokemon_details__held_items\",\"columns\":{\"item__name\":{\"name\":\"item__name\",\"data_type\":\"text\",\"nullable\":true},\"item__url\":{\"name\":\"item__url\",\"data_type\":\"text\",\"nullable\":true},\"_dlt_parent_id\":{\"name\":\"_dlt_parent_id\",\"data_type\":\"text\",\"nullable\":false,\"parent_key\":true},\"_dlt_list_idx\":{\"name\":\"_dlt_list_idx\",\"data_type\":\"bigint\",\"nullable\":false},\"_dlt_id\":{\"name\":\"_dlt_id\",\"data_type\":\"text\",\"nullable\":false,\"unique\":true,\"row_key\":true}},\"parent\":\"pokemon_details\",\"x-normalizer\":{\"seen-data\":true}},\"pokemon_details__held_items__version_details\":{\"name\":\"pokemon_details__held_items__version_details\",\"columns\":{\"rarity\":{\"name\":\"rarity\",\"data_type\":\"bigint\",\"nullable\":true},\"version__name\":{\"name\":\"version__name\",\"data_type\":\"text\",\"nullable\":true},\"version__url\":{\"name\":\"version__url\",\"data_type\":\"text\",\"nullable\":true},\"_dlt_parent_id\":{\"name\":\"_dlt_parent_id\",\"data_type\":\"text\",\"nullable\":false,\"parent_key\":true},\"_dlt_list_idx\":{\"name\":\"_dlt_list_idx\",\"data_type\":\"bigint\",\"nullable\":false},\"_dlt_id\":{\"name\":\"_dlt_id\",\"data_type\":\"text\",\"nullable\":false,\"unique\":true,\"row_key\":true}},\"parent\":\"pokemon_details__held_items\",\"x-normalizer\":{\"seen-data\":true}},\"pokemon_details__past_types\":{\"name\":\"pokemon_details__past_types\",\"columns\":{\"generation__name\":{\"name\":\"generation__name\",\"data_type\":\"text\",\"nullable\":true},\"generation__url\":{\"name\":\"generation__url\",\"data_type\":\"text\",\"nullable\":true},\"_dlt_parent_id\":{\"name\":\"_dlt_parent_id\",\"data_type\":\"text\",\"nullable\":false,\"parent_key\":true},\"_dlt_list_idx\":{\"name\":\"_dlt_list_idx\",\"data_type\":\"bigint\",\"nullable\":false},\"_dlt_id\":{\"name\":\"_dlt_id\",\"data_type\":\"text\",\"nullable\":false,\"unique\":true,\"row_key\":true}},\"parent\":\"pokemon_details\",\"x-normalizer\":{\"seen-data\":true}},\"pokemon_details__past_types__types\":{\"name\":\"pokemon_details__past_types__types\",\"columns\":{\"slot\":{\"name\":\"slot\",\"data_type\":\"bigint\",\"nullable\":true},\"type__name\":{\"name\":\"type__name\",\"data_type\":\"text\",\"nullable\":true},\"type__url\":{\"name\":\"type__url\",\"data_type\":\"text\",\"nullable\":true},\"_dlt_parent_id\":{\"name\":\"_dlt_parent_id\",\"data_type\":\"text\",\"nullable\":false,\"parent_key\":true},\"_dlt_list_idx\":{\"name\":\"_dlt_list_idx\",\"data_type\":\"bigint\",\"nullable\":false},\"_dlt_id\":{\"name\":\"_dlt_id\",\"data_type\":\"text\",\"nullable\":false,\"unique\":true,\"row_key\":true}},\"parent\":\"pokemon_details__past_types\",\"x-normalizer\":{\"seen-data\":true}}},\"settings\":{\"detections\":[\"iso_timestamp\"],\"default_hints\":{\"not_null\":[\"_dlt_id\",\"_dlt_root_id\",\"_dlt_parent_id\",\"_dlt_list_idx\",\"_dlt_load_id\"],\"parent_key\":[\"_dlt_parent_id\"],\"root_key\":[\"_dlt_root_id\"],\"unique\":[\"_dlt_id\"],\"row_key\":[\"_dlt_id\"]}},\"normalizers\":{\"names\":\"snake_case\",\"json\":{\"module\":\"dlt.common.normalizers.json.relational\"}},\"previous_hashes\":[\"KeI0/jrg+6nUlAWIOZLcZ2XNf2SbmP7B+QYCLCg7+xU=\",\"t8JYtihvPs6M3l54Bq8xXrXKVI25z6b/iZAL546zux4=\"]}\\'}', 'id': UUID('30f578f0-cce2-5d8a-bab0-c93752f4cf9a')})\n",
"--- (UUID('13520d77-eb3e-5ab2-bdef-c2a0eab53b73'), {'created_at': 1745938597193, 'updated_at': datetime.datetime(2025, 4, 29, 14, 56, 37, 193000, tzinfo=datetime.timezone.utc), 'ontology_valid': False, 'version': 1, 'topological_rank': 0, 'metadata': {'index_fields': ['name']}, 'type': 'TableType', 'belongs_to_set': None, 'name': 'pokemon_details', 'description': 'Table: pokemon_details', 'id': UUID('13520d77-eb3e-5ab2-bdef-c2a0eab53b73')})\n",
"--- (UUID('37c6967d-f3aa-5239-a3c3-fdbe5930b1a5'), {'created_at': 1745938597196, 'updated_at': datetime.datetime(2025, 4, 29, 14, 56, 37, 196000, tzinfo=datetime.timezone.utc), 'ontology_valid': False, 'version': 1, 'topological_rank': 0, 'metadata': {'index_fields': ['properties']}, 'type': 'TableRow', 'belongs_to_set': None, 'name': 'pokemon_details:64', 'is_a': {'id': '13520d77-eb3e-5ab2-bdef-c2a0eab53b73', 'created_at': 1745938597193, 'updated_at': 1745938597193, 'ontology_valid': False, 'version': 1, 'topological_rank': 0, 'metadata': {'index_fields': ['name']}, 'type': 'TableType', 'belongs_to_set': None, 'name': 'pokemon_details', 'description': 'Table: pokemon_details'}, 'description': 'Row in pokemon_details with base_experience=64', 'properties': \"{'base_experience': 64, 'cries__latest': 'https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/latest/43.ogg', 'cries__legacy': 'https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/legacy/43.ogg', 'height': 5, 'id': 43, 'is_default': 1, 'location_area_encounters': 'https://pokeapi.co/api/v2/pokemon/43/encounters', 'name': 'oddish', 'order': 76, 'species__name': 'oddish', 'species__url': 'https://pokeapi.co/api/v2/pokemon-species/43/', 'sprites__back_default': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/43.png', 'sprites__back_shiny': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/shiny/43.png', 'sprites__front_default': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/43.png', 'sprites__front_shiny': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/shiny/43.png', 'sprites__other__dream_world__front_default': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/other/dream-world/43.svg', 'sprites__other__home__front_default': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/other/home/43.png', 'sprites__other__home__front_shiny': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/other/home/shiny/43.png', 'sprites__other__official_artwork__front_default': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/other/official-artwork/43.png', 'sprites__other__official_artwork__front_shiny': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/other/official-artwork/shiny/43.png', 'sprites__other__showdown__back_default': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/other/showdown/back/43.gif', 'sprites__other__showdown__back_shiny': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/other/showdown/back/shiny/43.gif', 'sprites__other__showdown__front_default': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/other/showdown/43.gif', 'sprites__other__showdown__front_shiny': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/other/showdown/shiny/43.gif', 'sprites__versions__generation_i__red_blue__back_default': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-i/red-blue/back/43.png', 'sprites__versions__generation_i__red_blue__back_gray': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-i/red-blue/back/gray/43.png', 'sprites__versions__generation_i__red_blue__back_transparent': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-i/red-blue/transparent/back/43.png', 'sprites__versions__generation_i__red_blue__front_default': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-i/red-blue/43.png', 'sprites__versions__generation_i__red_blue__front_gray': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-i/red-blue/gray/43.png', 'sprites__versions__generation_i__red_blue__front_transparent': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-i/red-blue/transparent/43.png', 'sprites__versions__generation_i__yellow__back_default': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-i/yellow/back/43.png', 'sprites__versions__generation_i__yellow__back_gray': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-i/yellow/back/gray/43.png', 'sprites__versions__generation_i__yellow__back_transparent': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-i/yellow/transparent/back/43.png', 'sprites__versions__generation_i__yellow__front_default': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-i/yellow/43.png', 'sprites__versions__generation_i__yellow__front_gray': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-i/yellow/gray/43.png', 'sprites__versions__generation_i__yellow__front_transparent': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-i/yellow/transparent/43.png', 'sprites__versions__generation_ii__crystal__back_default': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-ii/crystal/back/43.png', 'sprites__versions__generation_ii__crystal__back_shiny': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-ii/crystal/back/shiny/43.png', 'sprites__versions__generationk6j2kastal__back_shiny_transparent': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-ii/crystal/transparent/back/shiny/43.png', 'sprites__versions__generation_ii__crystal__back_transparent': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-ii/crystal/transparent/back/43.png', 'sprites__versions__generation_ii__crystal__front_default': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-ii/crystal/43.png', 'sprites__versions__generation_ii__crystal__front_shiny': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-ii/crystal/shiny/43.png', 'sprites__versions__generationxcyebgtal__front_shiny_transparent': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-ii/crystal/transparent/shiny/43.png', 'sprites__versions__generation_ii__crystal__front_transparent': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-ii/crystal/transparent/43.png', 'sprites__versions__generation_ii__gold__back_default': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-ii/gold/back/43.png', 'sprites__versions__generation_ii__gold__back_shiny': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-ii/gold/back/shiny/43.png', 'sprites__versions__generation_ii__gold__front_default': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-ii/gold/43.png', 'sprites__versions__generation_ii__gold__front_shiny': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-ii/gold/shiny/43.png', 'sprites__versions__generation_ii__gold__front_transparent': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-ii/gold/transparent/43.png', 'sprites__versions__generation_ii__silver__back_default': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-ii/silver/back/43.png', 'sprites__versions__generation_ii__silver__back_shiny': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-ii/silver/back/shiny/43.png', 'sprites__versions__generation_ii__silver__front_default': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-ii/silver/43.png', 'sprites__versions__generation_ii__silver__front_shiny': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-ii/silver/shiny/43.png', 'sprites__versions__generation_ii__silver__front_transparent': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-ii/silver/transparent/43.png', 'sprites__versions__generation_iii__emerald__front_default': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-iii/emerald/43.png', 'sprites__versions__generation_iii__emerald__front_shiny': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-iii/emerald/shiny/43.png', 'sprites__versions__generationzbu5nqered_leafgreen__back_default': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-iii/firered-leafgreen/back/43.png', 'sprites__versions__generationeoxbwairered_leafgreen__back_shiny': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-iii/firered-leafgreen/back/shiny/43.png', 'sprites__versions__generation9btomgred_leafgreen__front_default': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-iii/firered-leafgreen/43.png', 'sprites__versions__generationknigvgrered_leafgreen__front_shiny': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-iii/firered-leafgreen/shiny/43.png', 'sprites__versions__generation_iii__ruby_sapphire__back_default': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-iii/ruby-sapphire/back/43.png', 'sprites__versions__generation_iii__ruby_sapphire__back_shiny': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-iii/ruby-sapphire/back/shiny/43.png', 'sprites__versions__generation_iii__ruby_sapphire__front_default': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-iii/ruby-sapphire/43.png', 'sprites__versions__generation_iii__ruby_sapphire__front_shiny': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-iii/ruby-sapphire/shiny/43.png', 'sprites__versions__generation_iv__diamond_pearl__back_default': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-iv/diamond-pearl/back/43.png', 'sprites__versions__generation_iv__diamond_pearl__back_shiny': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-iv/diamond-pearl/back/shiny/43.png', 'sprites__versions__generation_iv__diamond_pearl__front_default': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-iv/diamond-pearl/43.png', 'sprites__versions__generation_iv__diamond_pearl__front_shiny': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-iv/diamond-pearl/shiny/43.png', 'sprites__versions__generationrps16qold_soulsilver__back_default': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-iv/heartgold-soulsilver/back/43.png', 'sprites__versions__generationp6nlzqtgold_soulsilver__back_shiny': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-iv/heartgold-soulsilver/back/shiny/43.png', 'sprites__versions__generationfderbgld_soulsilver__front_default': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-iv/heartgold-soulsilver/43.png', 'sprites__versions__generationpecz7wgold_soulsilver__front_shiny': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-iv/heartgold-soulsilver/shiny/43.png', 'sprites__versions__generation_iv__platinum__back_default': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-iv/platinum/back/43.png', 'sprites__versions__generation_iv__platinum__back_shiny': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-iv/platinum/back/shiny/43.png', 'sprites__versions__generation_iv__platinum__front_default': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-iv/platinum/43.png', 'sprites__versions__generation_iv__platinum__front_shiny': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-iv/platinum/shiny/43.png', 'sprites__versions__generationazl8xqhite__animated__back_default': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-v/black-white/animated/back/43.gif', 'sprites__versions__generationug4uuw_white__animated__back_shiny': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-v/black-white/animated/back/shiny/43.gif', 'sprites__versions__generationpgybaqite__animated__front_default': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-v/black-white/animated/43.gif', 'sprites__versions__generationhvpcvawhite__animated__front_shiny': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-v/black-white/animated/shiny/43.gif', 'sprites__versions__generation_v__black_white__back_default': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-v/black-white/back/43.png', 'sprites__versions__generation_v__black_white__back_shiny': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-v/black-white/back/shiny/43.png', 'sprites__versions__generation_v__black_white__front_default': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-v/black-white/43.png', 'sprites__versions__generation_v__black_white__front_shiny': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-v/black-white/shiny/43.png', 'sprites__versions__generationybnnugalphasapphire__front_default': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-vi/omegaruby-alphasapphire/43.png', 'sprites__versions__generationrgxpagy_alphasapphire__front_shiny': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-vi/omegaruby-alphasapphire/shiny/43.png', 'sprites__versions__generation_vi__x_y__front_default': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-vi/x-y/43.png', 'sprites__versions__generation_vi__x_y__front_shiny': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-vi/x-y/shiny/43.png', 'sprites__versions__generation_vii__icons__front_default': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-vii/icons/43.png', 'sprites__versions__generationwpf5kgun_ultra_moon__front_default': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-vii/ultra-sun-ultra-moon/43.png', 'sprites__versions__generationr1ahxg_sun_ultra_moon__front_shiny': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-vii/ultra-sun-ultra-moon/shiny/43.png', 'sprites__versions__generation_viii__icons__front_default': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-viii/icons/43.png', 'weight': 54, '_dlt_load_id': '1745938590.355844', '_dlt_id': 'XnznCxXO6ylClA', 'sprites__back_female': None, 'sprites__back_shiny_female': None, 'sprites__front_female': None, 'sprites__front_shiny_female': None, 'sprites__other__home__front_female': None, 'sprites__other__home__front_shiny_female': None, 'sprites__other__showdown__back_female': None, 'sprites__other__showdown__front_female': None, 'sprites__other__showdown__front_shiny_female': None, 'sprites__versions__generation_iv__diamond_pearl__back_female': None, 'sprites__versions__generationlzmycaond_pearl__back_shiny_female': None, 'sprites__versions__generation_iv__diamond_pearl__front_female': None, 'sprites__versions__generationdzub4gnd_pearl__front_shiny_female': None, 'sprites__versions__generationh9ctxggold_soulsilver__back_female': None, 'sprites__versions__generationmysahqoulsilver__back_shiny_female': None, 'sprites__versions__generationahtqlqold_soulsilver__front_female': None, 'sprites__versions__generationa5zt9aulsilver__front_shiny_female': None, 'sprites__versions__generation_iv__platinum__back_female': None, 'sprites__versions__generation_iv__platinum__back_shiny_female': None, 'sprites__versions__generation_iv__platinum__front_female': None, 'sprites__versions__generation_iv__platinum__front_shiny_female': None, 'sprites__versions__generationtrqxzgwhite__animated__back_female': None, 'sprites__versions__generationz6he2g_animated__back_shiny_female': None, 'sprites__versions__generationjelegahite__animated__front_female': None, 'sprites__versions__generationnmlgbqanimated__front_shiny_female': None, 'sprites__versions__generation_v__black_white__back_female': None, 'sprites__versions__generation_v__black_white__back_shiny_female': None, 'sprites__versions__generation_v__black_white__front_female': None, 'sprites__versions__generationi6tmfgck_white__front_shiny_female': None, 'sprites__versions__generation4ydklg_alphasapphire__front_female': None, 'sprites__versions__generationxv3wvqsapphire__front_shiny_female': None, 'sprites__versions__generation_vi__x_y__front_female': None, 'sprites__versions__generation_vi__x_y__front_shiny_female': None, 'sprites__versions__generation61zspgsun_ultra_moon__front_female': None, 'sprites__versions__generation6ymmxatra_moon__front_shiny_female': None, 'sprites__versions__generation_viii__icons__front_female': None}\", 'id': UUID('37c6967d-f3aa-5239-a3c3-fdbe5930b1a5')})\n",
"--- (UUID('a3add2e5-9166-5f6b-b2dd-e6739bb1e958'), {'created_at': 1745938597196, 'updated_at': datetime.datetime(2025, 4, 29, 14, 56, 37, 196000, tzinfo=datetime.timezone.utc), 'ontology_valid': False, 'version': 1, 'topological_rank': 0, 'metadata': {'index_fields': ['properties']}, 'type': 'TableRow', 'belongs_to_set': None, 'name': 'pokemon_details:142', 'is_a': {'id': '13520d77-eb3e-5ab2-bdef-c2a0eab53b73', 'created_at': 1745938597193, 'updated_at': 1745938597193, 'ontology_valid': False, 'version': 1, 'topological_rank': 0, 'metadata': {'index_fields': ['name']}, 'type': 'TableType', 'belongs_to_set': None, 'name': 'pokemon_details', 'description': 'Table: pokemon_details'}, 'description': 'Row in pokemon_details with base_experience=142', 'properties': \"{'base_experience': 142, 'cries__latest': 'https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/latest/47.ogg', 'cries__legacy': 'https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/legacy/47.ogg', 'height': 10, 'id': 47, 'is_default': 1, 'location_area_encounters': 'https://pokeapi.co/api/v2/pokemon/47/encounters', 'name': 'parasect', 'order': 81, 'species__name': 'parasect', 'species__url': 'https://pokeapi.co/api/v2/pokemon-species/47/', 'sprites__back_default': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/47.png', 'sprites__back_shiny': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/shiny/47.png', 'sprites__front_default': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/47.png', 'sprites__front_shiny': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/shiny/47.png', 'sprites__other__dream_world__front_default': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/other/dream-world/47.svg', 'sprites__other__home__front_default': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/other/home/47.png', 'sprites__other__home__front_shiny': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/other/home/shiny/47.png', 'sprites__other__official_artwork__front_default': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/other/official-artwork/47.png', 'sprites__other__official_artwork__front_shiny': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/other/official-artwork/shiny/47.png', 'sprites__other__showdown__back_default': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/other/showdown/back/47.gif', 'sprites__other__showdown__back_shiny': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/other/showdown/back/shiny/47.gif', 'sprites__other__showdown__front_default': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/other/showdown/47.gif', 'sprites__other__showdown__front_shiny': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/other/showdown/shiny/47.gif', 'sprites__versions__generation_i__red_blue__back_default': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-i/red-blue/back/47.png', 'sprites__versions__generation_i__red_blue__back_gray': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-i/red-blue/back/gray/47.png', 'sprites__versions__generation_i__red_blue__back_transparent': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-i/red-blue/transparent/back/47.png', 'sprites__versions__generation_i__red_blue__front_default': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-i/red-blue/47.png', 'sprites__versions__generation_i__red_blue__front_gray': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-i/red-blue/gray/47.png', 'sprites__versions__generation_i__red_blue__front_transparent': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-i/red-blue/transparent/47.png', 'sprites__versions__generation_i__yellow__back_default': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-i/yellow/back/47.png', 'sprites__versions__generation_i__yellow__back_gray': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-i/yellow/back/gray/47.png', 'sprites__versions__generation_i__yellow__back_transparent': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-i/yellow/transparent/back/47.png', 'sprites__versions__generation_i__yellow__front_default': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-i/yellow/47.png', 'sprites__versions__generation_i__yellow__front_gray': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-i/yellow/gray/47.png', 'sprites__versions__generation_i__yellow__front_transparent': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-i/yellow/transparent/47.png', 'sprites__versions__generation_ii__crystal__back_default': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-ii/crystal/back/47.png', 'sprites__versions__generation_ii__crystal__back_shiny': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-ii/crystal/back/shiny/47.png', 'sprites__versions__generationk6j2kastal__back_shiny_transparent': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-ii/crystal/transparent/back/shiny/47.png', 'sprites__versions__generation_ii__crystal__back_transparent': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-ii/crystal/transparent/back/47.png', 'sprites__versions__generation_ii__crystal__front_default': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-ii/crystal/47.png', 'sprites__versions__generation_ii__crystal__front_shiny': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-ii/crystal/shiny/47.png', 'sprites__versions__generationxcyebgtal__front_shiny_transparent': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-ii/crystal/transparent/shiny/47.png', 'sprites__versions__generation_ii__crystal__front_transparent': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-ii/crystal/transparent/47.png', 'sprites__versions__generation_ii__gold__back_default': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-ii/gold/back/47.png', 'sprites__versions__generation_ii__gold__back_shiny': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-ii/gold/back/shiny/47.png', 'sprites__versions__generation_ii__gold__front_default': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-ii/gold/47.png', 'sprites__versions__generation_ii__gold__front_shiny': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-ii/gold/shiny/47.png', 'sprites__versions__generation_ii__gold__front_transparent': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-ii/gold/transparent/47.png', 'sprites__versions__generation_ii__silver__back_default': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-ii/silver/back/47.png', 'sprites__versions__generation_ii__silver__back_shiny': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-ii/silver/back/shiny/47.png', 'sprites__versions__generation_ii__silver__front_default': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-ii/silver/47.png', 'sprites__versions__generation_ii__silver__front_shiny': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-ii/silver/shiny/47.png', 'sprites__versions__generation_ii__silver__front_transparent': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-ii/silver/transparent/47.png', 'sprites__versions__generation_iii__emerald__front_default': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-iii/emerald/47.png', 'sprites__versions__generation_iii__emerald__front_shiny': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-iii/emerald/shiny/47.png', 'sprites__versions__generationzbu5nqered_leafgreen__back_default': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-iii/firered-leafgreen/back/47.png', 'sprites__versions__generationeoxbwairered_leafgreen__back_shiny': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-iii/firered-leafgreen/back/shiny/47.png', 'sprites__versions__generation9btomgred_leafgreen__front_default': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-iii/firered-leafgreen/47.png', 'sprites__versions__generationknigvgrered_leafgreen__front_shiny': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-iii/firered-leafgreen/shiny/47.png', 'sprites__versions__generation_iii__ruby_sapphire__back_default': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-iii/ruby-sapphire/back/47.png', 'sprites__versions__generation_iii__ruby_sapphire__back_shiny': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-iii/ruby-sapphire/back/shiny/47.png', 'sprites__versions__generation_iii__ruby_sapphire__front_default': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-iii/ruby-sapphire/47.png', 'sprites__versions__generation_iii__ruby_sapphire__front_shiny': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-iii/ruby-sapphire/shiny/47.png', 'sprites__versions__generation_iv__diamond_pearl__back_default': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-iv/diamond-pearl/back/47.png', 'sprites__versions__generation_iv__diamond_pearl__back_shiny': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-iv/diamond-pearl/back/shiny/47.png', 'sprites__versions__generation_iv__diamond_pearl__front_default': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-iv/diamond-pearl/47.png', 'sprites__versions__generation_iv__diamond_pearl__front_shiny': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-iv/diamond-pearl/shiny/47.png', 'sprites__versions__generationrps16qold_soulsilver__back_default': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-iv/heartgold-soulsilver/back/47.png', 'sprites__versions__generationp6nlzqtgold_soulsilver__back_shiny': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-iv/heartgold-soulsilver/back/shiny/47.png', 'sprites__versions__generationfderbgld_soulsilver__front_default': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-iv/heartgold-soulsilver/47.png', 'sprites__versions__generationpecz7wgold_soulsilver__front_shiny': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-iv/heartgold-soulsilver/shiny/47.png', 'sprites__versions__generation_iv__platinum__back_default': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-iv/platinum/back/47.png', 'sprites__versions__generation_iv__platinum__back_shiny': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-iv/platinum/back/shiny/47.png', 'sprites__versions__generation_iv__platinum__front_default': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-iv/platinum/47.png', 'sprites__versions__generation_iv__platinum__front_shiny': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-iv/platinum/shiny/47.png', 'sprites__versions__generationazl8xqhite__animated__back_default': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-v/black-white/animated/back/47.gif', 'sprites__versions__generationug4uuw_white__animated__back_shiny': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-v/black-white/animated/back/shiny/47.gif', 'sprites__versions__generationpgybaqite__animated__front_default': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-v/black-white/animated/47.gif', 'sprites__versions__generationhvpcvawhite__animated__front_shiny': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-v/black-white/animated/shiny/47.gif', 'sprites__versions__generation_v__black_white__back_default': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-v/black-white/back/47.png', 'sprites__versions__generation_v__black_white__back_shiny': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-v/black-white/back/shiny/47.png', 'sprites__versions__generation_v__black_white__front_default': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-v/black-white/47.png', 'sprites__versions__generation_v__black_white__front_shiny': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-v/black-white/shiny/47.png', 'sprites__versions__generationybnnugalphasapphire__front_default': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-vi/omegaruby-alphasapphire/47.png', 'sprites__versions__generationrgxpagy_alphasapphire__front_shiny': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-vi/omegaruby-alphasapphire/shiny/47.png', 'sprites__versions__generation_vi__x_y__front_default': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-vi/x-y/47.png', 'sprites__versions__generation_vi__x_y__front_shiny': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-vi/x-y/shiny/47.png', 'sprites__versions__generation_vii__icons__front_default': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-vii/icons/47.png', 'sprites__versions__generationwpf5kgun_ultra_moon__front_default': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-vii/ultra-sun-ultra-moon/47.png', 'sprites__versions__generationr1ahxg_sun_ultra_moon__front_shiny': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-vii/ultra-sun-ultra-moon/shiny/47.png', 'sprites__versions__generation_viii__icons__front_default': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-viii/icons/47.png', 'weight': 295, '_dlt_load_id': '1745938590.355844', '_dlt_id': 's2nsB71KYZ4n3A', 'sprites__back_female': None, 'sprites__back_shiny_female': None, 'sprites__front_female': None, 'sprites__front_shiny_female': None, 'sprites__other__home__front_female': None, 'sprites__other__home__front_shiny_female': None, 'sprites__other__showdown__back_female': None, 'sprites__other__showdown__front_female': None, 'sprites__other__showdown__front_shiny_female': None, 'sprites__versions__generation_iv__diamond_pearl__back_female': None, 'sprites__versions__generationlzmycaond_pearl__back_shiny_female': None, 'sprites__versions__generation_iv__diamond_pearl__front_female': None, 'sprites__versions__generationdzub4gnd_pearl__front_shiny_female': None, 'sprites__versions__generationh9ctxggold_soulsilver__back_female': None, 'sprites__versions__generationmysahqoulsilver__back_shiny_female': None, 'sprites__versions__generationahtqlqold_soulsilver__front_female': None, 'sprites__versions__generationa5zt9aulsilver__front_shiny_female': None, 'sprites__versions__generation_iv__platinum__back_female': None, 'sprites__versions__generation_iv__platinum__back_shiny_female': None, 'sprites__versions__generation_iv__platinum__front_female': None, 'sprites__versions__generation_iv__platinum__front_shiny_female': None, 'sprites__versions__generationtrqxzgwhite__animated__back_female': None, 'sprites__versions__generationz6he2g_animated__back_shiny_female': None, 'sprites__versions__generationjelegahite__animated__front_female': None, 'sprites__versions__generationnmlgbqanimated__front_shiny_female': None, 'sprites__versions__generation_v__black_white__back_female': None, 'sprites__versions__generation_v__black_white__back_shiny_female': None, 'sprites__versions__generation_v__black_white__front_female': None, 'sprites__versions__generationi6tmfgck_white__front_shiny_female': None, 'sprites__versions__generation4ydklg_alphasapphire__front_female': None, 'sprites__versions__generationxv3wvqsapphire__front_shiny_female': None, 'sprites__versions__generation_vi__x_y__front_female': None, 'sprites__versions__generation_vi__x_y__front_shiny_female': None, 'sprites__versions__generation61zspgsun_ultra_moon__front_female': None, 'sprites__versions__generation6ymmxatra_moon__front_shiny_female': None, 'sprites__versions__generation_viii__icons__front_female': None}\", 'id': UUID('a3add2e5-9166-5f6b-b2dd-e6739bb1e958')})\n",
"--- (UUID('b77bb8d8-6ad3-5376-8acf-fa3601f41423'), {'created_at': 1745938597194, 'updated_at': datetime.datetime(2025, 4, 29, 14, 56, 37, 194000, tzinfo=datetime.timezone.utc), 'ontology_valid': False, 'version': 1, 'topological_rank': 0, 'metadata': {'index_fields': ['properties']}, 'type': 'TableRow', 'belongs_to_set': None, 'name': 'pokemon_details:263', 'is_a': {'id': '13520d77-eb3e-5ab2-bdef-c2a0eab53b73', 'created_at': 1745938597193, 'updated_at': 1745938597193, 'ontology_valid': False, 'version': 1, 'topological_rank': 0, 'metadata': {'index_fields': ['name']}, 'type': 'TableType', 'belongs_to_set': None, 'name': 'pokemon_details', 'description': 'Table: pokemon_details'}, 'description': 'Row in pokemon_details with base_experience=263', 'properties': \"{'base_experience': 263, 'cries__latest': 'https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/latest/3.ogg', 'cries__legacy': 'https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/legacy/3.ogg', 'height': 20, 'id': 3, 'is_default': 1, 'location_area_encounters': 'https://pokeapi.co/api/v2/pokemon/3/encounters', 'name': 'venusaur', 'order': 3, 'species__name': 'venusaur', 'species__url': 'https://pokeapi.co/api/v2/pokemon-species/3/', 'sprites__back_default': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/3.png', 'sprites__back_shiny': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/shiny/3.png', 'sprites__front_default': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/3.png', 'sprites__front_shiny': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/shiny/3.png', 'sprites__other__dream_world__front_default': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/other/dream-world/3.svg', 'sprites__other__home__front_default': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/other/home/3.png', 'sprites__other__home__front_shiny': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/other/home/shiny/3.png', 'sprites__other__official_artwork__front_default': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/other/official-artwork/3.png', 'sprites__other__official_artwork__front_shiny': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/other/official-artwork/shiny/3.png', 'sprites__other__showdown__back_default': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/other/showdown/back/3.gif', 'sprites__other__showdown__back_shiny': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/other/showdown/back/shiny/3.gif', 'sprites__other__showdown__front_default': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/other/showdown/3.gif', 'sprites__other__showdown__front_shiny': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/other/showdown/shiny/3.gif', 'sprites__versions__generation_i__red_blue__back_default': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-i/red-blue/back/3.png', 'sprites__versions__generation_i__red_blue__back_gray': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-i/red-blue/back/gray/3.png', 'sprites__versions__generation_i__red_blue__back_transparent': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-i/red-blue/transparent/back/3.png', 'sprites__versions__generation_i__red_blue__front_default': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-i/red-blue/3.png', 'sprites__versions__generation_i__red_blue__front_gray': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-i/red-blue/gray/3.png', 'sprites__versions__generation_i__red_blue__front_transparent': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-i/red-blue/transparent/3.png', 'sprites__versions__generation_i__yellow__back_default': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-i/yellow/back/3.png', 'sprites__versions__generation_i__yellow__back_gray': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-i/yellow/back/gray/3.png', 'sprites__versions__generation_i__yellow__back_transparent': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-i/yellow/transparent/back/3.png', 'sprites__versions__generation_i__yellow__front_default': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-i/yellow/3.png', 'sprites__versions__generation_i__yellow__front_gray': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-i/yellow/gray/3.png', 'sprites__versions__generation_i__yellow__front_transparent': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-i/yellow/transparent/3.png', 'sprites__versions__generation_ii__crystal__back_default': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-ii/crystal/back/3.png', 'sprites__versions__generation_ii__crystal__back_shiny': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-ii/crystal/back/shiny/3.png', 'sprites__versions__generationk6j2kastal__back_shiny_transparent': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-ii/crystal/transparent/back/shiny/3.png', 'sprites__versions__generation_ii__crystal__back_transparent': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-ii/crystal/transparent/back/3.png', 'sprites__versions__generation_ii__crystal__front_default': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-ii/crystal/3.png', 'sprites__versions__generation_ii__crystal__front_shiny': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-ii/crystal/shiny/3.png', 'sprites__versions__generationxcyebgtal__front_shiny_transparent': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-ii/crystal/transparent/shiny/3.png', 'sprites__versions__generation_ii__crystal__front_transparent': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-ii/crystal/transparent/3.png', 'sprites__versions__generation_ii__gold__back_default': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-ii/gold/back/3.png', 'sprites__versions__generation_ii__gold__back_shiny': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-ii/gold/back/shiny/3.png', 'sprites__versions__generation_ii__gold__front_default': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-ii/gold/3.png', 'sprites__versions__generation_ii__gold__front_shiny': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-ii/gold/shiny/3.png', 'sprites__versions__generation_ii__gold__front_transparent': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-ii/gold/transparent/3.png', 'sprites__versions__generation_ii__silver__back_default': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-ii/silver/back/3.png', 'sprites__versions__generation_ii__silver__back_shiny': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-ii/silver/back/shiny/3.png', 'sprites__versions__generation_ii__silver__front_default': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-ii/silver/3.png', 'sprites__versions__generation_ii__silver__front_shiny': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-ii/silver/shiny/3.png', 'sprites__versions__generation_ii__silver__front_transparent': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-ii/silver/transparent/3.png', 'sprites__versions__generation_iii__emerald__front_default': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-iii/emerald/3.png', 'sprites__versions__generation_iii__emerald__front_shiny': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-iii/emerald/shiny/3.png', 'sprites__versions__generationzbu5nqered_leafgreen__back_default': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-iii/firered-leafgreen/back/3.png', 'sprites__versions__generationeoxbwairered_leafgreen__back_shiny': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-iii/firered-leafgreen/back/shiny/3.png', 'sprites__versions__generation9btomgred_leafgreen__front_default': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-iii/firered-leafgreen/3.png', 'sprites__versions__generationknigvgrered_leafgreen__front_shiny': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-iii/firered-leafgreen/shiny/3.png', 'sprites__versions__generation_iii__ruby_sapphire__back_default': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-iii/ruby-sapphire/back/3.png', 'sprites__versions__generation_iii__ruby_sapphire__back_shiny': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-iii/ruby-sapphire/back/shiny/3.png', 'sprites__versions__generation_iii__ruby_sapphire__front_default': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-iii/ruby-sapphire/3.png', 'sprites__versions__generation_iii__ruby_sapphire__front_shiny': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-iii/ruby-sapphire/shiny/3.png', 'sprites__versions__generation_iv__diamond_pearl__back_default': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-iv/diamond-pearl/back/3.png', 'sprites__versions__generation_iv__diamond_pearl__back_shiny': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-iv/diamond-pearl/back/shiny/3.png', 'sprites__versions__generation_iv__diamond_pearl__front_default': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-iv/diamond-pearl/3.png', 'sprites__versions__generation_iv__diamond_pearl__front_shiny': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-iv/diamond-pearl/shiny/3.png', 'sprites__versions__generationrps16qold_soulsilver__back_default': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-iv/heartgold-soulsilver/back/3.png', 'sprites__versions__generationp6nlzqtgold_soulsilver__back_shiny': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-iv/heartgold-soulsilver/back/shiny/3.png', 'sprites__versions__generationfderbgld_soulsilver__front_default': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-iv/heartgold-soulsilver/3.png', 'sprites__versions__generationpecz7wgold_soulsilver__front_shiny': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-iv/heartgold-soulsilver/shiny/3.png', 'sprites__versions__generation_iv__platinum__back_default': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-iv/platinum/back/3.png', 'sprites__versions__generation_iv__platinum__back_shiny': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-iv/platinum/back/shiny/3.png', 'sprites__versions__generation_iv__platinum__front_default': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-iv/platinum/3.png', 'sprites__versions__generation_iv__platinum__front_shiny': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-iv/platinum/shiny/3.png', 'sprites__versions__generationazl8xqhite__animated__back_default': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-v/black-white/animated/back/3.gif', 'sprites__versions__generationug4uuw_white__animated__back_shiny': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-v/black-white/animated/back/shiny/3.gif', 'sprites__versions__generationpgybaqite__animated__front_default': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-v/black-white/animated/3.gif', 'sprites__versions__generationhvpcvawhite__animated__front_shiny': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-v/black-white/animated/shiny/3.gif', 'sprites__versions__generation_v__black_white__back_default': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-v/black-white/back/3.png', 'sprites__versions__generation_v__black_white__back_shiny': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-v/black-white/back/shiny/3.png', 'sprites__versions__generation_v__black_white__front_default': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-v/black-white/3.png', 'sprites__versions__generation_v__black_white__front_shiny': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-v/black-white/shiny/3.png', 'sprites__versions__generationybnnugalphasapphire__front_default': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-vi/omegaruby-alphasapphire/3.png', 'sprites__versions__generationrgxpagy_alphasapphire__front_shiny': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-vi/omegaruby-alphasapphire/shiny/3.png', 'sprites__versions__generation_vi__x_y__front_default': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-vi/x-y/3.png', 'sprites__versions__generation_vi__x_y__front_shiny': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-vi/x-y/shiny/3.png', 'sprites__versions__generation_vii__icons__front_default': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-vii/icons/3.png', 'sprites__versions__generationwpf5kgun_ultra_moon__front_default': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-vii/ultra-sun-ultra-moon/3.png', 'sprites__versions__generationr1ahxg_sun_ultra_moon__front_shiny': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-vii/ultra-sun-ultra-moon/shiny/3.png', 'sprites__versions__generation_viii__icons__front_default': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-viii/icons/3.png', 'weight': 1000, '_dlt_load_id': '1745938590.355844', '_dlt_id': 'U0qFxvLKpFOGxw', 'sprites__back_female': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/female/3.png', 'sprites__back_shiny_female': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/shiny/female/3.png', 'sprites__front_female': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/female/3.png', 'sprites__front_shiny_female': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/shiny/female/3.png', 'sprites__other__home__front_female': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/other/home/female/3.png', 'sprites__other__home__front_shiny_female': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/other/home/shiny/female/3.png', 'sprites__other__showdown__back_female': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/other/showdown/back/female/3.gif', 'sprites__other__showdown__front_female': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/other/showdown/female/3.gif', 'sprites__other__showdown__front_shiny_female': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/other/showdown/shiny/female/3.gif', 'sprites__versions__generation_iv__diamond_pearl__back_female': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-iv/diamond-pearl/back/female/3.png', 'sprites__versions__generationlzmycaond_pearl__back_shiny_female': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-iv/diamond-pearl/back/shiny/female/3.png', 'sprites__versions__generation_iv__diamond_pearl__front_female': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-iv/diamond-pearl/female/3.png', 'sprites__versions__generationdzub4gnd_pearl__front_shiny_female': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-iv/diamond-pearl/shiny/female/3.png', 'sprites__versions__generationh9ctxggold_soulsilver__back_female': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-iv/heartgold-soulsilver/back/female/3.png', 'sprites__versions__generationmysahqoulsilver__back_shiny_female': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-iv/heartgold-soulsilver/back/shiny/female/3.png', 'sprites__versions__generationahtqlqold_soulsilver__front_female': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-iv/heartgold-soulsilver/female/3.png', 'sprites__versions__generationa5zt9aulsilver__front_shiny_female': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-iv/heartgold-soulsilver/shiny/female/3.png', 'sprites__versions__generation_iv__platinum__back_female': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-iv/platinum/back/female/3.png', 'sprites__versions__generation_iv__platinum__back_shiny_female': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-iv/platinum/back/shiny/female/3.png', 'sprites__versions__generation_iv__platinum__front_female': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-iv/platinum/female/3.png', 'sprites__versions__generation_iv__platinum__front_shiny_female': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-iv/platinum/shiny/female/3.png', 'sprites__versions__generationtrqxzgwhite__animated__back_female': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-v/black-white/animated/back/female/3.gif', 'sprites__versions__generationz6he2g_animated__back_shiny_female': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-v/black-white/animated/back/shiny/female/3.gif', 'sprites__versions__generationjelegahite__animated__front_female': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-v/black-white/animated/female/3.gif', 'sprites__versions__generationnmlgbqanimated__front_shiny_female': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-v/black-white/animated/shiny/female/3.gif', 'sprites__versions__generation_v__black_white__back_female': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-v/black-white/back/female/3.png', 'sprites__versions__generation_v__black_white__back_shiny_female': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-v/black-white/back/shiny/female/3.png', 'sprites__versions__generation_v__black_white__front_female': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-v/black-white/female/3.png', 'sprites__versions__generationi6tmfgck_white__front_shiny_female': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-v/black-white/shiny/female/3.png', 'sprites__versions__generation4ydklg_alphasapphire__front_female': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-vi/omegaruby-alphasapphire/female/3.png', 'sprites__versions__generationxv3wvqsapphire__front_shiny_female': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-vi/omegaruby-alphasapphire/shiny/female/3.png', 'sprites__versions__generation_vi__x_y__front_female': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-vi/x-y/female/3.png', 'sprites__versions__generation_vi__x_y__front_shiny_female': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-vi/x-y/shiny/female/3.png', 'sprites__versions__generation61zspgsun_ultra_moon__front_female': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-vii/ultra-sun-ultra-moon/female/3.png', 'sprites__versions__generation6ymmxatra_moon__front_shiny_female': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-vii/ultra-sun-ultra-moon/shiny/female/3.png', 'sprites__versions__generation_viii__icons__front_female': None}\", 'id': UUID('b77bb8d8-6ad3-5376-8acf-fa3601f41423')})\n"
]
}
],
"source": [
"# Print the first 10 nodes in the graph with their data\n",
"nodes_dict = knowledge_graph.nodes(data=True)\n",
"for node in list(nodes_dict)[:10]:\n",
" print('---',node)"
]
},
{
"cell_type": "markdown",
"id": "b6d25c6c77bab8d5",
"metadata": {},
"source": [
"The node data consists of a few fields:"
]
},
{
"cell_type": "code",
"execution_count": 10,
"id": "c99e319b3646b234",
"metadata": {
"ExecuteTime": {
"end_time": "2025-04-22T20:23:47.082650Z",
"start_time": "2025-04-22T20:23:47.077861Z"
}
},
"outputs": [
{
"data": {
"text/plain": [
"dict_keys(['created_at', 'updated_at', 'ontology_valid', 'version', 'topological_rank', 'metadata', 'type', 'belongs_to_set', 'name', 'is_a', 'description', 'properties', 'id'])"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"node[1].keys()"
]
},
{
"cell_type": "markdown",
"id": "674f15fac7d14059",
"metadata": {},
"source": [
"We can see how the graph looks, using nx drawing tools."
]
},
{
"cell_type": "code",
"execution_count": 12,
"id": "a344f3b96685c122",
"metadata": {
"ExecuteTime": {
"end_time": "2025-04-22T20:30:45.374685Z",
"start_time": "2025-04-22T20:30:44.856090Z"
}
},
"outputs": [
{
"data": {
"image/png": "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FyfrafzP/yvIGcYpGyMoQwghhBB64JnUtFyfycnwve99r603Wc/mfCCCMoQQQgihh0c96lFtBhwCUZ/JifDrX/+6CdCXvvSlbf1hI4IyhBBCCGEEplM0A46m5SPn9B7J73//++78889vy6+00krdMBJBGUIIIYQwSoGN6RTNgHP66ac3D+RoeP30009vy22//fZDO6d3pl4MIYQQQhgDQrHm8tZGSGsgolEBjpC4MPef/dmfNTG5zDLLdMNKBGUIIYQQwjgQj2bA0bRcn8lCAY6cyZVWWmloPZNFBGUIIYQQwgQgmbQS0mdSayDV3MNYgDMaEZQhhBBCCGFKpCgnhBBCCCFMiQjKEEIIIYQwJSIoQwghhBDClIigDCGEEEIIUyKCMoQQQgghTIkIyhBCCCGEMCUePbXV5x/pMRVCCCGEMDkiKHu64P/zP/9z981vfvOPuuC/5CUvaZPED3sX/BBCCCGE0Uhj8xHzdJqj01ydPJM8leboNFeneTpNEv83f/M3c727IYQQQgh9xdALSmLy1FNPbUJxyy237B73uMf90TL//u//3p133nlt2Z133jmiMoQQQgihhz8Z9jA3zySBuOOOO44qJuF171vO8tYLIYQQQgj/j6EWlHImhbl5Jv/kT8Y/Fd7fYost2vLf+ta3Zm0fQwghhDAzCNL+9re/7R5++OH2PORB2ykxtEU5fjQKcORMjuWZHMliiy3W8iu/8Y1vdC972ctS/R1CCCEM4P3/oYce6m6++ebutttu6371q18tuJ+nEHfRGVpBqeBGNfcrX/nKSa1HgH73u99t6z/mMY+Zsf0LIYQQwvR3c7n44ou7W2+9tb32hCc8oVtyySW7F7/4xd1zn/vc7q677uouuuiitsx2223XrbDCCnEeTZChFZT6TEI192SoEYv1IyhDCCGEwenmwjP52Mc+tttjjz1axPF//ud/um9/+9vtIWrJO7naaqt11157bffud7+7/b/JJpvEYzkBhlZQaloOnsbJUAU5tX4IIYQQ+ndikurmstRSS3Urr7xy97SnPa173vOe1z360Y9udRFPetKTmifyqquu6q6++urWzeXAAw/szjzzzO7GG2/sLrzwwu4rX/lKWgcuhKEVlH5ociX0mXzBC14w4fX0pLTeZD2bIYQQQph+iMivf/3r3U033dTyIQlFQtK9+oUvfGETicSk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0faZ51Ho+5ZbbmlFOsSzB1Gp+IbglDu5/PLLt9dvuOGG1hKJuCQ4CUpFPWedddZcH1YIIURQhhD6s3jFdIo8dOayJryEinkfCbIqxOGZ9L7ltt9++76f05soNi+3xuU1889znvOc7kc/+lF3/fXXd7feemt3xx13NFFphhzHKjR+2WWXtWOWP+phO0Sm+b0vv/zyVHyHEOacTL0YQuj7ubx59kqE8V4SUELcHjyTxKSZZvod+21fhe3N662B+4orrtgas/NKEpuKcFA5k47RXN8ve9nLuq9//evdq171qgWV8Mz35z73ue60005rXtwQQpgr0jYohNC3CG2vvvrqLaStCEWbHeKJt87814QYodXvnslCqFrup2ehbF5IuZEf//jHmzD2GuGseOfuu+9ueaREpnW+/e1vt/zKqnTntVU1ToDydEZQhhDmkgjKEEJfeyeJyFVXXbXbfffdm9eOqCK2vG8awmc84xmtR+MgwLOowEgY2/SJmrcrMDr++ONb+J7H0bFV3ui2227bPJgE6AknnNAEJgGqMMeyxKS80nvuuaeJ0RBCmCsiKEMIfQexeOqppzahaHrCkVMwaugth1DRjuV23nnngRCVch95U4lKhTgrrLBCd+GFFzbBTFhqXE4k8kKq3q6pJDVwX2ONNVpD9B/84AdNRAuba25ue5433HDDvq5wDyHMbyIoQwh9BW8czySBuOOOO446dzeITO8ryrH8W9/61r4PfQtlE5OOiWhWhCNcDV7GZZddtlt55ZXbckLaxKOiG8L5SU96Uve85z2v+9a3vtVdccUVrUhJIY8pGc0mZPl+nSEohDD/SZV3CKGvUKgizM0zOZaYLLwvj9LyhNag9NisJuYnn3xyC3UTkm9729vaMetTufTSSzfxyBMrh5TIvuCCC1q192Mf+9jm6Vx77bVbk3Mhby2GiM8QQpgrIihDCH2D8C5xxOs2Msw9Fjx1chErPNzvqFJ3bMSwym75kNttt10TioqNiOMHHnigu/HGG1so2/Htu+++3S677NLC4muuuWYTobyUGpxvvPHGbdYgXlpezxBCmAsiKEMIfYOw7b/+6782gTgZCFDr1fzf/YywvNZBP/zhD1vhDU/jT3/607b/PJF6UN52222t6nu55ZZrDxXtwvvEpcrw8nKqeFeYVOt88IMfzMw5IYQ5ITmUIYS+oforTnY+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",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"import matplotlib.pyplot as plt\n",
"\n",
"import networkx as nx\n",
"\n",
"\n",
"pos = nx.spring_layout(knowledge_graph, seed=42) # positions for all nodes\n",
"nx.draw(knowledge_graph, pos, with_labels=False, node_size=100, node_color='white',\n",
" edge_color='gray',\n",
" edgecolors='black', alpha=0.5)\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"id": "5201aeb75f7ddf00",
"metadata": {},
"source": [
"We can now add a new field: page rank score. We first compute them using the networkx library."
]
},
{
"cell_type": "code",
"execution_count": 13,
"id": "97734d83d57d62ef",
"metadata": {
"ExecuteTime": {
"end_time": "2025-04-22T20:26:03.564879Z",
"start_time": "2025-04-22T20:26:03.557142Z"
}
},
"outputs": [],
"source": [
"import networkx as nx\n",
"ranks = nx.pagerank(knowledge_graph)"
]
},
{
"cell_type": "markdown",
"id": "33507b44e7910b57",
"metadata": {},
"source": [
"We can take a look at the ranks of the first 10 nodes."
]
},
{
"cell_type": "code",
"execution_count": 14,
"id": "70677c7fc481682a",
"metadata": {
"ExecuteTime": {
"end_time": "2025-04-22T20:27:14.819317Z",
"start_time": "2025-04-22T20:27:14.807163Z"
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"a244724f-3087-55d1-83f6-03abab613487 /rank: 0.0010850203820849888\n",
"ec94ecca-6f04-5127-9d0a-f622b0893251 /rank: 0.0005862681130862192\n",
"a9c0572e-3dec-5729-8453-f627bd010b98 /rank: 0.0010850203820849888\n",
"84c8e4a0-8551-5d3c-a724-6738f342a0d5 /rank: 0.0005862681130862192\n",
"a44c5a8b-ed77-5f32-863f-7994fa541427 /rank: 0.0010850203820849888\n",
"30f578f0-cce2-5d8a-bab0-c93752f4cf9a /rank: 0.0005862681130862192\n",
"13520d77-eb3e-5ab2-bdef-c2a0eab53b73 /rank: 0.02003760660403824\n",
"37c6967d-f3aa-5239-a3c3-fdbe5930b1a5 /rank: 0.0005862681130862192\n",
"a3add2e5-9166-5f6b-b2dd-e6739bb1e958 /rank: 0.0005862681130862192\n",
"b77bb8d8-6ad3-5376-8acf-fa3601f41423 /rank: 0.0005862681130862192\n"
]
}
],
"source": [
"for node in list(ranks)[:10]:\n",
" print(node, '/rank:', ranks[node])"
]
},
{
"cell_type": "markdown",
"id": "50f6b51f62a65cc7",
"metadata": {},
"source": [
"Finally, we can get a feeling of the distribution of the ranks."
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "648db7aec21f8b3b",
"metadata": {
"ExecuteTime": {
"end_time": "2025-04-22T20:31:54.910597Z",
"start_time": "2025-04-22T20:31:54.285586Z"
}
},
"outputs": [],
"source": [
"fig, ax = plt.subplots(figsize=(10, 5))\n",
"plt.hist(list(ranks.values()), bins=60)\n",
"plt.title('Page rank distribution')"
]
},
{
"cell_type": "markdown",
"id": "4e011e5c95dcfe5c",
"metadata": {},
"source": [
"As we can see, some nodes have a very high score, while most of them are around 0.01. Let's see\n",
"the data of the node with the highest score."
]
},
{
"cell_type": "code",
"execution_count": 51,
"id": "b2e83e84cd9bf6a5",
"metadata": {
"ExecuteTime": {
"end_time": "2025-04-22T20:33:06.355984Z",
"start_time": "2025-04-22T20:33:06.352761Z"
}
},
"outputs": [],
"source": [
"# Sort the ranks dictionary by value in descending order\n",
"sorted_ranks = sorted(ranks.items(), key=lambda x: x[1], reverse=True)"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "a8a49371bc7640ca",
"metadata": {
"ExecuteTime": {
"end_time": "2025-04-22T20:33:16.681400Z",
"start_time": "2025-04-22T20:33:16.665675Z"
}
},
"outputs": [],
"source": [
"sorted_ranks[0]"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "e9a594c0fe27dea",
"metadata": {
"ExecuteTime": {
"end_time": "2025-04-22T20:33:40.483516Z",
"start_time": "2025-04-22T20:33:40.479188Z"
}
},
"outputs": [],
"source": [
"knowledge_graph.nodes[sorted_ranks[0][0]] # get the node data"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "95227d160bddb696",
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "cognee-jGxqfqQ0-py3.11",
"language": "python",
"name": "python3"
},
"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.11.11"
}
},
"nbformat": 4,
"nbformat_minor": 5
}