{ "cells": [ { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "# Install rdflib if not already installed\n", "# !pip install rdflib\n", "\n", "from rdflib import Graph, Namespace" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Loading ontology...\n", "Ontology loaded successfully.\n", "\n" ] } ], "source": [ "# Step 1: Load the Ontology\n", "print(\"Loading ontology...\")\n", "g = Graph()\n", "g.parse(\"DrugInteraction.owl\", format=\"xml\") # Ensure your OWL file is named correctly and in the same directory\n", "print(\"Ontology loaded successfully.\\n\")\n" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "# Query Templates\n", "query_interactions = \"\"\"\n", "PREFIX ns: \n", "SELECT ?drug1 ?drug2\n", "WHERE {{\n", " ?drug1 ns:hasInteraction ?drug2 .\n", " FILTER (STR(?drug1) = \"http://www.example.org/DrugInteraction.owl#{drug}\" || \n", " STR(?drug2) = \"http://www.example.org/DrugInteraction.owl#{drug}\")\n", "}}\n", "\"\"\"" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "query_conflicts = \"\"\"\n", "PREFIX ns: \n", "SELECT ?drug1 ?drug2\n", "WHERE {{\n", " ?drug1 ns:hasConflict ?drug2 .\n", " FILTER (STR(?drug1) = \"http://www.example.org/DrugInteraction.owl#{drug}\" || \n", " STR(?drug2) = \"http://www.example.org/DrugInteraction.owl#{drug}\")\n", "}}\n", "\"\"\"" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "query_similarities = \"\"\"\n", "PREFIX ns: \n", "SELECT ?drug1 ?drug2\n", "WHERE {{\n", " ?drug1 ns:hasSimilarity ?drug2 .\n", " FILTER (STR(?drug1) = \"http://www.example.org/DrugInteraction.owl#{drug}\" || \n", " STR(?drug2) = \"http://www.example.org/DrugInteraction.owl#{drug}\")\n", "}}\n", "\"\"\"" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [], "source": [ "query_alternatives = \"\"\"\n", "PREFIX ns: \n", "SELECT ?drug1 ?drug2\n", "WHERE {{\n", " ?drug1 ns:hasAlternative ?drug2 .\n", " FILTER (STR(?drug1) = \"http://www.example.org/DrugInteraction.owl#{drug}\" || \n", " STR(?drug2) = \"http://www.example.org/DrugInteraction.owl#{drug}\")\n", "}}\n", "\"\"\"" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [], "source": [ "# Function to execute a query and print results\n", "def run_query(query, description, drug_name):\n", " print(f\"Results for {description} involving '{drug_name}':\")\n", " results = g.query(query.format(drug=drug_name))\n", " if len(results) == 0:\n", " print(\" No results found.\\n\")\n", " else:\n", " for row in results:\n", " drug1_label = row[0].split('#')[-1]\n", " drug2_label = row[1].split('#')[-1]\n", " print(f\" {drug1_label} → {drug2_label}\")\n", " print(\"\\n\")\n" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [], "source": [ "# Step 2: Accept User Input for Drug Names\n", "def main():\n", " print(\"Enter drug names separated by commas (e.g., Aspirin, Warfarin):\")\n", " user_input = input(\"Drugs: \")\n", " drug_names = [drug.strip() for drug in user_input.split(\",\") if drug.strip()]\n", "\n", " if not drug_names:\n", " print(\"No drug names provided. Exiting.\")\n", " return\n", "\n", " # Step 3: Run Queries for Each Drug\n", " for drug in drug_names:\n", " print(f\"\\n--- Checking for {drug} ---\")\n", " run_query(query_interactions, \"Drug Interactions\", drug)\n", " run_query(query_conflicts, \"Conflicts\", drug)\n", " run_query(query_similarities, \"Similarities\", drug)\n", " run_query(query_alternatives, \"Alternative Drugs\", drug)\n" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Enter drug names separated by commas (e.g., Aspirin, Warfarin):\n", "\n", "--- Checking for panadol ---\n", "Results for Drug Interactions involving 'panadol':\n", " No results found.\n", "\n", "Results for Conflicts involving 'panadol':\n", " No results found.\n", "\n", "Results for Similarities involving 'panadol':\n", " No results found.\n", "\n", "Results for Alternative Drugs involving 'panadol':\n", " No results found.\n", "\n" ] } ], "source": [ "# Run the main function\n", "if __name__ == \"__main__\":\n", " main()" ] } ], "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 }