From 9448e36201d3303371bfbf843e7de6e2fe1e3d88 Mon Sep 17 00:00:00 2001 From: Boris Arzentar Date: Tue, 12 Mar 2024 22:55:56 +0100 Subject: [PATCH] feat: cognify dataset from add step --- cognee.add.ipynb | 137 ---------- cognee.ipynb | 254 ++++++++++++++++++ cognitive_architecture/__init__.py | 2 +- cognitive_architecture/api/v1/add/add.py | 112 +++++--- cognitive_architecture/api/v1/add/add_dlt.py | 91 ------- .../api/v1/add/add_standalone.py | 53 ++++ .../api/v1/cognify/cognify.py | 25 +- .../api/v1/list_datasets/list_datasets.py | 6 + .../data/cognee/cognee.duckdb | Bin 12288 -> 0 bytes .../data/cognee/cognee.duckdb.wal | Bin 141504 -> 0 bytes .../databases/relational/__init__.py | 1 + .../relational/duckdb/DuckDBAdapter.py | 22 ++ 12 files changed, 435 insertions(+), 268 deletions(-) delete mode 100644 cognee.add.ipynb create mode 100644 cognee.ipynb delete mode 100644 cognitive_architecture/api/v1/add/add_dlt.py create mode 100644 cognitive_architecture/api/v1/add/add_standalone.py create mode 100644 cognitive_architecture/api/v1/list_datasets/list_datasets.py delete mode 100644 cognitive_architecture/data/cognee/cognee.duckdb delete mode 100644 cognitive_architecture/data/cognee/cognee.duckdb.wal create mode 100644 cognitive_architecture/infrastructure/databases/relational/duckdb/DuckDBAdapter.py diff --git a/cognee.add.ipynb b/cognee.add.ipynb deleted file mode 100644 index c948512fb..000000000 --- a/cognee.add.ipynb +++ /dev/null @@ -1,137 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": null, - "id": "823c799a", - "metadata": {}, - "outputs": [], - "source": [ - "from os import listdir, path\n", - "from uuid import uuid5, UUID\n", - "from cognitive_architecture import add\n", - "\n", - "data_path = path.abspath(\".data\")\n", - "pdf_files = [file for file in listdir(data_path) if path.isfile(path.join(data_path, file))]\n", - "\n", - "await add(\n", - " list(map(\n", - " lambda file_path: f\"file://{path.join(data_path, file_path)}\",\n", - " pdf_files\n", - " ))[:3],\n", - " uuid5(UUID(\"00000000-0000-0000-0000-000000000000\"), \"pdf_files_cognee\"),\n", - " \"test-dataset\"\n", - ")\n", - "\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "c4d5a399", - "metadata": {}, - "outputs": [], - "source": [ - "from os import listdir, path\n", - "from uuid import uuid5, UUID\n", - "from cognitive_architecture import add_dlt\n", - "\n", - "data_path = path.abspath(\".data\")\n", - "# pdf_files = [file for file in listdir(data_path) if path.isfile(path.join(data_path, file))]\n", - "\n", - "# await add_dlt(\n", - "# list(map(\n", - "# lambda file_path: f\"file://{path.join(data_path, file_path)}\",\n", - "# pdf_files\n", - "# ))[:5],\n", - "# \"pdf_files\"\n", - "# )\n", - "\n", - "results = await add_dlt(data_path, \"pravilnik.energetska_efikasnost\")\n", - "for result in results:\n", - " print(result)\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "47edce91", - "metadata": {}, - "outputs": [], - "source": [ - "import duckdb\n", - "from cognitive_architecture.root_dir import get_absolute_path\n", - "\n", - "dataset_name = \"pdf_files\"\n", - "\n", - "db_path = get_absolute_path(\"./data/cognee\")\n", - "db_location = db_path + \"/cognee.duckdb\"\n", - "print(db_location)\n", - "\n", - "db = duckdb.connect(db_location)\n", - "\n", - "izmene = db.sql(f\"SELECT * FROM izmene.file_metadata;\")\n", - "\n", - "print(izmene)\n", - "\n", - "pravilnik = db.sql(f\"SELECT * FROM pravilnik.file_metadata;\")\n", - "\n", - "print(pravilnik)\n", - "\n", - "\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "607bf624", - "metadata": {}, - "outputs": [], - "source": [ - "from os import path, listdir\n", - "from cognitive_architecture import cognify\n", - "from unstructured.cleaners.core import clean\n", - "from unstructured.partition.pdf import partition_pdf\n", - "from cognitive_architecture.utils import render_graph\n", - "\n", - "data_path = path.abspath(\".data/izmene\")\n", - "pdf_files = [file for file in listdir(data_path) if path.isfile(path.join(data_path, file))]\n", - "\n", - "with open(path.join(data_path, pdf_files[0]), mode = \"rb\") as file:\n", - " # elements = partition_pdf(file = file, strategy = \"fast\")\n", - " # text = \"\\n\".join(map(lambda element: clean(element.text), elements))\n", - "\n", - " text = \"\"\"In the nicest possible way, Britons have always been a bit silly about animals. “Keeping pets, for the English, is not so much a leisure activity as it is an entire way of life,” wrote the anthropologist Kate Fox in Watching the English, nearly 20 years ago. Our dogs, in particular, have been an acceptable outlet for emotions and impulses we otherwise keep strictly controlled – our latent desire to be demonstratively affectionate, to be silly and chat to strangers. If this seems like an exaggeration, consider the different reactions you’d get if you struck up a conversation with someone in a park with a dog, versus someone on the train.\n", - "Indeed, British society has been set up to accommodate these four-legged ambassadors. In the UK – unlike Australia, say, or New Zealand – dogs are not just permitted on public transport but often openly encouraged. Many pubs and shops display waggish signs, reading, “Dogs welcome, people tolerated”, and have treat jars on their counters. The other day, as I was waiting outside a cafe with a friend’s dog, the barista urged me to bring her inside.\n", - "For years, Britons’ non-partisan passion for animals has been consistent amid dwindling common ground. But lately, rather than bringing out the best in us, our relationship with dogs is increasingly revealing us at our worst – and our supposed “best friends” are paying the price.\n", - "As with so many latent traits in the national psyche, it all came unleashed with the pandemic, when many people thought they might as well make the most of all that time at home and in local parks with a dog. Between 2019 and 2022, the number of pet dogs in the UK rose from about nine million to 13 million. But there’s long been a seasonal surge around this time of year, substantial enough for the Dogs Trust charity to coin its famous slogan back in 1978: “A dog is for life, not just for Christmas.”\"\"\"\n", - "\n", - " graph = await cognify(text)\n", - "\n", - " graph_url = await render_graph(graph, graph_type = \"networkx\")\n", - " print(graph_url)\n" - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3 (ipykernel)", - "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.10.13" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} diff --git a/cognee.ipynb b/cognee.ipynb new file mode 100644 index 000000000..5011b4009 --- /dev/null +++ b/cognee.ipynb @@ -0,0 +1,254 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": null, + "id": "823c799a", + "metadata": {}, + "outputs": [], + "source": [ + "from os import listdir, path\n", + "from uuid import uuid5, UUID\n", + "from cognitive_architecture import add\n", + "\n", + "data_path = path.abspath(\".data\")\n", + "pdf_files = [file for file in listdir(data_path) if path.isfile(path.join(data_path, file))]\n", + "\n", + "await add(\n", + " list(map(\n", + " lambda file_path: f\"file://{path.join(data_path, file_path)}\",\n", + " pdf_files\n", + " ))[:3],\n", + " uuid5(UUID(\"00000000-0000-0000-0000-000000000000\"), \"pdf_files_cognee\"),\n", + " \"test-dataset\"\n", + ")\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "c4d5a399", + "metadata": {}, + "outputs": [], + "source": [ + "from os import listdir, path\n", + "from uuid import uuid5, UUID\n", + "from cognitive_architecture import add\n", + "\n", + "data_path = path.abspath(\".data\")\n", + "# pdf_files = [file for file in listdir(data_path) if path.isfile(path.join(data_path, file))]\n", + "\n", + "# await add_dlt(\n", + "# list(map(\n", + "# lambda file_path: f\"file://{path.join(data_path, file_path)}\",\n", + "# pdf_files\n", + "# ))[:5],\n", + "# \"pdf_files\"\n", + "# )\n", + "\n", + "results = await add(data_path, \"pravilnik.energetska_efikasnost\")\n", + "for result in results:\n", + " print(result)\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "47edce91", + "metadata": {}, + "outputs": [], + "source": [ + "import duckdb\n", + "from cognitive_architecture.root_dir import get_absolute_path\n", + "\n", + "dataset_name = \"pdf_files\"\n", + "\n", + "db_path = get_absolute_path(\"./data/cognee\")\n", + "db_location = db_path + \"/cognee.duckdb\"\n", + "print(db_location)\n", + "\n", + "db = duckdb.connect(db_location)\n", + "\n", + "tables = db.sql(\"SELECT DISTINCT schema_name FROM duckdb_tables();\").df()\n", + "print(list(filter(lambda table_name: table_name.endswith('staging') is False, tables.to_dict()[\"schema_name\"].values())))\n", + "\n", + "# izmene = db.sql(f\"SELECT * FROM izmene.file_metadata;\")\n", + "\n", + "# print(izmene)\n", + "\n", + "# pravilnik = db.sql(f\"SELECT * FROM pravilnik.file_metadata;\")\n", + "\n", + "# print(pravilnik)\n", + "\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "607bf624", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "['pravilnik_energetska_efikasnost_sertifikati', 'pravilnik_energetska_efikasnost', 'izmene', 'pravilnik']\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "WARNING:root:File /Users/borisarzentar/Projects/Topoteretes/cognee/cognitive_architecture/data/cognee/cognee_graph.pkl not found. Initializing an empty graph." + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "LLM_CLASSIFICATION:LAYER:Laws, regulations, and legal case documents:Document:doc1\n", + "Updated Nodes: [('LLM_LAYER_CLASSIFICATION:TEXT:Document:doc1', {'data_type': 'text', 'context_name': 'TEXT', 'layer_name': 'Laws, regulations, and legal case documents'}), ('Document:doc1', {}), ('LLM_CLASSIFICATION:LAYER:Laws, regulations, and legal case documents:Document:doc1', {'data_type': 'text', 'context_name': 'TEXT', 'layer_name': 'Laws, regulations, and legal case documents'}), ('Ministry of Construction, Transport and Infrastructure - dc903cac-4528-44c7-b1dc-ad1b54a73211 - 35c3720f-c25e-437a-815a-23ad47da0a02 - f25d6b1e-b61b-40f3-bebb-d2eb7dae14e6', {'created_at': '2024-03-12 22:51:16', 'updated_at': '2024-03-12 22:51:16', 'description': 'Ministry of Construction, Transport and Infrastructure', 'category': 'entity', 'memory_type': 'semantic', 'layer_uuid': 'dc903cac-4528-44c7-b1dc-ad1b54a73211', 'layer_description': \"{'layer': 'Legal Structure Layer'}\", 'layer_decomposition_uuid': '35c3720f-c25e-437a-815a-23ad47da0a02', 'unique_id': 'f25d6b1e-b61b-40f3-bebb-d2eb7dae14e6', 'type': 'detail'}), ('Regulation on amendments and supplements to the Regulation on the content, manner, and procedure of preparation and how to conduct control of technical documentation according to the class and purpose of facilities - dc903cac-4528-44c7-b1dc-ad1b54a73211 - 35c3720f-c25e-437a-815a-23ad47da0a02 - 40746e96-0590-408d-9da5-f29fa794ebf5', {'created_at': '2024-03-12 22:51:16', 'updated_at': '2024-03-12 22:51:16', 'description': 'Regulation on amendments and supplements to the Regulation on the content, manner, and procedure of preparation and how to conduct control of technical documentation according to the class and purpose of facilities', 'category': 'entity', 'memory_type': 'semantic', 'layer_uuid': 'dc903cac-4528-44c7-b1dc-ad1b54a73211', 'layer_description': \"{'layer': 'Legal Structure Layer'}\", 'layer_decomposition_uuid': '35c3720f-c25e-437a-815a-23ad47da0a02', 'unique_id': '40746e96-0590-408d-9da5-f29fa794ebf5', 'type': 'detail'}), ('Official Gazette of RS, No. 77/2015 - dc903cac-4528-44c7-b1dc-ad1b54a73211 - 35c3720f-c25e-437a-815a-23ad47da0a02 - 3445497e-2951-4f3b-9d62-da48682f4d4c', {'created_at': '2024-03-12 22:51:16', 'updated_at': '2024-03-12 22:51:16', 'description': 'Official Gazette of RS, No. 77/2015', 'category': 'document', 'memory_type': 'episodic', 'layer_uuid': 'dc903cac-4528-44c7-b1dc-ad1b54a73211', 'layer_description': \"{'layer': 'Legal Structure Layer'}\", 'layer_decomposition_uuid': '35c3720f-c25e-437a-815a-23ad47da0a02', 'unique_id': '3445497e-2951-4f3b-9d62-da48682f4d4c', 'type': 'detail'}), ('Law on Planning and Construction - dc903cac-4528-44c7-b1dc-ad1b54a73211 - 35c3720f-c25e-437a-815a-23ad47da0a02 - 9fcc7992-2773-48ef-956b-0b6818260124', {'created_at': '2024-03-12 22:51:16', 'updated_at': '2024-03-12 22:51:16', 'description': 'Law on Planning and Construction', 'category': 'document', 'memory_type': 'semantic', 'layer_uuid': 'dc903cac-4528-44c7-b1dc-ad1b54a73211', 'layer_description': \"{'layer': 'Legal Structure Layer'}\", 'layer_decomposition_uuid': '35c3720f-c25e-437a-815a-23ad47da0a02', 'unique_id': '9fcc7992-2773-48ef-956b-0b6818260124', 'type': 'detail'}), ('Zorana Mihajlović, Prof. Dr. - dc903cac-4528-44c7-b1dc-ad1b54a73211 - 35c3720f-c25e-437a-815a-23ad47da0a02 - aceadca4-454b-45b6-a487-3e639bc8c095', {'created_at': '2024-03-12 22:51:16', 'updated_at': '2024-03-12 22:51:16', 'description': 'Zorana Mihajlović, Prof. Dr.', 'category': 'person', 'memory_type': 'semantic', 'layer_uuid': 'dc903cac-4528-44c7-b1dc-ad1b54a73211', 'layer_description': \"{'layer': 'Legal Structure Layer'}\", 'layer_decomposition_uuid': '35c3720f-c25e-437a-815a-23ad47da0a02', 'unique_id': 'aceadca4-454b-45b6-a487-3e639bc8c095', 'type': 'detail'})]\n", + "LLM_CLASSIFICATION:LAYER:Laws, regulations, and legal case documents:Document:doc1\n", + "Updated Nodes: [('LLM_LAYER_CLASSIFICATION:TEXT:Document:doc1', {'data_type': 'text', 'context_name': 'TEXT', 'layer_name': 'Laws, regulations, and legal case documents'}), ('Document:doc1', {}), ('LLM_CLASSIFICATION:LAYER:Laws, regulations, and legal case documents:Document:doc1', {'data_type': 'text', 'context_name': 'TEXT', 'layer_name': 'Laws, regulations, and legal case documents'}), ('Ministry of Construction, Transport and Infrastructure - dc903cac-4528-44c7-b1dc-ad1b54a73211 - 35c3720f-c25e-437a-815a-23ad47da0a02 - f25d6b1e-b61b-40f3-bebb-d2eb7dae14e6', {'created_at': '2024-03-12 22:51:16', 'updated_at': '2024-03-12 22:51:16', 'description': 'Ministry of Construction, Transport and Infrastructure', 'category': 'entity', 'memory_type': 'semantic', 'layer_uuid': 'dc903cac-4528-44c7-b1dc-ad1b54a73211', 'layer_description': \"{'layer': 'Legal Structure Layer'}\", 'layer_decomposition_uuid': '35c3720f-c25e-437a-815a-23ad47da0a02', 'unique_id': 'f25d6b1e-b61b-40f3-bebb-d2eb7dae14e6', 'type': 'detail'}), ('Regulation on amendments and supplements to the Regulation on the content, manner, and procedure of preparation and how to conduct control of technical documentation according to the class and purpose of facilities - dc903cac-4528-44c7-b1dc-ad1b54a73211 - 35c3720f-c25e-437a-815a-23ad47da0a02 - 40746e96-0590-408d-9da5-f29fa794ebf5', {'created_at': '2024-03-12 22:51:16', 'updated_at': '2024-03-12 22:51:16', 'description': 'Regulation on amendments and supplements to the Regulation on the content, manner, and procedure of preparation and how to conduct control of technical documentation according to the class and purpose of facilities', 'category': 'entity', 'memory_type': 'semantic', 'layer_uuid': 'dc903cac-4528-44c7-b1dc-ad1b54a73211', 'layer_description': \"{'layer': 'Legal Structure Layer'}\", 'layer_decomposition_uuid': '35c3720f-c25e-437a-815a-23ad47da0a02', 'unique_id': '40746e96-0590-408d-9da5-f29fa794ebf5', 'type': 'detail'}), ('Official Gazette of RS, No. 77/2015 - dc903cac-4528-44c7-b1dc-ad1b54a73211 - 35c3720f-c25e-437a-815a-23ad47da0a02 - 3445497e-2951-4f3b-9d62-da48682f4d4c', {'created_at': '2024-03-12 22:51:16', 'updated_at': '2024-03-12 22:51:16', 'description': 'Official Gazette of RS, No. 77/2015', 'category': 'document', 'memory_type': 'episodic', 'layer_uuid': 'dc903cac-4528-44c7-b1dc-ad1b54a73211', 'layer_description': \"{'layer': 'Legal Structure Layer'}\", 'layer_decomposition_uuid': '35c3720f-c25e-437a-815a-23ad47da0a02', 'unique_id': '3445497e-2951-4f3b-9d62-da48682f4d4c', 'type': 'detail'}), ('Law on Planning and Construction - dc903cac-4528-44c7-b1dc-ad1b54a73211 - 35c3720f-c25e-437a-815a-23ad47da0a02 - 9fcc7992-2773-48ef-956b-0b6818260124', {'created_at': '2024-03-12 22:51:16', 'updated_at': '2024-03-12 22:51:16', 'description': 'Law on Planning and Construction', 'category': 'document', 'memory_type': 'semantic', 'layer_uuid': 'dc903cac-4528-44c7-b1dc-ad1b54a73211', 'layer_description': \"{'layer': 'Legal Structure Layer'}\", 'layer_decomposition_uuid': '35c3720f-c25e-437a-815a-23ad47da0a02', 'unique_id': '9fcc7992-2773-48ef-956b-0b6818260124', 'type': 'detail'}), ('Zorana Mihajlović, Prof. Dr. - dc903cac-4528-44c7-b1dc-ad1b54a73211 - 35c3720f-c25e-437a-815a-23ad47da0a02 - aceadca4-454b-45b6-a487-3e639bc8c095', {'created_at': '2024-03-12 22:51:16', 'updated_at': '2024-03-12 22:51:16', 'description': 'Zorana Mihajlović, Prof. Dr.', 'category': 'person', 'memory_type': 'semantic', 'layer_uuid': 'dc903cac-4528-44c7-b1dc-ad1b54a73211', 'layer_description': \"{'layer': 'Legal Structure Layer'}\", 'layer_decomposition_uuid': '35c3720f-c25e-437a-815a-23ad47da0a02', 'unique_id': 'aceadca4-454b-45b6-a487-3e639bc8c095', 'type': 'detail'}), ('Ministry of Construction, Transport and Infrastructure - dc903cac-4528-44c7-b1dc-ad1b54a73211 - 164e45a4-00bb-4d07-a069-3311a56e3780 - 36baf9c8-2125-4611-baef-923a2b96e5de', {'created_at': '2024-03-12 22:51:16', 'updated_at': '2024-03-12 22:51:16', 'description': 'Ministry of Construction, Transport and Infrastructure', 'category': 'entity', 'memory_type': 'semantic', 'layer_uuid': 'dc903cac-4528-44c7-b1dc-ad1b54a73211', 'layer_description': \"{'layer': 'Terminology and Concepts Layer'}\", 'layer_decomposition_uuid': '164e45a4-00bb-4d07-a069-3311a56e3780', 'unique_id': '36baf9c8-2125-4611-baef-923a2b96e5de', 'type': 'detail'}), ('Rulebook on Amendments and Supplements of the Rulebook on the Content, Manner, and Procedure of Preparation and the Manner of Control of Technical Documentation According to the Class and Purpose of the Buildings - dc903cac-4528-44c7-b1dc-ad1b54a73211 - 164e45a4-00bb-4d07-a069-3311a56e3780 - a9959179-eda0-43ce-8b71-783b4852e3f9', {'created_at': '2024-03-12 22:51:16', 'updated_at': '2024-03-12 22:51:16', 'description': 'Rulebook on Amendments and Supplements of the Rulebook on the Content, Manner, and Procedure of Preparation and the Manner of Control of Technical Documentation According to the Class and Purpose of the Buildings', 'category': 'entity', 'memory_type': 'semantic', 'layer_uuid': 'dc903cac-4528-44c7-b1dc-ad1b54a73211', 'layer_description': \"{'layer': 'Terminology and Concepts Layer'}\", 'layer_decomposition_uuid': '164e45a4-00bb-4d07-a069-3311a56e3780', 'unique_id': 'a9959179-eda0-43ce-8b71-783b4852e3f9', 'type': 'detail'}), ('Official Gazette of the Republic of Serbia - dc903cac-4528-44c7-b1dc-ad1b54a73211 - 164e45a4-00bb-4d07-a069-3311a56e3780 - 49ffb1f5-7429-4122-9205-82c9d9f27562', {'created_at': '2024-03-12 22:51:16', 'updated_at': '2024-03-12 22:51:16', 'description': 'Official Gazette of the Republic of Serbia', 'category': 'entity', 'memory_type': 'semantic', 'layer_uuid': 'dc903cac-4528-44c7-b1dc-ad1b54a73211', 'layer_description': \"{'layer': 'Terminology and Concepts Layer'}\", 'layer_decomposition_uuid': '164e45a4-00bb-4d07-a069-3311a56e3780', 'unique_id': '49ffb1f5-7429-4122-9205-82c9d9f27562', 'type': 'detail'}), ('Construction permit - dc903cac-4528-44c7-b1dc-ad1b54a73211 - 164e45a4-00bb-4d07-a069-3311a56e3780 - f93086c8-566e-41bc-b206-a87aa5506b3f', {'created_at': '2024-03-12 22:51:16', 'updated_at': '2024-03-12 22:51:16', 'description': 'Construction permit', 'category': 'entity', 'memory_type': 'semantic', 'layer_uuid': 'dc903cac-4528-44c7-b1dc-ad1b54a73211', 'layer_description': \"{'layer': 'Terminology and Concepts Layer'}\", 'layer_decomposition_uuid': '164e45a4-00bb-4d07-a069-3311a56e3780', 'unique_id': 'f93086c8-566e-41bc-b206-a87aa5506b3f', 'type': 'detail'}), ('Conceptual design - dc903cac-4528-44c7-b1dc-ad1b54a73211 - 164e45a4-00bb-4d07-a069-3311a56e3780 - ba1cb66b-aa1d-413c-a56a-54103f431359', {'created_at': '2024-03-12 22:51:16', 'updated_at': '2024-03-12 22:51:16', 'description': 'Conceptual design', 'category': 'entity', 'memory_type': 'semantic', 'layer_uuid': 'dc903cac-4528-44c7-b1dc-ad1b54a73211', 'layer_description': \"{'layer': 'Terminology and Concepts Layer'}\", 'layer_decomposition_uuid': '164e45a4-00bb-4d07-a069-3311a56e3780', 'unique_id': 'ba1cb66b-aa1d-413c-a56a-54103f431359', 'type': 'detail'}), ('Execution project - dc903cac-4528-44c7-b1dc-ad1b54a73211 - 164e45a4-00bb-4d07-a069-3311a56e3780 - 0ff044bd-8c08-46e8-8bc4-2a7506f3cf11', {'created_at': '2024-03-12 22:51:16', 'updated_at': '2024-03-12 22:51:16', 'description': 'Execution project', 'category': 'entity', 'memory_type': 'semantic', 'layer_uuid': 'dc903cac-4528-44c7-b1dc-ad1b54a73211', 'layer_description': \"{'layer': 'Terminology and Concepts Layer'}\", 'layer_decomposition_uuid': '164e45a4-00bb-4d07-a069-3311a56e3780', 'unique_id': '0ff044bd-8c08-46e8-8bc4-2a7506f3cf11', 'type': 'detail'}), ('Minister Zorana Mihajlovic - dc903cac-4528-44c7-b1dc-ad1b54a73211 - 164e45a4-00bb-4d07-a069-3311a56e3780 - 107baf39-73fa-4040-b6ee-dfe0caad0eaf', {'created_at': '2024-03-12 22:51:16', 'updated_at': '2024-03-12 22:51:16', 'description': 'Minister Zorana Mihajlovic', 'category': 'person', 'memory_type': 'episodic', 'layer_uuid': 'dc903cac-4528-44c7-b1dc-ad1b54a73211', 'layer_description': \"{'layer': 'Terminology and Concepts Layer'}\", 'layer_decomposition_uuid': '164e45a4-00bb-4d07-a069-3311a56e3780', 'unique_id': '107baf39-73fa-4040-b6ee-dfe0caad0eaf', 'type': 'detail'})]\n", + "LLM_CLASSIFICATION:LAYER:Laws, regulations, and legal case documents:Document:doc1\n", + "Updated Nodes: [('LLM_LAYER_CLASSIFICATION:TEXT:Document:doc1', {'data_type': 'text', 'context_name': 'TEXT', 'layer_name': 'Laws, regulations, and legal case documents'}), ('Document:doc1', {}), ('LLM_CLASSIFICATION:LAYER:Laws, regulations, and legal case documents:Document:doc1', {'data_type': 'text', 'context_name': 'TEXT', 'layer_name': 'Laws, regulations, and legal case documents'}), ('Ministry of Construction, Transport and Infrastructure - dc903cac-4528-44c7-b1dc-ad1b54a73211 - 35c3720f-c25e-437a-815a-23ad47da0a02 - f25d6b1e-b61b-40f3-bebb-d2eb7dae14e6', {'created_at': '2024-03-12 22:51:16', 'updated_at': '2024-03-12 22:51:16', 'description': 'Ministry of Construction, Transport and Infrastructure', 'category': 'entity', 'memory_type': 'semantic', 'layer_uuid': 'dc903cac-4528-44c7-b1dc-ad1b54a73211', 'layer_description': \"{'layer': 'Legal Structure Layer'}\", 'layer_decomposition_uuid': '35c3720f-c25e-437a-815a-23ad47da0a02', 'unique_id': 'f25d6b1e-b61b-40f3-bebb-d2eb7dae14e6', 'type': 'detail'}), ('Regulation on amendments and supplements to the Regulation on the content, manner, and procedure of preparation and how to conduct control of technical documentation according to the class and purpose of facilities - dc903cac-4528-44c7-b1dc-ad1b54a73211 - 35c3720f-c25e-437a-815a-23ad47da0a02 - 40746e96-0590-408d-9da5-f29fa794ebf5', {'created_at': '2024-03-12 22:51:16', 'updated_at': '2024-03-12 22:51:16', 'description': 'Regulation on amendments and supplements to the Regulation on the content, manner, and procedure of preparation and how to conduct control of technical documentation according to the class and purpose of facilities', 'category': 'entity', 'memory_type': 'semantic', 'layer_uuid': 'dc903cac-4528-44c7-b1dc-ad1b54a73211', 'layer_description': \"{'layer': 'Legal Structure Layer'}\", 'layer_decomposition_uuid': '35c3720f-c25e-437a-815a-23ad47da0a02', 'unique_id': '40746e96-0590-408d-9da5-f29fa794ebf5', 'type': 'detail'}), ('Official Gazette of RS, No. 77/2015 - dc903cac-4528-44c7-b1dc-ad1b54a73211 - 35c3720f-c25e-437a-815a-23ad47da0a02 - 3445497e-2951-4f3b-9d62-da48682f4d4c', {'created_at': '2024-03-12 22:51:16', 'updated_at': '2024-03-12 22:51:16', 'description': 'Official Gazette of RS, No. 77/2015', 'category': 'document', 'memory_type': 'episodic', 'layer_uuid': 'dc903cac-4528-44c7-b1dc-ad1b54a73211', 'layer_description': \"{'layer': 'Legal Structure Layer'}\", 'layer_decomposition_uuid': '35c3720f-c25e-437a-815a-23ad47da0a02', 'unique_id': '3445497e-2951-4f3b-9d62-da48682f4d4c', 'type': 'detail'}), ('Law on Planning and Construction - dc903cac-4528-44c7-b1dc-ad1b54a73211 - 35c3720f-c25e-437a-815a-23ad47da0a02 - 9fcc7992-2773-48ef-956b-0b6818260124', {'created_at': '2024-03-12 22:51:16', 'updated_at': '2024-03-12 22:51:16', 'description': 'Law on Planning and Construction', 'category': 'document', 'memory_type': 'semantic', 'layer_uuid': 'dc903cac-4528-44c7-b1dc-ad1b54a73211', 'layer_description': \"{'layer': 'Legal Structure Layer'}\", 'layer_decomposition_uuid': '35c3720f-c25e-437a-815a-23ad47da0a02', 'unique_id': '9fcc7992-2773-48ef-956b-0b6818260124', 'type': 'detail'}), ('Zorana Mihajlović, Prof. Dr. - dc903cac-4528-44c7-b1dc-ad1b54a73211 - 35c3720f-c25e-437a-815a-23ad47da0a02 - aceadca4-454b-45b6-a487-3e639bc8c095', {'created_at': '2024-03-12 22:51:16', 'updated_at': '2024-03-12 22:51:16', 'description': 'Zorana Mihajlović, Prof. Dr.', 'category': 'person', 'memory_type': 'semantic', 'layer_uuid': 'dc903cac-4528-44c7-b1dc-ad1b54a73211', 'layer_description': \"{'layer': 'Legal Structure Layer'}\", 'layer_decomposition_uuid': '35c3720f-c25e-437a-815a-23ad47da0a02', 'unique_id': 'aceadca4-454b-45b6-a487-3e639bc8c095', 'type': 'detail'}), ('Ministry of Construction, Transport and Infrastructure - dc903cac-4528-44c7-b1dc-ad1b54a73211 - 164e45a4-00bb-4d07-a069-3311a56e3780 - 36baf9c8-2125-4611-baef-923a2b96e5de', {'created_at': '2024-03-12 22:51:16', 'updated_at': '2024-03-12 22:51:16', 'description': 'Ministry of Construction, Transport and Infrastructure', 'category': 'entity', 'memory_type': 'semantic', 'layer_uuid': 'dc903cac-4528-44c7-b1dc-ad1b54a73211', 'layer_description': \"{'layer': 'Terminology and Concepts Layer'}\", 'layer_decomposition_uuid': '164e45a4-00bb-4d07-a069-3311a56e3780', 'unique_id': '36baf9c8-2125-4611-baef-923a2b96e5de', 'type': 'detail'}), ('Rulebook on Amendments and Supplements of the Rulebook on the Content, Manner, and Procedure of Preparation and the Manner of Control of Technical Documentation According to the Class and Purpose of the Buildings - dc903cac-4528-44c7-b1dc-ad1b54a73211 - 164e45a4-00bb-4d07-a069-3311a56e3780 - a9959179-eda0-43ce-8b71-783b4852e3f9', {'created_at': '2024-03-12 22:51:16', 'updated_at': '2024-03-12 22:51:16', 'description': 'Rulebook on Amendments and Supplements of the Rulebook on the Content, Manner, and Procedure of Preparation and the Manner of Control of Technical Documentation According to the Class and Purpose of the Buildings', 'category': 'entity', 'memory_type': 'semantic', 'layer_uuid': 'dc903cac-4528-44c7-b1dc-ad1b54a73211', 'layer_description': \"{'layer': 'Terminology and Concepts Layer'}\", 'layer_decomposition_uuid': '164e45a4-00bb-4d07-a069-3311a56e3780', 'unique_id': 'a9959179-eda0-43ce-8b71-783b4852e3f9', 'type': 'detail'}), ('Official Gazette of the Republic of Serbia - dc903cac-4528-44c7-b1dc-ad1b54a73211 - 164e45a4-00bb-4d07-a069-3311a56e3780 - 49ffb1f5-7429-4122-9205-82c9d9f27562', {'created_at': '2024-03-12 22:51:16', 'updated_at': '2024-03-12 22:51:16', 'description': 'Official Gazette of the Republic of Serbia', 'category': 'entity', 'memory_type': 'semantic', 'layer_uuid': 'dc903cac-4528-44c7-b1dc-ad1b54a73211', 'layer_description': \"{'layer': 'Terminology and Concepts Layer'}\", 'layer_decomposition_uuid': '164e45a4-00bb-4d07-a069-3311a56e3780', 'unique_id': '49ffb1f5-7429-4122-9205-82c9d9f27562', 'type': 'detail'}), ('Construction permit - dc903cac-4528-44c7-b1dc-ad1b54a73211 - 164e45a4-00bb-4d07-a069-3311a56e3780 - f93086c8-566e-41bc-b206-a87aa5506b3f', {'created_at': '2024-03-12 22:51:16', 'updated_at': '2024-03-12 22:51:16', 'description': 'Construction permit', 'category': 'entity', 'memory_type': 'semantic', 'layer_uuid': 'dc903cac-4528-44c7-b1dc-ad1b54a73211', 'layer_description': \"{'layer': 'Terminology and Concepts Layer'}\", 'layer_decomposition_uuid': '164e45a4-00bb-4d07-a069-3311a56e3780', 'unique_id': 'f93086c8-566e-41bc-b206-a87aa5506b3f', 'type': 'detail'}), ('Conceptual design - dc903cac-4528-44c7-b1dc-ad1b54a73211 - 164e45a4-00bb-4d07-a069-3311a56e3780 - ba1cb66b-aa1d-413c-a56a-54103f431359', {'created_at': '2024-03-12 22:51:16', 'updated_at': '2024-03-12 22:51:16', 'description': 'Conceptual design', 'category': 'entity', 'memory_type': 'semantic', 'layer_uuid': 'dc903cac-4528-44c7-b1dc-ad1b54a73211', 'layer_description': \"{'layer': 'Terminology and Concepts Layer'}\", 'layer_decomposition_uuid': '164e45a4-00bb-4d07-a069-3311a56e3780', 'unique_id': 'ba1cb66b-aa1d-413c-a56a-54103f431359', 'type': 'detail'}), ('Execution project - dc903cac-4528-44c7-b1dc-ad1b54a73211 - 164e45a4-00bb-4d07-a069-3311a56e3780 - 0ff044bd-8c08-46e8-8bc4-2a7506f3cf11', {'created_at': '2024-03-12 22:51:16', 'updated_at': '2024-03-12 22:51:16', 'description': 'Execution project', 'category': 'entity', 'memory_type': 'semantic', 'layer_uuid': 'dc903cac-4528-44c7-b1dc-ad1b54a73211', 'layer_description': \"{'layer': 'Terminology and Concepts Layer'}\", 'layer_decomposition_uuid': '164e45a4-00bb-4d07-a069-3311a56e3780', 'unique_id': '0ff044bd-8c08-46e8-8bc4-2a7506f3cf11', 'type': 'detail'}), ('Minister Zorana Mihajlovic - dc903cac-4528-44c7-b1dc-ad1b54a73211 - 164e45a4-00bb-4d07-a069-3311a56e3780 - 107baf39-73fa-4040-b6ee-dfe0caad0eaf', {'created_at': '2024-03-12 22:51:16', 'updated_at': '2024-03-12 22:51:16', 'description': 'Minister Zorana Mihajlovic', 'category': 'person', 'memory_type': 'episodic', 'layer_uuid': 'dc903cac-4528-44c7-b1dc-ad1b54a73211', 'layer_description': \"{'layer': 'Terminology and Concepts Layer'}\", 'layer_decomposition_uuid': '164e45a4-00bb-4d07-a069-3311a56e3780', 'unique_id': '107baf39-73fa-4040-b6ee-dfe0caad0eaf', 'type': 'detail'}), ('Pravilnik o izmenama i dopunama Pravilnika o sadržini, načinu i postupku izrade i način vršenja kontrole tehničke dokumentacije prema klasi i nameni objekata - dc903cac-4528-44c7-b1dc-ad1b54a73211 - e62655b3-205c-41d5-bbfb-ef9cb06c081e - 65de2225-9c3e-432c-b2f3-0940081753d8', {'created_at': '2024-03-12 22:51:16', 'updated_at': '2024-03-12 22:51:16', 'description': 'Pravilnik o izmenama i dopunama Pravilnika o sadržini, načinu i postupku izrade i način vršenja kontrole tehničke dokumentacije prema klasi i nameni objekata', 'category': 'legalDocument', 'memory_type': 'semantic', 'layer_uuid': 'dc903cac-4528-44c7-b1dc-ad1b54a73211', 'layer_description': \"{'layer': 'Legal References and Citations Layer'}\", 'layer_decomposition_uuid': 'e62655b3-205c-41d5-bbfb-ef9cb06c081e', 'unique_id': '65de2225-9c3e-432c-b2f3-0940081753d8', 'type': 'detail'}), ('Službeni glasnik RS, br. 77/2015 published on 9.9.2015 - dc903cac-4528-44c7-b1dc-ad1b54a73211 - e62655b3-205c-41d5-bbfb-ef9cb06c081e - 04a45f2b-7229-4198-a589-35dc4815eb92', {'created_at': '2024-03-12 22:51:16', 'updated_at': '2024-03-12 22:51:16', 'description': 'Službeni glasnik RS, br. 77/2015 published on 9.9.2015', 'category': 'publication', 'memory_type': 'episodic', 'layer_uuid': 'dc903cac-4528-44c7-b1dc-ad1b54a73211', 'layer_description': \"{'layer': 'Legal References and Citations Layer'}\", 'layer_decomposition_uuid': 'e62655b3-205c-41d5-bbfb-ef9cb06c081e', 'unique_id': '04a45f2b-7229-4198-a589-35dc4815eb92', 'type': 'detail'}), ('Zakon o planiranju i izgradnji - dc903cac-4528-44c7-b1dc-ad1b54a73211 - e62655b3-205c-41d5-bbfb-ef9cb06c081e - d17872b9-3904-412d-85a7-1d1f835bc7f5', {'created_at': '2024-03-12 22:51:16', 'updated_at': '2024-03-12 22:51:16', 'description': 'Zakon o planiranju i izgradnji', 'category': 'legalAct', 'memory_type': 'semantic', 'layer_uuid': 'dc903cac-4528-44c7-b1dc-ad1b54a73211', 'layer_description': \"{'layer': 'Legal References and Citations Layer'}\", 'layer_decomposition_uuid': 'e62655b3-205c-41d5-bbfb-ef9cb06c081e', 'unique_id': 'd17872b9-3904-412d-85a7-1d1f835bc7f5', 'type': 'detail'}), ('Zorana Mihajlović - dc903cac-4528-44c7-b1dc-ad1b54a73211 - e62655b3-205c-41d5-bbfb-ef9cb06c081e - e7699944-8b90-4344-b0da-94a134ffaaf7', {'created_at': '2024-03-12 22:51:16', 'updated_at': '2024-03-12 22:51:16', 'description': 'Zorana Mihajlović', 'category': 'person', 'memory_type': 'semantic', 'layer_uuid': 'dc903cac-4528-44c7-b1dc-ad1b54a73211', 'layer_description': \"{'layer': 'Legal References and Citations Layer'}\", 'layer_decomposition_uuid': 'e62655b3-205c-41d5-bbfb-ef9cb06c081e', 'unique_id': 'e7699944-8b90-4344-b0da-94a134ffaaf7', 'type': 'detail'})]\n", + "LLM_CLASSIFICATION:LAYER:Laws, regulations, and legal case documents:Document:doc1\n", + "Updated Nodes: [('LLM_LAYER_CLASSIFICATION:TEXT:Document:doc1', {'data_type': 'text', 'context_name': 'TEXT', 'layer_name': 'Laws, regulations, and legal case documents'}), ('Document:doc1', {}), ('LLM_CLASSIFICATION:LAYER:Laws, regulations, and legal case documents:Document:doc1', {'data_type': 'text', 'context_name': 'TEXT', 'layer_name': 'Laws, regulations, and legal case documents'}), ('Ministry of Construction, Transport and Infrastructure - dc903cac-4528-44c7-b1dc-ad1b54a73211 - 35c3720f-c25e-437a-815a-23ad47da0a02 - f25d6b1e-b61b-40f3-bebb-d2eb7dae14e6', {'created_at': '2024-03-12 22:51:16', 'updated_at': '2024-03-12 22:51:16', 'description': 'Ministry of Construction, Transport and Infrastructure', 'category': 'entity', 'memory_type': 'semantic', 'layer_uuid': 'dc903cac-4528-44c7-b1dc-ad1b54a73211', 'layer_description': \"{'layer': 'Legal Structure Layer'}\", 'layer_decomposition_uuid': '35c3720f-c25e-437a-815a-23ad47da0a02', 'unique_id': 'f25d6b1e-b61b-40f3-bebb-d2eb7dae14e6', 'type': 'detail'}), ('Regulation on amendments and supplements to the Regulation on the content, manner, and procedure of preparation and how to conduct control of technical documentation according to the class and purpose of facilities - dc903cac-4528-44c7-b1dc-ad1b54a73211 - 35c3720f-c25e-437a-815a-23ad47da0a02 - 40746e96-0590-408d-9da5-f29fa794ebf5', {'created_at': '2024-03-12 22:51:16', 'updated_at': '2024-03-12 22:51:16', 'description': 'Regulation on amendments and supplements to the Regulation on the content, manner, and procedure of preparation and how to conduct control of technical documentation according to the class and purpose of facilities', 'category': 'entity', 'memory_type': 'semantic', 'layer_uuid': 'dc903cac-4528-44c7-b1dc-ad1b54a73211', 'layer_description': \"{'layer': 'Legal Structure Layer'}\", 'layer_decomposition_uuid': '35c3720f-c25e-437a-815a-23ad47da0a02', 'unique_id': '40746e96-0590-408d-9da5-f29fa794ebf5', 'type': 'detail'}), ('Official Gazette of RS, No. 77/2015 - dc903cac-4528-44c7-b1dc-ad1b54a73211 - 35c3720f-c25e-437a-815a-23ad47da0a02 - 3445497e-2951-4f3b-9d62-da48682f4d4c', {'created_at': '2024-03-12 22:51:16', 'updated_at': '2024-03-12 22:51:16', 'description': 'Official Gazette of RS, No. 77/2015', 'category': 'document', 'memory_type': 'episodic', 'layer_uuid': 'dc903cac-4528-44c7-b1dc-ad1b54a73211', 'layer_description': \"{'layer': 'Legal Structure Layer'}\", 'layer_decomposition_uuid': '35c3720f-c25e-437a-815a-23ad47da0a02', 'unique_id': '3445497e-2951-4f3b-9d62-da48682f4d4c', 'type': 'detail'}), ('Law on Planning and Construction - dc903cac-4528-44c7-b1dc-ad1b54a73211 - 35c3720f-c25e-437a-815a-23ad47da0a02 - 9fcc7992-2773-48ef-956b-0b6818260124', {'created_at': '2024-03-12 22:51:16', 'updated_at': '2024-03-12 22:51:16', 'description': 'Law on Planning and Construction', 'category': 'document', 'memory_type': 'semantic', 'layer_uuid': 'dc903cac-4528-44c7-b1dc-ad1b54a73211', 'layer_description': \"{'layer': 'Legal Structure Layer'}\", 'layer_decomposition_uuid': '35c3720f-c25e-437a-815a-23ad47da0a02', 'unique_id': '9fcc7992-2773-48ef-956b-0b6818260124', 'type': 'detail'}), ('Zorana Mihajlović, Prof. Dr. - dc903cac-4528-44c7-b1dc-ad1b54a73211 - 35c3720f-c25e-437a-815a-23ad47da0a02 - aceadca4-454b-45b6-a487-3e639bc8c095', {'created_at': '2024-03-12 22:51:16', 'updated_at': '2024-03-12 22:51:16', 'description': 'Zorana Mihajlović, Prof. Dr.', 'category': 'person', 'memory_type': 'semantic', 'layer_uuid': 'dc903cac-4528-44c7-b1dc-ad1b54a73211', 'layer_description': \"{'layer': 'Legal Structure Layer'}\", 'layer_decomposition_uuid': '35c3720f-c25e-437a-815a-23ad47da0a02', 'unique_id': 'aceadca4-454b-45b6-a487-3e639bc8c095', 'type': 'detail'}), ('Ministry of Construction, Transport and Infrastructure - dc903cac-4528-44c7-b1dc-ad1b54a73211 - 164e45a4-00bb-4d07-a069-3311a56e3780 - 36baf9c8-2125-4611-baef-923a2b96e5de', {'created_at': '2024-03-12 22:51:16', 'updated_at': '2024-03-12 22:51:16', 'description': 'Ministry of Construction, Transport and Infrastructure', 'category': 'entity', 'memory_type': 'semantic', 'layer_uuid': 'dc903cac-4528-44c7-b1dc-ad1b54a73211', 'layer_description': \"{'layer': 'Terminology and Concepts Layer'}\", 'layer_decomposition_uuid': '164e45a4-00bb-4d07-a069-3311a56e3780', 'unique_id': '36baf9c8-2125-4611-baef-923a2b96e5de', 'type': 'detail'}), ('Rulebook on Amendments and Supplements of the Rulebook on the Content, Manner, and Procedure of Preparation and the Manner of Control of Technical Documentation According to the Class and Purpose of the Buildings - dc903cac-4528-44c7-b1dc-ad1b54a73211 - 164e45a4-00bb-4d07-a069-3311a56e3780 - a9959179-eda0-43ce-8b71-783b4852e3f9', {'created_at': '2024-03-12 22:51:16', 'updated_at': '2024-03-12 22:51:16', 'description': 'Rulebook on Amendments and Supplements of the Rulebook on the Content, Manner, and Procedure of Preparation and the Manner of Control of Technical Documentation According to the Class and Purpose of the Buildings', 'category': 'entity', 'memory_type': 'semantic', 'layer_uuid': 'dc903cac-4528-44c7-b1dc-ad1b54a73211', 'layer_description': \"{'layer': 'Terminology and Concepts Layer'}\", 'layer_decomposition_uuid': '164e45a4-00bb-4d07-a069-3311a56e3780', 'unique_id': 'a9959179-eda0-43ce-8b71-783b4852e3f9', 'type': 'detail'}), ('Official Gazette of the Republic of Serbia - dc903cac-4528-44c7-b1dc-ad1b54a73211 - 164e45a4-00bb-4d07-a069-3311a56e3780 - 49ffb1f5-7429-4122-9205-82c9d9f27562', {'created_at': '2024-03-12 22:51:16', 'updated_at': '2024-03-12 22:51:16', 'description': 'Official Gazette of the Republic of Serbia', 'category': 'entity', 'memory_type': 'semantic', 'layer_uuid': 'dc903cac-4528-44c7-b1dc-ad1b54a73211', 'layer_description': \"{'layer': 'Terminology and Concepts Layer'}\", 'layer_decomposition_uuid': '164e45a4-00bb-4d07-a069-3311a56e3780', 'unique_id': '49ffb1f5-7429-4122-9205-82c9d9f27562', 'type': 'detail'}), ('Construction permit - dc903cac-4528-44c7-b1dc-ad1b54a73211 - 164e45a4-00bb-4d07-a069-3311a56e3780 - f93086c8-566e-41bc-b206-a87aa5506b3f', {'created_at': '2024-03-12 22:51:16', 'updated_at': '2024-03-12 22:51:16', 'description': 'Construction permit', 'category': 'entity', 'memory_type': 'semantic', 'layer_uuid': 'dc903cac-4528-44c7-b1dc-ad1b54a73211', 'layer_description': \"{'layer': 'Terminology and Concepts Layer'}\", 'layer_decomposition_uuid': '164e45a4-00bb-4d07-a069-3311a56e3780', 'unique_id': 'f93086c8-566e-41bc-b206-a87aa5506b3f', 'type': 'detail'}), ('Conceptual design - dc903cac-4528-44c7-b1dc-ad1b54a73211 - 164e45a4-00bb-4d07-a069-3311a56e3780 - ba1cb66b-aa1d-413c-a56a-54103f431359', {'created_at': '2024-03-12 22:51:16', 'updated_at': '2024-03-12 22:51:16', 'description': 'Conceptual design', 'category': 'entity', 'memory_type': 'semantic', 'layer_uuid': 'dc903cac-4528-44c7-b1dc-ad1b54a73211', 'layer_description': \"{'layer': 'Terminology and Concepts Layer'}\", 'layer_decomposition_uuid': '164e45a4-00bb-4d07-a069-3311a56e3780', 'unique_id': 'ba1cb66b-aa1d-413c-a56a-54103f431359', 'type': 'detail'}), ('Execution project - dc903cac-4528-44c7-b1dc-ad1b54a73211 - 164e45a4-00bb-4d07-a069-3311a56e3780 - 0ff044bd-8c08-46e8-8bc4-2a7506f3cf11', {'created_at': '2024-03-12 22:51:16', 'updated_at': '2024-03-12 22:51:16', 'description': 'Execution project', 'category': 'entity', 'memory_type': 'semantic', 'layer_uuid': 'dc903cac-4528-44c7-b1dc-ad1b54a73211', 'layer_description': \"{'layer': 'Terminology and Concepts Layer'}\", 'layer_decomposition_uuid': '164e45a4-00bb-4d07-a069-3311a56e3780', 'unique_id': '0ff044bd-8c08-46e8-8bc4-2a7506f3cf11', 'type': 'detail'}), ('Minister Zorana Mihajlovic - dc903cac-4528-44c7-b1dc-ad1b54a73211 - 164e45a4-00bb-4d07-a069-3311a56e3780 - 107baf39-73fa-4040-b6ee-dfe0caad0eaf', {'created_at': '2024-03-12 22:51:16', 'updated_at': '2024-03-12 22:51:16', 'description': 'Minister Zorana Mihajlovic', 'category': 'person', 'memory_type': 'episodic', 'layer_uuid': 'dc903cac-4528-44c7-b1dc-ad1b54a73211', 'layer_description': \"{'layer': 'Terminology and Concepts Layer'}\", 'layer_decomposition_uuid': '164e45a4-00bb-4d07-a069-3311a56e3780', 'unique_id': '107baf39-73fa-4040-b6ee-dfe0caad0eaf', 'type': 'detail'}), ('Pravilnik o izmenama i dopunama Pravilnika o sadržini, načinu i postupku izrade i način vršenja kontrole tehničke dokumentacije prema klasi i nameni objekata - dc903cac-4528-44c7-b1dc-ad1b54a73211 - e62655b3-205c-41d5-bbfb-ef9cb06c081e - 65de2225-9c3e-432c-b2f3-0940081753d8', {'created_at': '2024-03-12 22:51:16', 'updated_at': '2024-03-12 22:51:16', 'description': 'Pravilnik o izmenama i dopunama Pravilnika o sadržini, načinu i postupku izrade i način vršenja kontrole tehničke dokumentacije prema klasi i nameni objekata', 'category': 'legalDocument', 'memory_type': 'semantic', 'layer_uuid': 'dc903cac-4528-44c7-b1dc-ad1b54a73211', 'layer_description': \"{'layer': 'Legal References and Citations Layer'}\", 'layer_decomposition_uuid': 'e62655b3-205c-41d5-bbfb-ef9cb06c081e', 'unique_id': '65de2225-9c3e-432c-b2f3-0940081753d8', 'type': 'detail'}), ('Službeni glasnik RS, br. 77/2015 published on 9.9.2015 - dc903cac-4528-44c7-b1dc-ad1b54a73211 - e62655b3-205c-41d5-bbfb-ef9cb06c081e - 04a45f2b-7229-4198-a589-35dc4815eb92', {'created_at': '2024-03-12 22:51:16', 'updated_at': '2024-03-12 22:51:16', 'description': 'Službeni glasnik RS, br. 77/2015 published on 9.9.2015', 'category': 'publication', 'memory_type': 'episodic', 'layer_uuid': 'dc903cac-4528-44c7-b1dc-ad1b54a73211', 'layer_description': \"{'layer': 'Legal References and Citations Layer'}\", 'layer_decomposition_uuid': 'e62655b3-205c-41d5-bbfb-ef9cb06c081e', 'unique_id': '04a45f2b-7229-4198-a589-35dc4815eb92', 'type': 'detail'}), ('Zakon o planiranju i izgradnji - dc903cac-4528-44c7-b1dc-ad1b54a73211 - e62655b3-205c-41d5-bbfb-ef9cb06c081e - d17872b9-3904-412d-85a7-1d1f835bc7f5', {'created_at': '2024-03-12 22:51:16', 'updated_at': '2024-03-12 22:51:16', 'description': 'Zakon o planiranju i izgradnji', 'category': 'legalAct', 'memory_type': 'semantic', 'layer_uuid': 'dc903cac-4528-44c7-b1dc-ad1b54a73211', 'layer_description': \"{'layer': 'Legal References and Citations Layer'}\", 'layer_decomposition_uuid': 'e62655b3-205c-41d5-bbfb-ef9cb06c081e', 'unique_id': 'd17872b9-3904-412d-85a7-1d1f835bc7f5', 'type': 'detail'}), ('Zorana Mihajlović - dc903cac-4528-44c7-b1dc-ad1b54a73211 - e62655b3-205c-41d5-bbfb-ef9cb06c081e - e7699944-8b90-4344-b0da-94a134ffaaf7', {'created_at': '2024-03-12 22:51:16', 'updated_at': '2024-03-12 22:51:16', 'description': 'Zorana Mihajlović', 'category': 'person', 'memory_type': 'semantic', 'layer_uuid': 'dc903cac-4528-44c7-b1dc-ad1b54a73211', 'layer_description': \"{'layer': 'Legal References and Citations Layer'}\", 'layer_decomposition_uuid': 'e62655b3-205c-41d5-bbfb-ef9cb06c081e', 'unique_id': 'e7699944-8b90-4344-b0da-94a134ffaaf7', 'type': 'detail'}), ('Ministar građevinarstva, saobraćaja i infrastrukture - dc903cac-4528-44c7-b1dc-ad1b54a73211 - 27555393-566c-47fc-9711-3789c2fd270b - 4298cf5e-764f-40b7-9ff8-e60cd2253009', {'created_at': '2024-03-12 22:51:16', 'updated_at': '2024-03-12 22:51:16', 'description': 'Ministar građevinarstva, saobraćaja i infrastrukture', 'category': 'entity', 'memory_type': 'semantic', 'layer_uuid': 'dc903cac-4528-44c7-b1dc-ad1b54a73211', 'layer_description': \"{'layer': 'Jurisdictional Layer'}\", 'layer_decomposition_uuid': '27555393-566c-47fc-9711-3789c2fd270b', 'unique_id': '4298cf5e-764f-40b7-9ff8-e60cd2253009', 'type': 'detail'}), ('Pravilnik o izmenama i dopunama Pravilnika o sadržini, načinu i postupku izrade i način vršenja kontrole tehničke dokumentacije prema klasi i nameni objekata - dc903cac-4528-44c7-b1dc-ad1b54a73211 - 27555393-566c-47fc-9711-3789c2fd270b - dd3c23e1-e905-4c9a-81ad-2ad5f0ab4f7e', {'created_at': '2024-03-12 22:51:16', 'updated_at': '2024-03-12 22:51:16', 'description': 'Pravilnik o izmenama i dopunama Pravilnika o sadržini, načinu i postupku izrade i način vršenja kontrole tehničke dokumentacije prema klasi i nameni objekata', 'category': 'document', 'memory_type': 'episodic', 'layer_uuid': 'dc903cac-4528-44c7-b1dc-ad1b54a73211', 'layer_description': \"{'layer': 'Jurisdictional Layer'}\", 'layer_decomposition_uuid': '27555393-566c-47fc-9711-3789c2fd270b', 'unique_id': 'dd3c23e1-e905-4c9a-81ad-2ad5f0ab4f7e', 'type': 'detail'}), ('Službeni glasnik RS, broj 77/2015 - dc903cac-4528-44c7-b1dc-ad1b54a73211 - 27555393-566c-47fc-9711-3789c2fd270b - 3c332f72-d9cb-4afe-9514-a742da4ef58a', {'created_at': '2024-03-12 22:51:16', 'updated_at': '2024-03-12 22:51:16', 'description': 'Službeni glasnik RS, broj 77/2015', 'category': 'publication', 'memory_type': 'episodic', 'layer_uuid': 'dc903cac-4528-44c7-b1dc-ad1b54a73211', 'layer_description': \"{'layer': 'Jurisdictional Layer'}\", 'layer_decomposition_uuid': '27555393-566c-47fc-9711-3789c2fd270b', 'unique_id': '3c332f72-d9cb-4afe-9514-a742da4ef58a', 'type': 'detail'}), ('prof. dr Zorana Mihajlović - dc903cac-4528-44c7-b1dc-ad1b54a73211 - 27555393-566c-47fc-9711-3789c2fd270b - 9f353a2f-d6de-4649-827d-0a4575a437a1', {'created_at': '2024-03-12 22:51:16', 'updated_at': '2024-03-12 22:51:16', 'description': 'prof. dr Zorana Mihajlović', 'category': 'person', 'memory_type': 'episodic', 'layer_uuid': 'dc903cac-4528-44c7-b1dc-ad1b54a73211', 'layer_description': \"{'layer': 'Jurisdictional Layer'}\", 'layer_decomposition_uuid': '27555393-566c-47fc-9711-3789c2fd270b', 'unique_id': '9f353a2f-d6de-4649-827d-0a4575a437a1', 'type': 'detail'})]\n", + "LLM_CLASSIFICATION:LAYER:Laws, regulations, and legal case documents:Document:doc1\n", + "Updated Nodes: [('LLM_LAYER_CLASSIFICATION:TEXT:Document:doc1', {'data_type': 'text', 'context_name': 'TEXT', 'layer_name': 'Laws, regulations, and legal case documents'}), ('Document:doc1', {}), ('LLM_CLASSIFICATION:LAYER:Laws, regulations, and legal case documents:Document:doc1', {'data_type': 'text', 'context_name': 'TEXT', 'layer_name': 'Laws, regulations, and legal case documents'}), ('Ministry of Construction, Transport and Infrastructure - dc903cac-4528-44c7-b1dc-ad1b54a73211 - 35c3720f-c25e-437a-815a-23ad47da0a02 - f25d6b1e-b61b-40f3-bebb-d2eb7dae14e6', {'created_at': '2024-03-12 22:51:16', 'updated_at': '2024-03-12 22:51:16', 'description': 'Ministry of Construction, Transport and Infrastructure', 'category': 'entity', 'memory_type': 'semantic', 'layer_uuid': 'dc903cac-4528-44c7-b1dc-ad1b54a73211', 'layer_description': \"{'layer': 'Legal Structure Layer'}\", 'layer_decomposition_uuid': '35c3720f-c25e-437a-815a-23ad47da0a02', 'unique_id': 'f25d6b1e-b61b-40f3-bebb-d2eb7dae14e6', 'type': 'detail'}), ('Regulation on amendments and supplements to the Regulation on the content, manner, and procedure of preparation and how to conduct control of technical documentation according to the class and purpose of facilities - dc903cac-4528-44c7-b1dc-ad1b54a73211 - 35c3720f-c25e-437a-815a-23ad47da0a02 - 40746e96-0590-408d-9da5-f29fa794ebf5', {'created_at': '2024-03-12 22:51:16', 'updated_at': '2024-03-12 22:51:16', 'description': 'Regulation on amendments and supplements to the Regulation on the content, manner, and procedure of preparation and how to conduct control of technical documentation according to the class and purpose of facilities', 'category': 'entity', 'memory_type': 'semantic', 'layer_uuid': 'dc903cac-4528-44c7-b1dc-ad1b54a73211', 'layer_description': \"{'layer': 'Legal Structure Layer'}\", 'layer_decomposition_uuid': '35c3720f-c25e-437a-815a-23ad47da0a02', 'unique_id': '40746e96-0590-408d-9da5-f29fa794ebf5', 'type': 'detail'}), ('Official Gazette of RS, No. 77/2015 - dc903cac-4528-44c7-b1dc-ad1b54a73211 - 35c3720f-c25e-437a-815a-23ad47da0a02 - 3445497e-2951-4f3b-9d62-da48682f4d4c', {'created_at': '2024-03-12 22:51:16', 'updated_at': '2024-03-12 22:51:16', 'description': 'Official Gazette of RS, No. 77/2015', 'category': 'document', 'memory_type': 'episodic', 'layer_uuid': 'dc903cac-4528-44c7-b1dc-ad1b54a73211', 'layer_description': \"{'layer': 'Legal Structure Layer'}\", 'layer_decomposition_uuid': '35c3720f-c25e-437a-815a-23ad47da0a02', 'unique_id': '3445497e-2951-4f3b-9d62-da48682f4d4c', 'type': 'detail'}), ('Law on Planning and Construction - dc903cac-4528-44c7-b1dc-ad1b54a73211 - 35c3720f-c25e-437a-815a-23ad47da0a02 - 9fcc7992-2773-48ef-956b-0b6818260124', {'created_at': '2024-03-12 22:51:16', 'updated_at': '2024-03-12 22:51:16', 'description': 'Law on Planning and Construction', 'category': 'document', 'memory_type': 'semantic', 'layer_uuid': 'dc903cac-4528-44c7-b1dc-ad1b54a73211', 'layer_description': \"{'layer': 'Legal Structure Layer'}\", 'layer_decomposition_uuid': '35c3720f-c25e-437a-815a-23ad47da0a02', 'unique_id': '9fcc7992-2773-48ef-956b-0b6818260124', 'type': 'detail'}), ('Zorana Mihajlović, Prof. Dr. - dc903cac-4528-44c7-b1dc-ad1b54a73211 - 35c3720f-c25e-437a-815a-23ad47da0a02 - aceadca4-454b-45b6-a487-3e639bc8c095', {'created_at': '2024-03-12 22:51:16', 'updated_at': '2024-03-12 22:51:16', 'description': 'Zorana Mihajlović, Prof. Dr.', 'category': 'person', 'memory_type': 'semantic', 'layer_uuid': 'dc903cac-4528-44c7-b1dc-ad1b54a73211', 'layer_description': \"{'layer': 'Legal Structure Layer'}\", 'layer_decomposition_uuid': '35c3720f-c25e-437a-815a-23ad47da0a02', 'unique_id': 'aceadca4-454b-45b6-a487-3e639bc8c095', 'type': 'detail'}), ('Ministry of Construction, Transport and Infrastructure - dc903cac-4528-44c7-b1dc-ad1b54a73211 - 164e45a4-00bb-4d07-a069-3311a56e3780 - 36baf9c8-2125-4611-baef-923a2b96e5de', {'created_at': '2024-03-12 22:51:16', 'updated_at': '2024-03-12 22:51:16', 'description': 'Ministry of Construction, Transport and Infrastructure', 'category': 'entity', 'memory_type': 'semantic', 'layer_uuid': 'dc903cac-4528-44c7-b1dc-ad1b54a73211', 'layer_description': \"{'layer': 'Terminology and Concepts Layer'}\", 'layer_decomposition_uuid': '164e45a4-00bb-4d07-a069-3311a56e3780', 'unique_id': '36baf9c8-2125-4611-baef-923a2b96e5de', 'type': 'detail'}), ('Rulebook on Amendments and Supplements of the Rulebook on the Content, Manner, and Procedure of Preparation and the Manner of Control of Technical Documentation According to the Class and Purpose of the Buildings - dc903cac-4528-44c7-b1dc-ad1b54a73211 - 164e45a4-00bb-4d07-a069-3311a56e3780 - a9959179-eda0-43ce-8b71-783b4852e3f9', {'created_at': '2024-03-12 22:51:16', 'updated_at': '2024-03-12 22:51:16', 'description': 'Rulebook on Amendments and Supplements of the Rulebook on the Content, Manner, and Procedure of Preparation and the Manner of Control of Technical Documentation According to the Class and Purpose of the Buildings', 'category': 'entity', 'memory_type': 'semantic', 'layer_uuid': 'dc903cac-4528-44c7-b1dc-ad1b54a73211', 'layer_description': \"{'layer': 'Terminology and Concepts Layer'}\", 'layer_decomposition_uuid': '164e45a4-00bb-4d07-a069-3311a56e3780', 'unique_id': 'a9959179-eda0-43ce-8b71-783b4852e3f9', 'type': 'detail'}), ('Official Gazette of the Republic of Serbia - dc903cac-4528-44c7-b1dc-ad1b54a73211 - 164e45a4-00bb-4d07-a069-3311a56e3780 - 49ffb1f5-7429-4122-9205-82c9d9f27562', {'created_at': '2024-03-12 22:51:16', 'updated_at': '2024-03-12 22:51:16', 'description': 'Official Gazette of the Republic of Serbia', 'category': 'entity', 'memory_type': 'semantic', 'layer_uuid': 'dc903cac-4528-44c7-b1dc-ad1b54a73211', 'layer_description': \"{'layer': 'Terminology and Concepts Layer'}\", 'layer_decomposition_uuid': '164e45a4-00bb-4d07-a069-3311a56e3780', 'unique_id': '49ffb1f5-7429-4122-9205-82c9d9f27562', 'type': 'detail'}), ('Construction permit - dc903cac-4528-44c7-b1dc-ad1b54a73211 - 164e45a4-00bb-4d07-a069-3311a56e3780 - f93086c8-566e-41bc-b206-a87aa5506b3f', {'created_at': '2024-03-12 22:51:16', 'updated_at': '2024-03-12 22:51:16', 'description': 'Construction permit', 'category': 'entity', 'memory_type': 'semantic', 'layer_uuid': 'dc903cac-4528-44c7-b1dc-ad1b54a73211', 'layer_description': \"{'layer': 'Terminology and Concepts Layer'}\", 'layer_decomposition_uuid': '164e45a4-00bb-4d07-a069-3311a56e3780', 'unique_id': 'f93086c8-566e-41bc-b206-a87aa5506b3f', 'type': 'detail'}), ('Conceptual design - dc903cac-4528-44c7-b1dc-ad1b54a73211 - 164e45a4-00bb-4d07-a069-3311a56e3780 - ba1cb66b-aa1d-413c-a56a-54103f431359', {'created_at': '2024-03-12 22:51:16', 'updated_at': '2024-03-12 22:51:16', 'description': 'Conceptual design', 'category': 'entity', 'memory_type': 'semantic', 'layer_uuid': 'dc903cac-4528-44c7-b1dc-ad1b54a73211', 'layer_description': \"{'layer': 'Terminology and Concepts Layer'}\", 'layer_decomposition_uuid': '164e45a4-00bb-4d07-a069-3311a56e3780', 'unique_id': 'ba1cb66b-aa1d-413c-a56a-54103f431359', 'type': 'detail'}), ('Execution project - dc903cac-4528-44c7-b1dc-ad1b54a73211 - 164e45a4-00bb-4d07-a069-3311a56e3780 - 0ff044bd-8c08-46e8-8bc4-2a7506f3cf11', {'created_at': '2024-03-12 22:51:16', 'updated_at': '2024-03-12 22:51:16', 'description': 'Execution project', 'category': 'entity', 'memory_type': 'semantic', 'layer_uuid': 'dc903cac-4528-44c7-b1dc-ad1b54a73211', 'layer_description': \"{'layer': 'Terminology and Concepts Layer'}\", 'layer_decomposition_uuid': '164e45a4-00bb-4d07-a069-3311a56e3780', 'unique_id': '0ff044bd-8c08-46e8-8bc4-2a7506f3cf11', 'type': 'detail'}), ('Minister Zorana Mihajlovic - dc903cac-4528-44c7-b1dc-ad1b54a73211 - 164e45a4-00bb-4d07-a069-3311a56e3780 - 107baf39-73fa-4040-b6ee-dfe0caad0eaf', {'created_at': '2024-03-12 22:51:16', 'updated_at': '2024-03-12 22:51:16', 'description': 'Minister Zorana Mihajlovic', 'category': 'person', 'memory_type': 'episodic', 'layer_uuid': 'dc903cac-4528-44c7-b1dc-ad1b54a73211', 'layer_description': \"{'layer': 'Terminology and Concepts Layer'}\", 'layer_decomposition_uuid': '164e45a4-00bb-4d07-a069-3311a56e3780', 'unique_id': '107baf39-73fa-4040-b6ee-dfe0caad0eaf', 'type': 'detail'}), ('Pravilnik o izmenama i dopunama Pravilnika o sadržini, načinu i postupku izrade i način vršenja kontrole tehničke dokumentacije prema klasi i nameni objekata - dc903cac-4528-44c7-b1dc-ad1b54a73211 - e62655b3-205c-41d5-bbfb-ef9cb06c081e - 65de2225-9c3e-432c-b2f3-0940081753d8', {'created_at': '2024-03-12 22:51:16', 'updated_at': '2024-03-12 22:51:16', 'description': 'Pravilnik o izmenama i dopunama Pravilnika o sadržini, načinu i postupku izrade i način vršenja kontrole tehničke dokumentacije prema klasi i nameni objekata', 'category': 'legalDocument', 'memory_type': 'semantic', 'layer_uuid': 'dc903cac-4528-44c7-b1dc-ad1b54a73211', 'layer_description': \"{'layer': 'Legal References and Citations Layer'}\", 'layer_decomposition_uuid': 'e62655b3-205c-41d5-bbfb-ef9cb06c081e', 'unique_id': '65de2225-9c3e-432c-b2f3-0940081753d8', 'type': 'detail'}), ('Službeni glasnik RS, br. 77/2015 published on 9.9.2015 - dc903cac-4528-44c7-b1dc-ad1b54a73211 - e62655b3-205c-41d5-bbfb-ef9cb06c081e - 04a45f2b-7229-4198-a589-35dc4815eb92', {'created_at': '2024-03-12 22:51:16', 'updated_at': '2024-03-12 22:51:16', 'description': 'Službeni glasnik RS, br. 77/2015 published on 9.9.2015', 'category': 'publication', 'memory_type': 'episodic', 'layer_uuid': 'dc903cac-4528-44c7-b1dc-ad1b54a73211', 'layer_description': \"{'layer': 'Legal References and Citations Layer'}\", 'layer_decomposition_uuid': 'e62655b3-205c-41d5-bbfb-ef9cb06c081e', 'unique_id': '04a45f2b-7229-4198-a589-35dc4815eb92', 'type': 'detail'}), ('Zakon o planiranju i izgradnji - dc903cac-4528-44c7-b1dc-ad1b54a73211 - e62655b3-205c-41d5-bbfb-ef9cb06c081e - d17872b9-3904-412d-85a7-1d1f835bc7f5', {'created_at': '2024-03-12 22:51:16', 'updated_at': '2024-03-12 22:51:16', 'description': 'Zakon o planiranju i izgradnji', 'category': 'legalAct', 'memory_type': 'semantic', 'layer_uuid': 'dc903cac-4528-44c7-b1dc-ad1b54a73211', 'layer_description': \"{'layer': 'Legal References and Citations Layer'}\", 'layer_decomposition_uuid': 'e62655b3-205c-41d5-bbfb-ef9cb06c081e', 'unique_id': 'd17872b9-3904-412d-85a7-1d1f835bc7f5', 'type': 'detail'}), ('Zorana Mihajlović - dc903cac-4528-44c7-b1dc-ad1b54a73211 - e62655b3-205c-41d5-bbfb-ef9cb06c081e - e7699944-8b90-4344-b0da-94a134ffaaf7', {'created_at': '2024-03-12 22:51:16', 'updated_at': '2024-03-12 22:51:16', 'description': 'Zorana Mihajlović', 'category': 'person', 'memory_type': 'semantic', 'layer_uuid': 'dc903cac-4528-44c7-b1dc-ad1b54a73211', 'layer_description': \"{'layer': 'Legal References and Citations Layer'}\", 'layer_decomposition_uuid': 'e62655b3-205c-41d5-bbfb-ef9cb06c081e', 'unique_id': 'e7699944-8b90-4344-b0da-94a134ffaaf7', 'type': 'detail'}), ('Ministar građevinarstva, saobraćaja i infrastrukture - dc903cac-4528-44c7-b1dc-ad1b54a73211 - 27555393-566c-47fc-9711-3789c2fd270b - 4298cf5e-764f-40b7-9ff8-e60cd2253009', {'created_at': '2024-03-12 22:51:16', 'updated_at': '2024-03-12 22:51:16', 'description': 'Ministar građevinarstva, saobraćaja i infrastrukture', 'category': 'entity', 'memory_type': 'semantic', 'layer_uuid': 'dc903cac-4528-44c7-b1dc-ad1b54a73211', 'layer_description': \"{'layer': 'Jurisdictional Layer'}\", 'layer_decomposition_uuid': '27555393-566c-47fc-9711-3789c2fd270b', 'unique_id': '4298cf5e-764f-40b7-9ff8-e60cd2253009', 'type': 'detail'}), ('Pravilnik o izmenama i dopunama Pravilnika o sadržini, načinu i postupku izrade i način vršenja kontrole tehničke dokumentacije prema klasi i nameni objekata - dc903cac-4528-44c7-b1dc-ad1b54a73211 - 27555393-566c-47fc-9711-3789c2fd270b - dd3c23e1-e905-4c9a-81ad-2ad5f0ab4f7e', {'created_at': '2024-03-12 22:51:16', 'updated_at': '2024-03-12 22:51:16', 'description': 'Pravilnik o izmenama i dopunama Pravilnika o sadržini, načinu i postupku izrade i način vršenja kontrole tehničke dokumentacije prema klasi i nameni objekata', 'category': 'document', 'memory_type': 'episodic', 'layer_uuid': 'dc903cac-4528-44c7-b1dc-ad1b54a73211', 'layer_description': \"{'layer': 'Jurisdictional Layer'}\", 'layer_decomposition_uuid': '27555393-566c-47fc-9711-3789c2fd270b', 'unique_id': 'dd3c23e1-e905-4c9a-81ad-2ad5f0ab4f7e', 'type': 'detail'}), ('Službeni glasnik RS, broj 77/2015 - dc903cac-4528-44c7-b1dc-ad1b54a73211 - 27555393-566c-47fc-9711-3789c2fd270b - 3c332f72-d9cb-4afe-9514-a742da4ef58a', {'created_at': '2024-03-12 22:51:16', 'updated_at': '2024-03-12 22:51:16', 'description': 'Službeni glasnik RS, broj 77/2015', 'category': 'publication', 'memory_type': 'episodic', 'layer_uuid': 'dc903cac-4528-44c7-b1dc-ad1b54a73211', 'layer_description': \"{'layer': 'Jurisdictional Layer'}\", 'layer_decomposition_uuid': '27555393-566c-47fc-9711-3789c2fd270b', 'unique_id': '3c332f72-d9cb-4afe-9514-a742da4ef58a', 'type': 'detail'}), ('prof. dr Zorana Mihajlović - dc903cac-4528-44c7-b1dc-ad1b54a73211 - 27555393-566c-47fc-9711-3789c2fd270b - 9f353a2f-d6de-4649-827d-0a4575a437a1', {'created_at': '2024-03-12 22:51:16', 'updated_at': '2024-03-12 22:51:16', 'description': 'prof. dr Zorana Mihajlović', 'category': 'person', 'memory_type': 'episodic', 'layer_uuid': 'dc903cac-4528-44c7-b1dc-ad1b54a73211', 'layer_description': \"{'layer': 'Jurisdictional Layer'}\", 'layer_decomposition_uuid': '27555393-566c-47fc-9711-3789c2fd270b', 'unique_id': '9f353a2f-d6de-4649-827d-0a4575a437a1', 'type': 'detail'}), ('Ministry of Construction, Transport and Infrastructure - dc903cac-4528-44c7-b1dc-ad1b54a73211 - 45870c37-719b-4080-ad44-8afb2315fb74 - 20dc3b92-c00b-4f60-b426-08a915110ad8', {'created_at': '2024-03-12 22:51:16', 'updated_at': '2024-03-12 22:51:16', 'description': 'Ministry of Construction, Transport and Infrastructure', 'category': 'entity', 'memory_type': 'semantic', 'layer_uuid': 'dc903cac-4528-44c7-b1dc-ad1b54a73211', 'layer_description': \"{'layer': 'Historical Amendments Layer'}\", 'layer_decomposition_uuid': '45870c37-719b-4080-ad44-8afb2315fb74', 'unique_id': '20dc3b92-c00b-4f60-b426-08a915110ad8', 'type': 'detail'}), ('Regulation on Amendments to the Regulation on the content, method, and procedure of creating and controlling technical documentation according to the class and purpose of buildings - dc903cac-4528-44c7-b1dc-ad1b54a73211 - 45870c37-719b-4080-ad44-8afb2315fb74 - 559ba048-ae86-4df0-97e8-7b5cc8ccb978', {'created_at': '2024-03-12 22:51:16', 'updated_at': '2024-03-12 22:51:16', 'description': 'Regulation on Amendments to the Regulation on the content, method, and procedure of creating and controlling technical documentation according to the class and purpose of buildings', 'category': 'entity', 'memory_type': 'semantic', 'layer_uuid': 'dc903cac-4528-44c7-b1dc-ad1b54a73211', 'layer_description': \"{'layer': 'Historical Amendments Layer'}\", 'layer_decomposition_uuid': '45870c37-719b-4080-ad44-8afb2315fb74', 'unique_id': '559ba048-ae86-4df0-97e8-7b5cc8ccb978', 'type': 'detail'}), ('Official Gazette of the Republic of Serbia, No. 77/2015 dated September 9, 2015 - dc903cac-4528-44c7-b1dc-ad1b54a73211 - 45870c37-719b-4080-ad44-8afb2315fb74 - 0a7b7400-6770-4de9-800d-9dd63215943d', {'created_at': '2024-03-12 22:51:16', 'updated_at': '2024-03-12 22:51:16', 'description': 'Official Gazette of the Republic of Serbia, No. 77/2015 dated September 9, 2015', 'category': 'entity', 'memory_type': 'semantic', 'layer_uuid': 'dc903cac-4528-44c7-b1dc-ad1b54a73211', 'layer_description': \"{'layer': 'Historical Amendments Layer'}\", 'layer_decomposition_uuid': '45870c37-719b-4080-ad44-8afb2315fb74', 'unique_id': '0a7b7400-6770-4de9-800d-9dd63215943d', 'type': 'detail'}), ('Law on Planning and Construction - dc903cac-4528-44c7-b1dc-ad1b54a73211 - 45870c37-719b-4080-ad44-8afb2315fb74 - 312cb2db-e521-4f9b-bcb8-b87040f60305', {'created_at': '2024-03-12 22:51:16', 'updated_at': '2024-03-12 22:51:16', 'description': 'Law on Planning and Construction', 'category': 'entity', 'memory_type': 'semantic', 'layer_uuid': 'dc903cac-4528-44c7-b1dc-ad1b54a73211', 'layer_description': \"{'layer': 'Historical Amendments Layer'}\", 'layer_decomposition_uuid': '45870c37-719b-4080-ad44-8afb2315fb74', 'unique_id': '312cb2db-e521-4f9b-bcb8-b87040f60305', 'type': 'detail'}), ('Zorana Mihajlovic, Prof. Dr. - dc903cac-4528-44c7-b1dc-ad1b54a73211 - 45870c37-719b-4080-ad44-8afb2315fb74 - 41218825-e4d8-478d-8cf8-3f394d9300fc', {'created_at': '2024-03-12 22:51:16', 'updated_at': '2024-03-12 22:51:16', 'description': 'Zorana Mihajlovic, Prof. Dr.', 'category': 'person', 'memory_type': 'semantic', 'layer_uuid': 'dc903cac-4528-44c7-b1dc-ad1b54a73211', 'layer_description': \"{'layer': 'Historical Amendments Layer'}\", 'layer_decomposition_uuid': '45870c37-719b-4080-ad44-8afb2315fb74', 'unique_id': '41218825-e4d8-478d-8cf8-3f394d9300fc', 'type': 'detail'})]\n", + "LLM_CLASSIFICATION:LAYER:Laws, regulations, and legal case documents:Document:doc1\n", + "Updated Nodes: [('LLM_LAYER_CLASSIFICATION:TEXT:Document:doc1', {'data_type': 'text', 'context_name': 'TEXT', 'layer_name': 'Laws, regulations, and legal case documents'}), ('Document:doc1', {}), ('LLM_CLASSIFICATION:LAYER:Laws, regulations, and legal case documents:Document:doc1', {'data_type': 'text', 'context_name': 'TEXT', 'layer_name': 'Laws, regulations, and legal case documents'}), ('Ministry of Construction, Transport and Infrastructure - dc903cac-4528-44c7-b1dc-ad1b54a73211 - 35c3720f-c25e-437a-815a-23ad47da0a02 - f25d6b1e-b61b-40f3-bebb-d2eb7dae14e6', {'created_at': '2024-03-12 22:51:16', 'updated_at': '2024-03-12 22:51:16', 'description': 'Ministry of Construction, Transport and Infrastructure', 'category': 'entity', 'memory_type': 'semantic', 'layer_uuid': 'dc903cac-4528-44c7-b1dc-ad1b54a73211', 'layer_description': \"{'layer': 'Legal Structure Layer'}\", 'layer_decomposition_uuid': '35c3720f-c25e-437a-815a-23ad47da0a02', 'unique_id': 'f25d6b1e-b61b-40f3-bebb-d2eb7dae14e6', 'type': 'detail'}), ('Regulation on amendments and supplements to the Regulation on the content, manner, and procedure of preparation and how to conduct control of technical documentation according to the class and purpose of facilities - dc903cac-4528-44c7-b1dc-ad1b54a73211 - 35c3720f-c25e-437a-815a-23ad47da0a02 - 40746e96-0590-408d-9da5-f29fa794ebf5', {'created_at': '2024-03-12 22:51:16', 'updated_at': '2024-03-12 22:51:16', 'description': 'Regulation on amendments and supplements to the Regulation on the content, manner, and procedure of preparation and how to conduct control of technical documentation according to the class and purpose of facilities', 'category': 'entity', 'memory_type': 'semantic', 'layer_uuid': 'dc903cac-4528-44c7-b1dc-ad1b54a73211', 'layer_description': \"{'layer': 'Legal Structure Layer'}\", 'layer_decomposition_uuid': '35c3720f-c25e-437a-815a-23ad47da0a02', 'unique_id': '40746e96-0590-408d-9da5-f29fa794ebf5', 'type': 'detail'}), ('Official Gazette of RS, No. 77/2015 - dc903cac-4528-44c7-b1dc-ad1b54a73211 - 35c3720f-c25e-437a-815a-23ad47da0a02 - 3445497e-2951-4f3b-9d62-da48682f4d4c', {'created_at': '2024-03-12 22:51:16', 'updated_at': '2024-03-12 22:51:16', 'description': 'Official Gazette of RS, No. 77/2015', 'category': 'document', 'memory_type': 'episodic', 'layer_uuid': 'dc903cac-4528-44c7-b1dc-ad1b54a73211', 'layer_description': \"{'layer': 'Legal Structure Layer'}\", 'layer_decomposition_uuid': '35c3720f-c25e-437a-815a-23ad47da0a02', 'unique_id': '3445497e-2951-4f3b-9d62-da48682f4d4c', 'type': 'detail'}), ('Law on Planning and Construction - dc903cac-4528-44c7-b1dc-ad1b54a73211 - 35c3720f-c25e-437a-815a-23ad47da0a02 - 9fcc7992-2773-48ef-956b-0b6818260124', {'created_at': '2024-03-12 22:51:16', 'updated_at': '2024-03-12 22:51:16', 'description': 'Law on Planning and Construction', 'category': 'document', 'memory_type': 'semantic', 'layer_uuid': 'dc903cac-4528-44c7-b1dc-ad1b54a73211', 'layer_description': \"{'layer': 'Legal Structure Layer'}\", 'layer_decomposition_uuid': '35c3720f-c25e-437a-815a-23ad47da0a02', 'unique_id': '9fcc7992-2773-48ef-956b-0b6818260124', 'type': 'detail'}), ('Zorana Mihajlović, Prof. Dr. - dc903cac-4528-44c7-b1dc-ad1b54a73211 - 35c3720f-c25e-437a-815a-23ad47da0a02 - aceadca4-454b-45b6-a487-3e639bc8c095', {'created_at': '2024-03-12 22:51:16', 'updated_at': '2024-03-12 22:51:16', 'description': 'Zorana Mihajlović, Prof. Dr.', 'category': 'person', 'memory_type': 'semantic', 'layer_uuid': 'dc903cac-4528-44c7-b1dc-ad1b54a73211', 'layer_description': \"{'layer': 'Legal Structure Layer'}\", 'layer_decomposition_uuid': '35c3720f-c25e-437a-815a-23ad47da0a02', 'unique_id': 'aceadca4-454b-45b6-a487-3e639bc8c095', 'type': 'detail'}), ('Ministry of Construction, Transport and Infrastructure - dc903cac-4528-44c7-b1dc-ad1b54a73211 - 164e45a4-00bb-4d07-a069-3311a56e3780 - 36baf9c8-2125-4611-baef-923a2b96e5de', {'created_at': '2024-03-12 22:51:16', 'updated_at': '2024-03-12 22:51:16', 'description': 'Ministry of Construction, Transport and Infrastructure', 'category': 'entity', 'memory_type': 'semantic', 'layer_uuid': 'dc903cac-4528-44c7-b1dc-ad1b54a73211', 'layer_description': \"{'layer': 'Terminology and Concepts Layer'}\", 'layer_decomposition_uuid': '164e45a4-00bb-4d07-a069-3311a56e3780', 'unique_id': '36baf9c8-2125-4611-baef-923a2b96e5de', 'type': 'detail'}), ('Rulebook on Amendments and Supplements of the Rulebook on the Content, Manner, and Procedure of Preparation and the Manner of Control of Technical Documentation According to the Class and Purpose of the Buildings - dc903cac-4528-44c7-b1dc-ad1b54a73211 - 164e45a4-00bb-4d07-a069-3311a56e3780 - a9959179-eda0-43ce-8b71-783b4852e3f9', {'created_at': '2024-03-12 22:51:16', 'updated_at': '2024-03-12 22:51:16', 'description': 'Rulebook on Amendments and Supplements of the Rulebook on the Content, Manner, and Procedure of Preparation and the Manner of Control of Technical Documentation According to the Class and Purpose of the Buildings', 'category': 'entity', 'memory_type': 'semantic', 'layer_uuid': 'dc903cac-4528-44c7-b1dc-ad1b54a73211', 'layer_description': \"{'layer': 'Terminology and Concepts Layer'}\", 'layer_decomposition_uuid': '164e45a4-00bb-4d07-a069-3311a56e3780', 'unique_id': 'a9959179-eda0-43ce-8b71-783b4852e3f9', 'type': 'detail'}), ('Official Gazette of the Republic of Serbia - dc903cac-4528-44c7-b1dc-ad1b54a73211 - 164e45a4-00bb-4d07-a069-3311a56e3780 - 49ffb1f5-7429-4122-9205-82c9d9f27562', {'created_at': '2024-03-12 22:51:16', 'updated_at': '2024-03-12 22:51:16', 'description': 'Official Gazette of the Republic of Serbia', 'category': 'entity', 'memory_type': 'semantic', 'layer_uuid': 'dc903cac-4528-44c7-b1dc-ad1b54a73211', 'layer_description': \"{'layer': 'Terminology and Concepts Layer'}\", 'layer_decomposition_uuid': '164e45a4-00bb-4d07-a069-3311a56e3780', 'unique_id': '49ffb1f5-7429-4122-9205-82c9d9f27562', 'type': 'detail'}), ('Construction permit - dc903cac-4528-44c7-b1dc-ad1b54a73211 - 164e45a4-00bb-4d07-a069-3311a56e3780 - f93086c8-566e-41bc-b206-a87aa5506b3f', {'created_at': '2024-03-12 22:51:16', 'updated_at': '2024-03-12 22:51:16', 'description': 'Construction permit', 'category': 'entity', 'memory_type': 'semantic', 'layer_uuid': 'dc903cac-4528-44c7-b1dc-ad1b54a73211', 'layer_description': \"{'layer': 'Terminology and Concepts Layer'}\", 'layer_decomposition_uuid': '164e45a4-00bb-4d07-a069-3311a56e3780', 'unique_id': 'f93086c8-566e-41bc-b206-a87aa5506b3f', 'type': 'detail'}), ('Conceptual design - dc903cac-4528-44c7-b1dc-ad1b54a73211 - 164e45a4-00bb-4d07-a069-3311a56e3780 - ba1cb66b-aa1d-413c-a56a-54103f431359', {'created_at': '2024-03-12 22:51:16', 'updated_at': '2024-03-12 22:51:16', 'description': 'Conceptual design', 'category': 'entity', 'memory_type': 'semantic', 'layer_uuid': 'dc903cac-4528-44c7-b1dc-ad1b54a73211', 'layer_description': \"{'layer': 'Terminology and Concepts Layer'}\", 'layer_decomposition_uuid': '164e45a4-00bb-4d07-a069-3311a56e3780', 'unique_id': 'ba1cb66b-aa1d-413c-a56a-54103f431359', 'type': 'detail'}), ('Execution project - dc903cac-4528-44c7-b1dc-ad1b54a73211 - 164e45a4-00bb-4d07-a069-3311a56e3780 - 0ff044bd-8c08-46e8-8bc4-2a7506f3cf11', {'created_at': '2024-03-12 22:51:16', 'updated_at': '2024-03-12 22:51:16', 'description': 'Execution project', 'category': 'entity', 'memory_type': 'semantic', 'layer_uuid': 'dc903cac-4528-44c7-b1dc-ad1b54a73211', 'layer_description': \"{'layer': 'Terminology and Concepts Layer'}\", 'layer_decomposition_uuid': '164e45a4-00bb-4d07-a069-3311a56e3780', 'unique_id': '0ff044bd-8c08-46e8-8bc4-2a7506f3cf11', 'type': 'detail'}), ('Minister Zorana Mihajlovic - dc903cac-4528-44c7-b1dc-ad1b54a73211 - 164e45a4-00bb-4d07-a069-3311a56e3780 - 107baf39-73fa-4040-b6ee-dfe0caad0eaf', {'created_at': '2024-03-12 22:51:16', 'updated_at': '2024-03-12 22:51:16', 'description': 'Minister Zorana Mihajlovic', 'category': 'person', 'memory_type': 'episodic', 'layer_uuid': 'dc903cac-4528-44c7-b1dc-ad1b54a73211', 'layer_description': \"{'layer': 'Terminology and Concepts Layer'}\", 'layer_decomposition_uuid': '164e45a4-00bb-4d07-a069-3311a56e3780', 'unique_id': '107baf39-73fa-4040-b6ee-dfe0caad0eaf', 'type': 'detail'}), ('Pravilnik o izmenama i dopunama Pravilnika o sadržini, načinu i postupku izrade i način vršenja kontrole tehničke dokumentacije prema klasi i nameni objekata - dc903cac-4528-44c7-b1dc-ad1b54a73211 - e62655b3-205c-41d5-bbfb-ef9cb06c081e - 65de2225-9c3e-432c-b2f3-0940081753d8', {'created_at': '2024-03-12 22:51:16', 'updated_at': '2024-03-12 22:51:16', 'description': 'Pravilnik o izmenama i dopunama Pravilnika o sadržini, načinu i postupku izrade i način vršenja kontrole tehničke dokumentacije prema klasi i nameni objekata', 'category': 'legalDocument', 'memory_type': 'semantic', 'layer_uuid': 'dc903cac-4528-44c7-b1dc-ad1b54a73211', 'layer_description': \"{'layer': 'Legal References and Citations Layer'}\", 'layer_decomposition_uuid': 'e62655b3-205c-41d5-bbfb-ef9cb06c081e', 'unique_id': '65de2225-9c3e-432c-b2f3-0940081753d8', 'type': 'detail'}), ('Službeni glasnik RS, br. 77/2015 published on 9.9.2015 - dc903cac-4528-44c7-b1dc-ad1b54a73211 - e62655b3-205c-41d5-bbfb-ef9cb06c081e - 04a45f2b-7229-4198-a589-35dc4815eb92', {'created_at': '2024-03-12 22:51:16', 'updated_at': '2024-03-12 22:51:16', 'description': 'Službeni glasnik RS, br. 77/2015 published on 9.9.2015', 'category': 'publication', 'memory_type': 'episodic', 'layer_uuid': 'dc903cac-4528-44c7-b1dc-ad1b54a73211', 'layer_description': \"{'layer': 'Legal References and Citations Layer'}\", 'layer_decomposition_uuid': 'e62655b3-205c-41d5-bbfb-ef9cb06c081e', 'unique_id': '04a45f2b-7229-4198-a589-35dc4815eb92', 'type': 'detail'}), ('Zakon o planiranju i izgradnji - dc903cac-4528-44c7-b1dc-ad1b54a73211 - e62655b3-205c-41d5-bbfb-ef9cb06c081e - d17872b9-3904-412d-85a7-1d1f835bc7f5', {'created_at': '2024-03-12 22:51:16', 'updated_at': '2024-03-12 22:51:16', 'description': 'Zakon o planiranju i izgradnji', 'category': 'legalAct', 'memory_type': 'semantic', 'layer_uuid': 'dc903cac-4528-44c7-b1dc-ad1b54a73211', 'layer_description': \"{'layer': 'Legal References and Citations Layer'}\", 'layer_decomposition_uuid': 'e62655b3-205c-41d5-bbfb-ef9cb06c081e', 'unique_id': 'd17872b9-3904-412d-85a7-1d1f835bc7f5', 'type': 'detail'}), ('Zorana Mihajlović - dc903cac-4528-44c7-b1dc-ad1b54a73211 - e62655b3-205c-41d5-bbfb-ef9cb06c081e - e7699944-8b90-4344-b0da-94a134ffaaf7', {'created_at': '2024-03-12 22:51:16', 'updated_at': '2024-03-12 22:51:16', 'description': 'Zorana Mihajlović', 'category': 'person', 'memory_type': 'semantic', 'layer_uuid': 'dc903cac-4528-44c7-b1dc-ad1b54a73211', 'layer_description': \"{'layer': 'Legal References and Citations Layer'}\", 'layer_decomposition_uuid': 'e62655b3-205c-41d5-bbfb-ef9cb06c081e', 'unique_id': 'e7699944-8b90-4344-b0da-94a134ffaaf7', 'type': 'detail'}), ('Ministar građevinarstva, saobraćaja i infrastrukture - dc903cac-4528-44c7-b1dc-ad1b54a73211 - 27555393-566c-47fc-9711-3789c2fd270b - 4298cf5e-764f-40b7-9ff8-e60cd2253009', {'created_at': '2024-03-12 22:51:16', 'updated_at': '2024-03-12 22:51:16', 'description': 'Ministar građevinarstva, saobraćaja i infrastrukture', 'category': 'entity', 'memory_type': 'semantic', 'layer_uuid': 'dc903cac-4528-44c7-b1dc-ad1b54a73211', 'layer_description': \"{'layer': 'Jurisdictional Layer'}\", 'layer_decomposition_uuid': '27555393-566c-47fc-9711-3789c2fd270b', 'unique_id': '4298cf5e-764f-40b7-9ff8-e60cd2253009', 'type': 'detail'}), ('Pravilnik o izmenama i dopunama Pravilnika o sadržini, načinu i postupku izrade i način vršenja kontrole tehničke dokumentacije prema klasi i nameni objekata - dc903cac-4528-44c7-b1dc-ad1b54a73211 - 27555393-566c-47fc-9711-3789c2fd270b - dd3c23e1-e905-4c9a-81ad-2ad5f0ab4f7e', {'created_at': '2024-03-12 22:51:16', 'updated_at': '2024-03-12 22:51:16', 'description': 'Pravilnik o izmenama i dopunama Pravilnika o sadržini, načinu i postupku izrade i način vršenja kontrole tehničke dokumentacije prema klasi i nameni objekata', 'category': 'document', 'memory_type': 'episodic', 'layer_uuid': 'dc903cac-4528-44c7-b1dc-ad1b54a73211', 'layer_description': \"{'layer': 'Jurisdictional Layer'}\", 'layer_decomposition_uuid': '27555393-566c-47fc-9711-3789c2fd270b', 'unique_id': 'dd3c23e1-e905-4c9a-81ad-2ad5f0ab4f7e', 'type': 'detail'}), ('Službeni glasnik RS, broj 77/2015 - dc903cac-4528-44c7-b1dc-ad1b54a73211 - 27555393-566c-47fc-9711-3789c2fd270b - 3c332f72-d9cb-4afe-9514-a742da4ef58a', {'created_at': '2024-03-12 22:51:16', 'updated_at': '2024-03-12 22:51:16', 'description': 'Službeni glasnik RS, broj 77/2015', 'category': 'publication', 'memory_type': 'episodic', 'layer_uuid': 'dc903cac-4528-44c7-b1dc-ad1b54a73211', 'layer_description': \"{'layer': 'Jurisdictional Layer'}\", 'layer_decomposition_uuid': '27555393-566c-47fc-9711-3789c2fd270b', 'unique_id': '3c332f72-d9cb-4afe-9514-a742da4ef58a', 'type': 'detail'}), ('prof. dr Zorana Mihajlović - dc903cac-4528-44c7-b1dc-ad1b54a73211 - 27555393-566c-47fc-9711-3789c2fd270b - 9f353a2f-d6de-4649-827d-0a4575a437a1', {'created_at': '2024-03-12 22:51:16', 'updated_at': '2024-03-12 22:51:16', 'description': 'prof. dr Zorana Mihajlović', 'category': 'person', 'memory_type': 'episodic', 'layer_uuid': 'dc903cac-4528-44c7-b1dc-ad1b54a73211', 'layer_description': \"{'layer': 'Jurisdictional Layer'}\", 'layer_decomposition_uuid': '27555393-566c-47fc-9711-3789c2fd270b', 'unique_id': '9f353a2f-d6de-4649-827d-0a4575a437a1', 'type': 'detail'}), ('Ministry of Construction, Transport and Infrastructure - dc903cac-4528-44c7-b1dc-ad1b54a73211 - 45870c37-719b-4080-ad44-8afb2315fb74 - 20dc3b92-c00b-4f60-b426-08a915110ad8', {'created_at': '2024-03-12 22:51:16', 'updated_at': '2024-03-12 22:51:16', 'description': 'Ministry of Construction, Transport and Infrastructure', 'category': 'entity', 'memory_type': 'semantic', 'layer_uuid': 'dc903cac-4528-44c7-b1dc-ad1b54a73211', 'layer_description': \"{'layer': 'Historical Amendments Layer'}\", 'layer_decomposition_uuid': '45870c37-719b-4080-ad44-8afb2315fb74', 'unique_id': '20dc3b92-c00b-4f60-b426-08a915110ad8', 'type': 'detail'}), ('Regulation on Amendments to the Regulation on the content, method, and procedure of creating and controlling technical documentation according to the class and purpose of buildings - dc903cac-4528-44c7-b1dc-ad1b54a73211 - 45870c37-719b-4080-ad44-8afb2315fb74 - 559ba048-ae86-4df0-97e8-7b5cc8ccb978', {'created_at': '2024-03-12 22:51:16', 'updated_at': '2024-03-12 22:51:16', 'description': 'Regulation on Amendments to the Regulation on the content, method, and procedure of creating and controlling technical documentation according to the class and purpose of buildings', 'category': 'entity', 'memory_type': 'semantic', 'layer_uuid': 'dc903cac-4528-44c7-b1dc-ad1b54a73211', 'layer_description': \"{'layer': 'Historical Amendments Layer'}\", 'layer_decomposition_uuid': '45870c37-719b-4080-ad44-8afb2315fb74', 'unique_id': '559ba048-ae86-4df0-97e8-7b5cc8ccb978', 'type': 'detail'}), ('Official Gazette of the Republic of Serbia, No. 77/2015 dated September 9, 2015 - dc903cac-4528-44c7-b1dc-ad1b54a73211 - 45870c37-719b-4080-ad44-8afb2315fb74 - 0a7b7400-6770-4de9-800d-9dd63215943d', {'created_at': '2024-03-12 22:51:16', 'updated_at': '2024-03-12 22:51:16', 'description': 'Official Gazette of the Republic of Serbia, No. 77/2015 dated September 9, 2015', 'category': 'entity', 'memory_type': 'semantic', 'layer_uuid': 'dc903cac-4528-44c7-b1dc-ad1b54a73211', 'layer_description': \"{'layer': 'Historical Amendments Layer'}\", 'layer_decomposition_uuid': '45870c37-719b-4080-ad44-8afb2315fb74', 'unique_id': '0a7b7400-6770-4de9-800d-9dd63215943d', 'type': 'detail'}), ('Law on Planning and Construction - dc903cac-4528-44c7-b1dc-ad1b54a73211 - 45870c37-719b-4080-ad44-8afb2315fb74 - 312cb2db-e521-4f9b-bcb8-b87040f60305', {'created_at': '2024-03-12 22:51:16', 'updated_at': '2024-03-12 22:51:16', 'description': 'Law on Planning and Construction', 'category': 'entity', 'memory_type': 'semantic', 'layer_uuid': 'dc903cac-4528-44c7-b1dc-ad1b54a73211', 'layer_description': \"{'layer': 'Historical Amendments Layer'}\", 'layer_decomposition_uuid': '45870c37-719b-4080-ad44-8afb2315fb74', 'unique_id': '312cb2db-e521-4f9b-bcb8-b87040f60305', 'type': 'detail'}), ('Zorana Mihajlovic, Prof. Dr. - dc903cac-4528-44c7-b1dc-ad1b54a73211 - 45870c37-719b-4080-ad44-8afb2315fb74 - 41218825-e4d8-478d-8cf8-3f394d9300fc', {'created_at': '2024-03-12 22:51:16', 'updated_at': '2024-03-12 22:51:16', 'description': 'Zorana Mihajlovic, Prof. Dr.', 'category': 'person', 'memory_type': 'semantic', 'layer_uuid': 'dc903cac-4528-44c7-b1dc-ad1b54a73211', 'layer_description': \"{'layer': 'Historical Amendments Layer'}\", 'layer_decomposition_uuid': '45870c37-719b-4080-ad44-8afb2315fb74', 'unique_id': '41218825-e4d8-478d-8cf8-3f394d9300fc', 'type': 'detail'}), ('Minister of Construction, Transport and Infrastructure - dc903cac-4528-44c7-b1dc-ad1b54a73211 - f9f05ed2-fb84-432d-8b63-149b8d791733 - 7691f0e7-d410-4aae-bb7a-3d5652535cb3', {'created_at': '2024-03-12 22:51:16', 'updated_at': '2024-03-12 22:51:16', 'description': 'Minister of Construction, Transport and Infrastructure', 'category': 'person', 'memory_type': 'semantic', 'layer_uuid': 'dc903cac-4528-44c7-b1dc-ad1b54a73211', 'layer_description': \"{'layer': 'Purpose and Intent Layer'}\", 'layer_decomposition_uuid': 'f9f05ed2-fb84-432d-8b63-149b8d791733', 'unique_id': '7691f0e7-d410-4aae-bb7a-3d5652535cb3', 'type': 'detail'}), ('Amendments and supplements to the Rule on the content, method, and procedure of drafting and method of technical documentation control according to the class and purpose of buildings - dc903cac-4528-44c7-b1dc-ad1b54a73211 - f9f05ed2-fb84-432d-8b63-149b8d791733 - c423e034-2fa2-4fd7-958b-c192949d7516', {'created_at': '2024-03-12 22:51:16', 'updated_at': '2024-03-12 22:51:16', 'description': 'Amendments and supplements to the Rule on the content, method, and procedure of drafting and method of technical documentation control according to the class and purpose of buildings', 'category': 'event', 'memory_type': 'semantic', 'layer_uuid': 'dc903cac-4528-44c7-b1dc-ad1b54a73211', 'layer_description': \"{'layer': 'Purpose and Intent Layer'}\", 'layer_decomposition_uuid': 'f9f05ed2-fb84-432d-8b63-149b8d791733', 'unique_id': 'c423e034-2fa2-4fd7-958b-c192949d7516', 'type': 'detail'}), ('Official Journal of the Republic of Serbia - dc903cac-4528-44c7-b1dc-ad1b54a73211 - f9f05ed2-fb84-432d-8b63-149b8d791733 - 5d9fad88-91cb-4972-a622-f86a9dcd54e7', {'created_at': '2024-03-12 22:51:16', 'updated_at': '2024-03-12 22:51:16', 'description': 'Official Journal of the Republic of Serbia', 'category': 'entity', 'memory_type': 'semantic', 'layer_uuid': 'dc903cac-4528-44c7-b1dc-ad1b54a73211', 'layer_description': \"{'layer': 'Purpose and Intent Layer'}\", 'layer_decomposition_uuid': 'f9f05ed2-fb84-432d-8b63-149b8d791733', 'unique_id': '5d9fad88-91cb-4972-a622-f86a9dcd54e7', 'type': 'detail'}), ('Publication number 77/2015 - dc903cac-4528-44c7-b1dc-ad1b54a73211 - f9f05ed2-fb84-432d-8b63-149b8d791733 - b7619af0-82d6-472a-abc4-95a6bc72df21', {'created_at': '2024-03-12 22:51:16', 'updated_at': '2024-03-12 22:51:16', 'description': 'Publication number 77/2015', 'category': 'entity', 'memory_type': 'semantic', 'layer_uuid': 'dc903cac-4528-44c7-b1dc-ad1b54a73211', 'layer_description': \"{'layer': 'Purpose and Intent Layer'}\", 'layer_decomposition_uuid': 'f9f05ed2-fb84-432d-8b63-149b8d791733', 'unique_id': 'b7619af0-82d6-472a-abc4-95a6bc72df21', 'type': 'detail'}), ('Law on Planning and Construction - dc903cac-4528-44c7-b1dc-ad1b54a73211 - f9f05ed2-fb84-432d-8b63-149b8d791733 - 73785155-6925-4bbc-ba30-690692ae6ad6', {'created_at': '2024-03-12 22:51:16', 'updated_at': '2024-03-12 22:51:16', 'description': 'Law on Planning and Construction', 'category': 'entity', 'memory_type': 'semantic', 'layer_uuid': 'dc903cac-4528-44c7-b1dc-ad1b54a73211', 'layer_description': \"{'layer': 'Purpose and Intent Layer'}\", 'layer_decomposition_uuid': 'f9f05ed2-fb84-432d-8b63-149b8d791733', 'unique_id': '73785155-6925-4bbc-ba30-690692ae6ad6', 'type': 'detail'}), ('Article 17 of the Rule - dc903cac-4528-44c7-b1dc-ad1b54a73211 - f9f05ed2-fb84-432d-8b63-149b8d791733 - bee4e71b-62ac-43bc-ba2c-4c6db713576c', {'created_at': '2024-03-12 22:51:16', 'updated_at': '2024-03-12 22:51:16', 'description': 'Article 17 of the Rule', 'category': 'entity', 'memory_type': 'semantic', 'layer_uuid': 'dc903cac-4528-44c7-b1dc-ad1b54a73211', 'layer_description': \"{'layer': 'Purpose and Intent Layer'}\", 'layer_decomposition_uuid': 'f9f05ed2-fb84-432d-8b63-149b8d791733', 'unique_id': 'bee4e71b-62ac-43bc-ba2c-4c6db713576c', 'type': 'detail'}), ('Article 19 of the Rule - dc903cac-4528-44c7-b1dc-ad1b54a73211 - f9f05ed2-fb84-432d-8b63-149b8d791733 - 1e4635f2-c1f3-4e42-99bb-fcf7a6c8dea7', {'created_at': '2024-03-12 22:51:16', 'updated_at': '2024-03-12 22:51:16', 'description': 'Article 19 of the Rule', 'category': 'entity', 'memory_type': 'semantic', 'layer_uuid': 'dc903cac-4528-44c7-b1dc-ad1b54a73211', 'layer_description': \"{'layer': 'Purpose and Intent Layer'}\", 'layer_decomposition_uuid': 'f9f05ed2-fb84-432d-8b63-149b8d791733', 'unique_id': '1e4635f2-c1f3-4e42-99bb-fcf7a6c8dea7', 'type': 'detail'}), ('Zorana Mihajlovic, Minister of Construction, Transport and Infrastructure - dc903cac-4528-44c7-b1dc-ad1b54a73211 - f9f05ed2-fb84-432d-8b63-149b8d791733 - 413bd896-b588-4513-9f66-7870ff4f7efb', {'created_at': '2024-03-12 22:51:16', 'updated_at': '2024-03-12 22:51:16', 'description': 'Zorana Mihajlovic, Minister of Construction, Transport and Infrastructure', 'category': 'person', 'memory_type': 'semantic', 'layer_uuid': 'dc903cac-4528-44c7-b1dc-ad1b54a73211', 'layer_description': \"{'layer': 'Purpose and Intent Layer'}\", 'layer_decomposition_uuid': 'f9f05ed2-fb84-432d-8b63-149b8d791733', 'unique_id': '413bd896-b588-4513-9f66-7870ff4f7efb', 'type': 'detail'})]\n", + "LLM_CLASSIFICATION:LAYER:Laws, regulations, and legal case documents:Document:doc1\n", + "Updated Nodes: [('LLM_LAYER_CLASSIFICATION:TEXT:Document:doc1', {'data_type': 'text', 'context_name': 'TEXT', 'layer_name': 'Laws, regulations, and legal case documents'}), ('Document:doc1', {}), ('LLM_CLASSIFICATION:LAYER:Laws, regulations, and legal case documents:Document:doc1', {'data_type': 'text', 'context_name': 'TEXT', 'layer_name': 'Laws, regulations, and legal case documents'}), ('Ministry of Construction, Transport and Infrastructure - dc903cac-4528-44c7-b1dc-ad1b54a73211 - 35c3720f-c25e-437a-815a-23ad47da0a02 - f25d6b1e-b61b-40f3-bebb-d2eb7dae14e6', {'created_at': '2024-03-12 22:51:16', 'updated_at': '2024-03-12 22:51:16', 'description': 'Ministry of Construction, Transport and Infrastructure', 'category': 'entity', 'memory_type': 'semantic', 'layer_uuid': 'dc903cac-4528-44c7-b1dc-ad1b54a73211', 'layer_description': \"{'layer': 'Legal Structure Layer'}\", 'layer_decomposition_uuid': '35c3720f-c25e-437a-815a-23ad47da0a02', 'unique_id': 'f25d6b1e-b61b-40f3-bebb-d2eb7dae14e6', 'type': 'detail'}), ('Regulation on amendments and supplements to the Regulation on the content, manner, and procedure of preparation and how to conduct control of technical documentation according to the class and purpose of facilities - dc903cac-4528-44c7-b1dc-ad1b54a73211 - 35c3720f-c25e-437a-815a-23ad47da0a02 - 40746e96-0590-408d-9da5-f29fa794ebf5', {'created_at': '2024-03-12 22:51:16', 'updated_at': '2024-03-12 22:51:16', 'description': 'Regulation on amendments and supplements to the Regulation on the content, manner, and procedure of preparation and how to conduct control of technical documentation according to the class and purpose of facilities', 'category': 'entity', 'memory_type': 'semantic', 'layer_uuid': 'dc903cac-4528-44c7-b1dc-ad1b54a73211', 'layer_description': \"{'layer': 'Legal Structure Layer'}\", 'layer_decomposition_uuid': '35c3720f-c25e-437a-815a-23ad47da0a02', 'unique_id': '40746e96-0590-408d-9da5-f29fa794ebf5', 'type': 'detail'}), ('Official Gazette of RS, No. 77/2015 - dc903cac-4528-44c7-b1dc-ad1b54a73211 - 35c3720f-c25e-437a-815a-23ad47da0a02 - 3445497e-2951-4f3b-9d62-da48682f4d4c', {'created_at': '2024-03-12 22:51:16', 'updated_at': '2024-03-12 22:51:16', 'description': 'Official Gazette of RS, No. 77/2015', 'category': 'document', 'memory_type': 'episodic', 'layer_uuid': 'dc903cac-4528-44c7-b1dc-ad1b54a73211', 'layer_description': \"{'layer': 'Legal Structure Layer'}\", 'layer_decomposition_uuid': '35c3720f-c25e-437a-815a-23ad47da0a02', 'unique_id': '3445497e-2951-4f3b-9d62-da48682f4d4c', 'type': 'detail'}), ('Law on Planning and Construction - dc903cac-4528-44c7-b1dc-ad1b54a73211 - 35c3720f-c25e-437a-815a-23ad47da0a02 - 9fcc7992-2773-48ef-956b-0b6818260124', {'created_at': '2024-03-12 22:51:16', 'updated_at': '2024-03-12 22:51:16', 'description': 'Law on Planning and Construction', 'category': 'document', 'memory_type': 'semantic', 'layer_uuid': 'dc903cac-4528-44c7-b1dc-ad1b54a73211', 'layer_description': \"{'layer': 'Legal Structure Layer'}\", 'layer_decomposition_uuid': '35c3720f-c25e-437a-815a-23ad47da0a02', 'unique_id': '9fcc7992-2773-48ef-956b-0b6818260124', 'type': 'detail'}), ('Zorana Mihajlović, Prof. Dr. - dc903cac-4528-44c7-b1dc-ad1b54a73211 - 35c3720f-c25e-437a-815a-23ad47da0a02 - aceadca4-454b-45b6-a487-3e639bc8c095', {'created_at': '2024-03-12 22:51:16', 'updated_at': '2024-03-12 22:51:16', 'description': 'Zorana Mihajlović, Prof. Dr.', 'category': 'person', 'memory_type': 'semantic', 'layer_uuid': 'dc903cac-4528-44c7-b1dc-ad1b54a73211', 'layer_description': \"{'layer': 'Legal Structure Layer'}\", 'layer_decomposition_uuid': '35c3720f-c25e-437a-815a-23ad47da0a02', 'unique_id': 'aceadca4-454b-45b6-a487-3e639bc8c095', 'type': 'detail'}), ('Ministry of Construction, Transport and Infrastructure - dc903cac-4528-44c7-b1dc-ad1b54a73211 - 164e45a4-00bb-4d07-a069-3311a56e3780 - 36baf9c8-2125-4611-baef-923a2b96e5de', {'created_at': '2024-03-12 22:51:16', 'updated_at': '2024-03-12 22:51:16', 'description': 'Ministry of Construction, Transport and Infrastructure', 'category': 'entity', 'memory_type': 'semantic', 'layer_uuid': 'dc903cac-4528-44c7-b1dc-ad1b54a73211', 'layer_description': \"{'layer': 'Terminology and Concepts Layer'}\", 'layer_decomposition_uuid': '164e45a4-00bb-4d07-a069-3311a56e3780', 'unique_id': '36baf9c8-2125-4611-baef-923a2b96e5de', 'type': 'detail'}), ('Rulebook on Amendments and Supplements of the Rulebook on the Content, Manner, and Procedure of Preparation and the Manner of Control of Technical Documentation According to the Class and Purpose of the Buildings - dc903cac-4528-44c7-b1dc-ad1b54a73211 - 164e45a4-00bb-4d07-a069-3311a56e3780 - a9959179-eda0-43ce-8b71-783b4852e3f9', {'created_at': '2024-03-12 22:51:16', 'updated_at': '2024-03-12 22:51:16', 'description': 'Rulebook on Amendments and Supplements of the Rulebook on the Content, Manner, and Procedure of Preparation and the Manner of Control of Technical Documentation According to the Class and Purpose of the Buildings', 'category': 'entity', 'memory_type': 'semantic', 'layer_uuid': 'dc903cac-4528-44c7-b1dc-ad1b54a73211', 'layer_description': \"{'layer': 'Terminology and Concepts Layer'}\", 'layer_decomposition_uuid': '164e45a4-00bb-4d07-a069-3311a56e3780', 'unique_id': 'a9959179-eda0-43ce-8b71-783b4852e3f9', 'type': 'detail'}), ('Official Gazette of the Republic of Serbia - dc903cac-4528-44c7-b1dc-ad1b54a73211 - 164e45a4-00bb-4d07-a069-3311a56e3780 - 49ffb1f5-7429-4122-9205-82c9d9f27562', {'created_at': '2024-03-12 22:51:16', 'updated_at': '2024-03-12 22:51:16', 'description': 'Official Gazette of the Republic of Serbia', 'category': 'entity', 'memory_type': 'semantic', 'layer_uuid': 'dc903cac-4528-44c7-b1dc-ad1b54a73211', 'layer_description': \"{'layer': 'Terminology and Concepts Layer'}\", 'layer_decomposition_uuid': '164e45a4-00bb-4d07-a069-3311a56e3780', 'unique_id': '49ffb1f5-7429-4122-9205-82c9d9f27562', 'type': 'detail'}), ('Construction permit - dc903cac-4528-44c7-b1dc-ad1b54a73211 - 164e45a4-00bb-4d07-a069-3311a56e3780 - f93086c8-566e-41bc-b206-a87aa5506b3f', {'created_at': '2024-03-12 22:51:16', 'updated_at': '2024-03-12 22:51:16', 'description': 'Construction permit', 'category': 'entity', 'memory_type': 'semantic', 'layer_uuid': 'dc903cac-4528-44c7-b1dc-ad1b54a73211', 'layer_description': \"{'layer': 'Terminology and Concepts Layer'}\", 'layer_decomposition_uuid': '164e45a4-00bb-4d07-a069-3311a56e3780', 'unique_id': 'f93086c8-566e-41bc-b206-a87aa5506b3f', 'type': 'detail'}), ('Conceptual design - dc903cac-4528-44c7-b1dc-ad1b54a73211 - 164e45a4-00bb-4d07-a069-3311a56e3780 - ba1cb66b-aa1d-413c-a56a-54103f431359', {'created_at': '2024-03-12 22:51:16', 'updated_at': '2024-03-12 22:51:16', 'description': 'Conceptual design', 'category': 'entity', 'memory_type': 'semantic', 'layer_uuid': 'dc903cac-4528-44c7-b1dc-ad1b54a73211', 'layer_description': \"{'layer': 'Terminology and Concepts Layer'}\", 'layer_decomposition_uuid': '164e45a4-00bb-4d07-a069-3311a56e3780', 'unique_id': 'ba1cb66b-aa1d-413c-a56a-54103f431359', 'type': 'detail'}), ('Execution project - dc903cac-4528-44c7-b1dc-ad1b54a73211 - 164e45a4-00bb-4d07-a069-3311a56e3780 - 0ff044bd-8c08-46e8-8bc4-2a7506f3cf11', {'created_at': '2024-03-12 22:51:16', 'updated_at': '2024-03-12 22:51:16', 'description': 'Execution project', 'category': 'entity', 'memory_type': 'semantic', 'layer_uuid': 'dc903cac-4528-44c7-b1dc-ad1b54a73211', 'layer_description': \"{'layer': 'Terminology and Concepts Layer'}\", 'layer_decomposition_uuid': '164e45a4-00bb-4d07-a069-3311a56e3780', 'unique_id': '0ff044bd-8c08-46e8-8bc4-2a7506f3cf11', 'type': 'detail'}), ('Minister Zorana Mihajlovic - dc903cac-4528-44c7-b1dc-ad1b54a73211 - 164e45a4-00bb-4d07-a069-3311a56e3780 - 107baf39-73fa-4040-b6ee-dfe0caad0eaf', {'created_at': '2024-03-12 22:51:16', 'updated_at': '2024-03-12 22:51:16', 'description': 'Minister Zorana Mihajlovic', 'category': 'person', 'memory_type': 'episodic', 'layer_uuid': 'dc903cac-4528-44c7-b1dc-ad1b54a73211', 'layer_description': \"{'layer': 'Terminology and Concepts Layer'}\", 'layer_decomposition_uuid': '164e45a4-00bb-4d07-a069-3311a56e3780', 'unique_id': '107baf39-73fa-4040-b6ee-dfe0caad0eaf', 'type': 'detail'}), ('Pravilnik o izmenama i dopunama Pravilnika o sadržini, načinu i postupku izrade i način vršenja kontrole tehničke dokumentacije prema klasi i nameni objekata - dc903cac-4528-44c7-b1dc-ad1b54a73211 - e62655b3-205c-41d5-bbfb-ef9cb06c081e - 65de2225-9c3e-432c-b2f3-0940081753d8', {'created_at': '2024-03-12 22:51:16', 'updated_at': '2024-03-12 22:51:16', 'description': 'Pravilnik o izmenama i dopunama Pravilnika o sadržini, načinu i postupku izrade i način vršenja kontrole tehničke dokumentacije prema klasi i nameni objekata', 'category': 'legalDocument', 'memory_type': 'semantic', 'layer_uuid': 'dc903cac-4528-44c7-b1dc-ad1b54a73211', 'layer_description': \"{'layer': 'Legal References and Citations Layer'}\", 'layer_decomposition_uuid': 'e62655b3-205c-41d5-bbfb-ef9cb06c081e', 'unique_id': '65de2225-9c3e-432c-b2f3-0940081753d8', 'type': 'detail'}), ('Službeni glasnik RS, br. 77/2015 published on 9.9.2015 - dc903cac-4528-44c7-b1dc-ad1b54a73211 - e62655b3-205c-41d5-bbfb-ef9cb06c081e - 04a45f2b-7229-4198-a589-35dc4815eb92', {'created_at': '2024-03-12 22:51:16', 'updated_at': '2024-03-12 22:51:16', 'description': 'Službeni glasnik RS, br. 77/2015 published on 9.9.2015', 'category': 'publication', 'memory_type': 'episodic', 'layer_uuid': 'dc903cac-4528-44c7-b1dc-ad1b54a73211', 'layer_description': \"{'layer': 'Legal References and Citations Layer'}\", 'layer_decomposition_uuid': 'e62655b3-205c-41d5-bbfb-ef9cb06c081e', 'unique_id': '04a45f2b-7229-4198-a589-35dc4815eb92', 'type': 'detail'}), ('Zakon o planiranju i izgradnji - dc903cac-4528-44c7-b1dc-ad1b54a73211 - e62655b3-205c-41d5-bbfb-ef9cb06c081e - d17872b9-3904-412d-85a7-1d1f835bc7f5', {'created_at': '2024-03-12 22:51:16', 'updated_at': '2024-03-12 22:51:16', 'description': 'Zakon o planiranju i izgradnji', 'category': 'legalAct', 'memory_type': 'semantic', 'layer_uuid': 'dc903cac-4528-44c7-b1dc-ad1b54a73211', 'layer_description': \"{'layer': 'Legal References and Citations Layer'}\", 'layer_decomposition_uuid': 'e62655b3-205c-41d5-bbfb-ef9cb06c081e', 'unique_id': 'd17872b9-3904-412d-85a7-1d1f835bc7f5', 'type': 'detail'}), ('Zorana Mihajlović - dc903cac-4528-44c7-b1dc-ad1b54a73211 - e62655b3-205c-41d5-bbfb-ef9cb06c081e - e7699944-8b90-4344-b0da-94a134ffaaf7', {'created_at': '2024-03-12 22:51:16', 'updated_at': '2024-03-12 22:51:16', 'description': 'Zorana Mihajlović', 'category': 'person', 'memory_type': 'semantic', 'layer_uuid': 'dc903cac-4528-44c7-b1dc-ad1b54a73211', 'layer_description': \"{'layer': 'Legal References and Citations Layer'}\", 'layer_decomposition_uuid': 'e62655b3-205c-41d5-bbfb-ef9cb06c081e', 'unique_id': 'e7699944-8b90-4344-b0da-94a134ffaaf7', 'type': 'detail'}), ('Ministar građevinarstva, saobraćaja i infrastrukture - dc903cac-4528-44c7-b1dc-ad1b54a73211 - 27555393-566c-47fc-9711-3789c2fd270b - 4298cf5e-764f-40b7-9ff8-e60cd2253009', {'created_at': '2024-03-12 22:51:16', 'updated_at': '2024-03-12 22:51:16', 'description': 'Ministar građevinarstva, saobraćaja i infrastrukture', 'category': 'entity', 'memory_type': 'semantic', 'layer_uuid': 'dc903cac-4528-44c7-b1dc-ad1b54a73211', 'layer_description': \"{'layer': 'Jurisdictional Layer'}\", 'layer_decomposition_uuid': '27555393-566c-47fc-9711-3789c2fd270b', 'unique_id': '4298cf5e-764f-40b7-9ff8-e60cd2253009', 'type': 'detail'}), ('Pravilnik o izmenama i dopunama Pravilnika o sadržini, načinu i postupku izrade i način vršenja kontrole tehničke dokumentacije prema klasi i nameni objekata - dc903cac-4528-44c7-b1dc-ad1b54a73211 - 27555393-566c-47fc-9711-3789c2fd270b - dd3c23e1-e905-4c9a-81ad-2ad5f0ab4f7e', {'created_at': '2024-03-12 22:51:16', 'updated_at': '2024-03-12 22:51:16', 'description': 'Pravilnik o izmenama i dopunama Pravilnika o sadržini, načinu i postupku izrade i način vršenja kontrole tehničke dokumentacije prema klasi i nameni objekata', 'category': 'document', 'memory_type': 'episodic', 'layer_uuid': 'dc903cac-4528-44c7-b1dc-ad1b54a73211', 'layer_description': \"{'layer': 'Jurisdictional Layer'}\", 'layer_decomposition_uuid': '27555393-566c-47fc-9711-3789c2fd270b', 'unique_id': 'dd3c23e1-e905-4c9a-81ad-2ad5f0ab4f7e', 'type': 'detail'}), ('Službeni glasnik RS, broj 77/2015 - dc903cac-4528-44c7-b1dc-ad1b54a73211 - 27555393-566c-47fc-9711-3789c2fd270b - 3c332f72-d9cb-4afe-9514-a742da4ef58a', {'created_at': '2024-03-12 22:51:16', 'updated_at': '2024-03-12 22:51:16', 'description': 'Službeni glasnik RS, broj 77/2015', 'category': 'publication', 'memory_type': 'episodic', 'layer_uuid': 'dc903cac-4528-44c7-b1dc-ad1b54a73211', 'layer_description': \"{'layer': 'Jurisdictional Layer'}\", 'layer_decomposition_uuid': '27555393-566c-47fc-9711-3789c2fd270b', 'unique_id': '3c332f72-d9cb-4afe-9514-a742da4ef58a', 'type': 'detail'}), ('prof. dr Zorana Mihajlović - dc903cac-4528-44c7-b1dc-ad1b54a73211 - 27555393-566c-47fc-9711-3789c2fd270b - 9f353a2f-d6de-4649-827d-0a4575a437a1', {'created_at': '2024-03-12 22:51:16', 'updated_at': '2024-03-12 22:51:16', 'description': 'prof. dr Zorana Mihajlović', 'category': 'person', 'memory_type': 'episodic', 'layer_uuid': 'dc903cac-4528-44c7-b1dc-ad1b54a73211', 'layer_description': \"{'layer': 'Jurisdictional Layer'}\", 'layer_decomposition_uuid': '27555393-566c-47fc-9711-3789c2fd270b', 'unique_id': '9f353a2f-d6de-4649-827d-0a4575a437a1', 'type': 'detail'}), ('Ministry of Construction, Transport and Infrastructure - dc903cac-4528-44c7-b1dc-ad1b54a73211 - 45870c37-719b-4080-ad44-8afb2315fb74 - 20dc3b92-c00b-4f60-b426-08a915110ad8', {'created_at': '2024-03-12 22:51:16', 'updated_at': '2024-03-12 22:51:16', 'description': 'Ministry of Construction, Transport and Infrastructure', 'category': 'entity', 'memory_type': 'semantic', 'layer_uuid': 'dc903cac-4528-44c7-b1dc-ad1b54a73211', 'layer_description': \"{'layer': 'Historical Amendments Layer'}\", 'layer_decomposition_uuid': '45870c37-719b-4080-ad44-8afb2315fb74', 'unique_id': '20dc3b92-c00b-4f60-b426-08a915110ad8', 'type': 'detail'}), ('Regulation on Amendments to the Regulation on the content, method, and procedure of creating and controlling technical documentation according to the class and purpose of buildings - dc903cac-4528-44c7-b1dc-ad1b54a73211 - 45870c37-719b-4080-ad44-8afb2315fb74 - 559ba048-ae86-4df0-97e8-7b5cc8ccb978', {'created_at': '2024-03-12 22:51:16', 'updated_at': '2024-03-12 22:51:16', 'description': 'Regulation on Amendments to the Regulation on the content, method, and procedure of creating and controlling technical documentation according to the class and purpose of buildings', 'category': 'entity', 'memory_type': 'semantic', 'layer_uuid': 'dc903cac-4528-44c7-b1dc-ad1b54a73211', 'layer_description': \"{'layer': 'Historical Amendments Layer'}\", 'layer_decomposition_uuid': '45870c37-719b-4080-ad44-8afb2315fb74', 'unique_id': '559ba048-ae86-4df0-97e8-7b5cc8ccb978', 'type': 'detail'}), ('Official Gazette of the Republic of Serbia, No. 77/2015 dated September 9, 2015 - dc903cac-4528-44c7-b1dc-ad1b54a73211 - 45870c37-719b-4080-ad44-8afb2315fb74 - 0a7b7400-6770-4de9-800d-9dd63215943d', {'created_at': '2024-03-12 22:51:16', 'updated_at': '2024-03-12 22:51:16', 'description': 'Official Gazette of the Republic of Serbia, No. 77/2015 dated September 9, 2015', 'category': 'entity', 'memory_type': 'semantic', 'layer_uuid': 'dc903cac-4528-44c7-b1dc-ad1b54a73211', 'layer_description': \"{'layer': 'Historical Amendments Layer'}\", 'layer_decomposition_uuid': '45870c37-719b-4080-ad44-8afb2315fb74', 'unique_id': '0a7b7400-6770-4de9-800d-9dd63215943d', 'type': 'detail'}), ('Law on Planning and Construction - dc903cac-4528-44c7-b1dc-ad1b54a73211 - 45870c37-719b-4080-ad44-8afb2315fb74 - 312cb2db-e521-4f9b-bcb8-b87040f60305', {'created_at': '2024-03-12 22:51:16', 'updated_at': '2024-03-12 22:51:16', 'description': 'Law on Planning and Construction', 'category': 'entity', 'memory_type': 'semantic', 'layer_uuid': 'dc903cac-4528-44c7-b1dc-ad1b54a73211', 'layer_description': \"{'layer': 'Historical Amendments Layer'}\", 'layer_decomposition_uuid': '45870c37-719b-4080-ad44-8afb2315fb74', 'unique_id': '312cb2db-e521-4f9b-bcb8-b87040f60305', 'type': 'detail'}), ('Zorana Mihajlovic, Prof. Dr. - dc903cac-4528-44c7-b1dc-ad1b54a73211 - 45870c37-719b-4080-ad44-8afb2315fb74 - 41218825-e4d8-478d-8cf8-3f394d9300fc', {'created_at': '2024-03-12 22:51:16', 'updated_at': '2024-03-12 22:51:16', 'description': 'Zorana Mihajlovic, Prof. Dr.', 'category': 'person', 'memory_type': 'semantic', 'layer_uuid': 'dc903cac-4528-44c7-b1dc-ad1b54a73211', 'layer_description': \"{'layer': 'Historical Amendments Layer'}\", 'layer_decomposition_uuid': '45870c37-719b-4080-ad44-8afb2315fb74', 'unique_id': '41218825-e4d8-478d-8cf8-3f394d9300fc', 'type': 'detail'}), ('Minister of Construction, Transport and Infrastructure - dc903cac-4528-44c7-b1dc-ad1b54a73211 - f9f05ed2-fb84-432d-8b63-149b8d791733 - 7691f0e7-d410-4aae-bb7a-3d5652535cb3', {'created_at': '2024-03-12 22:51:16', 'updated_at': '2024-03-12 22:51:16', 'description': 'Minister of Construction, Transport and Infrastructure', 'category': 'person', 'memory_type': 'semantic', 'layer_uuid': 'dc903cac-4528-44c7-b1dc-ad1b54a73211', 'layer_description': \"{'layer': 'Purpose and Intent Layer'}\", 'layer_decomposition_uuid': 'f9f05ed2-fb84-432d-8b63-149b8d791733', 'unique_id': '7691f0e7-d410-4aae-bb7a-3d5652535cb3', 'type': 'detail'}), ('Amendments and supplements to the Rule on the content, method, and procedure of drafting and method of technical documentation control according to the class and purpose of buildings - dc903cac-4528-44c7-b1dc-ad1b54a73211 - f9f05ed2-fb84-432d-8b63-149b8d791733 - c423e034-2fa2-4fd7-958b-c192949d7516', {'created_at': '2024-03-12 22:51:16', 'updated_at': '2024-03-12 22:51:16', 'description': 'Amendments and supplements to the Rule on the content, method, and procedure of drafting and method of technical documentation control according to the class and purpose of buildings', 'category': 'event', 'memory_type': 'semantic', 'layer_uuid': 'dc903cac-4528-44c7-b1dc-ad1b54a73211', 'layer_description': \"{'layer': 'Purpose and Intent Layer'}\", 'layer_decomposition_uuid': 'f9f05ed2-fb84-432d-8b63-149b8d791733', 'unique_id': 'c423e034-2fa2-4fd7-958b-c192949d7516', 'type': 'detail'}), ('Official Journal of the Republic of Serbia - dc903cac-4528-44c7-b1dc-ad1b54a73211 - f9f05ed2-fb84-432d-8b63-149b8d791733 - 5d9fad88-91cb-4972-a622-f86a9dcd54e7', {'created_at': '2024-03-12 22:51:16', 'updated_at': '2024-03-12 22:51:16', 'description': 'Official Journal of the Republic of Serbia', 'category': 'entity', 'memory_type': 'semantic', 'layer_uuid': 'dc903cac-4528-44c7-b1dc-ad1b54a73211', 'layer_description': \"{'layer': 'Purpose and Intent Layer'}\", 'layer_decomposition_uuid': 'f9f05ed2-fb84-432d-8b63-149b8d791733', 'unique_id': '5d9fad88-91cb-4972-a622-f86a9dcd54e7', 'type': 'detail'}), ('Publication number 77/2015 - dc903cac-4528-44c7-b1dc-ad1b54a73211 - f9f05ed2-fb84-432d-8b63-149b8d791733 - b7619af0-82d6-472a-abc4-95a6bc72df21', {'created_at': '2024-03-12 22:51:16', 'updated_at': '2024-03-12 22:51:16', 'description': 'Publication number 77/2015', 'category': 'entity', 'memory_type': 'semantic', 'layer_uuid': 'dc903cac-4528-44c7-b1dc-ad1b54a73211', 'layer_description': \"{'layer': 'Purpose and Intent Layer'}\", 'layer_decomposition_uuid': 'f9f05ed2-fb84-432d-8b63-149b8d791733', 'unique_id': 'b7619af0-82d6-472a-abc4-95a6bc72df21', 'type': 'detail'}), ('Law on Planning and Construction - dc903cac-4528-44c7-b1dc-ad1b54a73211 - f9f05ed2-fb84-432d-8b63-149b8d791733 - 73785155-6925-4bbc-ba30-690692ae6ad6', {'created_at': '2024-03-12 22:51:16', 'updated_at': '2024-03-12 22:51:16', 'description': 'Law on Planning and Construction', 'category': 'entity', 'memory_type': 'semantic', 'layer_uuid': 'dc903cac-4528-44c7-b1dc-ad1b54a73211', 'layer_description': \"{'layer': 'Purpose and Intent Layer'}\", 'layer_decomposition_uuid': 'f9f05ed2-fb84-432d-8b63-149b8d791733', 'unique_id': '73785155-6925-4bbc-ba30-690692ae6ad6', 'type': 'detail'}), ('Article 17 of the Rule - dc903cac-4528-44c7-b1dc-ad1b54a73211 - f9f05ed2-fb84-432d-8b63-149b8d791733 - bee4e71b-62ac-43bc-ba2c-4c6db713576c', {'created_at': '2024-03-12 22:51:16', 'updated_at': '2024-03-12 22:51:16', 'description': 'Article 17 of the Rule', 'category': 'entity', 'memory_type': 'semantic', 'layer_uuid': 'dc903cac-4528-44c7-b1dc-ad1b54a73211', 'layer_description': \"{'layer': 'Purpose and Intent Layer'}\", 'layer_decomposition_uuid': 'f9f05ed2-fb84-432d-8b63-149b8d791733', 'unique_id': 'bee4e71b-62ac-43bc-ba2c-4c6db713576c', 'type': 'detail'}), ('Article 19 of the Rule - dc903cac-4528-44c7-b1dc-ad1b54a73211 - f9f05ed2-fb84-432d-8b63-149b8d791733 - 1e4635f2-c1f3-4e42-99bb-fcf7a6c8dea7', {'created_at': '2024-03-12 22:51:16', 'updated_at': '2024-03-12 22:51:16', 'description': 'Article 19 of the Rule', 'category': 'entity', 'memory_type': 'semantic', 'layer_uuid': 'dc903cac-4528-44c7-b1dc-ad1b54a73211', 'layer_description': \"{'layer': 'Purpose and Intent Layer'}\", 'layer_decomposition_uuid': 'f9f05ed2-fb84-432d-8b63-149b8d791733', 'unique_id': '1e4635f2-c1f3-4e42-99bb-fcf7a6c8dea7', 'type': 'detail'}), ('Zorana Mihajlovic, Minister of Construction, Transport and Infrastructure - dc903cac-4528-44c7-b1dc-ad1b54a73211 - f9f05ed2-fb84-432d-8b63-149b8d791733 - 413bd896-b588-4513-9f66-7870ff4f7efb', {'created_at': '2024-03-12 22:51:16', 'updated_at': '2024-03-12 22:51:16', 'description': 'Zorana Mihajlovic, Minister of Construction, Transport and Infrastructure', 'category': 'person', 'memory_type': 'semantic', 'layer_uuid': 'dc903cac-4528-44c7-b1dc-ad1b54a73211', 'layer_description': \"{'layer': 'Purpose and Intent Layer'}\", 'layer_decomposition_uuid': 'f9f05ed2-fb84-432d-8b63-149b8d791733', 'unique_id': '413bd896-b588-4513-9f66-7870ff4f7efb', 'type': 'detail'}), ('Pravilnik o izmenama i dopunama Pravilnika o sadržini, načinu i postupku izrade i način vršenja kontrole tehničke dokumentacije prema klasi i nameni objekata - dc903cac-4528-44c7-b1dc-ad1b54a73211 - 619a1e63-f870-4e6c-b820-6ed5e090bab1 - 28fe8a93-bce2-418f-8316-9cbe642c5871', {'created_at': '2024-03-12 22:51:16', 'updated_at': '2024-03-12 22:51:16', 'description': 'Pravilnik o izmenama i dopunama Pravilnika o sadržini, načinu i postupku izrade i način vršenja kontrole tehničke dokumentacije prema klasi i nameni objekata', 'category': 'rule', 'memory_type': 'semantic', 'layer_uuid': 'dc903cac-4528-44c7-b1dc-ad1b54a73211', 'layer_description': \"{'layer': 'Compliance Requirements Layer'}\", 'layer_decomposition_uuid': '619a1e63-f870-4e6c-b820-6ed5e090bab1', 'unique_id': '28fe8a93-bce2-418f-8316-9cbe642c5871', 'type': 'detail'}), ('Službeni glasnik RS, br. 77/2015 - dc903cac-4528-44c7-b1dc-ad1b54a73211 - 619a1e63-f870-4e6c-b820-6ed5e090bab1 - fe009af1-fd92-4b44-8e0a-ec9367d7c398', {'created_at': '2024-03-12 22:51:16', 'updated_at': '2024-03-12 22:51:16', 'description': 'Službeni glasnik RS, br. 77/2015', 'category': 'publication', 'memory_type': 'episodic', 'layer_uuid': 'dc903cac-4528-44c7-b1dc-ad1b54a73211', 'layer_description': \"{'layer': 'Compliance Requirements Layer'}\", 'layer_decomposition_uuid': '619a1e63-f870-4e6c-b820-6ed5e090bab1', 'unique_id': 'fe009af1-fd92-4b44-8e0a-ec9367d7c398', 'type': 'detail'}), ('Zakon o planiranju i izgradnji - dc903cac-4528-44c7-b1dc-ad1b54a73211 - 619a1e63-f870-4e6c-b820-6ed5e090bab1 - b77c25c4-bb78-4165-ab9d-b3008c50f172', {'created_at': '2024-03-12 22:51:16', 'updated_at': '2024-03-12 22:51:16', 'description': 'Zakon o planiranju i izgradnji', 'category': 'law', 'memory_type': 'semantic', 'layer_uuid': 'dc903cac-4528-44c7-b1dc-ad1b54a73211', 'layer_description': \"{'layer': 'Compliance Requirements Layer'}\", 'layer_decomposition_uuid': '619a1e63-f870-4e6c-b820-6ed5e090bab1', 'unique_id': 'b77c25c4-bb78-4165-ab9d-b3008c50f172', 'type': 'detail'}), ('prof. dr Zorana Mihajlović - dc903cac-4528-44c7-b1dc-ad1b54a73211 - 619a1e63-f870-4e6c-b820-6ed5e090bab1 - a68c04ce-2101-4d42-8e24-871278b993a7', {'created_at': '2024-03-12 22:51:16', 'updated_at': '2024-03-12 22:51:16', 'description': 'prof. dr Zorana Mihajlović', 'category': 'person', 'memory_type': 'episodic', 'layer_uuid': 'dc903cac-4528-44c7-b1dc-ad1b54a73211', 'layer_description': \"{'layer': 'Compliance Requirements Layer'}\", 'layer_decomposition_uuid': '619a1e63-f870-4e6c-b820-6ed5e090bab1', 'unique_id': 'a68c04ce-2101-4d42-8e24-871278b993a7', 'type': 'detail'})]\n", + "73785155-6925-4bbc-ba30-690692ae6ad6\n", + "Law on Planning and Construction - dc903cac-4528-44c7-b1dc-ad1b54a73211 - f9f05ed2-fb84-432d-8b63-149b8d791733 - 73785155-6925-4bbc-ba30-690692ae6ad6\n", + "Law on Planning and Construction - dc903cac-4528-44c7-b1dc-ad1b54a73211 - 35c3720f-c25e-437a-815a-23ad47da0a02 - 9fcc7992-2773-48ef-956b-0b6818260124\n", + "5d9fad88-91cb-4972-a622-f86a9dcd54e7\n", + "Official Journal of the Republic of Serbia - dc903cac-4528-44c7-b1dc-ad1b54a73211 - f9f05ed2-fb84-432d-8b63-149b8d791733 - 5d9fad88-91cb-4972-a622-f86a9dcd54e7\n", + "Official Gazette of the Republic of Serbia - dc903cac-4528-44c7-b1dc-ad1b54a73211 - 164e45a4-00bb-4d07-a069-3311a56e3780 - 49ffb1f5-7429-4122-9205-82c9d9f27562\n", + "73785155-6925-4bbc-ba30-690692ae6ad6\n", + "Law on Planning and Construction - dc903cac-4528-44c7-b1dc-ad1b54a73211 - f9f05ed2-fb84-432d-8b63-149b8d791733 - 73785155-6925-4bbc-ba30-690692ae6ad6\n", + "Law on Planning and Construction - dc903cac-4528-44c7-b1dc-ad1b54a73211 - 45870c37-719b-4080-ad44-8afb2315fb74 - 312cb2db-e521-4f9b-bcb8-b87040f60305\n", + "20dc3b92-c00b-4f60-b426-08a915110ad8\n", + "Ministry of Construction, Transport and Infrastructure - dc903cac-4528-44c7-b1dc-ad1b54a73211 - 45870c37-719b-4080-ad44-8afb2315fb74 - 20dc3b92-c00b-4f60-b426-08a915110ad8\n", + "Ministry of Construction, Transport and Infrastructure - dc903cac-4528-44c7-b1dc-ad1b54a73211 - 35c3720f-c25e-437a-815a-23ad47da0a02 - f25d6b1e-b61b-40f3-bebb-d2eb7dae14e6\n", + "312cb2db-e521-4f9b-bcb8-b87040f60305\n", + "Law on Planning and Construction - dc903cac-4528-44c7-b1dc-ad1b54a73211 - 45870c37-719b-4080-ad44-8afb2315fb74 - 312cb2db-e521-4f9b-bcb8-b87040f60305\n", + "Law on Planning and Construction - dc903cac-4528-44c7-b1dc-ad1b54a73211 - 35c3720f-c25e-437a-815a-23ad47da0a02 - 9fcc7992-2773-48ef-956b-0b6818260124\n", + "41218825-e4d8-478d-8cf8-3f394d9300fc\n", + "Zorana Mihajlovic, Prof. Dr. - dc903cac-4528-44c7-b1dc-ad1b54a73211 - 45870c37-719b-4080-ad44-8afb2315fb74 - 41218825-e4d8-478d-8cf8-3f394d9300fc\n", + "Zorana Mihajlović, Prof. Dr. - dc903cac-4528-44c7-b1dc-ad1b54a73211 - 35c3720f-c25e-437a-815a-23ad47da0a02 - aceadca4-454b-45b6-a487-3e639bc8c095\n", + "20dc3b92-c00b-4f60-b426-08a915110ad8\n", + "Ministry of Construction, Transport and Infrastructure - dc903cac-4528-44c7-b1dc-ad1b54a73211 - 45870c37-719b-4080-ad44-8afb2315fb74 - 20dc3b92-c00b-4f60-b426-08a915110ad8\n", + "Ministry of Construction, Transport and Infrastructure - dc903cac-4528-44c7-b1dc-ad1b54a73211 - 164e45a4-00bb-4d07-a069-3311a56e3780 - 36baf9c8-2125-4611-baef-923a2b96e5de\n", + "312cb2db-e521-4f9b-bcb8-b87040f60305\n", + "Law on Planning and Construction - dc903cac-4528-44c7-b1dc-ad1b54a73211 - 45870c37-719b-4080-ad44-8afb2315fb74 - 312cb2db-e521-4f9b-bcb8-b87040f60305\n", + "Law on Planning and Construction - dc903cac-4528-44c7-b1dc-ad1b54a73211 - f9f05ed2-fb84-432d-8b63-149b8d791733 - 73785155-6925-4bbc-ba30-690692ae6ad6\n", + "36baf9c8-2125-4611-baef-923a2b96e5de\n", + "Ministry of Construction, Transport and Infrastructure - dc903cac-4528-44c7-b1dc-ad1b54a73211 - 164e45a4-00bb-4d07-a069-3311a56e3780 - 36baf9c8-2125-4611-baef-923a2b96e5de\n", + "Ministry of Construction, Transport and Infrastructure - dc903cac-4528-44c7-b1dc-ad1b54a73211 - 35c3720f-c25e-437a-815a-23ad47da0a02 - f25d6b1e-b61b-40f3-bebb-d2eb7dae14e6\n", + "36baf9c8-2125-4611-baef-923a2b96e5de\n", + "Ministry of Construction, Transport and Infrastructure - dc903cac-4528-44c7-b1dc-ad1b54a73211 - 164e45a4-00bb-4d07-a069-3311a56e3780 - 36baf9c8-2125-4611-baef-923a2b96e5de\n", + "Ministry of Construction, Transport and Infrastructure - dc903cac-4528-44c7-b1dc-ad1b54a73211 - 45870c37-719b-4080-ad44-8afb2315fb74 - 20dc3b92-c00b-4f60-b426-08a915110ad8\n", + "49ffb1f5-7429-4122-9205-82c9d9f27562\n", + "Official Gazette of the Republic of Serbia - dc903cac-4528-44c7-b1dc-ad1b54a73211 - 164e45a4-00bb-4d07-a069-3311a56e3780 - 49ffb1f5-7429-4122-9205-82c9d9f27562\n", + "Official Journal of the Republic of Serbia - dc903cac-4528-44c7-b1dc-ad1b54a73211 - f9f05ed2-fb84-432d-8b63-149b8d791733 - 5d9fad88-91cb-4972-a622-f86a9dcd54e7\n", + "65de2225-9c3e-432c-b2f3-0940081753d8\n", + "Pravilnik o izmenama i dopunama Pravilnika o sadržini, načinu i postupku izrade i način vršenja kontrole tehničke dokumentacije prema klasi i nameni objekata - dc903cac-4528-44c7-b1dc-ad1b54a73211 - e62655b3-205c-41d5-bbfb-ef9cb06c081e - 65de2225-9c3e-432c-b2f3-0940081753d8\n", + "Pravilnik o izmenama i dopunama Pravilnika o sadržini, načinu i postupku izrade i način vršenja kontrole tehničke dokumentacije prema klasi i nameni objekata - dc903cac-4528-44c7-b1dc-ad1b54a73211 - 27555393-566c-47fc-9711-3789c2fd270b - dd3c23e1-e905-4c9a-81ad-2ad5f0ab4f7e\n", + "65de2225-9c3e-432c-b2f3-0940081753d8\n", + "Pravilnik o izmenama i dopunama Pravilnika o sadržini, načinu i postupku izrade i način vršenja kontrole tehničke dokumentacije prema klasi i nameni objekata - dc903cac-4528-44c7-b1dc-ad1b54a73211 - e62655b3-205c-41d5-bbfb-ef9cb06c081e - 65de2225-9c3e-432c-b2f3-0940081753d8\n", + "Pravilnik o izmenama i dopunama Pravilnika o sadržini, načinu i postupku izrade i način vršenja kontrole tehničke dokumentacije prema klasi i nameni objekata - dc903cac-4528-44c7-b1dc-ad1b54a73211 - 619a1e63-f870-4e6c-b820-6ed5e090bab1 - 28fe8a93-bce2-418f-8316-9cbe642c5871\n", + "d17872b9-3904-412d-85a7-1d1f835bc7f5\n", + "Zakon o planiranju i izgradnji - dc903cac-4528-44c7-b1dc-ad1b54a73211 - e62655b3-205c-41d5-bbfb-ef9cb06c081e - d17872b9-3904-412d-85a7-1d1f835bc7f5\n", + "Zakon o planiranju i izgradnji - dc903cac-4528-44c7-b1dc-ad1b54a73211 - 619a1e63-f870-4e6c-b820-6ed5e090bab1 - b77c25c4-bb78-4165-ab9d-b3008c50f172\n", + "dd3c23e1-e905-4c9a-81ad-2ad5f0ab4f7e\n", + "Pravilnik o izmenama i dopunama Pravilnika o sadržini, načinu i postupku izrade i način vršenja kontrole tehničke dokumentacije prema klasi i nameni objekata - dc903cac-4528-44c7-b1dc-ad1b54a73211 - 27555393-566c-47fc-9711-3789c2fd270b - dd3c23e1-e905-4c9a-81ad-2ad5f0ab4f7e\n", + "Pravilnik o izmenama i dopunama Pravilnika o sadržini, načinu i postupku izrade i način vršenja kontrole tehničke dokumentacije prema klasi i nameni objekata - dc903cac-4528-44c7-b1dc-ad1b54a73211 - e62655b3-205c-41d5-bbfb-ef9cb06c081e - 65de2225-9c3e-432c-b2f3-0940081753d8\n", + "dd3c23e1-e905-4c9a-81ad-2ad5f0ab4f7e\n", + "Pravilnik o izmenama i dopunama Pravilnika o sadržini, načinu i postupku izrade i način vršenja kontrole tehničke dokumentacije prema klasi i nameni objekata - dc903cac-4528-44c7-b1dc-ad1b54a73211 - 27555393-566c-47fc-9711-3789c2fd270b - dd3c23e1-e905-4c9a-81ad-2ad5f0ab4f7e\n", + "Pravilnik o izmenama i dopunama Pravilnika o sadržini, načinu i postupku izrade i način vršenja kontrole tehničke dokumentacije prema klasi i nameni objekata - dc903cac-4528-44c7-b1dc-ad1b54a73211 - 619a1e63-f870-4e6c-b820-6ed5e090bab1 - 28fe8a93-bce2-418f-8316-9cbe642c5871\n", + "3c332f72-d9cb-4afe-9514-a742da4ef58a\n", + "Službeni glasnik RS, broj 77/2015 - dc903cac-4528-44c7-b1dc-ad1b54a73211 - 27555393-566c-47fc-9711-3789c2fd270b - 3c332f72-d9cb-4afe-9514-a742da4ef58a\n", + "Službeni glasnik RS, br. 77/2015 - dc903cac-4528-44c7-b1dc-ad1b54a73211 - 619a1e63-f870-4e6c-b820-6ed5e090bab1 - fe009af1-fd92-4b44-8e0a-ec9367d7c398\n", + "9f353a2f-d6de-4649-827d-0a4575a437a1\n", + "prof. dr Zorana Mihajlović - dc903cac-4528-44c7-b1dc-ad1b54a73211 - 27555393-566c-47fc-9711-3789c2fd270b - 9f353a2f-d6de-4649-827d-0a4575a437a1\n", + "prof. dr Zorana Mihajlović - dc903cac-4528-44c7-b1dc-ad1b54a73211 - 619a1e63-f870-4e6c-b820-6ed5e090bab1 - a68c04ce-2101-4d42-8e24-871278b993a7\n", + "28fe8a93-bce2-418f-8316-9cbe642c5871\n", + "Pravilnik o izmenama i dopunama Pravilnika o sadržini, načinu i postupku izrade i način vršenja kontrole tehničke dokumentacije prema klasi i nameni objekata - dc903cac-4528-44c7-b1dc-ad1b54a73211 - 619a1e63-f870-4e6c-b820-6ed5e090bab1 - 28fe8a93-bce2-418f-8316-9cbe642c5871\n", + "Pravilnik o izmenama i dopunama Pravilnika o sadržini, načinu i postupku izrade i način vršenja kontrole tehničke dokumentacije prema klasi i nameni objekata - dc903cac-4528-44c7-b1dc-ad1b54a73211 - e62655b3-205c-41d5-bbfb-ef9cb06c081e - 65de2225-9c3e-432c-b2f3-0940081753d8\n", + "b77c25c4-bb78-4165-ab9d-b3008c50f172\n", + "Zakon o planiranju i izgradnji - dc903cac-4528-44c7-b1dc-ad1b54a73211 - 619a1e63-f870-4e6c-b820-6ed5e090bab1 - b77c25c4-bb78-4165-ab9d-b3008c50f172\n", + "Zakon o planiranju i izgradnji - dc903cac-4528-44c7-b1dc-ad1b54a73211 - e62655b3-205c-41d5-bbfb-ef9cb06c081e - d17872b9-3904-412d-85a7-1d1f835bc7f5\n", + "28fe8a93-bce2-418f-8316-9cbe642c5871\n", + "Pravilnik o izmenama i dopunama Pravilnika o sadržini, načinu i postupku izrade i način vršenja kontrole tehničke dokumentacije prema klasi i nameni objekata - dc903cac-4528-44c7-b1dc-ad1b54a73211 - 619a1e63-f870-4e6c-b820-6ed5e090bab1 - 28fe8a93-bce2-418f-8316-9cbe642c5871\n", + "Pravilnik o izmenama i dopunama Pravilnika o sadržini, načinu i postupku izrade i način vršenja kontrole tehničke dokumentacije prema klasi i nameni objekata - dc903cac-4528-44c7-b1dc-ad1b54a73211 - 27555393-566c-47fc-9711-3789c2fd270b - dd3c23e1-e905-4c9a-81ad-2ad5f0ab4f7e\n", + "fe009af1-fd92-4b44-8e0a-ec9367d7c398\n", + "Službeni glasnik RS, br. 77/2015 - dc903cac-4528-44c7-b1dc-ad1b54a73211 - 619a1e63-f870-4e6c-b820-6ed5e090bab1 - fe009af1-fd92-4b44-8e0a-ec9367d7c398\n", + "Službeni glasnik RS, broj 77/2015 - dc903cac-4528-44c7-b1dc-ad1b54a73211 - 27555393-566c-47fc-9711-3789c2fd270b - 3c332f72-d9cb-4afe-9514-a742da4ef58a\n", + "a68c04ce-2101-4d42-8e24-871278b993a7\n", + "prof. dr Zorana Mihajlović - dc903cac-4528-44c7-b1dc-ad1b54a73211 - 619a1e63-f870-4e6c-b820-6ed5e090bab1 - a68c04ce-2101-4d42-8e24-871278b993a7\n", + "prof. dr Zorana Mihajlović - dc903cac-4528-44c7-b1dc-ad1b54a73211 - 27555393-566c-47fc-9711-3789c2fd270b - 9f353a2f-d6de-4649-827d-0a4575a437a1\n", + "f25d6b1e-b61b-40f3-bebb-d2eb7dae14e6\n", + "Ministry of Construction, Transport and Infrastructure - dc903cac-4528-44c7-b1dc-ad1b54a73211 - 35c3720f-c25e-437a-815a-23ad47da0a02 - f25d6b1e-b61b-40f3-bebb-d2eb7dae14e6\n", + "Ministry of Construction, Transport and Infrastructure - dc903cac-4528-44c7-b1dc-ad1b54a73211 - 164e45a4-00bb-4d07-a069-3311a56e3780 - 36baf9c8-2125-4611-baef-923a2b96e5de\n", + "f25d6b1e-b61b-40f3-bebb-d2eb7dae14e6\n", + "Ministry of Construction, Transport and Infrastructure - dc903cac-4528-44c7-b1dc-ad1b54a73211 - 35c3720f-c25e-437a-815a-23ad47da0a02 - f25d6b1e-b61b-40f3-bebb-d2eb7dae14e6\n", + "Ministry of Construction, Transport and Infrastructure - dc903cac-4528-44c7-b1dc-ad1b54a73211 - 45870c37-719b-4080-ad44-8afb2315fb74 - 20dc3b92-c00b-4f60-b426-08a915110ad8\n", + "9fcc7992-2773-48ef-956b-0b6818260124\n", + "Law on Planning and Construction - dc903cac-4528-44c7-b1dc-ad1b54a73211 - 35c3720f-c25e-437a-815a-23ad47da0a02 - 9fcc7992-2773-48ef-956b-0b6818260124\n", + "Law on Planning and Construction - dc903cac-4528-44c7-b1dc-ad1b54a73211 - 45870c37-719b-4080-ad44-8afb2315fb74 - 312cb2db-e521-4f9b-bcb8-b87040f60305\n", + "aceadca4-454b-45b6-a487-3e639bc8c095\n", + "Zorana Mihajlović, Prof. Dr. - dc903cac-4528-44c7-b1dc-ad1b54a73211 - 35c3720f-c25e-437a-815a-23ad47da0a02 - aceadca4-454b-45b6-a487-3e639bc8c095\n", + "Zorana Mihajlovic, Prof. Dr. - dc903cac-4528-44c7-b1dc-ad1b54a73211 - 45870c37-719b-4080-ad44-8afb2315fb74 - 41218825-e4d8-478d-8cf8-3f394d9300fc\n", + "9fcc7992-2773-48ef-956b-0b6818260124\n", + "Law on Planning and Construction - dc903cac-4528-44c7-b1dc-ad1b54a73211 - 35c3720f-c25e-437a-815a-23ad47da0a02 - 9fcc7992-2773-48ef-956b-0b6818260124\n", + "Law on Planning and Construction - dc903cac-4528-44c7-b1dc-ad1b54a73211 - f9f05ed2-fb84-432d-8b63-149b8d791733 - 73785155-6925-4bbc-ba30-690692ae6ad6\n", + "Graph is visualized at: https://hub.graphistry.com/graph/graph.html?dataset=849498bc9b2b4c7a8364da17bfc80477&type=arrow&viztoken=f50f20fd-f058-4bae-9a11-150dcb7e07c4&usertag=993172cb-pygraphistry-0.33.5&splashAfter=1710280350&info=true\n", + "None\n" + ] + } + ], + "source": [ + "from os import path, listdir\n", + "from cognitive_architecture import cognify, list_datasets\n", + "from cognitive_architecture.utils import render_graph\n", + "\n", + "# text = \"\"\"In the nicest possible way, Britons have always been a bit silly about animals. “Keeping pets, for the English, is not so much a leisure activity as it is an entire way of life,” wrote the anthropologist Kate Fox in Watching the English, nearly 20 years ago. Our dogs, in particular, have been an acceptable outlet for emotions and impulses we otherwise keep strictly controlled – our latent desire to be demonstratively affectionate, to be silly and chat to strangers. If this seems like an exaggeration, consider the different reactions you’d get if you struck up a conversation with someone in a park with a dog, versus someone on the train.\n", + "# Indeed, British society has been set up to accommodate these four-legged ambassadors. In the UK – unlike Australia, say, or New Zealand – dogs are not just permitted on public transport but often openly encouraged. Many pubs and shops display waggish signs, reading, “Dogs welcome, people tolerated”, and have treat jars on their counters. The other day, as I was waiting outside a cafe with a friend’s dog, the barista urged me to bring her inside.\n", + "# For years, Britons’ non-partisan passion for animals has been consistent amid dwindling common ground. But lately, rather than bringing out the best in us, our relationship with dogs is increasingly revealing us at our worst – and our supposed “best friends” are paying the price.\n", + "# As with so many latent traits in the national psyche, it all came unleashed with the pandemic, when many people thought they might as well make the most of all that time at home and in local parks with a dog. Between 2019 and 2022, the number of pet dogs in the UK rose from about nine million to 13 million. But there’s long been a seasonal surge around this time of year, substantial enough for the Dogs Trust charity to coin its famous slogan back in 1978: “A dog is for life, not just for Christmas.”\"\"\"\n", + "\n", + "print(list_datasets())\n", + "\n", + "graph = await cognify(\"izmene\")\n", + "\n", + "graph_url = await render_graph(graph, graph_type = \"networkx\")\n", + "print(graph_url)\n" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "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.10.13" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/cognitive_architecture/__init__.py b/cognitive_architecture/__init__.py index 6d15c6cc8..4b290afe5 100644 --- a/cognitive_architecture/__init__.py +++ b/cognitive_architecture/__init__.py @@ -1,3 +1,3 @@ from .api.v1.add.add import add -from .api.v1.add.add_dlt import add_dlt from .api.v1.cognify.cognify import cognify +from .api.v1.list_datasets.list_datasets import list_datasets diff --git a/cognitive_architecture/api/v1/add/add.py b/cognitive_architecture/api/v1/add/add.py index bdeb77d27..b49df553e 100644 --- a/cognitive_architecture/api/v1/add/add.py +++ b/cognitive_architecture/api/v1/add/add.py @@ -1,53 +1,91 @@ +from typing import List, Union +from os import path, listdir import asyncio -from uuid import UUID, uuid4 -from typing import Union, BinaryIO, List +import dlt +import duckdb +from unstructured.cleaners.core import clean +from cognitive_architecture.root_dir import get_absolute_path import cognitive_architecture.modules.ingestion as ingestion -from cognitive_architecture.infrastructure import infrastructure_config +from cognitive_architecture.infrastructure.files import get_file_metadata +from cognitive_architecture.infrastructure.files.storage import LocalStorage -class DatasetException(Exception): - message: str +async def add(file_paths: Union[str, List[str]], dataset_name: str = None): + if isinstance(file_paths, str): + # Directory path provided, we need to extract the file paths and dataset name - def __init__(self, message: str): - self.message = message + def list_dir_files(root_dir_path: str, parent_dir: str = "root"): + datasets = {} + + for file_or_dir in listdir(root_dir_path): + if path.isdir(path.join(root_dir_path, file_or_dir)): + dataset_name = file_or_dir if parent_dir == "root" else parent_dir + "." + file_or_dir + dataset_name = clean(dataset_name.replace(" ", "_")) + + nested_datasets = list_dir_files(path.join(root_dir_path, file_or_dir), dataset_name) + + for dataset in nested_datasets: + datasets[dataset] = nested_datasets[dataset] + else: + if parent_dir not in datasets: + datasets[parent_dir] = [] + + datasets[parent_dir].append(path.join(root_dir_path, file_or_dir)) + + return datasets + + datasets = list_dir_files(file_paths) + + results = [] + + for key in datasets: + if dataset_name is not None and not key.startswith(dataset_name): + continue + + results.append(add_dlt(datasets[key], dataset_name = key)) + + return await asyncio.gather(*results) -async def add( - data: Union[str, BinaryIO, List[Union[str, BinaryIO]]], - dataset_id: UUID = uuid4(), - dataset_name: str = None -): - db_engine = infrastructure_config.get_config()["database_engine"] - if db_engine.is_db_done is not True: - await db_engine.ensure_tables() + db_path = get_absolute_path("./data/cognee") + db_location = f"{db_path}/cognee.duckdb" - if not data: - raise DatasetException("Data must be provided to cognee.add(data: str)") + LocalStorage.ensure_directory_exists(db_path) - if isinstance(data, list): - promises = [] + db = duckdb.connect(db_location) - for data_item in data: - promises.append(add(data_item, dataset_id, dataset_name)) + destination = dlt.destinations.duckdb( + credentials = db, + ) - results = await asyncio.gather(*promises) + pipeline = dlt.pipeline( + pipeline_name = "file_load_from_filesystem", + destination = destination, + ) - return results + @dlt.resource(standalone = True, merge_key = "id") + def data_resources(file_paths: str): + for file_path in file_paths: + with open(file_path.replace("file://", ""), mode = "rb") as file: + classified_data = ingestion.classify(file) + data_id = ingestion.identify(classified_data) - if is_data_path(data): - with open(data.replace("file://", ""), "rb") as file: - return await add(file, dataset_id, dataset_name) + file_metadata = get_file_metadata(classified_data.get_data()) - classified_data = ingestion.classify(data) + yield { + "id": data_id, + "name": file_metadata["name"], + "file_path": file_metadata["file_path"], + "extension": file_metadata["extension"], + "mime_type": file_metadata["mime_type"], + "keywords": "|".join(file_metadata["keywords"]), + } - data_id = ingestion.identify(classified_data) + run_info = pipeline.run( + data_resources(file_paths), + table_name = "file_metadata", + dataset_name = dataset_name, + write_disposition = "merge", + ) - await ingestion.save(dataset_id, dataset_name, data_id, classified_data) - - return dataset_id - - # await ingestion.vectorize(dataset_id, dataset_name, data_id, classified_data) - - -def is_data_path(data: str) -> bool: - return False if not isinstance(data, str) else data.startswith("file://") + return run_info diff --git a/cognitive_architecture/api/v1/add/add_dlt.py b/cognitive_architecture/api/v1/add/add_dlt.py deleted file mode 100644 index 07e010775..000000000 --- a/cognitive_architecture/api/v1/add/add_dlt.py +++ /dev/null @@ -1,91 +0,0 @@ -from typing import List, Union -from os import path, listdir -import asyncio -import dlt -import duckdb -from unstructured.cleaners.core import clean -from cognitive_architecture.root_dir import get_absolute_path -import cognitive_architecture.modules.ingestion as ingestion -from cognitive_architecture.infrastructure.files import get_file_metadata -from cognitive_architecture.infrastructure.files.storage import LocalStorage - -async def add_dlt(file_paths: Union[str, List[str]], dataset_name: str = None): - if isinstance(file_paths, str): - # Directory path provided, we need to extract the file paths and dataset name - - def list_dir_files(root_dir_path: str, parent_dir: str = "root"): - datasets = {} - - for file_or_dir in listdir(root_dir_path): - if path.isdir(path.join(root_dir_path, file_or_dir)): - dataset_name = file_or_dir if parent_dir == "root" else parent_dir + "." + file_or_dir - dataset_name = clean(dataset_name.replace(" ", "_")) - - nested_datasets = list_dir_files(path.join(root_dir_path, file_or_dir), dataset_name) - - for dataset in nested_datasets: - datasets[dataset] = nested_datasets[dataset] - else: - if parent_dir not in datasets: - datasets[parent_dir] = [] - - datasets[parent_dir].append(path.join(root_dir_path, file_or_dir)) - - return datasets - - datasets = list_dir_files(file_paths) - - results = [] - - for key in datasets: - if dataset_name is not None and not key.startswith(dataset_name): - continue - - results.append(add_dlt(datasets[key], dataset_name = key)) - - return await asyncio.gather(*results) - - - db_path = get_absolute_path("./data/cognee") - db_location = f"{db_path}/cognee.duckdb" - - LocalStorage.ensure_directory_exists(db_path) - - db = duckdb.connect(db_location) - - destination = dlt.destinations.duckdb( - credentials = db, - ) - - pipeline = dlt.pipeline( - pipeline_name = "file_load_from_filesystem", - destination = destination, - ) - - @dlt.resource(standalone = True, merge_key = "id") - def data_resources(file_paths: str): - for file_path in file_paths: - with open(file_path.replace("file://", ""), mode = "rb") as file: - classified_data = ingestion.classify(file) - - data_id = ingestion.identify(classified_data) - - file_metadata = get_file_metadata(classified_data.get_data()) - - yield { - "id": data_id, - "name": file_metadata["name"], - "file_path": file_metadata["file_path"], - "extension": file_metadata["extension"], - "mime_type": file_metadata["mime_type"], - "keywords": "|".join(file_metadata["keywords"]), - } - - run_info = pipeline.run( - data_resources(file_paths), - table_name = "file_metadata", - dataset_name = dataset_name, - write_disposition = "merge", - ) - - return run_info diff --git a/cognitive_architecture/api/v1/add/add_standalone.py b/cognitive_architecture/api/v1/add/add_standalone.py new file mode 100644 index 000000000..8e332473d --- /dev/null +++ b/cognitive_architecture/api/v1/add/add_standalone.py @@ -0,0 +1,53 @@ +import asyncio +from uuid import UUID, uuid4 +from typing import Union, BinaryIO, List +import cognitive_architecture.modules.ingestion as ingestion +from cognitive_architecture.infrastructure import infrastructure_config + +class DatasetException(Exception): + message: str + + def __init__(self, message: str): + self.message = message + + +async def add_standalone( + data: Union[str, BinaryIO, List[Union[str, BinaryIO]]], + dataset_id: UUID = uuid4(), + dataset_name: str = None +): + db_engine = infrastructure_config.get_config()["database_engine"] + if db_engine.is_db_done is not True: + await db_engine.ensure_tables() + + if not data: + raise DatasetException("Data must be provided to cognee.add(data: str)") + + if isinstance(data, list): + promises = [] + + for data_item in data: + promises.append(add(data_item, dataset_id, dataset_name)) + + results = await asyncio.gather(*promises) + + return results + + + if is_data_path(data): + with open(data.replace("file://", ""), "rb") as file: + return await add(file, dataset_id, dataset_name) + + classified_data = ingestion.classify(data) + + data_id = ingestion.identify(classified_data) + + await ingestion.save(dataset_id, dataset_name, data_id, classified_data) + + return dataset_id + + # await ingestion.vectorize(dataset_id, dataset_name, data_id, classified_data) + + +def is_data_path(data: str) -> bool: + return False if not isinstance(data, str) else data.startswith("file://") diff --git a/cognitive_architecture/api/v1/cognify/cognify.py b/cognitive_architecture/api/v1/cognify/cognify.py index 317ce03c3..dbe50d89c 100644 --- a/cognitive_architecture/api/v1/cognify/cognify.py +++ b/cognitive_architecture/api/v1/cognify/cognify.py @@ -4,6 +4,8 @@ from typing import List from qdrant_client import models import instructor from openai import OpenAI +from unstructured.cleaners.core import clean +from unstructured.partition.pdf import partition_pdf from cognitive_architecture.infrastructure.databases.vector.qdrant.QDrantAdapter import CollectionConfig from cognitive_architecture.infrastructure.llm.get_llm_client import get_llm_client from cognitive_architecture.modules.cognify.graph.add_classification_nodes import add_classification_nodes @@ -23,15 +25,34 @@ from cognitive_architecture.modules.cognify.graph.create import create_semantic_ from cognitive_architecture.infrastructure.databases.graph.get_graph_client import get_graph_client from cognitive_architecture.shared.data_models import GraphDBType from cognitive_architecture.infrastructure.databases.vector.get_vector_database import get_vector_database +from cognitive_architecture.infrastructure.databases.relational import DuckDBAdapter config = Config() config.load() aclient = instructor.patch(OpenAI()) -async def cognify(input_text : str): +async def cognify(dataset_name: str): """This function is responsible for the cognitive processing of the content.""" + db = DuckDBAdapter() + files_metadata = db.get_files_metadata(dataset_name) + files = list(files_metadata["file_path"].values()) + + awaitables = [] + + for file in files: + with open(file, "rb") as file: + elements = partition_pdf(file = file, strategy = "fast") + text = "\n".join(map(lambda element: clean(element.text), elements)) + + awaitables.append(process_text(text)) + + graphs = await asyncio.gather(*awaitables) + + return graphs[0] + +async def process_text(input_text: str): classified_categories = None try: @@ -55,7 +76,7 @@ async def cognify(input_text : str): async def generate_graph_per_layer(text_input: str, layers: List[str], response_model: KnowledgeGraph = KnowledgeGraph): generate_graphs_awaitables = [generate_graph(text_input, "generate_graph_prompt.txt", {"layer": layer}, response_model) for layer in - layers] + layers] return await asyncio.gather(*generate_graphs_awaitables) diff --git a/cognitive_architecture/api/v1/list_datasets/list_datasets.py b/cognitive_architecture/api/v1/list_datasets/list_datasets.py new file mode 100644 index 000000000..1e115101a --- /dev/null +++ b/cognitive_architecture/api/v1/list_datasets/list_datasets.py @@ -0,0 +1,6 @@ + +from cognitive_architecture.infrastructure.databases.relational import DuckDBAdapter + +def list_datasets(): + db = DuckDBAdapter() + return db.get_datasets() diff --git a/cognitive_architecture/data/cognee/cognee.duckdb b/cognitive_architecture/data/cognee/cognee.duckdb deleted file mode 100644 index db4ab21bac7d6bf45a72428c1c229c3858ace8e2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12288 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