From 1d129be1135cf0ac0525ee1524f9ffc6acc5587d Mon Sep 17 00:00:00 2001 From: br0kenpixel <23280129+br0kenpixel@users.noreply.github.com> Date: Wed, 19 Mar 2025 10:19:34 +0100 Subject: [PATCH] cviko 5 --- notebook/cviko5.ipynb | 435 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 435 insertions(+) create mode 100644 notebook/cviko5.ipynb diff --git a/notebook/cviko5.ipynb b/notebook/cviko5.ipynb new file mode 100644 index 0000000..febbcfc --- /dev/null +++ b/notebook/cviko5.ipynb @@ -0,0 +1,435 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Requirement already satisfied: pytholog in /home/br0kenpixel/Documents/ui-cviko1/lib64/python3.13/site-packages (2.4.1)\n", + "Requirement already satisfied: more-itertools in /home/br0kenpixel/Documents/ui-cviko1/lib64/python3.13/site-packages (from pytholog) (10.6.0)\n", + "\n", + "\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m A new release of pip is available: \u001b[0m\u001b[31;49m24.2\u001b[0m\u001b[39;49m -> \u001b[0m\u001b[32;49m25.0.1\u001b[0m\n", + "\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m To update, run: \u001b[0m\u001b[32;49mpip install --upgrade pip\u001b[0m\n", + "Note: you may need to restart the kernel to use updated packages.\n" + ] + } + ], + "source": [ + "%pip install pytholog" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "import pytholog as pl" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "family = pl.KnowledgeBase(\"family\")\n", + "family([\n", + " \"parents(susanne,charles,jane)\",\n", + " \"parents(susanne,charles,diana)\",\n", + " \"parents(susanne,charles,jack)\",\n", + " \"parents(jane,tom,peter)\",\n", + " \"parents(jane,tom,anne)\",\n", + " \"parents(anne,luis,kate)\"])" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[{'Who': 'jane'}]" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#who is mother of peter?\n", + "family.query(pl.Expr(\"parents(Who,_,peter)\"))" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [], + "source": [ + "family([\"matka(X,Y) :- parents(X,_,Y)\"])" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[{'Kto': 'jane'}]" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "family.query(pl.Expr(\"matka(Kto,peter)\"))" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[{'X': 'anne'},\n", + " {'X': 'jane'},\n", + " {'X': 'jane'},\n", + " {'X': 'susanne'},\n", + " {'X': 'susanne'},\n", + " {'X': 'susanne'}]" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "family.query(pl.Expr(\"matka(X,_)\"))" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [], + "source": [ + "family([\n", + " \"otec(O,D) :- parents(_,O,D)\"])" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[{'Kto': 'charles'}]" + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "family.query(pl.Expr(\"otec(Kto, jack)\"))" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [], + "source": [ + "family([\n", + " \"rodic(R, D) :- otec(R, D)\",\n", + " \"rodic(R, D) :- matka(R, D)\"\n", + "])" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "['Yes']" + ] + }, + "execution_count": 14, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "family.query(pl.Expr(\"rodic(charles, jack)\"))" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[{'Who': 'charles'}, {'Who': 'susanne'}]" + ] + }, + "execution_count": 15, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "family.query(pl.Expr(\"rodic(Who, jack)\"))" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [], + "source": [ + "family([\n", + " \"dedo(Dedo, Vnuk) :- otec(Dedo, Rodic), rodic(Rodic, Vnuk)\",\n", + "])" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[{'Kto': 'charles'}]" + ] + }, + "execution_count": 20, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "family.query(pl.Expr(\"dedo(Kto, peter)\"))" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[{'Vnuci': 'peter'}, {'Vnuci': 'anne'}]" + ] + }, + "execution_count": 21, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "family.query(pl.Expr(\"dedo(charles, Vnuci)\"))" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[{'Vnuci': 'kate'}]" + ] + }, + "execution_count": 22, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "family.query(pl.Expr(\"dedo(tom, Vnuci)\"))" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": {}, + "outputs": [], + "source": [ + "family([\n", + " \"babka(Babka, Vnuk) :- matka(Babka, Rodic), rodic(Rodic, Vnuk)\",\n", + "])" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": {}, + "outputs": [], + "source": [ + "family([\n", + " \"surodenec(X, Y) :- rodic(R, X), rodic(R, Y)\",\n", + "])" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[{'S': 'jane'},\n", + " {'S': 'diana'},\n", + " {'S': 'jack'},\n", + " {'S': 'jane'},\n", + " {'S': 'diana'},\n", + " {'S': 'jack'}]" + ] + }, + "execution_count": 25, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "family.query(pl.Expr(\"surodenec(diana, S)\"))" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "metadata": {}, + "outputs": [], + "source": [ + "family([\n", + " \"surodenec_vlastny(X, Y) :- otec(O, X), otec(O, Y), matka(M, X), matka(M, Y)\",\n", + "])" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[{'S': 'jane'}, {'S': 'diana'}, {'S': 'jack'}]" + ] + }, + "execution_count": 27, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "family.query(pl.Expr(\"surodenec_vlastny(diana, S)\"))" + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "metadata": {}, + "outputs": [], + "source": [ + "family([\n", + " \"predok(Pred, Pot) :- rodic(Pred, Pot)\",\n", + " \"predok(Pred, Pot) :- rodic(Pred, Pot1), predok(Pot1, Pot)\"\n", + "])" + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[{'Kto': 'luis'},\n", + " {'Kto': 'anne'},\n", + " {'Kto': 'tom'},\n", + " {'Kto': 'jane'},\n", + " {'Kto': 'charles'},\n", + " {'Kto': 'susanne'}]" + ] + }, + "execution_count": 29, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "family.query(pl.Expr(\"predok(Kto, kate)\"))" + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "['Yes']" + ] + }, + "execution_count": 30, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "family.query(pl.Expr(\"predok(susanne, peter)\"))" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "ui-cviko1", + "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.13.2" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +}