{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Loading ontology...\n", "Ontology loaded successfully.\n", "\n" ] } ], "source": [ "# Install rdflib if not already installed\n", "# !pip install rdflib\n", "\n", "from rdflib import Graph, Namespace\n", "\n", "# Step 1: Load the Ontology\n", "print(\"Loading ontology...\")\n", "g = Graph()\n", "g.parse(\"DrugInteraction.owl\", format=\"xml\")\n", "print(\"Ontology loaded successfully.\\n\")" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "# Define Namespace\n", "ns = Namespace(\"http://www.example.org/DrugInteraction.owl#\")" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "# Query 1: Retrieve Drug Interactions\n", "query_interactions = \"\"\"\n", "PREFIX ns: \n", "SELECT ?interaction ?drug1 ?drug2\n", "WHERE {\n", " ?interaction a ns:Interaction .\n", " ?interaction ns:causedBy ?drug1 .\n", " ?interaction ns:causedBy ?drug2 .\n", " FILTER (?drug1 != ?drug2)\n", "}\n", "\"\"\"" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "# Query 2: Retrieve Conflicts\n", "query_conflicts = \"\"\"\n", "PREFIX ns: \n", "SELECT ?conflict ?drug1 ?drug2\n", "WHERE {\n", " ?conflict a ns:Conflict .\n", " ?conflict ns:between ?drug1 .\n", " ?conflict ns:between ?drug2 .\n", " FILTER (?drug1 != ?drug2)\n", "}\n", "\"\"\"\n", "\n", "# Query 3: Retrieve Similarities\n", "query_similarities = \"\"\"\n", "PREFIX ns: \n", "SELECT ?similarity ?drug1 ?drug2\n", "WHERE {\n", " ?similarity a ns:Similarity .\n", " ?similarity ns:relatedTo ?drug1 .\n", " ?similarity ns:relatedTo ?drug2 .\n", " FILTER (?drug1 != ?drug2)\n", "}\n", "\"\"\"" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "# Function to run and print SPARQL query results\n", "def run_query(query, description):\n", " print(f\"Results for {description}:\")\n", " results = g.query(query)\n", " for row in results:\n", " print(f\"{row[0]} | Drug 1: {row[1].split('#')[-1]} | Drug 2: {row[2].split('#')[-1]}\")\n", " print(\"\\n\")\n" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Results for Drug Interactions:\n", "http://www.example.org/DrugInteraction.owl#Interaction1 | Drug 1: Warfarin | Drug 2: Aspirin\n", "http://www.example.org/DrugInteraction.owl#Interaction1 | Drug 1: Aspirin | Drug 2: Warfarin\n", "\n", "\n", "Results for Conflicts:\n", "http://www.example.org/DrugInteraction.owl#Conflict1 | Drug 1: Sildenafil | Drug 2: Nitroglycerin\n", "http://www.example.org/DrugInteraction.owl#Conflict1 | Drug 1: Nitroglycerin | Drug 2: Sildenafil\n", "\n", "\n", "Results for Similarities:\n", "http://www.example.org/DrugInteraction.owl#Similarity1 | Drug 1: Warfarin | Drug 2: Aspirin\n", "http://www.example.org/DrugInteraction.owl#Similarity1 | Drug 1: Aspirin | Drug 2: Warfarin\n", "\n", "\n" ] } ], "source": [ "# Execute each query\n", "run_query(query_interactions, \"Drug Interactions\")\n", "run_query(query_conflicts, \"Conflicts\")\n", "run_query(query_similarities, \"Similarities\")" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "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.12.3" } }, "nbformat": 4, "nbformat_minor": 2 }