{ "cells": [ { "cell_type": "code", "execution_count": null, "id": "honest-owner", "metadata": {}, "outputs": [], "source": [ "!kgtk cat -i ../../gdrive-kgtk-dump-2020-12-07/claims.tsv.gz \\\n", " ../../data/removed_statements.tsv \\\n", " -o ../../data/claims.w_removed_statements.tsv" ] }, { "cell_type": "code", "execution_count": 1, "id": "juvenile-ability", "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "51f315ee082443c0910cd6f1584aafcc", "version_major": 2, "version_minor": 0 }, "text/plain": [ " 0%| | 0/1225987894 [00:00(node2), c: (rLabel)-[:P2308]->(parent), d: (node1)-[]->(par), c: (eLabel)-[:P2303]->(eNode)\" \\\n", " --where 'nodeProp.label = rLabel and (par = parent or (rLabel = eLabel and node1 = eNode))' \\\n", " --return 'nodeProp.id, node1, nodeProp.label, node2, max(parent) as `node1;ancestor`' \\\n", " -o ../../constraintsOP/typeConstraint/claims.type-constraints.mandatory.instanceOf.P996.correct.tsv \\\n", " --graph-cache ~/sqlite3_caches/mandConst001.sqlite3.db ; \\\n", " kgtk --debug ifnotexists -i ../../constraintsOP/typeConstraint/claims.type-constraints.mandatory.instanceOf.P996.all.tsv \\\n", " --filter-on ../../constraintsOP/typeConstraint/claims.type-constraints.mandatory.instanceOf.P996.correct.tsv \\\n", " --filter-mode NONE \\\n", " --input-keys node1 label \\\n", " --filter-keys node1 label \\\n", " -o ../../constraintsOP/typeConstraint/claims.type-constraints.mandatory.instanceOf.P996.incorrect.tsv" ] }, { "cell_type": "code", "execution_count": 4, "id": "abstract-retreat", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[2021-03-12 22:33:26 query]: SQL Translation:\r\n", "---------------------------------------------\r\n", " SELECT graph_11_c1.\"id\", graph_11_c1.\"node1\", graph_11_c1.\"label\", graph_11_c1.\"node2\"\r\n", " FROM graph_11 AS graph_11_c1, graph_14 AS graph_14_c2\r\n", " WHERE graph_11_c1.\"node1\"=graph_14_c2.\"node1\"\r\n", " AND (graph_14_c2.\"node2\" IN (?, ?, ?))\r\n", " PARAS: ['Q1238720', 'Q3331189', 'Q47461344']\r\n", "---------------------------------------------\r\n" ] } ], "source": [ "!kgtk --debug query -i ../../propertiesSplitWRemoved/claims.P996.tsv \\\n", " ../../wikidata-20210215/derived.isastar.tsv.gz \\\n", " --match \"m: (node1)-[nodeProp]->(node2), d: (node1)-[]->(par)\" \\\n", " --where 'par in [\"Q1238720\",\"Q3331189\",\"Q47461344\"]' \\\n", " --return 'nodeProp.id, node1, nodeProp.label, node2' \\\n", " -o ../../constraintsOP/typeConstraint/claims.type-constraints.mandatory.instanceOf.P996.correct.tsv \\\n", " --graph-cache ~/sqlite3_caches/mandConst001.sqlite3.db ; \\\n", " kgtk --debug ifnotexists -i ../../propertiesSplitWRemoved/claims.P996.tsv \\\n", " --filter-on ../../constraintsOP/typeConstraint/claims.type-constraints.mandatory.instanceOf.P996.correct.tsv \\\n", " --filter-mode NONE \\\n", " --input-keys node1 label \\\n", " --filter-keys node1 label \\\n", " -o ../../constraintsOP/typeConstraint/claims.type-constraints.mandatory.instanceOf.P996.incorrect.tsv" ] }, { "cell_type": "code", "execution_count": 7, "id": "strange-truck", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "81289 ../../constraintsOP/typeConstraint/claims.type-constraints.mandatory.instanceOf.P996.correct.tsv\r\n" ] } ], "source": [ "!wc -l ../../constraintsOP/typeConstraint/claims.type-constraints.mandatory.instanceOf.P996.correct.tsv" ] }, { "cell_type": "code", "execution_count": 8, "id": "finnish-hampton", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[2021-03-12 22:49:54 sqlstore]: IMPORT graph directly into table graph_15 from /data/wd-correctness/propertiesSplit/claims.P991.tsv ...\n", "[2021-03-12 22:49:54 query]: SQL Translation:\n", "---------------------------------------------\n", " SELECT graph_15_c1.\"id\", graph_15_c1.\"node1\", graph_15_c1.\"label\", graph_15_c1.\"node2\"\n", " FROM graph_15 AS graph_15_c1, graph_5 AS graph_5_c2\n", " WHERE graph_15_c1.\"node1\"=graph_5_c2.\"node1\"\n", " AND (graph_5_c2.\"node2\" IN (?))\n", " PARAS: ['Q40231']\n", "---------------------------------------------\n", "[2021-03-12 22:49:55 sqlstore]: CREATE INDEX on table graph_15 column node1 ...\n", "[2021-03-12 22:49:55 sqlstore]: ANALYZE INDEX on table graph_15 column node1 ...\n" ] } ], "source": [ "!kgtk --debug query -i ../../propertiesSplitWRemoved/claims.P991.tsv \\\n", " ../../wikidata-20210215/derived.P31P279star.tsv.gz \\\n", " --match \"m: (node1)-[nodeProp]->(node2), d: (node1)-[]->(par)\" \\\n", " --where 'par in [\"Q40231\"]' \\\n", " --return 'nodeProp.id, node1, nodeProp.label, node2' \\\n", " -o ../../constraintsOP/typeConstraint/claims.type-constraints.mandatory.instanceOf.P991.correct.tsv \\\n", " --graph-cache ~/sqlite3_caches/mandConst001.sqlite3.db ; \\\n", " kgtk --debug ifnotexists -i ../../propertiesSplitWRemoved/claims.P991.tsv \\\n", " --filter-on ../../constraintsOP/typeConstraint/claims.type-constraints.mandatory.instanceOf.P991.correct.tsv \\\n", " --filter-mode NONE \\\n", " --input-keys node1 label \\\n", " --filter-keys node1 label \\\n", " -o ../../constraintsOP/typeConstraint/claims.type-constraints.mandatory.instanceOf.P991.incorrect.tsv" ] }, { "cell_type": "code", "execution_count": 9, "id": "elegant-reverse", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[2021-03-12 23:54:56 sqlstore]: IMPORT graph directly into table graph_16 from /data/wd-correctness/propertiesSplit/claims.P965.tsv ...\n", "[2021-03-12 23:54:56 query]: SQL Translation:\n", "---------------------------------------------\n", " SELECT graph_16_c1.\"id\", graph_5_c2.\"node1\", graph_16_c1.\"label\", graph_16_c1.\"node2\"\n", " FROM graph_16 AS graph_16_c1, graph_5 AS graph_5_c2\n", " WHERE graph_16_c1.\"node1\"=graph_5_c2.\"node1\"\n", " AND (graph_5_c2.\"node2\" IN (?))\n", " PARAS: ['Q6023295']\n", "---------------------------------------------\n", "[2021-03-12 23:54:56 sqlstore]: CREATE INDEX on table graph_16 column node1 ...\n", "[2021-03-12 23:54:56 sqlstore]: ANALYZE INDEX on table graph_16 column node1 ...\n" ] } ], "source": [ "!kgtk --debug query -i ../../propertiesSplitWRemoved/claims.P965.tsv \\\n", " ../../wikidata-20210215/derived.P31P279star.tsv.gz \\\n", " --match \"m: (node1)-[nodeProp]->(node2), d: (node1)-[]->(par)\" \\\n", " --where 'par in [\"Q6023295\"]' \\\n", " --return 'nodeProp.id, node1, nodeProp.label, node2' \\\n", " -o ../../constraintsOP/typeConstraint/claims.type-constraints.mandatory.instanceOf.P965.correct.tsv \\\n", " --graph-cache ~/sqlite3_caches/mandConst001.sqlite3.db ; \\\n", " kgtk --debug ifnotexists -i ../../propertiesSplitWRemoved/claims.P965.tsv \\\n", " --filter-on ../../constraintsOP/typeConstraint/claims.type-constraints.mandatory.instanceOf.P965.correct.tsv \\\n", " --filter-mode NONE \\\n", " --input-keys node1 label \\\n", " --filter-keys node1 label \\\n", " -o ../../constraintsOP/typeConstraint/claims.type-constraints.mandatory.instanceOf.P965.incorrect.tsv" ] }, { "cell_type": "markdown", "id": "matched-strength", "metadata": {}, "source": [ "# Generate Queries" ] }, { "cell_type": "markdown", "id": "black-insured", "metadata": {}, "source": [ "## Type Constraint" ] }, { "cell_type": "markdown", "id": "interior-humor", "metadata": {}, "source": [ "### Understand Constraints File" ] }, { "cell_type": "code", "execution_count": 5, "id": "clinical-brunei", "metadata": {}, "outputs": [], "source": [ "import pandas as pd\n", "df = pd.read_csv('../../constraintsOP/typeConstraint/claims.type-constraints_all.tsv',sep='\\t')" ] }, { "cell_type": "code", "execution_count": 6, "id": "assured-cleaners", "metadata": {}, "outputs": [], "source": [ "df1 = df.groupby(['node1','label']).node2.apply(lambda p: p.tolist()).reset_index()" ] }, { "cell_type": "code", "execution_count": 7, "id": "sharing-evolution", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
node1labelnode2
0P1001P2308[Q102496, Q105985, Q1140371, Q1151067, Q119768...
1P1001P2309[Q30208840]
2P1002P2308[Q630010]
3P1002P2309[Q21514624]
4P1004P2308[Q2221906, Q23413, Q3947, Q41176, Q88291]
\n", "
" ], "text/plain": [ " node1 label node2\n", "0 P1001 P2308 [Q102496, Q105985, Q1140371, Q1151067, Q119768...\n", "1 P1001 P2309 [Q30208840]\n", "2 P1002 P2308 [Q630010]\n", "3 P1002 P2309 [Q21514624]\n", "4 P1004 P2308 [Q2221906, Q23413, Q3947, Q41176, Q88291]" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df1.head()" ] }, { "cell_type": "code", "execution_count": 8, "id": "still-trail", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
node1labelnode2
69P105P2308[Q16521]
70P105P2309[Q21503252]
71P105P2316[Q21502408]
\n", "
" ], "text/plain": [ " node1 label node2\n", "69 P105 P2308 [Q16521]\n", "70 P105 P2309 [Q21503252]\n", "71 P105 P2316 [Q21502408]" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df1[df1['node1'] == 'P105']" ] }, { "cell_type": "markdown", "id": "solid-browser", "metadata": {}, "source": [ "### Query Generator" ] }, { "cell_type": "code", "execution_count": 17, "id": "bright-impossible", "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "8774a89ab86f413f9a434b082221d163", "version_major": 2, "version_minor": 0 }, "text/plain": [ " 0%| | 0/4810 [00:00(node2), \" + parentFile + \": (node1)-[]->(nodex), P279star: (nodex)-[]->(par)' \\\n", " --where 'par in \" + str(parents).replace(\"'\",'\"') + \" \" + exceptionPart + \"' \\\n", " --return 'distinct nodeProp.id, node1 as `node1`, nodeProp.label as `label`, node2 as `node2`' \\\n", " -o ../../allConstraintsAnalysisWRemoved/\" + folderName + \"/\" + typeVal + \"/claims.type-constraints.\" + parentTitle + \".\"+ prop +\".correct.tsv \\\n", " --graph-cache ~/sqlite3_caches/const120_\" + str(fCnt) + \".sqlite3.db; \\\n", " kgtk --debug ifnotexists -i ../../propertiesSplitWRemoved/claims.\"+ prop +\".tsv \\\n", " --filter-on ../../allConstraintsAnalysisWRemoved/\" + folderName + \"/\" + typeVal + \"/claims.type-constraints.\" + parentTitle + \".\"+ prop +\".correct.tsv \\\n", " --filter-mode NONE \\\n", " --input-keys node1 label \\\n", " --filter-keys node1 label \\\n", " -o ../../allConstraintsAnalysisWRemoved/\" + folderName + \"/\" + typeVal + \"/claims.type-constraints.\" + parentTitle + \".\"+ prop +\".incorrect.tsv ) } 2>> ../../propertiesSplitWRemoved/checkViolations/exec_logs/\" + shellFileSuffix + str(fCnt) + \".txt;\")\n", "\n", " cnt += 1\n", " except:\n", " print(\"Something failed for prop:\",prop)\n", "\n", "if fOP:\n", " fOP.close()" ] }, { "cell_type": "code", "execution_count": 18, "id": "electrical-agreement", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "3743" ] }, "execution_count": 18, "metadata": {}, "output_type": "execute_result" } ], "source": [ "cnt" ] }, { "cell_type": "code", "execution_count": 19, "id": "outside-stupid", "metadata": {}, "outputs": [], "source": [ "# import os\n", "# for i in range(1,33):\n", "# os.system(\"screen -dm sh ../../propertiesSplitWRemoved/checkViolations/typeConstraintValidator\"+str(i)+\".sh\")\n", " " ] }, { "cell_type": "markdown", "id": "competitive-canvas", "metadata": {}, "source": [ "### Analyze Violations" ] }, { "cell_type": "code", "execution_count": 1, "id": "casual-perth", "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "d3adf3ce540a4ba5bff69b56a357277e", "version_major": 2, "version_minor": 0 }, "text/plain": [ "0it [00:00, ?it/s]" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "c5d144cbeb1d49598b7a30efc4bfb7af", "version_major": 2, "version_minor": 0 }, "text/plain": [ " 0%| | 0/1224 [00:00\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
correctincorrectpathsviolation_ratio
P137074[../../allConstraintsAnalysisWRemoved/typeCons...0.363636
P6686272[../../allConstraintsAnalysisWRemoved/typeCons...0.068966
P378543[../../allConstraintsAnalysisWRemoved/typeCons...0.428571
P233610[../../allConstraintsAnalysisWRemoved/typeCons...0.000000
P4602201813[../../allConstraintsAnalysisWRemoved/typeCons...0.006401
\n", "" ], "text/plain": [ " correct incorrect paths \\\n", "P1370 7 4 [../../allConstraintsAnalysisWRemoved/typeCons... \n", "P6686 27 2 [../../allConstraintsAnalysisWRemoved/typeCons... \n", "P3785 4 3 [../../allConstraintsAnalysisWRemoved/typeCons... \n", "P2336 1 0 [../../allConstraintsAnalysisWRemoved/typeCons... \n", "P4602 2018 13 [../../allConstraintsAnalysisWRemoved/typeCons... \n", "\n", " violation_ratio \n", "P1370 0.363636 \n", "P6686 0.068966 \n", "P3785 0.428571 \n", "P2336 0.000000 \n", "P4602 0.006401 " ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "typeConstDF.head()" ] }, { "cell_type": "code", "execution_count": 7, "id": "competitive-peeing", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
correctincorrectpathsviolation_ratio
P889401[../../allConstraintsAnalysisWRemoved/typeCons...1.0
P486601[../../allConstraintsAnalysisWRemoved/typeCons...1.0
P508301[../../allConstraintsAnalysisWRemoved/typeCons...1.0
P403102[../../allConstraintsAnalysisWRemoved/typeCons...1.0
P385504[../../allConstraintsAnalysisWRemoved/typeCons...1.0
P176002[../../allConstraintsAnalysisWRemoved/typeCons...1.0
P688003[../../allConstraintsAnalysisWRemoved/typeCons...1.0
P396801[../../allConstraintsAnalysisWRemoved/typeCons...1.0
P508601[../../allConstraintsAnalysisWRemoved/typeCons...1.0
P417202[../../allConstraintsAnalysisWRemoved/typeCons...1.0
P6128033[../../allConstraintsAnalysisWRemoved/typeCons...1.0
P421702[../../allConstraintsAnalysisWRemoved/typeCons...1.0
P563304[../../allConstraintsAnalysisWRemoved/typeCons...1.0
P529801[../../allConstraintsAnalysisWRemoved/typeCons...1.0
P670003[../../allConstraintsAnalysisWRemoved/typeCons...1.0
\n", "
" ], "text/plain": [ " correct incorrect paths \\\n", "P8894 0 1 [../../allConstraintsAnalysisWRemoved/typeCons... \n", "P4866 0 1 [../../allConstraintsAnalysisWRemoved/typeCons... \n", "P5083 0 1 [../../allConstraintsAnalysisWRemoved/typeCons... \n", "P4031 0 2 [../../allConstraintsAnalysisWRemoved/typeCons... \n", "P3855 0 4 [../../allConstraintsAnalysisWRemoved/typeCons... \n", "P1760 0 2 [../../allConstraintsAnalysisWRemoved/typeCons... \n", "P6880 0 3 [../../allConstraintsAnalysisWRemoved/typeCons... \n", "P3968 0 1 [../../allConstraintsAnalysisWRemoved/typeCons... \n", "P5086 0 1 [../../allConstraintsAnalysisWRemoved/typeCons... \n", "P4172 0 2 [../../allConstraintsAnalysisWRemoved/typeCons... \n", "P6128 0 33 [../../allConstraintsAnalysisWRemoved/typeCons... \n", "P4217 0 2 [../../allConstraintsAnalysisWRemoved/typeCons... \n", "P5633 0 4 [../../allConstraintsAnalysisWRemoved/typeCons... \n", "P5298 0 1 [../../allConstraintsAnalysisWRemoved/typeCons... \n", "P6700 0 3 [../../allConstraintsAnalysisWRemoved/typeCons... \n", "\n", " violation_ratio \n", "P8894 1.0 \n", "P4866 1.0 \n", "P5083 1.0 \n", "P4031 1.0 \n", "P3855 1.0 \n", "P1760 1.0 \n", "P6880 1.0 \n", "P3968 1.0 \n", "P5086 1.0 \n", "P4172 1.0 \n", "P6128 1.0 \n", "P4217 1.0 \n", "P5633 1.0 \n", "P5298 1.0 \n", "P6700 1.0 " ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "typeConstDF.sort_values(by=['violation_ratio'],ascending=False).head(15)" ] }, { "cell_type": "code", "execution_count": 8, "id": "backed-corruption", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "['../../allConstraintsAnalysisWRemoved/typeConstraint_Final/normal/claims.type-constraints.instanceOf.P4945.correct.tsv',\n", " '../../allConstraintsAnalysisWRemoved/typeConstraint_Final/normal/claims.type-constraints.instanceOf.P4945.incorrect.tsv']" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "list(typeConstDF.loc['P4945'].paths)" ] }, { "cell_type": "code", "execution_count": 11, "id": "clinical-lawsuit", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "count 3743.000000\n", "mean 0.367622\n", "std 0.367966\n", "min 0.000000\n", "25% 0.016360\n", "50% 0.240000\n", "75% 0.700000\n", "max 1.000000\n", "Name: violation_ratio, dtype: float64" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "typeConstDF['violation_ratio'].describe()" ] }, { "cell_type": "code", "execution_count": 12, "id": "wanted-domestic", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Text(0.5, 1.0, 'Type Constraint Violation Ratios')" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "typeConstDF['violation_ratio'].plot.hist(bins=100).set_title(\"Type Constraint Violation Ratios\")" ] }, { "cell_type": "code", "execution_count": 13, "id": "sufficient-hollywood", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Text(0.5, 1.0, 'Type Constraint Violation Ratios (<=0.05)')" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "typeConstDF[typeConstDF['violation_ratio'] <= 0.05].violation_ratio.plot.hist(bins=100).set_title(\"Type Constraint Violation Ratios (<=0.05)\")" ] }, { "cell_type": "code", "execution_count": 14, "id": "minor-marshall", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "No. of constraints whose violation ratio is greater than mean :0/3743\n" ] } ], "source": [ "print(f\"No. of constraints whose violation ratio is greater than mean :{sum(typeConstDF['violation_ratio'] >= 5.286054)}/{len(typeConstDF)}\")" ] }, { "cell_type": "code", "execution_count": 15, "id": "special-consensus", "metadata": {}, "outputs": [], "source": [ "# typeConstDF.sort_values(by=['incorrect'],ascending=False).head(5).paths.values" ] }, { "cell_type": "code", "execution_count": 16, "id": "excited-person", "metadata": {}, "outputs": [], "source": [ "# !cat ../../allConstraintsAnalysisWRemoved/typeConstraint/normal/claims.type-constraints.instanceOf.P953.incorrect.tsv" ] }, { "cell_type": "code", "execution_count": 17, "id": "revolutionary-violence", "metadata": {}, "outputs": [], "source": [ "for key1 in typeConstViolations.keys():\n", " typeConstViolations[key1]['correct'] = typeConstViolations[key1]['instanceOf']['correct'] + typeConstViolations[key1]['subclass']['correct'] + typeConstViolations[key1]['instanceOfOrSubclass']['correct']\n", " typeConstViolations[key1]['incorrect'] = typeConstViolations[key1]['instanceOf']['incorrect'] + typeConstViolations[key1]['subclass']['incorrect'] + typeConstViolations[key1]['instanceOfOrSubclass']['incorrect']\n", " typeConstViolations[key1]['VR'] = typeConstViolations[key1]['incorrect'] / (typeConstViolations[key1]['correct'] + typeConstViolations[key1]['incorrect'])\n", " " ] }, { "cell_type": "code", "execution_count": 18, "id": "emotional-favorite", "metadata": { "scrolled": true }, "outputs": [ { "data": { "text/plain": [ "{'mandatory': {'instanceOf': {'correct': 46445731, 'incorrect': 865083},\n", " 'subclass': {'correct': 2067, 'incorrect': 70},\n", " 'instanceOfOrSubclass': {'correct': 1735862, 'incorrect': 13873},\n", " 'propCount': 612,\n", " 'correct': 48183660,\n", " 'incorrect': 879026,\n", " 'VR': 0.017916385580683456},\n", " 'suggestion': {'instanceOf': {'correct': 74911, 'incorrect': 24201},\n", " 'subclass': {'correct': 0, 'incorrect': 0},\n", " 'instanceOfOrSubclass': {'correct': 24245, 'incorrect': 3485},\n", " 'propCount': 29,\n", " 'correct': 99156,\n", " 'incorrect': 27686,\n", " 'VR': 0.21827155043282193},\n", " 'normal': {'instanceOf': {'correct': 426732789, 'incorrect': 5965156},\n", " 'subclass': {'correct': 108191, 'incorrect': 17963},\n", " 'instanceOfOrSubclass': {'correct': 68863493, 'incorrect': 996342},\n", " 'propCount': 3102,\n", " 'correct': 495704473,\n", " 'incorrect': 6979461,\n", " 'VR': 0.01388439241426005}}" ] }, "execution_count": 18, "metadata": {}, "output_type": "execute_result" } ], "source": [ "typeConstViolations" ] }, { "cell_type": "code", "execution_count": 19, "id": "aggregate-impact", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
correctincorrectpathsviolation_ratiototal
P2093148843205927027[../../allConstraintsAnalysisWRemoved/typeCons...0.006190149770232
P147644059166208472[../../allConstraintsAnalysisWRemoved/typeCons...0.00470944267638
P57739990807165864[../../allConstraintsAnalysisWRemoved/typeCons...0.00413040156671
P143337028672112955[../../allConstraintsAnalysisWRemoved/typeCons...0.00304137141627
P121533425605316565[../../allConstraintsAnalysisWRemoved/typeCons...0.00938233742170
\n", "
" ], "text/plain": [ " correct incorrect paths \\\n", "P2093 148843205 927027 [../../allConstraintsAnalysisWRemoved/typeCons... \n", "P1476 44059166 208472 [../../allConstraintsAnalysisWRemoved/typeCons... \n", "P577 39990807 165864 [../../allConstraintsAnalysisWRemoved/typeCons... \n", "P1433 37028672 112955 [../../allConstraintsAnalysisWRemoved/typeCons... \n", "P1215 33425605 316565 [../../allConstraintsAnalysisWRemoved/typeCons... \n", "\n", " violation_ratio total \n", "P2093 0.006190 149770232 \n", "P1476 0.004709 44267638 \n", "P577 0.004130 40156671 \n", "P1433 0.003041 37141627 \n", "P1215 0.009382 33742170 " ] }, "execution_count": 19, "metadata": {}, "output_type": "execute_result" } ], "source": [ "typeConstDF['total'] = typeConstDF['correct'] + typeConstDF['incorrect']\n", "typeConstDF.sort_values(by=['total'],ascending=False).head()" ] }, { "cell_type": "markdown", "id": "bearing-kruger", "metadata": {}, "source": [ "### Find out time required" ] }, { "cell_type": "code", "execution_count": null, "id": "assumed-toner", "metadata": {}, "outputs": [], "source": [ "# from tqdm.notebook import tqdm\n", "# import os.path\n", "\n", "# cnt = 0\n", "# fCnt = 1\n", "# for prop in tqdm(df1.node1.unique()):\n", "# try:\n", "# if not(os.path.isfile(\"../../propertiesSplitWRemoved/claims.\"+ prop +\".tsv\")):\n", "# continue\n", "# relation = df1[(df1['node1'] == prop) & (df1['label'] == 'P2309')].node2.values[0][0]\n", "# type1 = df1[(df1['node1'] == prop) & (df1['label'] == 'P2316')].node2.values\n", "\n", "# parents = df1[(df1['node1'] == prop) & (df1['label'] == 'P2308')].node2.values[0]\n", "# exceptions = df1[(df1['node1'] == prop) & (df1['label'] == 'P2303')].node2.values\n", "\n", "# # print(prop, relation, type1, parents, exceptions)\n", "\n", "# if relation == \"Q21503252\":\n", "# parentFile = \"P31P279star\"\n", "# parentTitle = 'instanceOf'\n", "# elif relation == \"Q21514624\":\n", "# parentFile = \"P279star\"\n", "# parentTitle = 'subclass'\n", "# else:\n", "# parentFile = \"isastar\"\n", "# parentTitle = 'instanceOfOrSubclass'\n", "\n", "# if len(type1) != 0 and type1[0][0] == \"Q21502408\":\n", "# typeVal = \"mandatory\"\n", "# elif len(type1) != 0 and type1[0][0] == \"Q62026391\":\n", "# typeVal = \"suggestion\"\n", "# else:\n", "# typeVal = \"normal\"\n", "\n", "# if len(exceptions):\n", "# exceptionPart = \"or node1 in \" + str(exceptions[0]).replace(\"'\",'\"')\n", "# else:\n", "# exceptionPart = \"\"\n", " \n", "# if cnt % 100 == 0:\n", "# fOP = open(\"../../propertiesSplitWRemoved/checkViolations/TimedTypeConstraintValidator\" + str(fCnt) + \".sh\",\"w\")\n", "# fCnt += 1\n", " \n", "# fOP.write(\"{ time kgtk --debug query -i ../../propertiesSplitWRemoved/claims.\"+ prop +\".tsv \\\n", "# ../../wikidata-20210215/derived.\" + parentFile + \".tsv.gz \\\n", "# --match 'm: (node1)-[nodeProp]->(node2), d: (node1)-[]->(par)' \\\n", "# --where 'par in \" + str(parents).replace(\"'\",'\"') + \" \" + exceptionPart + \"' \\\n", "# --return 'nodeProp.id, node1, nodeProp.label, node2' \\\n", "# -o ../../allConstraintsAnalysisWRemoved/TimedTypeConstraint/\" + typeVal + \"/claims.type-constraints.\" + parentTitle + \".\"+ prop +\".correct.tsv \\\n", "# --graph-cache ~/sqlite3_caches/const2123_\" + str(fCnt) + \".sqlite3.db; } 2>> ../../propertiesSplitWRemoved/checkViolations/exec_logs/TimedTypeConstraint_TimedTypeConstraintValidator\" + str(fCnt) + \".txt ; \\\n", "# kgtk --debug ifnotexists -i ../../propertiesSplitWRemoved/claims.\"+ prop +\".tsv \\\n", "# --filter-on ../../allConstraintsAnalysisWRemoved/TimedTypeConstraint/\" + typeVal + \"/claims.type-constraints.\" + parentTitle + \".\"+ prop +\".correct.tsv \\\n", "# --filter-mode NONE \\\n", "# --input-keys node1 label \\\n", "# --filter-keys node1 label \\\n", "# -o ../../allConstraintsAnalysisWRemoved/TimedTypeConstraint/\" + typeVal + \"/claims.type-constraints.\" + parentTitle + \".\"+ prop +\".incorrect.tsv\\n\")\n", "\n", "# cnt += 1\n", "# except:\n", "# print(\"Something failed for prop:\",prop)\n", " " ] }, { "cell_type": "code", "execution_count": 93, "id": "veterinary-fault", "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "52944ea021934d23b3d4ab3fb1f091f7", "version_major": 2, "version_minor": 0 }, "text/plain": [ " 0%| | 0/122 [00:00" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "import seaborn as sns\n", "sns.lineplot(data=pd.Series(times)).set_title(\"Distribution of times (in s) taken for type constraint checks\")" ] }, { "cell_type": "markdown", "id": "intense-computer", "metadata": {}, "source": [ "## Value Type Constraint" ] }, { "cell_type": "markdown", "id": "animated-companion", "metadata": {}, "source": [ "### Understand Constraints File" ] }, { "cell_type": "code", "execution_count": 20, "id": "static-profit", "metadata": {}, "outputs": [], "source": [ "import pandas as pd\n", "dfValueType = pd.read_csv('../../constraintsOP/valuetypeConstraint/claims.type-constraints_all1.tsv',sep='\\t')" ] }, { "cell_type": "code", "execution_count": 21, "id": "worthy-malawi", "metadata": {}, "outputs": [], "source": [ "dfValueType = dfValueType.groupby(['node1','label']).node2.apply(lambda p: p.tolist()).reset_index()" ] }, { "cell_type": "code", "execution_count": 22, "id": "eleven-tiffany", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
node1labelnode2
0P1000P2308[Q1241356]
1P1000P2309[Q30208840]
2P1001P2308[Q20926517, Q2881272, Q2882257, Q3624078, Q389...
3P1001P2309[Q30208840]
4P1002P2308[Q2576663]
\n", "
" ], "text/plain": [ " node1 label node2\n", "0 P1000 P2308 [Q1241356]\n", "1 P1000 P2309 [Q30208840]\n", "2 P1001 P2308 [Q20926517, Q2881272, Q2882257, Q3624078, Q389...\n", "3 P1001 P2309 [Q30208840]\n", "4 P1002 P2308 [Q2576663]" ] }, "execution_count": 22, "metadata": {}, "output_type": "execute_result" } ], "source": [ "dfValueType.head()" ] }, { "cell_type": "code", "execution_count": 23, "id": "expired-stuff", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array(['P2308', 'P2309', 'P2303', 'P2316', 'P6607', 'P2304'], dtype=object)" ] }, "execution_count": 23, "metadata": {}, "output_type": "execute_result" } ], "source": [ "dfValueType['label'].unique()" ] }, { "cell_type": "code", "execution_count": 24, "id": "imposed-newsletter", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
node1labelnode2
\n", "
" ], "text/plain": [ "Empty DataFrame\n", "Columns: [node1, label, node2]\n", "Index: []" ] }, "execution_count": 24, "metadata": {}, "output_type": "execute_result" } ], "source": [ "dfValueType[dfValueType['label'] == '2316']" ] }, { "cell_type": "code", "execution_count": 25, "id": "answering-alabama", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
node1labelnode2
330P1659P2308[Q18616576]
331P1659P2309[Q21503252]
332P1659P2316[Q21502408]
\n", "
" ], "text/plain": [ " node1 label node2\n", "330 P1659 P2308 [Q18616576]\n", "331 P1659 P2309 [Q21503252]\n", "332 P1659 P2316 [Q21502408]" ] }, "execution_count": 25, "metadata": {}, "output_type": "execute_result" } ], "source": [ "dfValueType[dfValueType['node1'] == 'P1659']" ] }, { "cell_type": "code", "execution_count": 26, "id": "danish-blackberry", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
node1labelnode2
2031P991P2308[Q5, Q7210356]
2032P991P2309[Q21503252]
\n", "
" ], "text/plain": [ " node1 label node2\n", "2031 P991 P2308 [Q5, Q7210356]\n", "2032 P991 P2309 [Q21503252]" ] }, "execution_count": 26, "metadata": {}, "output_type": "execute_result" } ], "source": [ "dfValueType[dfValueType.node1 == 'P991']" ] }, { "cell_type": "markdown", "id": "digital-harvard", "metadata": {}, "source": [ "### Query Generator" ] }, { "cell_type": "code", "execution_count": 29, "id": "white-badge", "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "b96db3afdc724a0496617ce8c5838e6a", "version_major": 2, "version_minor": 0 }, "text/plain": [ " 0%| | 0/932 [00:00(node2), \" + parentFile + \": (node2)-[]->(nodex), P279star: (nodex)-[]->(par)' \\\n", " --where 'par in \" + str(parents).replace(\"'\",'\"') + \" \" + exceptionPart + \"' \\\n", " --return 'distinct nodeProp.id, node1 as `node1`, nodeProp.label as `label`, node2 as `node2`' \\\n", " -o ../../allConstraintsAnalysisWRemoved/\" + folderName + \"/\" + typeVal + \"/claims.type-constraints.\" + parentTitle + \".\"+ prop +\".correct.tsv \\\n", " --graph-cache ~/sqlite3_caches/const112_\" + str(fCnt) + \".sqlite3.db; \\\n", " kgtk --debug ifnotexists -i ../../propertiesSplitWRemoved/claims.\"+ prop +\".tsv \\\n", " --filter-on ../../allConstraintsAnalysisWRemoved/\" + folderName + \"/\" + typeVal + \"/claims.type-constraints.\" + parentTitle + \".\"+ prop +\".correct.tsv \\\n", " --filter-mode NONE \\\n", " --input-keys node1 label \\\n", " --filter-keys node1 label \\\n", " -o ../../allConstraintsAnalysisWRemoved/\" + folderName + \"/\" + typeVal + \"/claims.type-constraints.\" + parentTitle + \".\"+ prop +\".incorrect.tsv ) } 2>> ../../propertiesSplitWRemoved/checkViolations/exec_logs/\" + shellFileSuffix + str(fCnt) + \".txt;\\n\")\n", " \n", " cnt += 1\n", " except:\n", " print(\"Something failed for prop:\",prop)\n", "if fOP:\n", " fOP.close()" ] }, { "cell_type": "code", "execution_count": 30, "id": "qualified-cursor", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "904" ] }, "execution_count": 30, "metadata": {}, "output_type": "execute_result" } ], "source": [ "cnt" ] }, { "cell_type": "code", "execution_count": 31, "id": "simplified-cameroon", "metadata": {}, "outputs": [], "source": [ "# import os\n", "# for i in range(1,9):\n", "# os.system(\"screen -dm sh ../../propertiesSplitWRemoved/checkViolations/valueTypeConstraintValidator\"+str(i)+\".sh\")\n", " " ] }, { "cell_type": "markdown", "id": "spectacular-warner", "metadata": {}, "source": [ "### Analyze Violations" ] }, { "cell_type": "code", "execution_count": 20, "id": "valid-defense", "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "c502a0c289de4c23b2fa3b794a7ba160", "version_major": 2, "version_minor": 0 }, "text/plain": [ "0it [00:00, ?it/s]" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "11d7ec28a49f4cdaa883b933b055cfaa", "version_major": 2, "version_minor": 0 }, "text/plain": [ " 0%| | 0/216 [00:00\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
correctincorrectpathsviolation_ratio
P85245264[../../allConstraintsAnalysisWRemoved/valuetyp...0.000883
P85316004[../../allConstraintsAnalysisWRemoved/valuetyp...0.002494
P23024791826[../../allConstraintsAnalysisWRemoved/valuetyp...0.000542
P309275347[../../allConstraintsAnalysisWRemoved/valuetyp...0.000928
P30961119310[../../allConstraintsAnalysisWRemoved/valuetyp...0.000893
\n", "" ], "text/plain": [ " correct incorrect paths \\\n", "P852 4526 4 [../../allConstraintsAnalysisWRemoved/valuetyp... \n", "P853 1600 4 [../../allConstraintsAnalysisWRemoved/valuetyp... \n", "P2302 47918 26 [../../allConstraintsAnalysisWRemoved/valuetyp... \n", "P3092 7534 7 [../../allConstraintsAnalysisWRemoved/valuetyp... \n", "P3096 11193 10 [../../allConstraintsAnalysisWRemoved/valuetyp... \n", "\n", " violation_ratio \n", "P852 0.000883 \n", "P853 0.002494 \n", "P2302 0.000542 \n", "P3092 0.000928 \n", "P3096 0.000893 " ] }, "execution_count": 25, "metadata": {}, "output_type": "execute_result" } ], "source": [ "valTypeConstDF.head()" ] }, { "cell_type": "code", "execution_count": 26, "id": "neural-trail", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
correctincorrectpathsviolation_ratio
P50080341961[../../allConstraintsAnalysisWRemoved/valuetyp...1.0
P610409808[../../allConstraintsAnalysisWRemoved/valuetyp...1.0
P254501378[../../allConstraintsAnalysisWRemoved/valuetyp...1.0
P26680179[../../allConstraintsAnalysisWRemoved/valuetyp...1.0
P7374044[../../allConstraintsAnalysisWRemoved/valuetyp...1.0
P3028015[../../allConstraintsAnalysisWRemoved/valuetyp...1.0
P2839015[../../allConstraintsAnalysisWRemoved/valuetyp...1.0
P3027013[../../allConstraintsAnalysisWRemoved/valuetyp...1.0
P2127012[../../allConstraintsAnalysisWRemoved/valuetyp...1.0
P538010[../../allConstraintsAnalysisWRemoved/valuetyp...1.0
P224106[../../allConstraintsAnalysisWRemoved/valuetyp...1.0
P442506[../../allConstraintsAnalysisWRemoved/valuetyp...1.0
P619105[../../allConstraintsAnalysisWRemoved/valuetyp...1.0
P653305[../../allConstraintsAnalysisWRemoved/valuetyp...1.0
P653405[../../allConstraintsAnalysisWRemoved/valuetyp...1.0
\n", "
" ], "text/plain": [ " correct incorrect paths \\\n", "P5008 0 341961 [../../allConstraintsAnalysisWRemoved/valuetyp... \n", "P6104 0 9808 [../../allConstraintsAnalysisWRemoved/valuetyp... \n", "P2545 0 1378 [../../allConstraintsAnalysisWRemoved/valuetyp... \n", "P2668 0 179 [../../allConstraintsAnalysisWRemoved/valuetyp... \n", "P7374 0 44 [../../allConstraintsAnalysisWRemoved/valuetyp... \n", "P3028 0 15 [../../allConstraintsAnalysisWRemoved/valuetyp... \n", "P2839 0 15 [../../allConstraintsAnalysisWRemoved/valuetyp... \n", "P3027 0 13 [../../allConstraintsAnalysisWRemoved/valuetyp... \n", "P2127 0 12 [../../allConstraintsAnalysisWRemoved/valuetyp... \n", "P538 0 10 [../../allConstraintsAnalysisWRemoved/valuetyp... \n", "P2241 0 6 [../../allConstraintsAnalysisWRemoved/valuetyp... \n", "P4425 0 6 [../../allConstraintsAnalysisWRemoved/valuetyp... \n", "P6191 0 5 [../../allConstraintsAnalysisWRemoved/valuetyp... \n", "P6533 0 5 [../../allConstraintsAnalysisWRemoved/valuetyp... \n", "P6534 0 5 [../../allConstraintsAnalysisWRemoved/valuetyp... \n", "\n", " violation_ratio \n", "P5008 1.0 \n", "P6104 1.0 \n", "P2545 1.0 \n", "P2668 1.0 \n", "P7374 1.0 \n", "P3028 1.0 \n", "P2839 1.0 \n", "P3027 1.0 \n", "P2127 1.0 \n", "P538 1.0 \n", "P2241 1.0 \n", "P4425 1.0 \n", "P6191 1.0 \n", "P6533 1.0 \n", "P6534 1.0 " ] }, "execution_count": 26, "metadata": {}, "output_type": "execute_result" } ], "source": [ "valTypeConstDF.sort_values(by=['violation_ratio','incorrect'],ascending=False).head(15)" ] }, { "cell_type": "code", "execution_count": 27, "id": "cutting-polyester", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "count 904.000000\n", "mean 0.098485\n", "std 0.214803\n", "min 0.000000\n", "25% 0.001492\n", "50% 0.011225\n", "75% 0.063950\n", "max 1.000000\n", "Name: violation_ratio, dtype: float64" ] }, "execution_count": 27, "metadata": {}, "output_type": "execute_result" } ], "source": [ "valTypeConstDF['violation_ratio'].describe()" ] }, { "cell_type": "code", "execution_count": 28, "id": "alert-receiver", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Text(0.5, 1.0, 'Value Type Constraint Violation Ratios')" ] }, "execution_count": 28, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "valTypeConstDF['violation_ratio'].plot.hist(bins=100).set_title(\"Value Type Constraint Violation Ratios\")" ] }, { "cell_type": "code", "execution_count": 29, "id": "italian-motel", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Text(0.5, 1.0, 'Value Type Constraint Violation Ratios (<=0.04)')" ] }, "execution_count": 29, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "valTypeConstDF[valTypeConstDF['violation_ratio'] <= 0.04].violation_ratio.plot.hist(bins=100).set_title(\"Value Type Constraint Violation Ratios (<=0.04)\")" ] }, { "cell_type": "code", "execution_count": 30, "id": "prescription-ceramic", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "No. of constraints whose violation ratio is greater than mean :0/904\n" ] } ], "source": [ "print(f\"No. of constraints whose violation ratio is greater than mean :{sum(valTypeConstDF['violation_ratio'] >= 3.950680)}/{len(valTypeConstDF)}\")" ] }, { "cell_type": "code", "execution_count": 31, "id": "quiet-gardening", "metadata": { "scrolled": true }, "outputs": [], "source": [ "# valTypeConstDF.sort_values(by=['violation_ratio'],ascending=False).head().paths.values" ] }, { "cell_type": "code", "execution_count": 32, "id": "documentary-pipeline", "metadata": {}, "outputs": [], "source": [ "# !head ../../allConstraintsAnalysisWRemoved/typeConstraint/normal/claims.type-constraints.instanceOf.P7535.incorrect.tsv" ] }, { "cell_type": "code", "execution_count": 33, "id": "tutorial-mineral", "metadata": {}, "outputs": [], "source": [ "for key1 in valueTypeConstViolations.keys():\n", " valueTypeConstViolations[key1]['correct'] = valueTypeConstViolations[key1]['instanceOf']['correct'] + valueTypeConstViolations[key1]['subclass']['correct'] + valueTypeConstViolations[key1]['instanceOfOrSubclass']['correct']\n", " valueTypeConstViolations[key1]['incorrect'] = valueTypeConstViolations[key1]['instanceOf']['incorrect'] + valueTypeConstViolations[key1]['subclass']['incorrect'] + valueTypeConstViolations[key1]['instanceOfOrSubclass']['incorrect']\n", " valueTypeConstViolations[key1]['VR'] = valueTypeConstViolations[key1]['incorrect'] / (valueTypeConstViolations[key1]['correct'] + valueTypeConstViolations[key1]['incorrect'])\n", " " ] }, { "cell_type": "code", "execution_count": 34, "id": "satellite-concern", "metadata": { "scrolled": false }, "outputs": [ { "data": { "text/plain": [ "{'mandatory': {'instanceOf': {'correct': 11564885, 'incorrect': 8245},\n", " 'subclass': {'correct': 55983, 'incorrect': 28},\n", " 'instanceOfOrSubclass': {'correct': 13090, 'incorrect': 137},\n", " 'propCount': 108,\n", " 'correct': 11633958,\n", " 'incorrect': 8410,\n", " 'VR': 0.0007223616363956198},\n", " 'suggestion': {'instanceOf': {'correct': 46189, 'incorrect': 659},\n", " 'subclass': {'correct': 127, 'incorrect': 20},\n", " 'instanceOfOrSubclass': {'correct': 0, 'incorrect': 0},\n", " 'propCount': 5,\n", " 'correct': 46316,\n", " 'incorrect': 679,\n", " 'VR': 0.01444834556867752},\n", " 'normal': {'instanceOf': {'correct': 94112173, 'incorrect': 842434},\n", " 'subclass': {'correct': 4674914, 'incorrect': 9777},\n", " 'instanceOfOrSubclass': {'correct': 77686561, 'incorrect': 289299},\n", " 'propCount': 791,\n", " 'correct': 176473648,\n", " 'incorrect': 1141510,\n", " 'VR': 0.006426872643381034}}" ] }, "execution_count": 34, "metadata": {}, "output_type": "execute_result" } ], "source": [ "valueTypeConstViolations" ] }, { "cell_type": "markdown", "id": "traditional-shakespeare", "metadata": {}, "source": [ "### Find out time required" ] }, { "cell_type": "code", "execution_count": 78, "id": "spoken-symphony", "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "878ab763f4fa4cb9a540c8bf86ea76ec", "version_major": 2, "version_minor": 0 }, "text/plain": [ " 0%| | 0/297 [00:00" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "import seaborn as sns\n", "sns.lineplot(data=pd.Series(times)).set_title(\"Distribution of times (in s) taken for value type constraint checks\")" ] }, { "cell_type": "markdown", "id": "motivated-sympathy", "metadata": {}, "source": [ "## Item Requires Statement Constraint" ] }, { "cell_type": "markdown", "id": "chubby-glass", "metadata": {}, "source": [ "### Understand Constraints File" ] }, { "cell_type": "code", "execution_count": 35, "id": "funny-batch", "metadata": {}, "outputs": [], "source": [ "import pandas as pd\n", "import math\n", "dfItemRequires = pd.read_csv('../../constraintsOP/itemRequiresConstraint/claims.type-constraints_all.tsv',sep='\\t')" ] }, { "cell_type": "code", "execution_count": 36, "id": "original-expression", "metadata": {}, "outputs": [], "source": [ "dfItemRequires = dfItemRequires.groupby(['id','node1','label']).node2.apply(lambda p: p.tolist()).reset_index()" ] }, { "cell_type": "code", "execution_count": 37, "id": "adequate-symphony", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array(['P2306', 'P2305', 'P2316', 'P2304', 'P2303', 'P6607', 'P4155',\n", " 'P31', 'P2916', 'P4680', 'P2308'], dtype=object)" ] }, "execution_count": 37, "metadata": {}, "output_type": "execute_result" } ], "source": [ "dfItemRequires['label'].unique()" ] }, { "cell_type": "code", "execution_count": 38, "id": "infrared-canal", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "P2306 7182\n", "P2305 2540\n", "P2316 2523\n", "P2303 422\n", "P2304 14\n", "P6607 14\n", "P2916 5\n", "P4680 2\n", "P4155 1\n", "P2308 1\n", "P31 1\n", "Name: label, dtype: int64" ] }, "execution_count": 38, "metadata": {}, "output_type": "execute_result" } ], "source": [ "dfItemRequires['label'].value_counts()" ] }, { "cell_type": "code", "execution_count": 39, "id": "focused-karen", "metadata": {}, "outputs": [], "source": [ "#Reference: https://stackoverflow.com/a/17298454\n", "# dfItemRequires.pivot_table('node2', ['node1', 'id'], 'label')\n", "dfItemRequires = dfItemRequires.pivot(index=['node1','id'], columns='label', values='node2')" ] }, { "cell_type": "code", "execution_count": 40, "id": "private-boundary", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
labelP2303P2304P2305P2306P2308P2316P2916P31P4155P4680P6607
node1id
P1006P1006-P2302-Q21503247-0451ef47-0NaNNaNNaN[P214]NaNNaNNaNNaNNaNNaNNaN
P1010P1010-P2302-Q21503247-56183614-0NaNNaNNaN[P31]NaNNaNNaNNaNNaNNaNNaN
P1010-P2302-Q21503247-fd256eaf-0NaNNaN[Q794][P17]NaN[Q21502408]NaNNaNNaNNaNNaN
P1015P1015-P2302-Q21503247-20e3bfc5-0NaNNaNNaN[P31]NaNNaNNaNNaNNaNNaNNaN
P1017P1017-P2302-Q21503247-bbac2ce3-0NaNNaNNaN[P214]NaNNaNNaNNaNNaNNaNNaN
\n", "
" ], "text/plain": [ "label P2303 P2304 P2305 P2306 P2308 \\\n", "node1 id \n", "P1006 P1006-P2302-Q21503247-0451ef47-0 NaN NaN NaN [P214] NaN \n", "P1010 P1010-P2302-Q21503247-56183614-0 NaN NaN NaN [P31] NaN \n", " P1010-P2302-Q21503247-fd256eaf-0 NaN NaN [Q794] [P17] NaN \n", "P1015 P1015-P2302-Q21503247-20e3bfc5-0 NaN NaN NaN [P31] NaN \n", "P1017 P1017-P2302-Q21503247-bbac2ce3-0 NaN NaN NaN [P214] NaN \n", "\n", "label P2316 P2916 P31 P4155 P4680 \\\n", "node1 id \n", "P1006 P1006-P2302-Q21503247-0451ef47-0 NaN NaN NaN NaN NaN \n", "P1010 P1010-P2302-Q21503247-56183614-0 NaN NaN NaN NaN NaN \n", " P1010-P2302-Q21503247-fd256eaf-0 [Q21502408] NaN NaN NaN NaN \n", "P1015 P1015-P2302-Q21503247-20e3bfc5-0 NaN NaN NaN NaN NaN \n", "P1017 P1017-P2302-Q21503247-bbac2ce3-0 NaN NaN NaN NaN NaN \n", "\n", "label P6607 \n", "node1 id \n", "P1006 P1006-P2302-Q21503247-0451ef47-0 NaN \n", "P1010 P1010-P2302-Q21503247-56183614-0 NaN \n", " P1010-P2302-Q21503247-fd256eaf-0 NaN \n", "P1015 P1015-P2302-Q21503247-20e3bfc5-0 NaN \n", "P1017 P1017-P2302-Q21503247-bbac2ce3-0 NaN " ] }, "execution_count": 40, "metadata": {}, "output_type": "execute_result" } ], "source": [ "dfItemRequires.head()" ] }, { "cell_type": "code", "execution_count": 41, "id": "conceptual-schedule", "metadata": {}, "outputs": [], "source": [ "dfItemRequires = dfItemRequires.droplevel(1)" ] }, { "cell_type": "code", "execution_count": 42, "id": "third-hayes", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
labelP2303P2304P2305P2306P2308P2316P2916P31P4155P4680P6607
node1
P1006NaNNaNNaN[P214]NaNNaNNaNNaNNaNNaNNaN
P1010NaNNaNNaN[P31]NaNNaNNaNNaNNaNNaNNaN
P1010NaNNaN[Q794][P17]NaN[Q21502408]NaNNaNNaNNaNNaN
P1015NaNNaNNaN[P31]NaNNaNNaNNaNNaNNaNNaN
P1017NaNNaNNaN[P214]NaNNaNNaNNaNNaNNaNNaN
\n", "
" ], "text/plain": [ "label P2303 P2304 P2305 P2306 P2308 P2316 P2916 P31 P4155 P4680 \\\n", "node1 \n", "P1006 NaN NaN NaN [P214] NaN NaN NaN NaN NaN NaN \n", "P1010 NaN NaN NaN [P31] NaN NaN NaN NaN NaN NaN \n", "P1010 NaN NaN [Q794] [P17] NaN [Q21502408] NaN NaN NaN NaN \n", "P1015 NaN NaN NaN [P31] NaN NaN NaN NaN NaN NaN \n", "P1017 NaN NaN NaN [P214] NaN NaN NaN NaN NaN NaN \n", "\n", "label P6607 \n", "node1 \n", "P1006 NaN \n", "P1010 NaN \n", "P1010 NaN \n", "P1015 NaN \n", "P1017 NaN " ] }, "execution_count": 42, "metadata": {}, "output_type": "execute_result" } ], "source": [ "dfItemRequires.head()" ] }, { "cell_type": "markdown", "id": "shaped-companion", "metadata": {}, "source": [ "However, there is one anomaly where the property does not have a co-dependency constraint associated with it, but still has a link to this constraint." ] }, { "cell_type": "code", "execution_count": 43, "id": "indian-journal", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
labelP2303P2304P2305P2306P2308P2316P2916P31P4155P4680P6607
node1
P5447NaNNaN[Q55426051][P5446]NaNNaNNaNNaNNaN[Q46466783]NaN
P5448NaNNaN[Q55426051][P5446]NaNNaNNaNNaNNaN[Q46466783]NaN
\n", "
" ], "text/plain": [ "label P2303 P2304 P2305 P2306 P2308 P2316 P2916 P31 P4155 \\\n", "node1 \n", "P5447 NaN NaN [Q55426051] [P5446] NaN NaN NaN NaN NaN \n", "P5448 NaN NaN [Q55426051] [P5446] NaN NaN NaN NaN NaN \n", "\n", "label P4680 P6607 \n", "node1 \n", "P5447 [Q46466783] NaN \n", "P5448 [Q46466783] NaN " ] }, "execution_count": 43, "metadata": {}, "output_type": "execute_result" } ], "source": [ "dfItemRequires[dfItemRequires['P4680'].apply(lambda p: type(p) == list)]" ] }, { "cell_type": "code", "execution_count": 44, "id": "discrete-template", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
labelP2303P2304P2305P2306P2308P2316P2916P31P4155P4680P6607
node1
P1010NaNNaN[Q794][P17]NaN[Q21502408]NaNNaNNaNNaNNaN
P1045NaNNaN[Q20808382, Q28218485, Q3044918][P39]NaNNaNNaNNaNNaNNaNNaN
P1045NaNNaN[Q82955][P106]NaNNaNNaNNaNNaNNaNNaN
P1045NaNNaN[Q5][P31]NaN[Q21502408]NaNNaNNaNNaNNaN
P1045NaNNaN[Q142, Q71084][P27]NaNNaNNaNNaNNaNNaNNaN
....................................
P980NaNNaN[Q34][P17]NaN[Q21502408]NaNNaNNaNNaNNaN
P981NaNNaN[Q55][P17]NaN[Q21502408]NaNNaNNaNNaNNaN
P981NaNNaN[Q1852859][P31]NaNNaNNaNNaNNaNNaNNaN
P988NaNNaN[Q928][P17]NaN[Q21502408]NaNNaNNaNNaNNaN
P990[Q49678, Q853715]NaN[Q5][P31]NaNNaNNaNNaNNaNNaNNaN
\n", "

2540 rows × 11 columns

\n", "
" ], "text/plain": [ "label P2303 P2304 P2305 P2306 \\\n", "node1 \n", "P1010 NaN NaN [Q794] [P17] \n", "P1045 NaN NaN [Q20808382, Q28218485, Q3044918] [P39] \n", "P1045 NaN NaN [Q82955] [P106] \n", "P1045 NaN NaN [Q5] [P31] \n", "P1045 NaN NaN [Q142, Q71084] [P27] \n", "... ... ... ... ... \n", "P980 NaN NaN [Q34] [P17] \n", "P981 NaN NaN [Q55] [P17] \n", "P981 NaN NaN [Q1852859] [P31] \n", "P988 NaN NaN [Q928] [P17] \n", "P990 [Q49678, Q853715] NaN [Q5] [P31] \n", "\n", "label P2308 P2316 P2916 P31 P4155 P4680 P6607 \n", "node1 \n", "P1010 NaN [Q21502408] NaN NaN NaN NaN NaN \n", "P1045 NaN NaN NaN NaN NaN NaN NaN \n", "P1045 NaN NaN NaN NaN NaN NaN NaN \n", "P1045 NaN [Q21502408] NaN NaN NaN NaN NaN \n", "P1045 NaN NaN NaN NaN NaN NaN NaN \n", "... ... ... ... ... ... ... ... \n", "P980 NaN [Q21502408] NaN NaN NaN NaN NaN \n", "P981 NaN [Q21502408] NaN NaN NaN NaN NaN \n", "P981 NaN NaN NaN NaN NaN NaN NaN \n", "P988 NaN [Q21502408] NaN NaN NaN NaN NaN \n", "P990 NaN NaN NaN NaN NaN NaN NaN \n", "\n", "[2540 rows x 11 columns]" ] }, "execution_count": 44, "metadata": {}, "output_type": "execute_result" } ], "source": [ "dfItemRequires[dfItemRequires['P2305'].apply(lambda p: type(p) == list)]" ] }, { "cell_type": "markdown", "id": "forced-christmas", "metadata": {}, "source": [ "### Query Generator" ] }, { "cell_type": "markdown", "id": "acquired-floor", "metadata": {}, "source": [ "#### Version 1 - Mandatory + Suggestion + Normal" ] }, { "cell_type": "code", "execution_count": 45, "id": "turkish-establishment", "metadata": { "scrolled": true }, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "58498333945f45ad9e343d82c18fdfb6", "version_major": 2, "version_minor": 0 }, "text/plain": [ " 0%| | 0/3147 [00:00(node2)\"]\n", " commandWhere = \" --where '\"\n", " commandWhere = []\n", " \n", " # Version 1 <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<\n", " constSet = mandatory + suggestion + normal\n", " \n", " if len(constSet) == 0:\n", " continue\n", " excptns = set()\n", " for (rowNo, constraint) in enumerate(constSet):\n", " prop2 = constraint['P2306']\n", " \n", " if type(prop2) != list:\n", " continue\n", " prop2 = prop2[0]\n", " \n", " if not(os.path.isfile(\"../../propertiesSplitWRemoved/claims.\"+ prop2 +\".tsv\")):\n", " print(f\"File: ../../propertiesSplitWRemoved/claims.{prop2}.tsv does not exist\")\n", " continue\n", " \n", " commandOtherFiles += \"../../propertiesSplitWRemoved/claims.\"+ prop2 +\".tsv \"\n", " if type(constraint['P2303']) == list: # Exceptions present\n", " if len(excptns) == 0:\n", " excptns = set(constraint['P2303'])\n", " else:\n", " excptns = excptns.intersection(set(constraint['P2303']))\n", " if type(constraint['P2305']) == list:\n", " commandMatchMoreFiles += [f\"{prop2}: (node1)-[]->(node2_{prop2})\"]\n", " commandWhere += [\"node2_\" + prop2 + \" in \" + str(list(constraint['P2305'])).replace(\"'\",'\"')]\n", " else:\n", " commandMatchMoreFiles += [f\"{prop2}: (node1)-[]->()\"]\n", "# print(commandMatchMoreFiles)\n", " if len(commandWhere) == 0:\n", " command = commandInit + commandOtherFiles + commandMatch + (\", \".join(commandMatchMoreFiles)) + \"'\"\n", " else:\n", " command = commandInit + commandOtherFiles + commandMatch + (\", \".join(commandMatchMoreFiles)) + \"'\" + \" --where '\"+(\" and \".join(commandWhere))+\"'\"\n", " \n", " if cnt % 100 == 0:\n", " if fOP:\n", " fOP.close()\n", " fCnt += 1\n", " fOP = open(\"../../propertiesSplitWRemoved/checkViolations/\" + shellFileSuffix + str(fCnt) + \".sh\",\"w\")\n", " \n", " if len(excptns) == 0:\n", " commandRest = \" --return 'distinct nodeProp.id, node1 as `node1`, nodeProp.label as `label`, node2 as `node2`' \\\n", " -o ../../allConstraintsAnalysisWRemoved/\" + folderName + \"/\" + subFolderName + \"/claims.\"+ prop +\".correct.tsv \\\n", " --graph-cache ~/sqlite3_caches/\" + str(graph_cache_file_prefix) + str(fCnt) + \".sqlite3.db; \\\n", " kgtk --debug ifnotexists -i ../../propertiesSplitWRemoved/claims.\"+ prop +\".tsv \\\n", " --filter-on ../../allConstraintsAnalysisWRemoved/\" + folderName + \"/\" + subFolderName + \"/claims.\"+ prop +\".correct.tsv \\\n", " --filter-mode NONE \\\n", " --input-keys node1 label \\\n", " --filter-keys node1 label \"\n", " \n", " commandOPFile = \"-o ../../allConstraintsAnalysisWRemoved/\" + folderName + \"/\" + subFolderName + \"/claims.\"+ prop +\".\"\n", " \n", " command += commandRest + commandOPFile + \"incorrect.tsv ) } 2>> ../../propertiesSplitWRemoved/checkViolations/exec_logs/timeLog_\" + shellFileSuffix + str(fCnt) + \".txt;\\n\"\n", " fOP.write(command)\n", " else:\n", " commandRest = \" --return 'distinct nodeProp.id, node1 as `node1`, nodeProp.label as `label`, node2 as `node2`' \\\n", " -o ../../allConstraintsAnalysisWRemoved/\" + folderName + \"/\" + subFolderName + \"/claims.\"+ prop +\".correct_wo_exceptions.tsv \\\n", " --graph-cache ~/sqlite3_caches/\" + str(graph_cache_file_prefix) + str(fCnt) + \".sqlite3.db; \\\n", " kgtk --debug ifnotexists -i ../../propertiesSplitWRemoved/claims.\"+ prop +\".tsv \\\n", " --filter-on ../../allConstraintsAnalysisWRemoved/\" + folderName + \"/\" + subFolderName + \"/claims.\"+ prop +\".correct_wo_exceptions.tsv \\\n", " --filter-mode NONE \\\n", " --input-keys node1 label \\\n", " --filter-keys node1 label \"\n", " \n", " commandOPFile = \"-o ../../allConstraintsAnalysisWRemoved/\" + folderName + \"/\" + subFolderName + \"/claims.\"+ prop +\".\"\n", " \n", " command += commandRest + commandOPFile + \"incorrect_wo_exceptions.tsv\\n\"\n", " fOP.write(command)\n", " \n", " command = \" kgtk --debug query -i ../../allConstraintsAnalysisWRemoved/\" + folderName + \"/\" + subFolderName + \"/claims.\" + prop + \".incorrect_wo_exceptions.tsv \\\n", " --match '(node1)-[]->()' --where 'node1 in \" + str(list(excptns)).replace(\"'\",'\"') + \"' \\\n", " -o ../../allConstraintsAnalysisWRemoved/\" + folderName + \"/\" + subFolderName + \"/claims.\" + prop + \".incorrect_w_exceptions.tsv \\\n", " --graph-cache ~/sqlite3_caches/\" + str(graph_cache_file_prefix) + str(fCnt) + \".sqlite3.db; \"\n", " fOP.write(command)\n", " \n", " command = \" kgtk --debug ifnotexists -i ../../allConstraintsAnalysisWRemoved/\" + folderName + \"/\" + subFolderName + \"/claims.\" + prop + \".incorrect_wo_exceptions.tsv \\\n", " --filter-on ../../allConstraintsAnalysisWRemoved/\" + folderName + \"/\" + subFolderName + \"/claims.\" + prop + \".incorrect_w_exceptions.tsv \\\n", " --filter-mode NONE \\\n", " --input-keys node1 label \\\n", " --filter-keys node1 label \\\n", " -o ../../allConstraintsAnalysisWRemoved/\" + folderName + \"/\" + subFolderName + \"/claims.\"+ prop +\".incorrect.tsv; \"\n", " fOP.write(command)\n", " \n", " command = \" kgtk cat -i ../../allConstraintsAnalysisWRemoved/\" + folderName + \"/\" + subFolderName + \"/claims.\"+ prop +\".correct_wo_exceptions.tsv \\\n", " ../../allConstraintsAnalysisWRemoved/\" + folderName + \"/\" + subFolderName + \"/claims.\"+ prop +\".incorrect_w_exceptions.tsv \\\n", " -o ../../allConstraintsAnalysisWRemoved/\" + folderName + \"/\" + subFolderName + \"/claims.\"+ prop +\".correct.tsv ) } 2>> ../../propertiesSplitWRemoved/checkViolations/exec_logs/timeLog_\" + shellFileSuffix + str(fCnt) + \".txt; \\n\"\n", " fOP.write(command)\n", " \n", " \n", " cnt += 1\n", "# except:\n", "# print(\"Something failed for prop:\",prop)\n", "if fOP:\n", " fOP.close()" ] }, { "cell_type": "code", "execution_count": 46, "id": "peripheral-herald", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "2538" ] }, "execution_count": 46, "metadata": {}, "output_type": "execute_result" } ], "source": [ "cnt" ] }, { "cell_type": "code", "execution_count": 47, "id": "incorporated-logistics", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "26" ] }, "execution_count": 47, "metadata": {}, "output_type": "execute_result" } ], "source": [ "fCnt" ] }, { "cell_type": "code", "execution_count": 123, "id": "welcome-welding", "metadata": {}, "outputs": [], "source": [ "# from tqdm.notebook import tqdm\n", "# import os.path\n", "# import os\n", "# folderName = 'codependencyConstraint'\n", "# for prop in tqdm(dfItemRequires.index.unique()):\n", "# for subFolderName in ['Mand_Sugg_Normal', 'Mand_Normal', 'Mand', 'Normal']:\n", "# if os.path.isfile(\"../../allConstraintsAnalysisWRemoved/\" + folderName + \"/\" + subFolderName + \"/claims.\"+ prop +\".correct.tsv\") and \\\n", "# os.path.isfile(\"../../allConstraintsAnalysisWRemoved/\" + folderName + \"/\" + subFolderName + \"/claims.\"+ prop +\".incorrect_w_exceptions.tsv\"):\n", "# os.system(\"kgtk cat -i ../../allConstraintsAnalysisWRemoved/\" + folderName + \"/\" + subFolderName + \"/claims.\"+ prop +\".correct.tsv \\\n", "# ../../allConstraintsAnalysisWRemoved/\" + folderName + \"/\" + subFolderName + \"/claims.\"+ prop +\".incorrect_w_exceptions.tsv \\\n", "# -o ../../allConstraintsAnalysisWRemoved/\" + folderName + \"/\" + subFolderName + \"/claims.\"+ prop +\".correct_w_exceptions.tsv\")" ] }, { "cell_type": "code", "execution_count": 48, "id": "optimum-blowing", "metadata": {}, "outputs": [], "source": [ "# import os\n", "# for i in range(1,28):\n", "# os.system(\"screen -dm sh ../../propertiesSplitWRemoved/checkViolations/codepConst_MSN_Validator_new2_\"+str(i)+\".sh\")" ] }, { "cell_type": "markdown", "id": "indoor-verse", "metadata": {}, "source": [ "#### Version 2 - Mandatory + Normal" ] }, { "cell_type": "code", "execution_count": 51, "id": "furnished-paradise", "metadata": { "scrolled": true }, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "1f146f81033b43b7af22588beedb3d15", "version_major": 2, "version_minor": 0 }, "text/plain": [ " 0%| | 0/3147 [00:00(node2)\"]\n", " commandWhere = \" --where '\"\n", " commandWhere = []\n", " \n", " # Version 1 <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<\n", " constSet = mandatory + normal\n", " \n", " if len(constSet) == 0:\n", " continue\n", " excptns = set()\n", " for (rowNo, constraint) in enumerate(constSet):\n", " prop2 = constraint['P2306']\n", " \n", " if type(prop2) != list:\n", " continue\n", " prop2 = prop2[0]\n", " \n", " if not(os.path.isfile(\"../../propertiesSplitWRemoved/claims.\"+ prop2 +\".tsv\")):\n", " print(f\"File: ../../propertiesSplitWRemoved/claims.{prop2}.tsv does not exist\")\n", " continue\n", " \n", " commandOtherFiles += \"../../propertiesSplitWRemoved/claims.\"+ prop2 +\".tsv \"\n", " if type(constraint['P2303']) == list: # Exceptions present\n", " if len(excptns) == 0:\n", " excptns = set(constraint['P2303'])\n", " else:\n", " excptns = excptns.intersection(set(constraint['P2303']))\n", " if type(constraint['P2305']) == list:\n", " commandMatchMoreFiles += [f\"{prop2}: (node1)-[]->(node2_{prop2})\"]\n", " commandWhere += [\"node2_\" + prop2 + \" in \" + str(list(constraint['P2305'])).replace(\"'\",'\"')]\n", " else:\n", " commandMatchMoreFiles += [f\"{prop2}: (node1)-[]->()\"]\n", "# print(commandMatchMoreFiles)\n", " if len(commandWhere) == 0:\n", " command = commandInit + commandOtherFiles + commandMatch + (\", \".join(commandMatchMoreFiles)) + \"'\"\n", " else:\n", " command = commandInit + commandOtherFiles + commandMatch + (\", \".join(commandMatchMoreFiles)) + \"'\" + \" --where '\"+(\" and \".join(commandWhere))+\"'\"\n", " \n", " if cnt % 100 == 0:\n", " if fOP:\n", " fOP.close()\n", " fCnt += 1\n", " fOP = open(\"../../propertiesSplitWRemoved/checkViolations/\" + shellFileSuffix + str(fCnt) + \".sh\",\"w\")\n", " \n", " if len(excptns) == 0:\n", " commandRest = \" --return 'distinct nodeProp.id, node1 as `node1`, nodeProp.label as `label`, node2 as `node2`' \\\n", " -o ../../allConstraintsAnalysisWRemoved/\" + folderName + \"/\" + subFolderName + \"/claims.\"+ prop +\".correct.tsv \\\n", " --graph-cache ~/sqlite3_caches/\" + str(graph_cache_file_prefix) + str(fCnt) + \".sqlite3.db; \\\n", " kgtk --debug ifnotexists -i ../../propertiesSplitWRemoved/claims.\"+ prop +\".tsv \\\n", " --filter-on ../../allConstraintsAnalysisWRemoved/\" + folderName + \"/\" + subFolderName + \"/claims.\"+ prop +\".correct.tsv \\\n", " --filter-mode NONE \\\n", " --input-keys node1 label \\\n", " --filter-keys node1 label \"\n", " \n", " commandOPFile = \"-o ../../allConstraintsAnalysisWRemoved/\" + folderName + \"/\" + subFolderName + \"/claims.\"+ prop +\".\"\n", " \n", " command += commandRest + commandOPFile + \"incorrect.tsv ) } 2>> ../../propertiesSplitWRemoved/checkViolations/exec_logs/timeLog_\" + shellFileSuffix + str(fCnt) + \".txt;\\n\"\n", " fOP.write(command)\n", " else:\n", " commandRest = \" --return 'distinct nodeProp.id, node1 as `node1`, nodeProp.label as `label`, node2 as `node2`' \\\n", " -o ../../allConstraintsAnalysisWRemoved/\" + folderName + \"/\" + subFolderName + \"/claims.\"+ prop +\".correct_wo_exceptions.tsv \\\n", " --graph-cache ~/sqlite3_caches/\" + str(graph_cache_file_prefix) + str(fCnt) + \".sqlite3.db; \\\n", " kgtk --debug ifnotexists -i ../../propertiesSplitWRemoved/claims.\"+ prop +\".tsv \\\n", " --filter-on ../../allConstraintsAnalysisWRemoved/\" + folderName + \"/\" + subFolderName + \"/claims.\"+ prop +\".correct_wo_exceptions.tsv \\\n", " --filter-mode NONE \\\n", " --input-keys node1 label \\\n", " --filter-keys node1 label \"\n", " \n", " commandOPFile = \"-o ../../allConstraintsAnalysisWRemoved/\" + folderName + \"/\" + subFolderName + \"/claims.\"+ prop +\".\"\n", " \n", " command += commandRest + commandOPFile + \"incorrect_wo_exceptions.tsv\\n\"\n", " fOP.write(command)\n", " \n", " command = \" kgtk --debug query -i ../../allConstraintsAnalysisWRemoved/\" + folderName + \"/\" + subFolderName + \"/claims.\" + prop + \".incorrect_wo_exceptions.tsv \\\n", " --match '(node1)-[]->()' --where 'node1 in \" + str(list(excptns)).replace(\"'\",'\"') + \"' \\\n", " -o ../../allConstraintsAnalysisWRemoved/\" + folderName + \"/\" + subFolderName + \"/claims.\" + prop + \".incorrect_w_exceptions.tsv \\\n", " --graph-cache ~/sqlite3_caches/\" + str(graph_cache_file_prefix) + str(fCnt) + \".sqlite3.db; \"\n", " fOP.write(command)\n", " \n", " command = \" kgtk --debug ifnotexists -i ../../allConstraintsAnalysisWRemoved/\" + folderName + \"/\" + subFolderName + \"/claims.\" + prop + \".incorrect_wo_exceptions.tsv \\\n", " --filter-on ../../allConstraintsAnalysisWRemoved/\" + folderName + \"/\" + subFolderName + \"/claims.\" + prop + \".incorrect_w_exceptions.tsv \\\n", " --filter-mode NONE \\\n", " --input-keys node1 label \\\n", " --filter-keys node1 label \\\n", " -o ../../allConstraintsAnalysisWRemoved/\" + folderName + \"/\" + subFolderName + \"/claims.\"+ prop +\".incorrect.tsv; \"\n", " fOP.write(command)\n", " \n", " command = \" kgtk cat -i ../../allConstraintsAnalysisWRemoved/\" + folderName + \"/\" + subFolderName + \"/claims.\"+ prop +\".correct_wo_exceptions.tsv \\\n", " ../../allConstraintsAnalysisWRemoved/\" + folderName + \"/\" + subFolderName + \"/claims.\"+ prop +\".incorrect_w_exceptions.tsv \\\n", " -o ../../allConstraintsAnalysisWRemoved/\" + folderName + \"/\" + subFolderName + \"/claims.\"+ prop +\".correct.tsv ) } 2>> ../../propertiesSplitWRemoved/checkViolations/exec_logs/timeLog_\" + shellFileSuffix + str(fCnt) + \".txt; \\n\"\n", " fOP.write(command)\n", " \n", " \n", " cnt += 1\n", "# except:\n", "# print(\"Something failed for prop:\",prop)\n", "if fOP:\n", " fOP.close()" ] }, { "cell_type": "code", "execution_count": 52, "id": "searching-individual", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "2419" ] }, "execution_count": 52, "metadata": {}, "output_type": "execute_result" } ], "source": [ "cnt" ] }, { "cell_type": "code", "execution_count": 53, "id": "silver-clarity", "metadata": {}, "outputs": [], "source": [ "# import os\n", "# for i in range(1,26):\n", "# os.system(\"screen -dm sh ../../propertiesSplitWRemoved/checkViolations/codepConst_MN_Validator_new2_\"+str(i)+\".sh\")" ] }, { "cell_type": "markdown", "id": "prescription-access", "metadata": {}, "source": [ "#### Version 3 - Mandatory" ] }, { "cell_type": "code", "execution_count": 54, "id": "married-porter", "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "932a7247db9b47568838f6219c1e2119", "version_major": 2, "version_minor": 0 }, "text/plain": [ " 0%| | 0/3147 [00:00(node2)\"]\n", " commandWhere = \" --where '\"\n", " commandWhere = []\n", " \n", " # Version 1 <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<\n", " constSet = mandatory\n", " \n", " if len(constSet) == 0:\n", " continue\n", " excptns = set()\n", " for (rowNo, constraint) in enumerate(constSet):\n", " prop2 = constraint['P2306']\n", " \n", " if type(prop2) != list:\n", " continue\n", " prop2 = prop2[0]\n", " \n", " if not(os.path.isfile(\"../../propertiesSplitWRemoved/claims.\"+ prop2 +\".tsv\")):\n", " print(f\"File: ../../propertiesSplitWRemoved/claims.{prop2}.tsv does not exist\")\n", " continue\n", " \n", " commandOtherFiles += \"../../propertiesSplitWRemoved/claims.\"+ prop2 +\".tsv \"\n", " if type(constraint['P2303']) == list: # Exceptions present\n", " if len(excptns) == 0:\n", " excptns = set(constraint['P2303'])\n", " else:\n", " excptns = excptns.intersection(set(constraint['P2303']))\n", " if type(constraint['P2305']) == list:\n", " commandMatchMoreFiles += [f\"{prop2}: (node1)-[]->(node2_{prop2})\"]\n", " commandWhere += [\"node2_\" + prop2 + \" in \" + str(list(constraint['P2305'])).replace(\"'\",'\"')]\n", " else:\n", " commandMatchMoreFiles += [f\"{prop2}: (node1)-[]->()\"]\n", "# print(commandMatchMoreFiles)\n", " if len(commandWhere) == 0:\n", " command = commandInit + commandOtherFiles + commandMatch + (\", \".join(commandMatchMoreFiles)) + \"'\"\n", " else:\n", " command = commandInit + commandOtherFiles + commandMatch + (\", \".join(commandMatchMoreFiles)) + \"'\" + \" --where '\"+(\" and \".join(commandWhere))+\"'\"\n", " \n", " if cnt % 100 == 0:\n", " if fOP:\n", " fOP.close()\n", " fCnt += 1\n", " fOP = open(\"../../propertiesSplitWRemoved/checkViolations/\" + shellFileSuffix + str(fCnt) + \".sh\",\"w\")\n", " \n", " if len(excptns) == 0:\n", " commandRest = \" --return 'distinct nodeProp.id, node1 as `node1`, nodeProp.label as `label`, node2 as `node2`' \\\n", " -o ../../allConstraintsAnalysisWRemoved/\" + folderName + \"/\" + subFolderName + \"/claims.\"+ prop +\".correct.tsv \\\n", " --graph-cache ~/sqlite3_caches/\" + str(graph_cache_file_prefix) + str(fCnt) + \".sqlite3.db; \\\n", " kgtk --debug ifnotexists -i ../../propertiesSplitWRemoved/claims.\"+ prop +\".tsv \\\n", " --filter-on ../../allConstraintsAnalysisWRemoved/\" + folderName + \"/\" + subFolderName + \"/claims.\"+ prop +\".correct.tsv \\\n", " --filter-mode NONE \\\n", " --input-keys node1 label \\\n", " --filter-keys node1 label \"\n", " \n", " commandOPFile = \"-o ../../allConstraintsAnalysisWRemoved/\" + folderName + \"/\" + subFolderName + \"/claims.\"+ prop +\".\"\n", " \n", " command += commandRest + commandOPFile + \"incorrect.tsv ) } 2>> ../../propertiesSplitWRemoved/checkViolations/exec_logs/timeLog_\" + shellFileSuffix + str(fCnt) + \".txt;\\n\"\n", " fOP.write(command)\n", " else:\n", " commandRest = \" --return 'distinct nodeProp.id, node1 as `node1`, nodeProp.label as `label`, node2 as `node2`' \\\n", " -o ../../allConstraintsAnalysisWRemoved/\" + folderName + \"/\" + subFolderName + \"/claims.\"+ prop +\".correct_wo_exceptions.tsv \\\n", " --graph-cache ~/sqlite3_caches/\" + str(graph_cache_file_prefix) + str(fCnt) + \".sqlite3.db; \\\n", " kgtk --debug ifnotexists -i ../../propertiesSplitWRemoved/claims.\"+ prop +\".tsv \\\n", " --filter-on ../../allConstraintsAnalysisWRemoved/\" + folderName + \"/\" + subFolderName + \"/claims.\"+ prop +\".correct_wo_exceptions.tsv \\\n", " --filter-mode NONE \\\n", " --input-keys node1 label \\\n", " --filter-keys node1 label \"\n", " \n", " commandOPFile = \"-o ../../allConstraintsAnalysisWRemoved/\" + folderName + \"/\" + subFolderName + \"/claims.\"+ prop +\".\"\n", " \n", " command += commandRest + commandOPFile + \"incorrect_wo_exceptions.tsv\\n\"\n", " fOP.write(command)\n", " \n", " command = \" kgtk --debug query -i ../../allConstraintsAnalysisWRemoved/\" + folderName + \"/\" + subFolderName + \"/claims.\" + prop + \".incorrect_wo_exceptions.tsv \\\n", " --match '(node1)-[]->()' --where 'node1 in \" + str(list(excptns)).replace(\"'\",'\"') + \"' \\\n", " -o ../../allConstraintsAnalysisWRemoved/\" + folderName + \"/\" + subFolderName + \"/claims.\" + prop + \".incorrect_w_exceptions.tsv \\\n", " --graph-cache ~/sqlite3_caches/\" + str(graph_cache_file_prefix) + str(fCnt) + \".sqlite3.db; \"\n", " fOP.write(command)\n", " \n", " command = \" kgtk --debug ifnotexists -i ../../allConstraintsAnalysisWRemoved/\" + folderName + \"/\" + subFolderName + \"/claims.\" + prop + \".incorrect_wo_exceptions.tsv \\\n", " --filter-on ../../allConstraintsAnalysisWRemoved/\" + folderName + \"/\" + subFolderName + \"/claims.\" + prop + \".incorrect_w_exceptions.tsv \\\n", " --filter-mode NONE \\\n", " --input-keys node1 label \\\n", " --filter-keys node1 label \\\n", " -o ../../allConstraintsAnalysisWRemoved/\" + folderName + \"/\" + subFolderName + \"/claims.\"+ prop +\".incorrect.tsv; \"\n", " fOP.write(command)\n", " \n", " command = \" kgtk cat -i ../../allConstraintsAnalysisWRemoved/\" + folderName + \"/\" + subFolderName + \"/claims.\"+ prop +\".correct_wo_exceptions.tsv \\\n", " ../../allConstraintsAnalysisWRemoved/\" + folderName + \"/\" + subFolderName + \"/claims.\"+ prop +\".incorrect_w_exceptions.tsv \\\n", " -o ../../allConstraintsAnalysisWRemoved/\" + folderName + \"/\" + subFolderName + \"/claims.\"+ prop +\".correct.tsv ) } 2>> ../../propertiesSplitWRemoved/checkViolations/exec_logs/timeLog_\" + shellFileSuffix + str(fCnt) + \".txt; \\n\"\n", " fOP.write(command)\n", " \n", " \n", " cnt += 1\n", "# except:\n", "# print(\"Something failed for prop:\",prop)\n", "if fOP:\n", " fOP.close()" ] }, { "cell_type": "code", "execution_count": 55, "id": "according-blackberry", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "1089" ] }, "execution_count": 55, "metadata": {}, "output_type": "execute_result" } ], "source": [ "cnt" ] }, { "cell_type": "code", "execution_count": 56, "id": "extraordinary-drawing", "metadata": {}, "outputs": [], "source": [ "# import os\n", "# for i in range(1,12):\n", "# os.system(\"screen -dm sh ../../propertiesSplitWRemoved/checkViolations/codepConst_M_Validator_new2_\"+str(i)+\".sh\")" ] }, { "cell_type": "markdown", "id": "subsequent-brown", "metadata": {}, "source": [ "#### Version 4 - Normal" ] }, { "cell_type": "code", "execution_count": 57, "id": "operational-migration", "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "d81d5232c18940e59e50956651839125", "version_major": 2, "version_minor": 0 }, "text/plain": [ " 0%| | 0/3147 [00:00(node2)\"]\n", " commandWhere = \" --where '\"\n", " commandWhere = []\n", " \n", " # Version 1 <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<\n", " constSet = normal\n", " \n", " if len(constSet) == 0:\n", " continue\n", " excptns = set()\n", " for (rowNo, constraint) in enumerate(constSet):\n", " prop2 = constraint['P2306']\n", " \n", " if type(prop2) != list:\n", " continue\n", " prop2 = prop2[0]\n", " \n", " if not(os.path.isfile(\"../../propertiesSplitWRemoved/claims.\"+ prop2 +\".tsv\")):\n", " print(f\"File: ../../propertiesSplitWRemoved/claims.{prop2}.tsv does not exist\")\n", " continue\n", " \n", " commandOtherFiles += \"../../propertiesSplitWRemoved/claims.\"+ prop2 +\".tsv \"\n", " if type(constraint['P2303']) == list: # Exceptions present\n", " if len(excptns) == 0:\n", " excptns = set(constraint['P2303'])\n", " else:\n", " excptns = excptns.intersection(set(constraint['P2303']))\n", " if type(constraint['P2305']) == list:\n", " commandMatchMoreFiles += [f\"{prop2}: (node1)-[]->(node2_{prop2})\"]\n", " commandWhere += [\"node2_\" + prop2 + \" in \" + str(list(constraint['P2305'])).replace(\"'\",'\"')]\n", " else:\n", " commandMatchMoreFiles += [f\"{prop2}: (node1)-[]->()\"]\n", "# print(commandMatchMoreFiles)\n", " if len(commandWhere) == 0:\n", " command = commandInit + commandOtherFiles + commandMatch + (\", \".join(commandMatchMoreFiles)) + \"'\"\n", " else:\n", " command = commandInit + commandOtherFiles + commandMatch + (\", \".join(commandMatchMoreFiles)) + \"'\" + \" --where '\"+(\" and \".join(commandWhere))+\"'\"\n", " \n", " if cnt % 100 == 0:\n", " if fOP:\n", " fOP.close()\n", " fCnt += 1\n", " fOP = open(\"../../propertiesSplitWRemoved/checkViolations/\" + shellFileSuffix + str(fCnt) + \".sh\",\"w\")\n", " \n", " if len(excptns) == 0:\n", " commandRest = \" --return 'distinct nodeProp.id, node1 as `node1`, nodeProp.label as `label`, node2 as `node2`' \\\n", " -o ../../allConstraintsAnalysisWRemoved/\" + folderName + \"/\" + subFolderName + \"/claims.\"+ prop +\".correct.tsv \\\n", " --graph-cache ~/sqlite3_caches/\" + str(graph_cache_file_prefix) + str(fCnt) + \".sqlite3.db; \\\n", " kgtk --debug ifnotexists -i ../../propertiesSplitWRemoved/claims.\"+ prop +\".tsv \\\n", " --filter-on ../../allConstraintsAnalysisWRemoved/\" + folderName + \"/\" + subFolderName + \"/claims.\"+ prop +\".correct.tsv \\\n", " --filter-mode NONE \\\n", " --input-keys node1 label \\\n", " --filter-keys node1 label \"\n", " \n", " commandOPFile = \"-o ../../allConstraintsAnalysisWRemoved/\" + folderName + \"/\" + subFolderName + \"/claims.\"+ prop +\".\"\n", " \n", " command += commandRest + commandOPFile + \"incorrect.tsv ) } 2>> ../../propertiesSplitWRemoved/checkViolations/exec_logs/timeLog_\" + shellFileSuffix + str(fCnt) + \".txt;\\n\"\n", " fOP.write(command)\n", " else:\n", " commandRest = \" --return 'distinct nodeProp.id, node1 as `node1`, nodeProp.label as `label`, node2 as `node2`' \\\n", " -o ../../allConstraintsAnalysisWRemoved/\" + folderName + \"/\" + subFolderName + \"/claims.\"+ prop +\".correct_wo_exceptions.tsv \\\n", " --graph-cache ~/sqlite3_caches/\" + str(graph_cache_file_prefix) + str(fCnt) + \".sqlite3.db; \\\n", " kgtk --debug ifnotexists -i ../../propertiesSplitWRemoved/claims.\"+ prop +\".tsv \\\n", " --filter-on ../../allConstraintsAnalysisWRemoved/\" + folderName + \"/\" + subFolderName + \"/claims.\"+ prop +\".correct_wo_exceptions.tsv \\\n", " --filter-mode NONE \\\n", " --input-keys node1 label \\\n", " --filter-keys node1 label \"\n", " \n", " commandOPFile = \"-o ../../allConstraintsAnalysisWRemoved/\" + folderName + \"/\" + subFolderName + \"/claims.\"+ prop +\".\"\n", " \n", " command += commandRest + commandOPFile + \"incorrect_wo_exceptions.tsv\\n\"\n", " fOP.write(command)\n", " \n", " command = \" kgtk --debug query -i ../../allConstraintsAnalysisWRemoved/\" + folderName + \"/\" + subFolderName + \"/claims.\" + prop + \".incorrect_wo_exceptions.tsv \\\n", " --match '(node1)-[]->()' --where 'node1 in \" + str(list(excptns)).replace(\"'\",'\"') + \"' \\\n", " -o ../../allConstraintsAnalysisWRemoved/\" + folderName + \"/\" + subFolderName + \"/claims.\" + prop + \".incorrect_w_exceptions.tsv \\\n", " --graph-cache ~/sqlite3_caches/\" + str(graph_cache_file_prefix) + str(fCnt) + \".sqlite3.db; \"\n", " fOP.write(command)\n", " \n", " command = \" kgtk --debug ifnotexists -i ../../allConstraintsAnalysisWRemoved/\" + folderName + \"/\" + subFolderName + \"/claims.\" + prop + \".incorrect_wo_exceptions.tsv \\\n", " --filter-on ../../allConstraintsAnalysisWRemoved/\" + folderName + \"/\" + subFolderName + \"/claims.\" + prop + \".incorrect_w_exceptions.tsv \\\n", " --filter-mode NONE \\\n", " --input-keys node1 label \\\n", " --filter-keys node1 label \\\n", " -o ../../allConstraintsAnalysisWRemoved/\" + folderName + \"/\" + subFolderName + \"/claims.\"+ prop +\".incorrect.tsv; \"\n", " fOP.write(command)\n", " \n", " command = \" kgtk cat -i ../../allConstraintsAnalysisWRemoved/\" + folderName + \"/\" + subFolderName + \"/claims.\"+ prop +\".correct_wo_exceptions.tsv \\\n", " ../../allConstraintsAnalysisWRemoved/\" + folderName + \"/\" + subFolderName + \"/claims.\"+ prop +\".incorrect_w_exceptions.tsv \\\n", " -o ../../allConstraintsAnalysisWRemoved/\" + folderName + \"/\" + subFolderName + \"/claims.\"+ prop +\".correct.tsv ) } 2>> ../../propertiesSplitWRemoved/checkViolations/exec_logs/timeLog_\" + shellFileSuffix + str(fCnt) + \".txt; \\n\"\n", " fOP.write(command)\n", " \n", " \n", " cnt += 1\n", "# except:\n", "# print(\"Something failed for prop:\",prop)\n", "if fOP:\n", " fOP.close()" ] }, { "cell_type": "code", "execution_count": 58, "id": "harmful-binary", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "1925" ] }, "execution_count": 58, "metadata": {}, "output_type": "execute_result" } ], "source": [ "cnt" ] }, { "cell_type": "code", "execution_count": 59, "id": "advance-married", "metadata": {}, "outputs": [], "source": [ "# import os\n", "# for i in range(1,21):\n", "# os.system(\"screen -dm sh ../../propertiesSplitWRemoved/checkViolations/codepConst_N_Validator_new2_\"+str(i)+\".sh\")" ] }, { "cell_type": "markdown", "id": "ranging-journal", "metadata": {}, "source": [ "#### Version 5 - Suggestion" ] }, { "cell_type": "code", "execution_count": 60, "id": "missing-jordan", "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "174a69094d0b4d30aeeba66e2eb28a5c", "version_major": 2, "version_minor": 0 }, "text/plain": [ " 0%| | 0/3147 [00:00(node2)\"]\n", " commandWhere = \" --where '\"\n", " commandWhere = []\n", " \n", " # Version 1 <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<\n", " constSet = suggestion\n", " \n", " if len(constSet) == 0:\n", " continue\n", " excptns = set()\n", " for (rowNo, constraint) in enumerate(constSet):\n", " prop2 = constraint['P2306']\n", " \n", " if type(prop2) != list:\n", " continue\n", " prop2 = prop2[0]\n", " \n", " if not(os.path.isfile(\"../../propertiesSplitWRemoved/claims.\"+ prop2 +\".tsv\")):\n", " print(f\"File: ../../propertiesSplitWRemoved/claims.{prop2}.tsv does not exist\")\n", " continue\n", " \n", " commandOtherFiles += \"../../propertiesSplitWRemoved/claims.\"+ prop2 +\".tsv \"\n", " if type(constraint['P2303']) == list: # Exceptions present\n", " if len(excptns) == 0:\n", " excptns = set(constraint['P2303'])\n", " else:\n", " excptns = excptns.intersection(set(constraint['P2303']))\n", " if type(constraint['P2305']) == list:\n", " commandMatchMoreFiles += [f\"{prop2}: (node1)-[]->(node2_{prop2})\"]\n", " commandWhere += [\"node2_\" + prop2 + \" in \" + str(list(constraint['P2305'])).replace(\"'\",'\"')]\n", " else:\n", " commandMatchMoreFiles += [f\"{prop2}: (node1)-[]->()\"]\n", "# print(commandMatchMoreFiles)\n", " if len(commandWhere) == 0:\n", " command = commandInit + commandOtherFiles + commandMatch + (\", \".join(commandMatchMoreFiles)) + \"'\"\n", " else:\n", " command = commandInit + commandOtherFiles + commandMatch + (\", \".join(commandMatchMoreFiles)) + \"'\" + \" --where '\"+(\" and \".join(commandWhere))+\"'\"\n", " \n", " if cnt % 100 == 0:\n", " if fOP:\n", " fOP.close()\n", " fCnt += 1\n", " fOP = open(\"../../propertiesSplitWRemoved/checkViolations/\" + shellFileSuffix + str(fCnt) + \".sh\",\"w\")\n", " \n", " if len(excptns) == 0:\n", " commandRest = \" --return 'distinct nodeProp.id, node1 as `node1`, nodeProp.label as `label`, node2 as `node2`' \\\n", " -o ../../allConstraintsAnalysisWRemoved/\" + folderName + \"/\" + subFolderName + \"/claims.\"+ prop +\".correct.tsv \\\n", " --graph-cache ~/sqlite3_caches/\" + str(graph_cache_file_prefix) + str(fCnt) + \".sqlite3.db; \\\n", " kgtk --debug ifnotexists -i ../../propertiesSplitWRemoved/claims.\"+ prop +\".tsv \\\n", " --filter-on ../../allConstraintsAnalysisWRemoved/\" + folderName + \"/\" + subFolderName + \"/claims.\"+ prop +\".correct.tsv \\\n", " --filter-mode NONE \\\n", " --input-keys node1 label \\\n", " --filter-keys node1 label \"\n", " \n", " commandOPFile = \"-o ../../allConstraintsAnalysisWRemoved/\" + folderName + \"/\" + subFolderName + \"/claims.\"+ prop +\".\"\n", " \n", " command += commandRest + commandOPFile + \"incorrect.tsv ) } 2>> ../../propertiesSplitWRemoved/checkViolations/exec_logs/timeLog_\" + shellFileSuffix + str(fCnt) + \".txt;\\n\"\n", " fOP.write(command)\n", " else:\n", " commandRest = \" --return 'distinct nodeProp.id, node1 as `node1`, nodeProp.label as `label`, node2 as `node2`' \\\n", " -o ../../allConstraintsAnalysisWRemoved/\" + folderName + \"/\" + subFolderName + \"/claims.\"+ prop +\".correct_wo_exceptions.tsv \\\n", " --graph-cache ~/sqlite3_caches/\" + str(graph_cache_file_prefix) + str(fCnt) + \".sqlite3.db; \\\n", " kgtk --debug ifnotexists -i ../../propertiesSplitWRemoved/claims.\"+ prop +\".tsv \\\n", " --filter-on ../../allConstraintsAnalysisWRemoved/\" + folderName + \"/\" + subFolderName + \"/claims.\"+ prop +\".correct_wo_exceptions.tsv \\\n", " --filter-mode NONE \\\n", " --input-keys node1 label \\\n", " --filter-keys node1 label \"\n", " \n", " commandOPFile = \"-o ../../allConstraintsAnalysisWRemoved/\" + folderName + \"/\" + subFolderName + \"/claims.\"+ prop +\".\"\n", " \n", " command += commandRest + commandOPFile + \"incorrect_wo_exceptions.tsv\\n\"\n", " fOP.write(command)\n", " \n", " command = \" kgtk --debug query -i ../../allConstraintsAnalysisWRemoved/\" + folderName + \"/\" + subFolderName + \"/claims.\" + prop + \".incorrect_wo_exceptions.tsv \\\n", " --match '(node1)-[]->()' --where 'node1 in \" + str(list(excptns)).replace(\"'\",'\"') + \"' \\\n", " -o ../../allConstraintsAnalysisWRemoved/\" + folderName + \"/\" + subFolderName + \"/claims.\" + prop + \".incorrect_w_exceptions.tsv \\\n", " --graph-cache ~/sqlite3_caches/\" + str(graph_cache_file_prefix) + str(fCnt) + \".sqlite3.db; \"\n", " fOP.write(command)\n", " \n", " command = \" kgtk --debug ifnotexists -i ../../allConstraintsAnalysisWRemoved/\" + folderName + \"/\" + subFolderName + \"/claims.\" + prop + \".incorrect_wo_exceptions.tsv \\\n", " --filter-on ../../allConstraintsAnalysisWRemoved/\" + folderName + \"/\" + subFolderName + \"/claims.\" + prop + \".incorrect_w_exceptions.tsv \\\n", " --filter-mode NONE \\\n", " --input-keys node1 label \\\n", " --filter-keys node1 label \\\n", " -o ../../allConstraintsAnalysisWRemoved/\" + folderName + \"/\" + subFolderName + \"/claims.\"+ prop +\".incorrect.tsv; \"\n", " fOP.write(command)\n", " \n", " command = \" kgtk cat -i ../../allConstraintsAnalysisWRemoved/\" + folderName + \"/\" + subFolderName + \"/claims.\"+ prop +\".correct_wo_exceptions.tsv \\\n", " ../../allConstraintsAnalysisWRemoved/\" + folderName + \"/\" + subFolderName + \"/claims.\"+ prop +\".incorrect_w_exceptions.tsv \\\n", " -o ../../allConstraintsAnalysisWRemoved/\" + folderName + \"/\" + subFolderName + \"/claims.\"+ prop +\".correct.tsv ) } 2>> ../../propertiesSplitWRemoved/checkViolations/exec_logs/timeLog_\" + shellFileSuffix + str(fCnt) + \".txt; \\n\"\n", " fOP.write(command)\n", " \n", " \n", " cnt += 1\n", "# except:\n", "# print(\"Something failed for prop:\",prop)\n", "if fOP:\n", " fOP.close()" ] }, { "cell_type": "code", "execution_count": 61, "id": "soviet-forth", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "312" ] }, "execution_count": 61, "metadata": {}, "output_type": "execute_result" } ], "source": [ "cnt" ] }, { "cell_type": "code", "execution_count": 62, "id": "racial-stationery", "metadata": {}, "outputs": [], "source": [ "# import os\n", "# for i in range(1,5):\n", "# os.system(\"screen -dm sh ../../propertiesSplitWRemoved/checkViolations/codepConst_S_Validator_new_3_\"+str(i)+\".sh\")" ] }, { "cell_type": "markdown", "id": "structural-envelope", "metadata": {}, "source": [ "### Merge all correct/incorrect outputs" ] }, { "cell_type": "code", "execution_count": 17, "id": "joined-invention", "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "57dcbdd4c8014c9288dbb92b331a05a6", "version_major": 2, "version_minor": 0 }, "text/plain": [ "0it [00:00, ?it/s]" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# import os\n", "# from tqdm.notebook import tqdm\n", "\n", "# for folder in tqdm(iter(['Mand_Sugg_Normal', 'Mand_Normal', 'Mand', 'Normal'])):\n", "# folderPath = \"../../allConstraintsAnalysisWRemoved/codependencyConstraint/\" + folder + \"/\"\n", "# correct_files_list = \" \".join([folderPath + f for f in filter(lambda f: \".correct.\" in f, os.listdir(folderPath))])\n", "# incorrect_files_list = \" \".join([folderPath + f for f in filter(lambda f: \".incorrect.\" in f, os.listdir(folderPath))])\n", "# # print(files_list)\n", "# os.system(\"{ kgtk cat -i \"+ correct_files_list + \" -o \"+folderPath+\"claims.all.correctSuperSet.tsv -v True; } 2> \"+folderPath+\"claims.all.correctSuperSet.log\")\n", "# os.system(\"{ kgtk cat -i \"+ incorrect_files_list + \" -o \"+folderPath+\"claims.all.incorrectSuperSet.tsv -v True; } 2> \"+folderPath+\"claims.all.incorrectSuperSet.log\")" ] }, { "cell_type": "code", "execution_count": 15, "id": "stopped-bolivia", "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "68395f72036a469fad8908d916303bcd", "version_major": 2, "version_minor": 0 }, "text/plain": [ "0it [00:00, ?it/s]" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# import os\n", "# from tqdm.notebook import tqdm\n", "\n", "# for folder in tqdm(iter(['Mand_Sugg_Normal', 'Mand_Normal', 'Mand', 'Normal'])):\n", "# folderPath = \"../../allConstraintsAnalysisWRemoved/codependencyConstraint_Final/\" + folder + \"/\"\n", "# correct_files_list = \" \".join([folderPath + f for f in filter(lambda f: \".correct.\" in f, os.listdir(folderPath))])\n", "# incorrect_files_list = \" \".join([folderPath + f for f in filter(lambda f: \".incorrect.\" in f, os.listdir(folderPath))])\n", "# # print(files_list)\n", "# os.system(\"{ kgtk cat -i \"+ correct_files_list + \" -o \"+folderPath+\"claims.all.correctSuperSet.tsv; } 2> \"+folderPath+\"claims.all.correctSuperSet.log\")\n", "# os.system(\"{ kgtk cat -i \"+ incorrect_files_list + \" -o \"+folderPath+\"claims.all.incorrectSuperSet.tsv; } 2> \"+folderPath+\"claims.all.incorrectSuperSet.log\")" ] }, { "cell_type": "code", "execution_count": null, "id": "criminal-central", "metadata": {}, "outputs": [], "source": [ "# for folder in tqdm(iter(['Mand_Sugg_Normal', 'Mand_Normal', 'Mand', 'Normal'])):\n", "# folderPath = \"../../allConstraintsAnalysisWRemoved/codependencyConstraint/\" + folder + \"/\"\n", "# folderPathNew = \"../../allConstraintsAnalysisWRemoved/codependencyConstraint_Final/\" + folder + \"/\"\n", "# os.system(f\"screen -dm kgtk ifnotexists -i {folderPathNew}claims.all.correctSuperSet.tsv --filter-on {folderPath}claims.all.correctSuperSet.tsv -o {folderPathNew}claims.all.correctSuperSet.diff.tsv\")\n", "# os.system(f\"screen -dm kgtk ifnotexists -i {folderPathNew}claims.all.incorrectSuperSet.tsv --filter-on {folderPath}claims.all.incorrectSuperSet.tsv -o {folderPathNew}claims.all.incorrectSuperSet.diff.tsv\")\n", " " ] }, { "cell_type": "markdown", "id": "homeless-pleasure", "metadata": {}, "source": [ "### Analyze Violations" ] }, { "cell_type": "code", "execution_count": 45, "id": "welcome-dependence", "metadata": { "scrolled": true }, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "22a3c57a824e437b9c097ce45f245631", "version_major": 2, "version_minor": 0 }, "text/plain": [ "0it [00:00, ?it/s]" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "7dd9536a9ed647de9171b7e41388b861", "version_major": 2, "version_minor": 0 }, "text/plain": [ " 0%| | 0/5781 [00:00\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
correctincorrectpaths
P630742[../../allConstraintsAnalysisWRemoved/codepend...
P322531308[../../allConstraintsAnalysisWRemoved/codepend...
P1336232999[../../allConstraintsAnalysisWRemoved/codepend...
P881010[../../allConstraintsAnalysisWRemoved/codepend...
P667073[../../allConstraintsAnalysisWRemoved/codepend...
............
P1884891323[../../allConstraintsAnalysisWRemoved/codepend...
P1886263[../../allConstraintsAnalysisWRemoved/codepend...
P188812848[../../allConstraintsAnalysisWRemoved/codepend...
P18943848[../../allConstraintsAnalysisWRemoved/codepend...
P18954574[../../allConstraintsAnalysisWRemoved/codepend...
\n", "

2538 rows × 3 columns

\n", "" ], "text/plain": [ " correct incorrect paths\n", "P6307 4 2 [../../allConstraintsAnalysisWRemoved/codepend...\n", "P3225 31 308 [../../allConstraintsAnalysisWRemoved/codepend...\n", "P1336 232 999 [../../allConstraintsAnalysisWRemoved/codepend...\n", "P8810 1 0 [../../allConstraintsAnalysisWRemoved/codepend...\n", "P6670 7 3 [../../allConstraintsAnalysisWRemoved/codepend...\n", "... ... ... ...\n", "P1884 8913 23 [../../allConstraintsAnalysisWRemoved/codepend...\n", "P1886 26 3 [../../allConstraintsAnalysisWRemoved/codepend...\n", "P1888 128 48 [../../allConstraintsAnalysisWRemoved/codepend...\n", "P1894 38 48 [../../allConstraintsAnalysisWRemoved/codepend...\n", "P1895 457 4 [../../allConstraintsAnalysisWRemoved/codepend...\n", "\n", "[2538 rows x 3 columns]" ] }, "execution_count": 52, "metadata": {}, "output_type": "execute_result" } ], "source": [ "codepConstDF1" ] }, { "cell_type": "code", "execution_count": 53, "id": "powered-residence", "metadata": {}, "outputs": [], "source": [ "codepConstDF1['violation_ratio'] = codepConstDF1.apply(lambda p: p.incorrect / (p.correct + p.incorrect), axis=1)" ] }, { "cell_type": "code", "execution_count": 54, "id": "chinese-pressing", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
correctincorrectpathsviolation_ratio
P467404[../../allConstraintsAnalysisWRemoved/codepend...1.0
P464506[../../allConstraintsAnalysisWRemoved/codepend...1.0
P433401[../../allConstraintsAnalysisWRemoved/codepend...1.0
P50701[../../allConstraintsAnalysisWRemoved/codepend...1.0
P230401[../../allConstraintsAnalysisWRemoved/codepend...1.0
P258601[../../allConstraintsAnalysisWRemoved/codepend...1.0
P794801[../../allConstraintsAnalysisWRemoved/codepend...1.0
P574501[../../allConstraintsAnalysisWRemoved/codepend...1.0
P726301[../../allConstraintsAnalysisWRemoved/codepend...1.0
P664502[../../allConstraintsAnalysisWRemoved/codepend...1.0
P675901[../../allConstraintsAnalysisWRemoved/codepend...1.0
P155505[../../allConstraintsAnalysisWRemoved/codepend...1.0
P822904[../../allConstraintsAnalysisWRemoved/codepend...1.0
P828001[../../allConstraintsAnalysisWRemoved/codepend...1.0
P183701[../../allConstraintsAnalysisWRemoved/codepend...1.0
\n", "
" ], "text/plain": [ " correct incorrect paths \\\n", "P4674 0 4 [../../allConstraintsAnalysisWRemoved/codepend... \n", "P4645 0 6 [../../allConstraintsAnalysisWRemoved/codepend... \n", "P4334 0 1 [../../allConstraintsAnalysisWRemoved/codepend... \n", "P507 0 1 [../../allConstraintsAnalysisWRemoved/codepend... \n", "P2304 0 1 [../../allConstraintsAnalysisWRemoved/codepend... \n", "P2586 0 1 [../../allConstraintsAnalysisWRemoved/codepend... \n", "P7948 0 1 [../../allConstraintsAnalysisWRemoved/codepend... \n", "P5745 0 1 [../../allConstraintsAnalysisWRemoved/codepend... \n", "P7263 0 1 [../../allConstraintsAnalysisWRemoved/codepend... \n", "P6645 0 2 [../../allConstraintsAnalysisWRemoved/codepend... \n", "P6759 0 1 [../../allConstraintsAnalysisWRemoved/codepend... \n", "P1555 0 5 [../../allConstraintsAnalysisWRemoved/codepend... \n", "P8229 0 4 [../../allConstraintsAnalysisWRemoved/codepend... \n", "P8280 0 1 [../../allConstraintsAnalysisWRemoved/codepend... \n", "P1837 0 1 [../../allConstraintsAnalysisWRemoved/codepend... \n", "\n", " violation_ratio \n", "P4674 1.0 \n", "P4645 1.0 \n", "P4334 1.0 \n", "P507 1.0 \n", "P2304 1.0 \n", "P2586 1.0 \n", "P7948 1.0 \n", "P5745 1.0 \n", "P7263 1.0 \n", "P6645 1.0 \n", "P6759 1.0 \n", "P1555 1.0 \n", "P8229 1.0 \n", "P8280 1.0 \n", "P1837 1.0 " ] }, "execution_count": 54, "metadata": {}, "output_type": "execute_result" } ], "source": [ "codepConstDF1.sort_values(by=['violation_ratio'],ascending=False).head(15)" ] }, { "cell_type": "code", "execution_count": 55, "id": "armed-constitution", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "['../../allConstraintsAnalysisWRemoved/codependencyConstraint_Final/Mand_Sugg_Normal/claims.P2302.correct.tsv',\n", " '../../allConstraintsAnalysisWRemoved/codependencyConstraint_Final/Mand_Sugg_Normal/claims.P2302.incorrect.tsv']" ] }, "execution_count": 55, "metadata": {}, "output_type": "execute_result" } ], "source": [ "list(codepConstDF1.loc['P2302']['paths'])" ] }, { "cell_type": "code", "execution_count": 56, "id": "continued-desire", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "id\tnode1\tlabel\tnode2\trank\tnode2;wikidatatype\r\n", "P10-P2302-Q21502404-d012aef4-0\tP10\tP2302\tQ21502404\tnormal\twikibase-item\r\n", "P10-P2302-Q21510851-5224fe0b-0\tP10\tP2302\tQ21510851\tnormal\twikibase-item\r\n", "P10-P2302-Q21510852-dde2f0ce-0\tP10\tP2302\tQ21510852\tnormal\twikibase-item\r\n", "P10-P2302-Q52004125-d0288d06-0\tP10\tP2302\tQ52004125\tnormal\twikibase-item\r\n", "P10-P2302-Q53869507-974ce3b1-0\tP10\tP2302\tQ53869507\tnormal\twikibase-item\r\n", "P1000-P2302-Q21510856-b2772a67-0\tP1000\tP2302\tQ21510856\tnormal\twikibase-item\r\n", "P1000-P2302-Q21510865-1f5093e9-0\tP1000\tP2302\tQ21510865\tnormal\twikibase-item\r\n", "P1000-P2302-Q53869507-36dbee67-0\tP1000\tP2302\tQ53869507\tnormal\twikibase-item\r\n", "P1001-P2302-Q21502838-3cc7ade2-0\tP1001\tP2302\tQ21502838\tnormal\twikibase-item\r\n" ] } ], "source": [ "!head ../../allConstraintsAnalysisWRemoved/codependencyConstraint_Final/Mand_Sugg_Normal/claims.P2302.incorrect.tsv" ] }, { "cell_type": "code", "execution_count": 57, "id": "demonstrated-debut", "metadata": { "scrolled": false }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
correctincorrectpathsviolation_ratio
P2347232997624[../../allConstraintsAnalysisWRemoved/codepend...0.992803
P7342119055738534[../../allConstraintsAnalysisWRemoved/codepend...0.258447
P22142989348721476[../../allConstraintsAnalysisWRemoved/codepend...0.194425
P43331113458436934[../../allConstraintsAnalysisWRemoved/codepend...0.013849
P1951150231401686[../../allConstraintsAnalysisWRemoved/codepend...0.258832
P5696926852267556[../../allConstraintsAnalysisWRemoved/codepend...0.037189
P13111274319200519[../../allConstraintsAnalysisWRemoved/codepend...0.017475
P2757295163856[../../allConstraintsAnalysisWRemoved/codepend...0.957377
P2860174842113152425[../../allConstraintsAnalysisWRemoved/codepend...0.000871
P5703471930105652[../../allConstraintsAnalysisWRemoved/codepend...0.029532
P1435212163792401[../../allConstraintsAnalysisWRemoved/codepend...0.041734
P20178677090445[../../allConstraintsAnalysisWRemoved/codepend...0.510369
P1376280679392[../../allConstraintsAnalysisWRemoved/codepend...0.965863
P79021292468302[../../allConstraintsAnalysisWRemoved/codepend...0.840888
P19223063663745[../../allConstraintsAnalysisWRemoved/codepend...0.675401
\n", "
" ], "text/plain": [ " correct incorrect paths \\\n", "P234 7232 997624 [../../allConstraintsAnalysisWRemoved/codepend... \n", "P734 2119055 738534 [../../allConstraintsAnalysisWRemoved/codepend... \n", "P2214 2989348 721476 [../../allConstraintsAnalysisWRemoved/codepend... \n", "P433 31113458 436934 [../../allConstraintsAnalysisWRemoved/codepend... \n", "P195 1150231 401686 [../../allConstraintsAnalysisWRemoved/codepend... \n", "P569 6926852 267556 [../../allConstraintsAnalysisWRemoved/codepend... \n", "P131 11274319 200519 [../../allConstraintsAnalysisWRemoved/codepend... \n", "P275 7295 163856 [../../allConstraintsAnalysisWRemoved/codepend... \n", "P2860 174842113 152425 [../../allConstraintsAnalysisWRemoved/codepend... \n", "P570 3471930 105652 [../../allConstraintsAnalysisWRemoved/codepend... \n", "P1435 2121637 92401 [../../allConstraintsAnalysisWRemoved/codepend... \n", "P2017 86770 90445 [../../allConstraintsAnalysisWRemoved/codepend... \n", "P1376 2806 79392 [../../allConstraintsAnalysisWRemoved/codepend... \n", "P7902 12924 68302 [../../allConstraintsAnalysisWRemoved/codepend... \n", "P1922 30636 63745 [../../allConstraintsAnalysisWRemoved/codepend... \n", "\n", " violation_ratio \n", "P234 0.992803 \n", "P734 0.258447 \n", "P2214 0.194425 \n", "P433 0.013849 \n", "P195 0.258832 \n", "P569 0.037189 \n", "P131 0.017475 \n", "P275 0.957377 \n", "P2860 0.000871 \n", "P570 0.029532 \n", "P1435 0.041734 \n", "P2017 0.510369 \n", "P1376 0.965863 \n", "P7902 0.840888 \n", "P1922 0.675401 " ] }, "execution_count": 57, "metadata": {}, "output_type": "execute_result" } ], "source": [ "codepConstDF1.sort_values(by=['incorrect'],ascending=False).head(15)" ] }, { "cell_type": "code", "execution_count": 58, "id": "developed-zimbabwe", "metadata": { "scrolled": true }, "outputs": [ { "data": { "text/plain": [ "count 2538.000000\n", "mean 0.270460\n", "std 0.348561\n", "min 0.000000\n", "25% 0.000000\n", "50% 0.066600\n", "75% 0.500000\n", "max 1.000000\n", "Name: violation_ratio, dtype: float64" ] }, "execution_count": 58, "metadata": {}, "output_type": "execute_result" } ], "source": [ "codepConstDF1['violation_ratio'].describe()" ] }, { "cell_type": "code", "execution_count": 59, "id": "unknown-johnston", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Text(0.5, 1.0, 'Co-Dependency Constraint - Version 1 - Violation Ratios')" ] }, "execution_count": 59, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYsAAAEICAYAAACuxNj9AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAAsTAAALEwEAmpwYAAAd4klEQVR4nO3deZwdVZ338c8XOuyEAIkMJoEGCSrq4yNGxRXGIEtYwjyK4sZiBBccdfBRoo8jvNQZ44yCMg8uURiCOgiiQkZARJZxBQyILAGGBgNJCBAxhE1B5Dd/nHPh5tK3T3Xfvkt3f9+v13111alTVb9Tt2797qmqrquIwMzMbCgbdDsAMzPrfU4WZmZW5GRhZmZFThZmZlbkZGFmZkVOFmZmVuRkMQ5J6pcUkvq6HctYJ+ntkn7S7ThG23hpl6RPSPpmxbrLJe09wvW8VtKtI5m30yTdJGmv0V7uuE4Wkt4maamkhyWtlnSRpNeMcFlnSHpc0kP5daOkz0naarTjHo8kTZb0JUl35ffj9jw+tY3rPEPSZ1tZRkR8JyL2qbi+IyX9YqTrknRYPqCpobxP0n2SDhzpshsNp13DIWkjSefmdkQrB60q2yMi/jki3t1q3IOsOyTtUhuPiJ9HxHPbsJ7aF7uH82u5pAXDmP8Z+3hEvCAirhjtWMdtspB0HPAl4J+B7YAdgK8A81pY7L9ExJbANOAoYA/gl5I2by3a8U3SRsClwAuA/YDJwCuB+4GXdzGuXut5nQdMAfZsKN8PCODHVRekpFuf718A7wDuaXE55zFK22MMmBIRWwBvAv5R0hu6HdAzRMS4ewFbAQ8Dhw5RZ2NSMrk7v74EbDxE/TOAzzaUbQmsBj5QV/Yu4GZgLXAxsGPdtAA+CNwB/AH4V2CDYcz7XuA24AHgVEB52obAF/Iy7wCOzfX76rbHaTnWVcBngQ3ztCNJH+4v5PX+Hti/br3bAP+et9Fa4LxcfiNwUF29SXn9Lxlk270buBfYYojt+3zgity2m4CDG7b9qcAFwEPAVcBz8jQBJwP3AQ8CNwAvBI4B/gI8nveF/8z1lwPHA9cDjwF9wALg9rzsZcDf1a37SOAXpfchx/9n4K95fQ+McN9dBJzeUHYOcHIe3gP4VV7374C96updAfwT8EvgT8AuOf47ctt+D7y9SbteBfwGWJf/vqphuZ/Jy30I+AkwtUJbVtbH16btcSLw7bppB+f954Ec9/Prpi0H9s7DLwd+neutBv4/sFGe9rP8Pj+S38u3AHsBK1vdXwdpXz91n9VcdjXw0brx75ES77oc2wty+VD7eK2dTY9zwFTgR7kNfwR+Tt3x6BmxtvJG9uqL9M3jifo3YJA6nwauBJ5F6in8CvjMEPXPoCFZ5PIzgbPz8DxgIO9IfcAngV/V1Q3gctIBeAfgv4F3D2PeH5G+ae0ArAH2y9PeC9wCzMzLvpz1k8UPga8Dm+f2Xg28J087Mu9wR5OSzvvyTlVLRBcAZwNbkxLCnrn8Y7V218V/Q5Nt911g8RDbdlJu+yeAjYDXkz5kz63b9rVeSB/wHeC7edq+wDV5u9QO2ts3e89IH6Tr8rbaNJcdCjyb1NN+C+kgsX3d9mlMFs3eh/XqjnDffTUp6dVi24p04P/fwPS8HebmWN+Qx6flulcAd5F6cH153gfrtuP2PH2geSrWvM+sBd6Z53trHt+2brm3A7sCm+bxhRXaMhrJoun2yOMnkpNFju+RvF0mkfbRAZ5OAst5+iD6UlLi7SMdsG8GPtzwPu9SN74XOVnQwv46SPv6Wf+zugfwKOt/YXkX6Ytp7cB/3VDHpYZ2Nj3OAZ8DvpbbMwl4LflzP2isrbyRvfoC3g7cU6hzOzC3bnxfYPkQ9Z/xpuTyhcAlefgiYH7dtA3yG79j3Q64X9309wOXDmPe19RNPwdYkIcvA95bN22f2g5IOgX3GPnDlqe/Fbg8Dx8JDNRN2yzP+zekg8uTwNaDtPvZ+QMyOY+fC3ysyba7hCEOLnknvYf1e1lnASfWbftv1k2bC9ySh19PSrp70PCtaIgP0rsK+8Z1wLy67dOYLJq9D+vVbWH/vQ14Wx4+GvhdHj4e+FZD3YuBI/LwFcCn66ZtTvrW+Mb6978xVlKSuLph+q+BI+uW+8mG/fbHFdrRcrIYanvk8RN5Oln8I3BOw2doVS0G6g6ig6zjw8APG97nZslixPvrIOvtz+t6gJQEg9TLH/SgTfqSEsBWhX28liyaHudIieT8+nYO9Rqv1yzuB6YWzkk/G7izbvzOXFa7w6J2welrhXVNJ3XhAHYEvizpAUkP5HLlOjUrBltnxXnrzwE/CmxR15bG5dbsSPrWsLpu2V8nfdN4xnIj4tE8uAXp2/cfI2JtY6Mj4m7SaYk3SpoC7E/6BjWY+0mJp5lnAysi4smGNhTbHhGXkU4hnArcJ2mRpMlDrAvW31ZIOlzSdXXb54WkLnozzd6HIeU7amr71U1DVD0TODwPvzOPQ3ovD63FmWN9Detv26faFhGPkHpK7yW9/xdIet4g62v8LEDF7d+KUdgejdZrR96fVrB+O2rr3lXSjyTdI+lB0rXNqjdbjHh/HcLUXOcjpMQ0Kce5oaSF+YaQB0mJoFa/aqyDHudIp8EHgJ9IuqN0YX28Jotfk75NHzJEnbtJH76aHXIZke6w2CK/3ttsAZK2APYmneuDtGO+JyKm1L02jYhf1c02c7B1Vpy3mdWDLLdmBWlbTK1b7uSIeEGF5a4AtsnJYDCLSRcyDwV+HRGrmtT7KbDvEDcC3A3MbLgguwPpW2FRRJwSES8FdiOdivhobVKzWWoDknYEvgF8gHTaZQrpeowGn3XoUApx/rxuvxpq+38LmCPplaQeUy0JryD1LOr3kc0jYmGzGCLi4oh4Aymh3EJqa6PGzwIMY/uP1Chsj0brtSPfRTWTwdvxVdL2mBURk0mnlKq+5y3tr81ExF8j4iTSta/35+K3kU7x7k06Bdefy2uxDrnPMfRx7qGI+EhE7Ey61nOcpDnNFjQuk0VErAM+BZwq6RBJm0maJGl/Sf+Sq50FfFLStHz75qeAb1dZvqSNJb2UdLfGWtIFYEjn/z4u6QW53laSDm2Y/aOStpY0E/gQ6XpA1XmbOQf4oKQZkrYmXbCtbYvVpAuSX8y3r24g6TmS9iwtNM97EfCVHPMkSa+rq3IesHtuR7Nve5A+7CuA70t6Xo5h29yDm0u6APgo8LG8jr2Ag0jXOoYk6WWSXiFpEul89Z9Jp84gXVTfubCIzUkfuDV5eUeRehYjcS8wI9/9NWIRsZx008FZpFOctW+p3wYOkrRv/sa5iaS9JM0YbDmStpM0Lyfpx0gXQZ8cpOqFwK5Kt5r3SXoLKfH+aCTx58/HJnl0oxznSJIvMOT2aHQOcICkOXl/+Aip3YN94dqSdC3k4dzbel/D9KH2nRHvrxUtzMveJMf5GKl3vhmpB1Q1ThjiOCfpQEm75PdmHenmjMH2D2CcJguAiPgicBzpQvEa0sHqA6QDHKQ7gpaS7oq5Abg2lw3lY5IeIr1xZ5IurL4qd/eJiB8Cnwe+m7uMN5JOz9Q7P893Heni8WnDmLeZb5DOXf8ut+MHDdMPJ12IW0ZKbucy9Gmheu8kXQC/hXTH0YdrEyLiT8D3gZ0GWSd19R4jfTO6hXT94kHSRfapwFUR8Tjpw7Y/6Y6qrwCHR8QtFeKbTGr/WlIX+35S9xrStt0tn7I5r0lsy4Avknqj9wIvIp1eG4nLSHfG3CPpDyNcRs1i0jfCp5JwRKwgfcv8BE/v0x+l+ed4A9Jn4G7Sac09eeZBkYi4HziQdHC9n3Rh+MCIGGkbbiWdf59O2i//xDN7LsP1jO3RKCJuJfV0/420Hx1EumPv8UGq/1/St/aHSPvP2Q3TTwQW533nzQ3raWV/reIC0v58NKm9d5J6LctIF6vrlfbxoY5zs0i9/odJ+/9XIuLyZkHV7nixDpAUpG7vQLdjGS2SPgXsGhHv6HYsZtY+vfZPSTaGSNoGmE/qfZjZODZuT0NZe0k6mnQa5KKI+Fm34zGz9vJpKDMzK3LPwszMisblNYupU6dGf39/t8MwMxtTrrnmmj9ExLTBpo3LZNHf38/SpUu7HYaZ2ZgiqfE/+Z/i01BmZlbkZGFmZkVOFmZmVuRkYWZmRW1LFpJOV/qd3BvryraRdImk2/LfrXO5JJ0iaUDS9ZJ2r5vniFz/NklHtCteMzNrrp09izNIv1hXbwHpx35mkX6TufZ01P1JD7WaRfqpwK/CU4+TOAF4BelXp06oJRgzM+uctiWL/AiIPzYUzyM9PZL895C68jMjuRKYIml70q86XRIRtR/guYRnJiAzM2uzTl+z2C7/RgKkX5LaLg9PZ/1fL1uZy5qVP4OkYyQtlbR0zZo1oxu1mdkE17UL3JEeSjVqD6aKiEURMTsiZk+bNug/IJqZ2Qh1+j+475W0fUSszqeZ7svlq1j/Z0Fn5LJVpN+jrS+/ot1B9i+44Knh5QsPaPfqzMx6Xqd7FkuA2h1NR5B+Na5Wfni+K2oPYF0+XXUxsE/+Sc+tgX1ymZmZdVDbehaSziL1CqZKWkm6q2khcI6k+aSfCqz9XOGFwFxggPTbtkcBRMQfJX0G+E2u9+mIaLxobmZmbda2ZBERb20yac4gdQM4tslyTgdOH8XQzMxsmPwf3GZmVuRkYWZmRU4WZmZW5GRhZmZFThZmZlbkZGFmZkVOFmZmVuRkYWZmRU4WZmZW5GRhZmZFThZmZlbkZGFmZkVOFmZmVuRkYWZmRU4WZmZW5GRhZmZFThZmZlbkZGFmZkVOFmZmVuRkYWZmRU4WZmZW5GRhZmZFThZmZlbkZGFmZkVOFmZmVuRkYWZmRU4WZmZW5GRhZmZFThZmZlbkZGFmZkVOFmZmVuRkYWZmRU4WZmZW1JVkIekfJN0k6UZJZ0naRNJOkq6SNCDpbEkb5bob5/GBPL2/GzGbmU1kHU8WkqYDHwRmR8QLgQ2Bw4DPAydHxC7AWmB+nmU+sDaXn5zrmZlZB3XrNFQfsKmkPmAzYDXweuDcPH0xcEgenpfHydPnSFLnQjUzs44ni4hYBXwBuIuUJNYB1wAPRMQTudpKYHoeng6syPM+ketv27hcScdIWipp6Zo1a9rbCDOzCaYbp6G2JvUWdgKeDWwO7NfqciNiUUTMjojZ06ZNa3VxZmZWpxunofYGfh8RayLiL8APgFcDU/JpKYAZwKo8vAqYCZCnbwXc39mQzcwmtm4ki7uAPSRtlq89zAGWAZcDb8p1jgDOz8NL8jh5+mURER2M18xswuvGNYurSBeqrwVuyDEsAo4HjpM0QLomcVqe5TRg21x+HLCg0zGbmU10feUqoy8iTgBOaCi+A3j5IHX/DBzaibjMzGxw/g9uMzMrcrIwM7MiJwszMytysjAzsyInCzMzK3KyMDOzIicLMzMrcrIwM7MiJwszMytysjAzsyInCzMzK3KyMDOzIicLMzMrcrIwM7MiJwszMytysjAzsyInCzMzK3KyMDOzIicLMzMrcrIwM7MiJwszMytysjAzsyInCzMzK3KyMDOzIicLMzMrcrIwM7MiJwszMytysjAzsyInCzMzK6qULCS9qN2BmJlZ76ras/iKpKslvV/SVm2NyMzMek6lZBERrwXeDswErpH0H5Le0NbIzMysZ1S+ZhERtwGfBI4H9gROkXSLpP8z3JVKmiLp3Dz/zZJeKWkbSZdIui3/3TrXlaRTJA1Iul7S7sNdn5mZtabqNYv/Jelk4Gbg9cBBEfH8PHzyCNb7ZeDHEfE84MV5uQuASyNiFnBpHgfYH5iVX8cAXx3B+szMrAVVexb/BlwLvDgijo2IawEi4m5Sb6OyfM3jdcBpeRmPR8QDwDxgca62GDgkD88DzozkSmCKpO2Hs04zM2tNX8V6BwB/ioi/AkjaANgkIh6NiG8Nc507AWuAf5f0YuAa4EPAdhGxOte5B9guD08HVtTNvzKXrcbMzDqias/ip8CmdeOb5bKR6AN2B74aES8BHuHpU04AREQAMZyFSjpG0lJJS9esWTPC0MzMbDBVk8UmEfFwbSQPbzbCda4EVkbEVXn8XFLyuLd2ein/vS9PX0W6C6tmRi5bT0QsiojZETF72rRpIwzNzMwGUzVZPFJ/F5KklwJ/GskKI+IeYIWk5+aiOcAyYAlwRC47Ajg/Dy8BDs93Re0BrKs7XWVmZh1Q9ZrFh4HvSbobEPA3wFtaWO/fA9+RtBFwB3AUKXGdI2k+cCfw5lz3QmAuMAA8muuamVkHVUoWEfEbSc8Dar2BWyPiLyNdaURcB8weZNKcQeoGcOxI12VmZq2r2rMAeBnQn+fZXRIRcWZbojIzs55SKVlI+hbwHOA64K+5OAAnCzOzCaBqz2I2sFs+JWRmZhNM1buhbiRd1DYzswmoas9iKrBM0tXAY7XCiDi4LVGZmVlPqZosTmxnEGZm1tuq3jr7X5J2BGZFxE8lbQZs2N7QzMysV1R9RPnRpMdyfD0XTQfOa1NMZmbWY6pe4D4WeDXwIDz1Q0jPaldQZmbWW6omi8ci4vHaiKQ+hvlUWDMzG7uqJov/kvQJYNP829vfA/6zfWGZmVkvqZosFpB+sOgG4D2kh/sN6xfyzMxs7Kp6N9STwDfyy8zMJpiqz4b6PYNco4iInUc9IjMz6znDeTZUzSbAocA2ox+OmZn1okrXLCLi/rrXqoj4EnBAe0MzM7NeUfU01O51oxuQehrD+S0MMzMbw6oe8L9YN/wEsJynf/bUzMzGuap3Q/1tuwMxM7PeVfU01HFDTY+Ik0YnHDMz60XDuRvqZcCSPH4QcDVwWzuCMjOz3lI1WcwAdo+IhwAknQhcEBHvaFdgZmbWO6o+7mM74PG68cdzmZmZTQBVexZnAldL+mEePwRY3JaIzMys51S9G+qfJF0EvDYXHRURv21fWGZm1kuqnoYC2Ax4MCK+DKyUtFObYjIzsx5T9WdVTwCOBz6eiyYB325XUGZm1luq9iz+DjgYeAQgIu4GtmxXUGZm1luqJovHIyLIjymXtHn7QjIzs15TNVmcI+nrwBRJRwM/xT+EZGY2YRTvhpIk4GzgecCDwHOBT0XEJW2OzczMekQxWURESLowIl4EOEGYmU1AVU9DXSvpZW2NxMzMelbVZPEK4EpJt0u6XtINkq5vZcWSNpT0W0k/yuM7SbpK0oCksyVtlMs3zuMDeXp/K+s1M7PhGzJZSNohD+4L7Ay8nvTE2QPz31Z8CLi5bvzzwMkRsQuwFpify+cDa3P5ybmemZl1UKlncR5ARNwJnBQRd9a/RrpSSTNIv+H9zTwuUiI6N1dZTHr+FMA8nn4O1bnAnFzfzMw6pJQs6g/KO4/ier8EfAx4Mo9vCzwQEU/k8ZXA9Dw8HVgBkKevy/XXD1Q6RtJSSUvXrFkziqGamVkpWUST4RGTdCBwX0RcMxrLq4mIRRExOyJmT5s2bTQXbWY24ZVunX2xpAdJPYxN8zB5PCJi8gjW+WrgYElzgU2AycCXSf/w15d7DzOAVbn+KmAm6eGFfcBWwP0jWK+ZmY3QkD2LiNgwIiZHxJYR0ZeHa+MjSRRExMcjYkZE9AOHAZdFxNuBy4E35WpHAOfn4SV5nDz9svzoETMz65DhPKK83Y4HjpM0QLomcVouPw3YNpcfByzoUnxmZhNW1V/Ka4uIuAK4Ig/fAbx8kDp/Bg7taGBmZraeXupZmJlZj3KyMDOzIicLMzMrcrIwM7MiJwszMytysjAzsyInCzMzK3KyMDOzIicLMzMrcrIwM7MiJwszMytysjAzsyInCzMzK3KyMDOzIicLMzMrcrIwM7MiJwszMytysjAzsyInCzMzK3KyMDOzIicLMzMrcrIwM7MiJwszMytysjAzsyInCzMzK3KyMDOzIicLMzMrcrIwM7MiJwszMytysjAzsyInCzMzK3KyMDOzIicLMzMr6niykDRT0uWSlkm6SdKHcvk2ki6RdFv+u3Uul6RTJA1Iul7S7p2O2cxsoutGz+IJ4CMRsRuwB3CspN2ABcClETELuDSPA+wPzMqvY4Cvdj5kM7OJrePJIiJWR8S1efgh4GZgOjAPWJyrLQYOycPzgDMjuRKYImn7zkZtZjaxdfWahaR+4CXAVcB2EbE6T7oH2C4PTwdW1M22Mpc1LusYSUslLV2zZk37gjYzm4C6liwkbQF8H/hwRDxYPy0iAojhLC8iFkXE7IiYPW3atFGM1MzMupIsJE0iJYrvRMQPcvG9tdNL+e99uXwVMLNu9hm5zMzMOqSv0yuUJOA04OaIOKlu0hLgCGBh/nt+XfkHJH0XeAWwru50lZnZhNe/4IKnhpcvPKAt6+h4sgBeDbwTuEHSdbnsE6QkcY6k+cCdwJvztAuBucAA8ChwVEejNTOzzieLiPgFoCaT5wxSP4Bj2xqUmZkNyf/BbWZmRU4WZmZW5GRhZmZFThZmZlbkZGFmZkVOFmZmVuRkYWZmRU4WZmZW5GRhZmZFThZmZlbkZGFmZkVOFmZmVuRkYWZmRU4WZmZW5GRhZmZFThZmZlbkZGFmZkVOFmZmVuRkYWZmRU4WZmZW1NftAHpd/4ILnhpevvCALkZiZtY97lmYmVmRk4WZmRX5NNQw1J+SqufTUzYcPrVpY5F7FmZmVuRkYWZmRU4WZmZW5GRhZmZFvsA9CnzBsr28fc26z8nCWuaDudn452QxypodOKscUEfroOuDd5m3kdnwOFm0UbP/y2hW3qyOk4v1kk7vL94/e4OTxRgw3ORiZq1zklrfmEkWkvYDvgxsCHwzIhZ2OaRxqTHpVOnVVFlWtz5sw42hmzG3uzfZC+9Hp1V56kKv7yO98kVwTCQLSRsCpwJvAFYCv5G0JCKWdTey3jeaO1orPZwq13LqDfdD24qRLKeVa1OtLL+XYxjKaMXX7jZXWe9w4ylNG6xOL1JEdDuGIkmvBE6MiH3z+McBIuJzg9WfPXt2LF26dMTr65VMbmY2XK0kHUnXRMTswaaNiZ4FMB1YUTe+EnhFfQVJxwDH5NGHJd3awvqmAn9oYf6xZqK1F9zmiWLCtVmfb6nNOzabMFaSRVFELAIWjcayJC1tll3Ho4nWXnCbJwq3efSMlcd9rAJm1o3PyGVmZtYBYyVZ/AaYJWknSRsBhwFLuhyTmdmEMSZOQ0XEE5I+AFxMunX29Ii4qY2rHJXTWWPIRGsvuM0Thds8SsbE3VBmZtZdY+U0lJmZdZGThZmZFU3YZCFpP0m3ShqQtGCQ6RtLOjtPv0pSfxfCHFUV2nycpGWSrpd0qaSm91yPFaU219V7o6SQNOZvs6zSZklvzu/1TZL+o9MxjrYK+/YOki6X9Nu8f8/tRpyjRdLpku6TdGOT6ZJ0St4e10vaveWVRsSEe5Eukt8O7AxsBPwO2K2hzvuBr+Xhw4Czux13B9r8t8Bmefh9E6HNud6WwM+AK4HZ3Y67A+/zLOC3wNZ5/FndjrsDbV4EvC8P7wYs73bcLbb5dcDuwI1Nps8FLgIE7AFc1eo6J2rP4uXAQETcERGPA98F5jXUmQcszsPnAnMkqYMxjrZimyPi8oh4NI9eSfp/lrGsyvsM8Bng88CfOxlcm1Rp89HAqRGxFiAi7utwjKOtSpsDmJyHtwLu7mB8oy4ifgb8cYgq84AzI7kSmCJp+1bWOVGTxWCPD5nerE5EPAGsA7btSHTtUaXN9eaTvpmMZcU25+75zIgYLw8Eq/I+7wrsKumXkq7MT3Qey6q0+UTgHZJWAhcCf9+Z0LpmuJ/3ojHxfxbWWZLeAcwG9ux2LO0kaQPgJODILofSaX2kU1F7kXqPP5P0ooh4oJtBtdlbgTMi4ov5waTfkvTCiHiy24GNFRO1Z1Hl8SFP1ZHUR+q63t+R6Nqj0iNTJO0N/D/g4Ih4rEOxtUupzVsCLwSukLScdG53yRi/yF3lfV4JLImIv0TE74H/JiWPsapKm+cD5wBExK+BTUgPGRyvRv0RSRM1WVR5fMgS4Ig8/CbgsshXjsaoYpslvQT4OilRjPXz2FBoc0Ssi4ipEdEfEf2k6zQHR8TIn2/ffVX27fNIvQokTSWdlrqjgzGOtiptvguYAyDp+aRksaajUXbWEuDwfFfUHsC6iFjdygIn5GmoaPL4EEmfBpZGxBLgNFJXdYB0Iemw7kXcuopt/ldgC+B7+Vr+XRFxcNeCblHFNo8rFdt8MbCPpGXAX4GPRsSY7TVXbPNHgG9I+gfSxe4jx/KXP0lnkRL+1Hwd5gRgEkBEfI10XWYuMAA8ChzV8jrH8PYyM7MOmainoczMbBicLMzMrMjJwszMipwszMysyMnCzMyKnCzMzKzIycLMzIr+B0LHnZgw+Vk2AAAAAElFTkSuQmCC\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "codepConstDF1['violation_ratio'].plot.hist(bins=100).set_title(\"Co-Dependency Constraint - Version 1 - Violation Ratios\")" ] }, { "cell_type": "code", "execution_count": 60, "id": "exceptional-dakota", "metadata": { "scrolled": true }, "outputs": [ { "data": { "text/plain": [ "Text(0.5, 1.0, 'Co-Dependency Constraint - Version 1 - Violation Ratios <= 0.5')" ] }, "execution_count": 60, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "codepConstDF1[codepConstDF1['violation_ratio'] <= 0.5].violation_ratio.plot.hist(bins=100).set_title(\"Co-Dependency Constraint - Version 1 - Violation Ratios <= 0.5\")" ] }, { "cell_type": "code", "execution_count": 61, "id": "interior-joseph", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "No. of properties whose violation ratio is greater than mean: 0/2538\n" ] } ], "source": [ "print(f\"No. of properties whose violation ratio is greater than mean: {sum(codepConstDF1['violation_ratio'] >= 3.539484)}/{len(codepConstDF1)}\")" ] }, { "cell_type": "markdown", "id": "greater-genetics", "metadata": {}, "source": [ "#### Version 2 - Mand Normal" ] }, { "cell_type": "code", "execution_count": 62, "id": "constant-chance", "metadata": {}, "outputs": [], "source": [ "import pandas as pd\n", "codepConstDF2 = pd.DataFrame(codepConstViolations['Mand_Normal']).T" ] }, { "cell_type": "code", "execution_count": 63, "id": "included-adjustment", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
correctincorrectpaths
P10064024403[../../allConstraintsAnalysisWRemoved/codepend...
P58782340[../../allConstraintsAnalysisWRemoved/codepend...
P552710[../../allConstraintsAnalysisWRemoved/codepend...
P1949192[../../allConstraintsAnalysisWRemoved/codepend...
P2458583[../../allConstraintsAnalysisWRemoved/codepend...
............
P1935149949[../../allConstraintsAnalysisWRemoved/codepend...
P19371994[../../allConstraintsAnalysisWRemoved/codepend...
P19382540[../../allConstraintsAnalysisWRemoved/codepend...
P19399071[../../allConstraintsAnalysisWRemoved/codepend...
P194070[../../allConstraintsAnalysisWRemoved/codepend...
\n", "

2419 rows × 3 columns

\n", "
" ], "text/plain": [ " correct incorrect paths\n", "P1006 4024 403 [../../allConstraintsAnalysisWRemoved/codepend...\n", "P5878 234 0 [../../allConstraintsAnalysisWRemoved/codepend...\n", "P5527 1 0 [../../allConstraintsAnalysisWRemoved/codepend...\n", "P1949 19 2 [../../allConstraintsAnalysisWRemoved/codepend...\n", "P2458 58 3 [../../allConstraintsAnalysisWRemoved/codepend...\n", "... ... ... ...\n", "P1935 1499 49 [../../allConstraintsAnalysisWRemoved/codepend...\n", "P1937 199 4 [../../allConstraintsAnalysisWRemoved/codepend...\n", "P1938 254 0 [../../allConstraintsAnalysisWRemoved/codepend...\n", "P1939 907 1 [../../allConstraintsAnalysisWRemoved/codepend...\n", "P1940 7 0 [../../allConstraintsAnalysisWRemoved/codepend...\n", "\n", "[2419 rows x 3 columns]" ] }, "execution_count": 63, "metadata": {}, "output_type": "execute_result" } ], "source": [ "codepConstDF2" ] }, { "cell_type": "code", "execution_count": 64, "id": "fundamental-knowing", "metadata": {}, "outputs": [], "source": [ "codepConstDF2['violation_ratio'] = codepConstDF2.apply(lambda p: p.incorrect / (p.correct + p.incorrect), axis=1)" ] }, { "cell_type": "code", "execution_count": 65, "id": "harmful-discipline", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
correctincorrectpathsviolation_ratio
P466801[../../allConstraintsAnalysisWRemoved/codepend...1.0
P618902[../../allConstraintsAnalysisWRemoved/codepend...1.0
P258601[../../allConstraintsAnalysisWRemoved/codepend...1.0
P379601[../../allConstraintsAnalysisWRemoved/codepend...1.0
P286304[../../allConstraintsAnalysisWRemoved/codepend...1.0
P888801[../../allConstraintsAnalysisWRemoved/codepend...1.0
P472701[../../allConstraintsAnalysisWRemoved/codepend...1.0
P578301[../../allConstraintsAnalysisWRemoved/codepend...1.0
P2489012[../../allConstraintsAnalysisWRemoved/codepend...1.0
P2309055[../../allConstraintsAnalysisWRemoved/codepend...1.0
P664502[../../allConstraintsAnalysisWRemoved/codepend...1.0
P231004[../../allConstraintsAnalysisWRemoved/codepend...1.0
P788201[../../allConstraintsAnalysisWRemoved/codepend...1.0
P876901[../../allConstraintsAnalysisWRemoved/codepend...1.0
P3692096[../../allConstraintsAnalysisWRemoved/codepend...1.0
\n", "
" ], "text/plain": [ " correct incorrect paths \\\n", "P4668 0 1 [../../allConstraintsAnalysisWRemoved/codepend... \n", "P6189 0 2 [../../allConstraintsAnalysisWRemoved/codepend... \n", "P2586 0 1 [../../allConstraintsAnalysisWRemoved/codepend... \n", "P3796 0 1 [../../allConstraintsAnalysisWRemoved/codepend... \n", "P2863 0 4 [../../allConstraintsAnalysisWRemoved/codepend... \n", "P8888 0 1 [../../allConstraintsAnalysisWRemoved/codepend... \n", "P4727 0 1 [../../allConstraintsAnalysisWRemoved/codepend... \n", "P5783 0 1 [../../allConstraintsAnalysisWRemoved/codepend... \n", "P2489 0 12 [../../allConstraintsAnalysisWRemoved/codepend... \n", "P2309 0 55 [../../allConstraintsAnalysisWRemoved/codepend... \n", "P6645 0 2 [../../allConstraintsAnalysisWRemoved/codepend... \n", "P2310 0 4 [../../allConstraintsAnalysisWRemoved/codepend... \n", "P7882 0 1 [../../allConstraintsAnalysisWRemoved/codepend... \n", "P8769 0 1 [../../allConstraintsAnalysisWRemoved/codepend... \n", "P3692 0 96 [../../allConstraintsAnalysisWRemoved/codepend... \n", "\n", " violation_ratio \n", "P4668 1.0 \n", "P6189 1.0 \n", "P2586 1.0 \n", "P3796 1.0 \n", "P2863 1.0 \n", "P8888 1.0 \n", "P4727 1.0 \n", "P5783 1.0 \n", "P2489 1.0 \n", "P2309 1.0 \n", "P6645 1.0 \n", "P2310 1.0 \n", "P7882 1.0 \n", "P8769 1.0 \n", "P3692 1.0 " ] }, "execution_count": 65, "metadata": {}, "output_type": "execute_result" } ], "source": [ "codepConstDF2.sort_values(by=['violation_ratio'],ascending=False).head(15)" ] }, { "cell_type": "code", "execution_count": 66, "id": "unlikely-chamber", "metadata": { "scrolled": false }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
correctincorrectpathsviolation_ratio
P2347232997624[../../allConstraintsAnalysisWRemoved/codepend...0.992803
P22142989348721476[../../allConstraintsAnalysisWRemoved/codepend...0.194425
P43331113458436934[../../allConstraintsAnalysisWRemoved/codepend...0.013849
P2757295163856[../../allConstraintsAnalysisWRemoved/codepend...0.957377
P2860174842113152425[../../allConstraintsAnalysisWRemoved/codepend...0.000871
P1435212163792401[../../allConstraintsAnalysisWRemoved/codepend...0.041734
P79022038760838[../../allConstraintsAnalysisWRemoved/codepend...0.749006
P7084571857276[../../allConstraintsAnalysisWRemoved/codepend...0.556110
P19712201852917[../../allConstraintsAnalysisWRemoved/codepend...0.302495
P15984060049329[../../allConstraintsAnalysisWRemoved/codepend...0.548533
P1111146803[../../allConstraintsAnalysisWRemoved/codepend...0.999979
P856145194943599[../../allConstraintsAnalysisWRemoved/codepend...0.029153
P2248402541608[../../allConstraintsAnalysisWRemoved/codepend...0.911796
P2325407940619[../../allConstraintsAnalysisWRemoved/codepend...0.908743
P2243403536870[../../allConstraintsAnalysisWRemoved/codepend...0.901357
\n", "
" ], "text/plain": [ " correct incorrect paths \\\n", "P234 7232 997624 [../../allConstraintsAnalysisWRemoved/codepend... \n", "P2214 2989348 721476 [../../allConstraintsAnalysisWRemoved/codepend... \n", "P433 31113458 436934 [../../allConstraintsAnalysisWRemoved/codepend... \n", "P275 7295 163856 [../../allConstraintsAnalysisWRemoved/codepend... \n", "P2860 174842113 152425 [../../allConstraintsAnalysisWRemoved/codepend... \n", "P1435 2121637 92401 [../../allConstraintsAnalysisWRemoved/codepend... \n", "P7902 20387 60838 [../../allConstraintsAnalysisWRemoved/codepend... \n", "P708 45718 57276 [../../allConstraintsAnalysisWRemoved/codepend... \n", "P197 122018 52917 [../../allConstraintsAnalysisWRemoved/codepend... \n", "P1598 40600 49329 [../../allConstraintsAnalysisWRemoved/codepend... \n", "P1111 1 46803 [../../allConstraintsAnalysisWRemoved/codepend... \n", "P856 1451949 43599 [../../allConstraintsAnalysisWRemoved/codepend... \n", "P2248 4025 41608 [../../allConstraintsAnalysisWRemoved/codepend... \n", "P2325 4079 40619 [../../allConstraintsAnalysisWRemoved/codepend... \n", "P2243 4035 36870 [../../allConstraintsAnalysisWRemoved/codepend... \n", "\n", " violation_ratio \n", "P234 0.992803 \n", "P2214 0.194425 \n", "P433 0.013849 \n", "P275 0.957377 \n", "P2860 0.000871 \n", "P1435 0.041734 \n", "P7902 0.749006 \n", "P708 0.556110 \n", "P197 0.302495 \n", "P1598 0.548533 \n", "P1111 0.999979 \n", "P856 0.029153 \n", "P2248 0.911796 \n", "P2325 0.908743 \n", "P2243 0.901357 " ] }, "execution_count": 66, "metadata": {}, "output_type": "execute_result" } ], "source": [ "codepConstDF2.sort_values(by=['incorrect'],ascending=False).head(15)" ] }, { "cell_type": "code", "execution_count": 67, "id": "violent-match", "metadata": { "scrolled": true }, "outputs": [ { "data": { "text/plain": [ "count 2419.000000\n", "mean 0.244716\n", "std 0.335376\n", "min 0.000000\n", "25% 0.000000\n", "50% 0.041734\n", "75% 0.420357\n", "max 1.000000\n", "Name: violation_ratio, dtype: float64" ] }, "execution_count": 67, "metadata": {}, "output_type": "execute_result" } ], "source": [ "codepConstDF2['violation_ratio'].describe()" ] }, { "cell_type": "code", "execution_count": 68, "id": "educational-thickness", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Text(0.5, 1.0, 'Co-Dependency Constraint - Version 2 - Violation Ratios')" ] }, "execution_count": 68, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "codepConstDF2['violation_ratio'].plot.hist(bins=100).set_title(\"Co-Dependency Constraint - Version 2 - Violation Ratios\")" ] }, { "cell_type": "code", "execution_count": 69, "id": "latin-mitchell", "metadata": { "scrolled": true }, "outputs": [ { "data": { "text/plain": [ "Text(0.5, 1.0, 'Co-Dependency Constraint - Version 2 - Violation Ratios <= 0.5')" ] }, "execution_count": 69, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "codepConstDF2[codepConstDF2['violation_ratio'] <= 0.5].violation_ratio.plot.hist(bins=100).set_title(\"Co-Dependency Constraint - Version 2 - Violation Ratios <= 0.5\")" ] }, { "cell_type": "code", "execution_count": 70, "id": "asian-forwarding", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "No. of properties whose violation ratio is greater than mean: 0/2419\n" ] } ], "source": [ "print(f\"No. of properties whose violation ratio is greater than mean: {sum(codepConstDF2['violation_ratio'] >= 2.290915)}/{len(codepConstDF2)}\")" ] }, { "cell_type": "markdown", "id": "destroyed-flash", "metadata": {}, "source": [ "#### Version 3 - Mand" ] }, { "cell_type": "code", "execution_count": 71, "id": "consecutive-plenty", "metadata": {}, "outputs": [], "source": [ "import pandas as pd\n", "codepConstDF3 = pd.DataFrame(codepConstViolations['Mand']).T" ] }, { "cell_type": "code", "execution_count": 72, "id": "digital-mileage", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
correctincorrectpaths
P7213234913[../../allConstraintsAnalysisWRemoved/codepend...
P4019110[../../allConstraintsAnalysisWRemoved/codepend...
P367210[../../allConstraintsAnalysisWRemoved/codepend...
P1808532[../../allConstraintsAnalysisWRemoved/codepend...
P2948172[../../allConstraintsAnalysisWRemoved/codepend...
............
P17701693[../../allConstraintsAnalysisWRemoved/codepend...
P178720951[../../allConstraintsAnalysisWRemoved/codepend...
P2946341181[../../allConstraintsAnalysisWRemoved/codepend...
P1799231[../../allConstraintsAnalysisWRemoved/codepend...
P1800206[../../allConstraintsAnalysisWRemoved/codepend...
\n", "

1089 rows × 3 columns

\n", "
" ], "text/plain": [ " correct incorrect paths\n", "P721 32349 13 [../../allConstraintsAnalysisWRemoved/codepend...\n", "P4019 11 0 [../../allConstraintsAnalysisWRemoved/codepend...\n", "P3672 1 0 [../../allConstraintsAnalysisWRemoved/codepend...\n", "P1808 53 2 [../../allConstraintsAnalysisWRemoved/codepend...\n", "P2948 17 2 [../../allConstraintsAnalysisWRemoved/codepend...\n", "... ... ... ...\n", "P1770 169 3 [../../allConstraintsAnalysisWRemoved/codepend...\n", "P1787 2095 1 [../../allConstraintsAnalysisWRemoved/codepend...\n", "P2946 341 181 [../../allConstraintsAnalysisWRemoved/codepend...\n", "P1799 23 1 [../../allConstraintsAnalysisWRemoved/codepend...\n", "P1800 20 6 [../../allConstraintsAnalysisWRemoved/codepend...\n", "\n", "[1089 rows x 3 columns]" ] }, "execution_count": 72, "metadata": {}, "output_type": "execute_result" } ], "source": [ "codepConstDF3" ] }, { "cell_type": "code", "execution_count": 73, "id": "formed-battle", "metadata": {}, "outputs": [], "source": [ "codepConstDF3['violation_ratio'] = codepConstDF3.apply(lambda p: p.incorrect / p.correct if p.correct != 0 else p.incorrect/100, axis=1)" ] }, { "cell_type": "code", "execution_count": 74, "id": "numerous-construction", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
correctincorrectpathsviolation_ratio
P3823557348[../../allConstraintsAnalysisWRemoved/codepend...133.600000
P5051279[../../allConstraintsAnalysisWRemoved/codepend...39.500000
P8613243[../../allConstraintsAnalysisWRemoved/codepend...21.500000
P2191798[../../allConstraintsAnalysisWRemoved/codepend...5.764706
P243115[../../allConstraintsAnalysisWRemoved/codepend...5.000000
P248215[../../allConstraintsAnalysisWRemoved/codepend...5.000000
P2685943[../../allConstraintsAnalysisWRemoved/codepend...4.777778
P322014[../../allConstraintsAnalysisWRemoved/codepend...4.000000
P406914[../../allConstraintsAnalysisWRemoved/codepend...4.000000
P19591039[../../allConstraintsAnalysisWRemoved/codepend...3.900000
P243213[../../allConstraintsAnalysisWRemoved/codepend...3.000000
P79022038760838[../../allConstraintsAnalysisWRemoved/codepend...2.984157
P3421615[../../allConstraintsAnalysisWRemoved/codepend...2.500000
P7783891[../../allConstraintsAnalysisWRemoved/codepend...2.394737
P22523069[../../allConstraintsAnalysisWRemoved/codepend...2.300000
\n", "
" ], "text/plain": [ " correct incorrect paths \\\n", "P3823 55 7348 [../../allConstraintsAnalysisWRemoved/codepend... \n", "P5051 2 79 [../../allConstraintsAnalysisWRemoved/codepend... \n", "P8613 2 43 [../../allConstraintsAnalysisWRemoved/codepend... \n", "P219 17 98 [../../allConstraintsAnalysisWRemoved/codepend... \n", "P2431 1 5 [../../allConstraintsAnalysisWRemoved/codepend... \n", "P2482 1 5 [../../allConstraintsAnalysisWRemoved/codepend... \n", "P2685 9 43 [../../allConstraintsAnalysisWRemoved/codepend... \n", "P3220 1 4 [../../allConstraintsAnalysisWRemoved/codepend... \n", "P4069 1 4 [../../allConstraintsAnalysisWRemoved/codepend... \n", "P1959 10 39 [../../allConstraintsAnalysisWRemoved/codepend... \n", "P2432 1 3 [../../allConstraintsAnalysisWRemoved/codepend... \n", "P7902 20387 60838 [../../allConstraintsAnalysisWRemoved/codepend... \n", "P3421 6 15 [../../allConstraintsAnalysisWRemoved/codepend... \n", "P778 38 91 [../../allConstraintsAnalysisWRemoved/codepend... \n", "P2252 30 69 [../../allConstraintsAnalysisWRemoved/codepend... \n", "\n", " violation_ratio \n", "P3823 133.600000 \n", "P5051 39.500000 \n", "P8613 21.500000 \n", "P219 5.764706 \n", "P2431 5.000000 \n", "P2482 5.000000 \n", "P2685 4.777778 \n", "P3220 4.000000 \n", "P4069 4.000000 \n", "P1959 3.900000 \n", "P2432 3.000000 \n", "P7902 2.984157 \n", "P3421 2.500000 \n", "P778 2.394737 \n", "P2252 2.300000 " ] }, "execution_count": 74, "metadata": {}, "output_type": "execute_result" } ], "source": [ "codepConstDF3.sort_values(by=['violation_ratio'],ascending=False).head(15)" ] }, { "cell_type": "code", "execution_count": 75, "id": "identified-marble", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "correct 2935\n", "incorrect 79\n", "paths [../../allConstraintsAnalysisWRemoved/codepend...\n", "violation_ratio 0.026917\n", "Name: P1713, dtype: object" ] }, "execution_count": 75, "metadata": {}, "output_type": "execute_result" } ], "source": [ "codepConstDF3.loc['P1713']" ] }, { "cell_type": "code", "execution_count": 76, "id": "established-mounting", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "id\tnode1\tlabel\tnode2\trank\tnode2;wikidatatype\r\n", "Q4681882-P1713-d878eb-9fff460e-0\tQ4681882\tP1713\t\"https://heightnetworth.com/adele-givens-net-worth-2020/\"\tnormal\turl\r\n", "Q1763529-P1713-c190308f-q1763529$ffe0aa48-c924-4913-ad50-343dc2d666f1-0\tQ1763529\tP1713\thttp://www.bundestag.de/bundestag/abgeordnete18/biografien/H/heck_stefan/258446\t\t\r\n", "Q2571287-P1713-6ac225c1-q2571287$bb1e6912-f58f-4106-be9c-55ad68bde759-0\tQ2571287\tP1713\thttp://www.bundestag.de/bundestag/abgeordnete18/biografien/L/lorenz_wilfried/258666\t\t\r\n", "Q41019201-P1713-16045f49-q41019201$f550afb5-9a1e-4e19-b3cf-7cacc61a2e9e-0\tQ41019201\tP1713\thttps://www.bundestag.de/abgeordnete/biografien/P/-/522580\t\t\r\n", "Q41105197-P1713-5ed2f31e-q41105197$d493bc2d-023b-4e2f-babc-221a3e720054-0\tQ41105197\tP1713\thttps://www.bundestag.de/abgeordnete/biografien/S/-/523620\t\t\r\n", "Q41160336-P1713-72b7c975-q41160336$7b946af4-7cb4-4dc8-8a98-6534fb729a4a-0\tQ41160336\tP1713\thttps://www.bundestag.de/abgeordnete/biografien/C/-/518870\t\t\r\n", "Q41356018-P1713-02640366-q41356018$5e59f8fa-cb0a-4abe-9a90-ad9e82a474c4-0\tQ41356018\tP1713\thttps://www.bundestag.de/abgeordnete/biografien/O/-/522500\t\t\r\n", "Q41435421-P1713-7c3cb808-q41435421$38660da2-d639-43fc-9adf-614771a29db9-0\tQ41435421\tP1713\thttps://www.bundestag.de/abgeordnete/biografien/M/muenz_volker/522234\t\t\r\n", "Q29946731-P1713-c997a778-q29946731$5e3c92ab-a298-4fb6-a49c-8e57816275c4-0\tQ29946731\tP1713\thttps://www.bundestag.de/abgeordnete/biografien/R/-/522880\t\t\r\n" ] } ], "source": [ "!head ../../allConstraintsAnalysisWRemoved/codependencyConstraint_Final/Mand/claims.P1713.incorrect.tsv" ] }, { "cell_type": "code", "execution_count": 77, "id": "naval-functionality", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "cat: ../../allConstraintsAnalysisWRemoved/codependencyConstraint/Mand/claims.P1713.incorrect.tsv: No such file or directory\r\n" ] } ], "source": [ "!cat ../../allConstraintsAnalysisWRemoved/codependencyConstraint/Mand/claims.P1713.incorrect.tsv" ] }, { "cell_type": "code", "execution_count": 78, "id": "imposed-bibliography", "metadata": { "scrolled": false }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
correctincorrectpathsviolation_ratio
P79022038760838[../../allConstraintsAnalysisWRemoved/codepend...2.984157
P3823557348[../../allConstraintsAnalysisWRemoved/codepend...133.600000
P1411312323270[../../allConstraintsAnalysisWRemoved/codepend...0.024918
P42826551223[../../allConstraintsAnalysisWRemoved/codepend...0.460640
P108737746351210[../../allConstraintsAnalysisWRemoved/codepend...0.000321
P3647407510[../../allConstraintsAnalysisWRemoved/codepend...1.253071
P7959657006322[../../allConstraintsAnalysisWRemoved/codepend...0.000490
P3802151296[../../allConstraintsAnalysisWRemoved/codepend...0.137610
P39635997281[../../allConstraintsAnalysisWRemoved/codepend...0.046857
P3371903183[../../allConstraintsAnalysisWRemoved/codepend...0.202658
P2946341181[../../allConstraintsAnalysisWRemoved/codepend...0.530792
P3595375171[../../allConstraintsAnalysisWRemoved/codepend...0.031814
P3318278167[../../allConstraintsAnalysisWRemoved/codepend...0.600719
P8425241165[../../allConstraintsAnalysisWRemoved/codepend...0.684647
P19541377164[../../allConstraintsAnalysisWRemoved/codepend...0.119099
\n", "
" ], "text/plain": [ " correct incorrect paths \\\n", "P7902 20387 60838 [../../allConstraintsAnalysisWRemoved/codepend... \n", "P3823 55 7348 [../../allConstraintsAnalysisWRemoved/codepend... \n", "P141 131232 3270 [../../allConstraintsAnalysisWRemoved/codepend... \n", "P428 2655 1223 [../../allConstraintsAnalysisWRemoved/codepend... \n", "P1087 3774635 1210 [../../allConstraintsAnalysisWRemoved/codepend... \n", "P3647 407 510 [../../allConstraintsAnalysisWRemoved/codepend... \n", "P7959 657006 322 [../../allConstraintsAnalysisWRemoved/codepend... \n", "P380 2151 296 [../../allConstraintsAnalysisWRemoved/codepend... \n", "P3963 5997 281 [../../allConstraintsAnalysisWRemoved/codepend... \n", "P3371 903 183 [../../allConstraintsAnalysisWRemoved/codepend... \n", "P2946 341 181 [../../allConstraintsAnalysisWRemoved/codepend... \n", "P359 5375 171 [../../allConstraintsAnalysisWRemoved/codepend... \n", "P3318 278 167 [../../allConstraintsAnalysisWRemoved/codepend... \n", "P8425 241 165 [../../allConstraintsAnalysisWRemoved/codepend... \n", "P1954 1377 164 [../../allConstraintsAnalysisWRemoved/codepend... \n", "\n", " violation_ratio \n", "P7902 2.984157 \n", "P3823 133.600000 \n", "P141 0.024918 \n", "P428 0.460640 \n", "P1087 0.000321 \n", "P3647 1.253071 \n", "P7959 0.000490 \n", "P380 0.137610 \n", "P3963 0.046857 \n", "P3371 0.202658 \n", "P2946 0.530792 \n", "P359 0.031814 \n", "P3318 0.600719 \n", "P8425 0.684647 \n", "P1954 0.119099 " ] }, "execution_count": 78, "metadata": {}, "output_type": "execute_result" } ], "source": [ "codepConstDF3.sort_values(by=['incorrect'],ascending=False).head(15)" ] }, { "cell_type": "code", "execution_count": 79, "id": "emotional-crown", "metadata": { "scrolled": true }, "outputs": [ { "data": { "text/plain": [ "count 1089.000000\n", "mean 0.298588\n", "std 4.291846\n", "min 0.000000\n", "25% 0.000000\n", "50% 0.000000\n", "75% 0.018405\n", "max 133.600000\n", "Name: violation_ratio, dtype: float64" ] }, "execution_count": 79, "metadata": {}, "output_type": "execute_result" } ], "source": [ "codepConstDF3['violation_ratio'].describe()" ] }, { "cell_type": "code", "execution_count": 80, "id": "certain-freeze", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Text(0.5, 1.0, 'Co-Dependency Constraint - Version 3 - Violation Ratios')" ] }, "execution_count": 80, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "codepConstDF3['violation_ratio'].plot.hist(bins=100).set_title(\"Co-Dependency Constraint - Version 3 - Violation Ratios\")" ] }, { "cell_type": "code", "execution_count": 81, "id": "cooperative-ownership", "metadata": { "scrolled": true }, "outputs": [ { "data": { "text/plain": [ "Text(0.5, 1.0, 'Co-Dependency Constraint - Version 3 - Violation Ratios <= 0.0005')" ] }, "execution_count": 81, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "codepConstDF3[codepConstDF3['violation_ratio'] <= 0.0005].violation_ratio.plot.hist(bins=100).set_title(\"Co-Dependency Constraint - Version 3 - Violation Ratios <= 0.0005\")" ] }, { "cell_type": "code", "execution_count": 82, "id": "studied-inclusion", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "No. of properties whose violation ratio is greater than mean: 44/1089\n" ] } ], "source": [ "print(f\"No. of properties whose violation ratio is greater than mean: {sum(codepConstDF3['violation_ratio'] >= 0.922928)}/{len(codepConstDF3)}\")" ] }, { "cell_type": "markdown", "id": "protective-brazil", "metadata": {}, "source": [ "#### Version 4 - Normal" ] }, { "cell_type": "code", "execution_count": 83, "id": "laughing-pressing", "metadata": {}, "outputs": [], "source": [ "import pandas as pd\n", "codepConstDF4 = pd.DataFrame(codepConstViolations['Normal']).T" ] }, { "cell_type": "code", "execution_count": 84, "id": "loving-swift", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
correctincorrectpaths
P1404131[../../allConstraintsAnalysisWRemoved/codepend...
P210036497[../../allConstraintsAnalysisWRemoved/codepend...
P386271[../../allConstraintsAnalysisWRemoved/codepend...
P6769310[../../allConstraintsAnalysisWRemoved/codepend...
P447420[../../allConstraintsAnalysisWRemoved/codepend...
............
P81743671[../../allConstraintsAnalysisWRemoved/codepend...
P277812[../../allConstraintsAnalysisWRemoved/codepend...
P541831[../../allConstraintsAnalysisWRemoved/codepend...
P2783260[../../allConstraintsAnalysisWRemoved/codepend...
P817710[../../allConstraintsAnalysisWRemoved/codepend...
\n", "

1925 rows × 3 columns

\n", "
" ], "text/plain": [ " correct incorrect paths\n", "P1404 13 1 [../../allConstraintsAnalysisWRemoved/codepend...\n", "P2100 364 97 [../../allConstraintsAnalysisWRemoved/codepend...\n", "P3862 7 1 [../../allConstraintsAnalysisWRemoved/codepend...\n", "P6769 31 0 [../../allConstraintsAnalysisWRemoved/codepend...\n", "P4474 2 0 [../../allConstraintsAnalysisWRemoved/codepend...\n", "... ... ... ...\n", "P8174 367 1 [../../allConstraintsAnalysisWRemoved/codepend...\n", "P2778 1 2 [../../allConstraintsAnalysisWRemoved/codepend...\n", "P5418 3 1 [../../allConstraintsAnalysisWRemoved/codepend...\n", "P2783 26 0 [../../allConstraintsAnalysisWRemoved/codepend...\n", "P8177 1 0 [../../allConstraintsAnalysisWRemoved/codepend...\n", "\n", "[1925 rows x 3 columns]" ] }, "execution_count": 84, "metadata": {}, "output_type": "execute_result" } ], "source": [ "codepConstDF4" ] }, { "cell_type": "code", "execution_count": 85, "id": "north-christian", "metadata": {}, "outputs": [], "source": [ "codepConstDF4['violation_ratio'] = codepConstDF4.apply(lambda p: p.incorrect / p.correct if p.correct != 0 else p.incorrect/100, axis=1)" ] }, { "cell_type": "code", "execution_count": 86, "id": "closing-causing", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
correctincorrectpathsviolation_ratio
P1111146803[../../allConstraintsAnalysisWRemoved/codepend...46803.000000
P37432542[../../allConstraintsAnalysisWRemoved/codepend...847.333333
P111683199[../../allConstraintsAnalysisWRemoved/codepend...399.875000
P76951851[../../allConstraintsAnalysisWRemoved/codepend...370.200000
P26434817084[../../allConstraintsAnalysisWRemoved/codepend...355.916667
P1283133871[../../allConstraintsAnalysisWRemoved/codepend...297.769231
P275812318919[../../allConstraintsAnalysisWRemoved/codepend...153.813008
P26372295[../../allConstraintsAnalysisWRemoved/codepend...147.500000
P2347232997624[../../allConstraintsAnalysisWRemoved/codepend...137.945796
P19958911360[../../allConstraintsAnalysisWRemoved/codepend...127.640449
P31563365[../../allConstraintsAnalysisWRemoved/codepend...121.666667
P5251100[../../allConstraintsAnalysisWRemoved/codepend...100.000000
P852464505[../../allConstraintsAnalysisWRemoved/codepend...97.934783
P5971057210[../../allConstraintsAnalysisWRemoved/codepend...68.666667
P5627449[../../allConstraintsAnalysisWRemoved/codepend...64.142857
\n", "
" ], "text/plain": [ " correct incorrect paths \\\n", "P1111 1 46803 [../../allConstraintsAnalysisWRemoved/codepend... \n", "P374 3 2542 [../../allConstraintsAnalysisWRemoved/codepend... \n", "P1116 8 3199 [../../allConstraintsAnalysisWRemoved/codepend... \n", "P769 5 1851 [../../allConstraintsAnalysisWRemoved/codepend... \n", "P2643 48 17084 [../../allConstraintsAnalysisWRemoved/codepend... \n", "P1283 13 3871 [../../allConstraintsAnalysisWRemoved/codepend... \n", "P2758 123 18919 [../../allConstraintsAnalysisWRemoved/codepend... \n", "P2637 2 295 [../../allConstraintsAnalysisWRemoved/codepend... \n", "P234 7232 997624 [../../allConstraintsAnalysisWRemoved/codepend... \n", "P1995 89 11360 [../../allConstraintsAnalysisWRemoved/codepend... \n", "P3156 3 365 [../../allConstraintsAnalysisWRemoved/codepend... \n", "P525 1 100 [../../allConstraintsAnalysisWRemoved/codepend... \n", "P852 46 4505 [../../allConstraintsAnalysisWRemoved/codepend... \n", "P597 105 7210 [../../allConstraintsAnalysisWRemoved/codepend... \n", "P562 7 449 [../../allConstraintsAnalysisWRemoved/codepend... \n", "\n", " violation_ratio \n", "P1111 46803.000000 \n", "P374 847.333333 \n", "P1116 399.875000 \n", "P769 370.200000 \n", "P2643 355.916667 \n", "P1283 297.769231 \n", "P2758 153.813008 \n", "P2637 147.500000 \n", "P234 137.945796 \n", "P1995 127.640449 \n", "P3156 121.666667 \n", "P525 100.000000 \n", "P852 97.934783 \n", "P597 68.666667 \n", "P562 64.142857 " ] }, "execution_count": 86, "metadata": {}, "output_type": "execute_result" } ], "source": [ "codepConstDF4.sort_values(by=['violation_ratio'],ascending=False).head(15)" ] }, { "cell_type": "code", "execution_count": 87, "id": "weighted-input", "metadata": {}, "outputs": [], "source": [ "# list(codepConstDF4.sort_values(by=['violation_ratio'],ascending=False).head(5).paths)" ] }, { "cell_type": "code", "execution_count": 88, "id": "brief-effect", "metadata": { "scrolled": false }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
correctincorrectpathsviolation_ratio
P2347232997624[../../allConstraintsAnalysisWRemoved/codepend...137.945796
P22142989348721476[../../allConstraintsAnalysisWRemoved/codepend...0.241349
P43331113458436934[../../allConstraintsAnalysisWRemoved/codepend...0.014043
P2757295163856[../../allConstraintsAnalysisWRemoved/codepend...22.461412
P2860174842113152425[../../allConstraintsAnalysisWRemoved/codepend...0.000872
P1435212163792401[../../allConstraintsAnalysisWRemoved/codepend...0.043552
P7084571857276[../../allConstraintsAnalysisWRemoved/codepend...1.252811
P19712201852917[../../allConstraintsAnalysisWRemoved/codepend...0.433682
P15984060049329[../../allConstraintsAnalysisWRemoved/codepend...1.215000
P1111146803[../../allConstraintsAnalysisWRemoved/codepend...46803.000000
P856145194943599[../../allConstraintsAnalysisWRemoved/codepend...0.030028
P2248402541608[../../allConstraintsAnalysisWRemoved/codepend...10.337391
P2325407940619[../../allConstraintsAnalysisWRemoved/codepend...9.958078
P2243403536870[../../allConstraintsAnalysisWRemoved/codepend...9.137546
P2244403636801[../../allConstraintsAnalysisWRemoved/codepend...9.118186
\n", "
" ], "text/plain": [ " correct incorrect paths \\\n", "P234 7232 997624 [../../allConstraintsAnalysisWRemoved/codepend... \n", "P2214 2989348 721476 [../../allConstraintsAnalysisWRemoved/codepend... \n", "P433 31113458 436934 [../../allConstraintsAnalysisWRemoved/codepend... \n", "P275 7295 163856 [../../allConstraintsAnalysisWRemoved/codepend... \n", "P2860 174842113 152425 [../../allConstraintsAnalysisWRemoved/codepend... \n", "P1435 2121637 92401 [../../allConstraintsAnalysisWRemoved/codepend... \n", "P708 45718 57276 [../../allConstraintsAnalysisWRemoved/codepend... \n", "P197 122018 52917 [../../allConstraintsAnalysisWRemoved/codepend... \n", "P1598 40600 49329 [../../allConstraintsAnalysisWRemoved/codepend... \n", "P1111 1 46803 [../../allConstraintsAnalysisWRemoved/codepend... \n", "P856 1451949 43599 [../../allConstraintsAnalysisWRemoved/codepend... \n", "P2248 4025 41608 [../../allConstraintsAnalysisWRemoved/codepend... \n", "P2325 4079 40619 [../../allConstraintsAnalysisWRemoved/codepend... \n", "P2243 4035 36870 [../../allConstraintsAnalysisWRemoved/codepend... \n", "P2244 4036 36801 [../../allConstraintsAnalysisWRemoved/codepend... \n", "\n", " violation_ratio \n", "P234 137.945796 \n", "P2214 0.241349 \n", "P433 0.014043 \n", "P275 22.461412 \n", "P2860 0.000872 \n", "P1435 0.043552 \n", "P708 1.252811 \n", "P197 0.433682 \n", "P1598 1.215000 \n", "P1111 46803.000000 \n", "P856 0.030028 \n", "P2248 10.337391 \n", "P2325 9.958078 \n", "P2243 9.137546 \n", "P2244 9.118186 " ] }, "execution_count": 88, "metadata": {}, "output_type": "execute_result" } ], "source": [ "codepConstDF4.sort_values(by=['incorrect'],ascending=False).head(15)" ] }, { "cell_type": "code", "execution_count": 89, "id": "wireless-passenger", "metadata": { "scrolled": true }, "outputs": [ { "data": { "text/plain": [ "count 1925.000000\n", "mean 27.339989\n", "std 1067.009120\n", "min 0.000000\n", "25% 0.000000\n", "50% 0.060000\n", "75% 0.580000\n", "max 46803.000000\n", "Name: violation_ratio, dtype: float64" ] }, "execution_count": 89, "metadata": {}, "output_type": "execute_result" } ], "source": [ "codepConstDF4['violation_ratio'].describe()" ] }, { "cell_type": "code", "execution_count": 90, "id": "civilian-arnold", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Text(0.5, 1.0, 'Co-Dependency Constraint - Version 4 - Violation Ratios')" ] }, "execution_count": 90, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "codepConstDF4['violation_ratio'].plot.hist(bins=100).set_title(\"Co-Dependency Constraint - Version 4 - Violation Ratios\")" ] }, { "cell_type": "code", "execution_count": 91, "id": "threaded-cooler", "metadata": { "scrolled": true }, "outputs": [ { "data": { "text/plain": [ "Text(0.5, 1.0, 'Co-Dependency Constraint - Version 4 - Violation Ratios <= 0.5')" ] }, "execution_count": 91, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "codepConstDF4[codepConstDF4['violation_ratio'] <= 0.5].violation_ratio.plot.hist(bins=100).set_title(\"Co-Dependency Constraint - Version 4 - Violation Ratios <= 0.5\")" ] }, { "cell_type": "code", "execution_count": 92, "id": "olympic-charlotte", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "No. of properties whose violation ratio is greater than mean: 206/1925\n" ] } ], "source": [ "print(f\"No. of properties whose violation ratio is greater than mean: {sum(codepConstDF4['violation_ratio'] >= 2.414703)}/{len(codepConstDF4)}\")" ] }, { "cell_type": "markdown", "id": "published-affiliate", "metadata": {}, "source": [ "### Find out time required" ] }, { "cell_type": "code", "execution_count": null, "id": "aggregate-conservative", "metadata": {}, "outputs": [], "source": [ "import pandas as pd\n", "import os\n", "from tqdm.notebook import tqdm\n", "\n", "codepConstViolations = {}\n", "\n", "codepConstViolations = {}\n", "codepConstPropList = set()\n", "\n", "def extractTimes(filename):\n", " times = []\n", " with open(filename) as f:\n", " for line in f:\n", " if \"real\" in line:\n", " line = line.strip()\n", " time1 = line.split(\"\\t\")[1]\n", " mins, sec = time1.split(\"m\")\n", " mins = int(mins)\n", " sec = float(sec[:-1])\n", " times.append(60 * mins + sec)\n", " return times\n", "\n", "# codepConstViolationsSummary = {}\n", "times = []\n", "timesVersion = {\"MSN\": [], \"MN\": [], \"M\": [], \"N\": [], \"S\": []}\n", "filePath = '/data/wd-correctness/propertiesSplitWRemoved/checkViolations/exec_logs/'\n", "for filename in tqdm(os.listdir(filePath)):\n", " if filename.startswith(\"timeLog_codepConst_\"):\n", " ver = filename.split('_')[2]\n", " tempTimes = extractTimes(filePath + filename)\n", " times += tempTimes\n", " timesVersion[ver] += tempTimes\n", "print(pd.Series(times).describe())" ] }, { "cell_type": "code", "execution_count": null, "id": "hearing-treasury", "metadata": {}, "outputs": [], "source": [ "print(pd.Series(timesVersion['MSN']).describe())" ] }, { "cell_type": "code", "execution_count": null, "id": "animal-vocabulary", "metadata": {}, "outputs": [], "source": [ "print(pd.Series(timesVersion['MN']).describe())" ] }, { "cell_type": "code", "execution_count": null, "id": "gentle-accessory", "metadata": {}, "outputs": [], "source": [ "print(pd.Series(timesVersion['M']).describe())" ] }, { "cell_type": "code", "execution_count": null, "id": "fresh-namibia", "metadata": {}, "outputs": [], "source": [ "print(pd.Series(timesVersion['N']).describe())" ] }, { "cell_type": "markdown", "id": "industrial-parcel", "metadata": {}, "source": [ "## Symmetric Constraint (Q21510862)\n", "\n", "This constraint says, if node1 has a property with this constraint, then both `(node1)-[prop]->(node2)` and `(node2)-[prop]->(node1)` must be present with few exceptions" ] }, { "cell_type": "markdown", "id": "silent-fundamentals", "metadata": {}, "source": [ "### Constraints File" ] }, { "cell_type": "code", "execution_count": 2, "id": "known-wednesday", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[2021-04-12 01:02:26 query]: SQL Translation:\r\n", "---------------------------------------------\r\n", " SELECT *\r\n", " FROM graph_1 AS graph_1_c1\r\n", " WHERE graph_1_c1.\"label\"=?\r\n", " AND graph_1_c1.\"node2\"=?\r\n", " PARAS: ['P2302', 'Q21510862']\r\n", "---------------------------------------------\r\n" ] } ], "source": [ "!kgtk --debug query -i ../../gdrive-kgtk-dump-2020-12-07/claims.properties.tsv.gz \\\n", " ../../gdrive-kgtk-dump-2020-12-07/qualifiers.properties.tsv.gz \\\n", " --match \"p: (nodeProp1)-[nodePropEdge:P2302]->(:Q21510862)\" \\\n", " -o ../../constraintsOP/symmetricConstraint/claims.constraints_list.tsv \\\n", " --graph-cache ~/sqlite3_caches/temp1345.valuetype.sqlite3.db" ] }, { "cell_type": "code", "execution_count": 3, "id": "legal-diamond", "metadata": {}, "outputs": [], "source": [ "import pandas as pd\n", "qualiDF = pd.read_csv(\"../../gdrive-kgtk-dump-2020-12-07/qualifiers.properties.tsv.gz\",sep='\\t')\n", "constDF = pd.read_csv(\"../../constraintsOP/symmetricConstraint/claims.constraints_list.tsv\",sep='\\t')" ] }, { "cell_type": "code", "execution_count": 4, "id": "exceptional-morris", "metadata": {}, "outputs": [], "source": [ "constDF2 = constDF.set_index('id').join(qualiDF.set_index('node1'),rsuffix='_qualifier').drop(columns=['id', 'node2;wikidatatype_qualifier', 'rank', 'node2', 'label', 'node2;wikidatatype']).rename(columns={'label_qualifier':'label', 'node2_qualifier': 'node2'})\n", "constDF2 = constDF2.reset_index()\n", "constDF2 = constDF2.rename(columns={'index':'id'})\n", "constDF2['label'] = constDF2.label.fillna(\"P2316\")\n", "constDF2['node2'] = constDF2.node2.fillna(\"Normal\")" ] }, { "cell_type": "code", "execution_count": 5, "id": "burning-involvement", "metadata": {}, "outputs": [], "source": [ "constDF2.to_csv(\"../../constraintsOP/symmetricConstraint/claims.constraints_all.tsv\",sep=\"\\t\",index=False)" ] }, { "cell_type": "code", "execution_count": 6, "id": "naval-identification", "metadata": {}, "outputs": [], "source": [ "import pandas as pd\n", "import math\n", "dfItemRequires = pd.read_csv('../../constraintsOP/symmetricConstraint/claims.constraints_all.tsv',sep='\\t')" ] }, { "cell_type": "code", "execution_count": 7, "id": "considered-madison", "metadata": {}, "outputs": [], "source": [ "dfItemRequires = dfItemRequires.groupby(['id','node1','label']).node2.apply(lambda p: p.tolist()).reset_index()" ] }, { "cell_type": "code", "execution_count": 8, "id": "alone-cattle", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array(['P2316', 'P2303'], dtype=object)" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "dfItemRequires['label'].unique()" ] }, { "cell_type": "code", "execution_count": 9, "id": "mighty-ordinary", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "P2316 42\n", "P2303 3\n", "Name: label, dtype: int64" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "dfItemRequires['label'].value_counts()" ] }, { "cell_type": "code", "execution_count": 10, "id": "sensitive-alliance", "metadata": {}, "outputs": [], "source": [ "#Reference: https://stackoverflow.com/a/17298454\n", "# dfItemRequires.pivot_table('node2', ['node1', 'id'], 'label')\n", "dfItemRequires = dfItemRequires.pivot(index=['node1','id'], columns='label', values='node2')" ] }, { "cell_type": "code", "execution_count": 11, "id": "tender-valley", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
labelP2303P2316
node1id
P1322P1322-P2302-Q21510862-85dea891-0NaN[Normal]
P1327P1327-P2302-Q21510862-a3c3a094-0NaN[Normal]
P1382P1382-P2302-Q21510862-f6bcfecf-0NaN[Normal]
P1560P1560-P2302-Q21510862-fabecaeb-0NaN[Q21502408]
P1639P1639-P2302-Q21510862-384edcd4-0NaN[Q21502408]
\n", "
" ], "text/plain": [ "label P2303 P2316\n", "node1 id \n", "P1322 P1322-P2302-Q21510862-85dea891-0 NaN [Normal]\n", "P1327 P1327-P2302-Q21510862-a3c3a094-0 NaN [Normal]\n", "P1382 P1382-P2302-Q21510862-f6bcfecf-0 NaN [Normal]\n", "P1560 P1560-P2302-Q21510862-fabecaeb-0 NaN [Q21502408]\n", "P1639 P1639-P2302-Q21510862-384edcd4-0 NaN [Q21502408]" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "dfItemRequires.head()" ] }, { "cell_type": "code", "execution_count": 12, "id": "cellular-canal", "metadata": {}, "outputs": [], "source": [ "dfItemRequires = dfItemRequires.droplevel(1)" ] }, { "cell_type": "code", "execution_count": 13, "id": "desperate-poster", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
labelP2303P2316
node1
P1322NaN[Normal]
P1327NaN[Normal]
P1382NaN[Normal]
P1560NaN[Q21502408]
P1639NaN[Q21502408]
\n", "
" ], "text/plain": [ "label P2303 P2316\n", "node1 \n", "P1322 NaN [Normal]\n", "P1327 NaN [Normal]\n", "P1382 NaN [Normal]\n", "P1560 NaN [Q21502408]\n", "P1639 NaN [Q21502408]" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "dfItemRequires.head()" ] }, { "cell_type": "markdown", "id": "primary-netherlands", "metadata": {}, "source": [ "### Query Generator" ] }, { "cell_type": "code", "execution_count": 14, "id": "pointed-haven", "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "d32afc9683cb4bdc9252b04f5608a5f2", "version_major": 2, "version_minor": 0 }, "text/plain": [ "0it [00:00, ?it/s]" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "from tqdm.notebook import tqdm\n", "import os.path\n", "import os\n", "\n", "cnt = 0\n", "fCnt = 0\n", "\n", "folderName = 'symmetricConstraint'\n", "shellFileSuffix = 'symmConst_Validator_'\n", "graph_cache_prefix = 'symm_03'\n", "\n", "for row in tqdm(dfItemRequires.iterrows()):\n", "# try:\n", " prop = row[0]\n", " constraint = row[1]\n", " mandatory = []\n", " suggestion = []\n", " normal = []\n", " prop = str(prop)\n", " \n", " if type(constraint['P2316']) == list:\n", " if constraint['P2316'][0] == 'Q21502408':\n", " sfname = 'mandatory'\n", " elif constraint['P2316'][0] == 'Q62026391':\n", " sfname = 'suggestion'\n", " elif constraint['P2316'][0] == 'Normal':\n", " sfname = 'normal'\n", " else:\n", " sfname = 'normal'\n", " \n", " if not(os.path.isfile(\"../../propertiesSplitWRemoved/claims.\"+ prop +\".tsv\")):\n", " continue\n", " \n", " command = \"{ time ( kgtk --debug query -i ../../propertiesSplitWRemoved/claims.\"+ prop +\".tsv \\\n", " ../../propertiesSplitWRemoved/claims.\"+ prop +\".copy2.tsv \\\n", " --match 'tsv: (node1)-[nodeProp]->(node2), copy2: (node2)-[]->(node1)' \"\n", " \n", " os.system(\"cp ../../propertiesSplitWRemoved/claims.\"+ prop +\".tsv ../../propertiesSplitWRemoved/claims.\"+ prop +\".copy2.tsv\")\n", " \n", " if cnt % 60 == 0:\n", " fCnt += 1\n", " fOP = open(\"../../propertiesSplitWRemoved/checkViolations/\" + shellFileSuffix + str(fCnt) + \".sh\",\"w\")\n", " command\n", " if type(constraint['P2303']) != list: # Exceptions not present\n", " commandRest = \" --return 'nodeProp.id, node1 as `node1`, nodeProp.label as `label`, node2 as `node2`' \\\n", " -o ../../allConstraintsAnalysisWRemoved/\" + folderName + \"/\" + sfname + \"/claims.\"+ prop +\".correct.tsv \\\n", " --graph-cache ~/sqlite3_caches/\"+graph_cache_prefix+\"_\" + str(fCnt) + \".sqlite3.db; \\\n", " kgtk --debug ifnotexists -i ../../propertiesSplitWRemoved/claims.\"+ prop +\".tsv \\\n", " --filter-on ../../allConstraintsAnalysisWRemoved/\" + folderName + \"/\" + sfname + \"/claims.\"+ prop +\".correct.tsv \\\n", " --filter-mode NONE \\\n", " --input-keys node1 label \\\n", " --filter-keys node1 label \"\n", " \n", " commandOPFile = \"-o ../../allConstraintsAnalysisWRemoved/\" + folderName + \"/\" + sfname + \"/claims.\"+ prop +\".\"\n", " \n", " command += commandRest + commandOPFile + \"incorrect.tsv ) } 2>> ../../propertiesSplitWRemoved/checkViolations/exec_logs/\" + shellFileSuffix + str(fCnt) + \".txt;\\n\"\n", "# print(command)\n", " fOP.write(command)\n", " else:\n", " excptns = constraint['P2303']\n", " commandRest = \" --return 'distinct nodeProp.id, node1 as `node1`, nodeProp.label as `label`, node2 as `node2`' \\\n", " -o ../../allConstraintsAnalysisWRemoved/\" + folderName + \"/\" + sfname + \"/claims.\"+ prop +\".correct_wo_exceptions.tsv \\\n", " --graph-cache ~/sqlite3_caches/\"+graph_cache_prefix+\"_\" + str(fCnt) + \".sqlite3.db; \\\n", " kgtk --debug ifnotexists -i ../../propertiesSplitWRemoved/claims.\"+ prop +\".tsv \\\n", " --filter-on ../../allConstraintsAnalysisWRemoved/\" + folderName + \"/\" + sfname + \"/claims.\"+ prop +\".correct_wo_exceptions.tsv \\\n", " --filter-mode NONE \\\n", " --input-keys node1 label \\\n", " --filter-keys node1 label \"\n", " \n", " commandOPFile = \"-o ../../allConstraintsAnalysisWRemoved/\" + folderName + \"/\" + sfname + \"/claims.\"+ prop +\".\"\n", " \n", " command += commandRest + commandOPFile + \"incorrect_wo_exceptions.tsv; \"\n", "# print(command)\n", " fOP.write(command)\n", " \n", " command = \" kgtk --debug query -i ../../allConstraintsAnalysisWRemoved/\" + folderName + \"/\" + sfname + \"/claims.\" + prop + \".incorrect_wo_exceptions.tsv \\\n", " --match '(node1)-[]->()' --where 'node1 in \" + str(list(excptns)).replace(\"'\",'\"') + \"' \\\n", " -o ../../allConstraintsAnalysisWRemoved/\" + folderName + \"/\" + sfname + \"/claims.\" + prop + \".correct_exceptions.tsv \\\n", " --graph-cache ~/sqlite3_caches/\"+graph_cache_prefix+\"_\" + str(fCnt) + \".sqlite3.db; \"\n", "# print(command)\n", " fOP.write(command)\n", " \n", " command = \" kgtk --debug ifnotexists -i ../../allConstraintsAnalysisWRemoved/\" + folderName + \"/\" + sfname + \"/claims.\" + prop + \".incorrect_wo_exceptions.tsv \\\n", " --filter-on ../../allConstraintsAnalysisWRemoved/\" + folderName + \"/\" + sfname + \"/claims.\" + prop + \".correct_exceptions.tsv \\\n", " --filter-mode NONE \\\n", " --input-keys node1 label \\\n", " --filter-keys node1 label \\\n", " -o ../../allConstraintsAnalysisWRemoved/\" + folderName + \"/\" + sfname + \"/claims.\"+ prop +\".incorrect.tsv; \"\n", "# print(command)\n", " fOP.write(command)\n", " \n", " command = \" kgtk cat -i ../../allConstraintsAnalysisWRemoved/\" + folderName + \"/\" + sfname + \"/claims.\"+ prop +\".correct_wo_exceptions.tsv \\\n", " ../../allConstraintsAnalysisWRemoved/\" + folderName + \"/\" + sfname + \"/claims.\"+ prop +\".correct_exceptions.tsv \\\n", " -o ../../allConstraintsAnalysisWRemoved/\" + folderName + \"/\" + sfname + \"/claims.\"+ prop +\".correct.tsv ) } 2>> ../../propertiesSplitWRemoved/checkViolations/exec_logs/\" + shellFileSuffix + str(fCnt) + \".txt;\\n\"\n", "# print(command)\n", " fOP.write(command)\n", " \n", " \n", " cnt += 1\n", "# except:\n", "# print(\"Something failed for prop:\",prop)" ] }, { "cell_type": "code", "execution_count": 15, "id": "polar-canada", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "39" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "cnt" ] }, { "cell_type": "code", "execution_count": 105, "id": "virtual-disney", "metadata": {}, "outputs": [], "source": [ "# import os\n", "# for i in range(1,2):\n", "# os.system(\"screen -dm sh ../../propertiesSplitWRemoved/checkViolations/symmConst_Validator_\"+str(i)+\".sh\")" ] }, { "cell_type": "markdown", "id": "coral-cheese", "metadata": {}, "source": [ "### Analyze Violations" ] }, { "cell_type": "code", "execution_count": 16, "id": "governmental-backup", "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "a2a80c6bae2542478392fe2d804285f3", "version_major": 2, "version_minor": 0 }, "text/plain": [ "0it [00:00, ?it/s]" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "472d2081d6734791bba9336e216f61ec", "version_major": 2, "version_minor": 0 }, "text/plain": [ " 0%| | 0/13 [00:00\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
correctincorrectpathsviolation_ratio
P1639210525[../../allConstraintsAnalysisWRemoved/symmetri...0.011737
P1560348815[../../allConstraintsAnalysisWRemoved/symmetri...0.004282
P336418131[../../allConstraintsAnalysisWRemoved/symmetri...0.000551
P2152800[../../allConstraintsAnalysisWRemoved/symmetri...0.000000
P61852820[../../allConstraintsAnalysisWRemoved/symmetri...0.000000
\n", "" ], "text/plain": [ " correct incorrect paths \\\n", "P1639 2105 25 [../../allConstraintsAnalysisWRemoved/symmetri... \n", "P1560 3488 15 [../../allConstraintsAnalysisWRemoved/symmetri... \n", "P3364 1813 1 [../../allConstraintsAnalysisWRemoved/symmetri... \n", "P2152 80 0 [../../allConstraintsAnalysisWRemoved/symmetri... \n", "P6185 282 0 [../../allConstraintsAnalysisWRemoved/symmetri... \n", "\n", " violation_ratio \n", "P1639 0.011737 \n", "P1560 0.004282 \n", "P3364 0.000551 \n", "P2152 0.000000 \n", "P6185 0.000000 " ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "symmConstDF1 = pd.DataFrame(symmConstViolations['mandatory']).T\n", "symmConstDF1['violation_ratio'] = symmConstDF1.apply(lambda p: p.incorrect / (p.incorrect + p.correct), axis=1)\n", "symmConstDF1.sort_values(by=['violation_ratio'],ascending=False).head(15)" ] }, { "cell_type": "code", "execution_count": 8, "id": "gross-extraction", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
correctincorrectpathsviolation_ratio
P27891052016590[../../allConstraintsAnalysisWRemoved/symmetri...0.058949
P188953333824740[../../allConstraintsAnalysisWRemoved/symmetri...0.044331
P1971808641737[../../allConstraintsAnalysisWRemoved/symmetri...0.009513
\n", "
" ], "text/plain": [ " correct incorrect paths \\\n", "P2789 105201 6590 [../../allConstraintsAnalysisWRemoved/symmetri... \n", "P1889 533338 24740 [../../allConstraintsAnalysisWRemoved/symmetri... \n", "P197 180864 1737 [../../allConstraintsAnalysisWRemoved/symmetri... \n", "\n", " violation_ratio \n", "P2789 0.058949 \n", "P1889 0.044331 \n", "P197 0.009513 " ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "symmConstDF2 = pd.DataFrame(symmConstViolations['suggestion']).T\n", "symmConstDF2['violation_ratio'] = symmConstDF2.apply(lambda p: p.incorrect / (p.incorrect + p.correct), axis=1)\n", "symmConstDF2.sort_values(by=['violation_ratio'],ascending=False).head(15)" ] }, { "cell_type": "code", "execution_count": 9, "id": "heavy-scout", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
correctincorrectpathsviolation_ratio
P518805[../../allConstraintsAnalysisWRemoved/symmetri...1.000000
P597401[../../allConstraintsAnalysisWRemoved/symmetri...1.000000
P17061284[../../allConstraintsAnalysisWRemoved/symmetri...0.875000
P2652500836[../../allConstraintsAnalysisWRemoved/symmetri...0.625749
P521424146[../../allConstraintsAnalysisWRemoved/symmetri...0.256140
P684120917693437304[../../allConstraintsAnalysisWRemoved/symmetri...0.221346
P30321743316[../../allConstraintsAnalysisWRemoved/symmetri...0.153473
P1382110751657[../../allConstraintsAnalysisWRemoved/symmetri...0.130145
P2293147361969[../../allConstraintsAnalysisWRemoved/symmetri...0.117869
P13277954706[../../allConstraintsAnalysisWRemoved/symmetri...0.081524
P4545464[../../allConstraintsAnalysisWRemoved/symmetri...0.080000
P45111072790[../../allConstraintsAnalysisWRemoved/symmetri...0.066599
P5306730382[../../allConstraintsAnalysisWRemoved/symmetri...0.053712
P34032174112[../../allConstraintsAnalysisWRemoved/symmetri...0.048994
P46026570612622[../../allConstraintsAnalysisWRemoved/symmetri...0.045349
\n", "
" ], "text/plain": [ " correct incorrect paths \\\n", "P5188 0 5 [../../allConstraintsAnalysisWRemoved/symmetri... \n", "P5974 0 1 [../../allConstraintsAnalysisWRemoved/symmetri... \n", "P1706 12 84 [../../allConstraintsAnalysisWRemoved/symmetri... \n", "P2652 500 836 [../../allConstraintsAnalysisWRemoved/symmetri... \n", "P521 424 146 [../../allConstraintsAnalysisWRemoved/symmetri... \n", "P684 12091769 3437304 [../../allConstraintsAnalysisWRemoved/symmetri... \n", "P3032 1743 316 [../../allConstraintsAnalysisWRemoved/symmetri... \n", "P1382 11075 1657 [../../allConstraintsAnalysisWRemoved/symmetri... \n", "P2293 14736 1969 [../../allConstraintsAnalysisWRemoved/symmetri... \n", "P1327 7954 706 [../../allConstraintsAnalysisWRemoved/symmetri... \n", "P4545 46 4 [../../allConstraintsAnalysisWRemoved/symmetri... \n", "P451 11072 790 [../../allConstraintsAnalysisWRemoved/symmetri... \n", "P530 6730 382 [../../allConstraintsAnalysisWRemoved/symmetri... \n", "P3403 2174 112 [../../allConstraintsAnalysisWRemoved/symmetri... \n", "P460 265706 12622 [../../allConstraintsAnalysisWRemoved/symmetri... \n", "\n", " violation_ratio \n", "P5188 1.000000 \n", "P5974 1.000000 \n", "P1706 0.875000 \n", "P2652 0.625749 \n", "P521 0.256140 \n", "P684 0.221346 \n", "P3032 0.153473 \n", "P1382 0.130145 \n", "P2293 0.117869 \n", "P1327 0.081524 \n", "P4545 0.080000 \n", "P451 0.066599 \n", "P530 0.053712 \n", "P3403 0.048994 \n", "P460 0.045349 " ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "symmConstDF3 = pd.DataFrame(symmConstViolations['normal']).T\n", "symmConstDF3['violation_ratio'] = symmConstDF3.apply(lambda p: p.incorrect / (p.incorrect + p.correct), axis=1)\n", "symmConstDF3.sort_values(by=['violation_ratio'],ascending=False).head(15)" ] }, { "cell_type": "code", "execution_count": 10, "id": "sexual-blowing", "metadata": {}, "outputs": [], "source": [ "# !head ../../allConstraintsAnalysisWRemoved/symmetricConstraint/normal/claims.P3032.incorrect.tsv\n", "\n" ] }, { "cell_type": "code", "execution_count": 11, "id": "legitimate-aspect", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Text(0.5, 1.0, 'Symmetric Normal Constraint - Violation Ratios')" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "symmConstDF3.sort_values(by=['violation_ratio'],ascending=False)['violation_ratio'].plot.hist(bins=100).set_title(\"Symmetric Normal Constraint - Violation Ratios\")" ] }, { "cell_type": "markdown", "id": "unlikely-sewing", "metadata": {}, "source": [ "### Find out time required" ] }, { "cell_type": "code", "execution_count": 11, "id": "southern-reasoning", "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "01675fcd83284c8ab2aa683f43fef458", "version_major": 2, "version_minor": 0 }, "text/plain": [ " 0%| | 0/108 [00:00" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "import seaborn as sns\n", "sns.lineplot(data=pd.Series(times)).set_title(\"Distribution of times (in s) taken for symmetric constraint checks\")" ] }, { "cell_type": "markdown", "id": "informed-animal", "metadata": {}, "source": [ "## Inverse Constraint (Q21510855)\n", "\n", "This constraint says, if node1 has a property with this constraint, then both `(node1)-[prop]->(node2)` and `(node2)-[prop]->(node1)` must be present with few exceptions" ] }, { "cell_type": "markdown", "id": "dramatic-manchester", "metadata": {}, "source": [ "### Constraints File" ] }, { "cell_type": "code", "execution_count": 4, "id": "leading-server", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[2021-04-11 11:05:47 query]: SQL Translation:\r\n", "---------------------------------------------\r\n", " SELECT *\r\n", " FROM graph_1 AS graph_1_c1\r\n", " WHERE graph_1_c1.\"label\"=?\r\n", " AND graph_1_c1.\"node2\"=?\r\n", " PARAS: ['P2302', 'Q21510855']\r\n", "---------------------------------------------\r\n" ] } ], "source": [ "!kgtk --debug query -i ../../gdrive-kgtk-dump-2020-12-07/claims.properties.tsv.gz \\\n", " ../../gdrive-kgtk-dump-2020-12-07/qualifiers.properties.tsv.gz \\\n", " --match \"p: (nodeProp1)-[nodePropEdge:P2302]->(:Q21510855)\" \\\n", " -o ../../constraintsOP/inverseConstraint/claims.constraints_list.tsv \\\n", " --graph-cache ~/sqlite3_caches/temp1345.valuetype.sqlite3.db" ] }, { "cell_type": "code", "execution_count": 5, "id": "offshore-sudan", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "id\tnode1\tlabel\tnode2\trank\tnode2;wikidatatype\r\n", "P1026-P2302-Q21510855-adc83b86-0\tP1026\tP2302\tQ21510855\tnormal\twikibase-item\r\n", "P1029-P2302-Q21510855-6b55e057-0\tP1029\tP2302\tQ21510855\tnormal\twikibase-item\r\n", "P115-P2302-Q21510855-f7aa0b78-0\tP115\tP2302\tQ21510855\tnormal\twikibase-item\r\n", "P1151-P2302-Q21510855-0d9aa9c6-0\tP1151\tP2302\tQ21510855\tnormal\twikibase-item\r\n", "P1204-P2302-Q21510855-e3d53bb6-0\tP1204\tP2302\tQ21510855\tnormal\twikibase-item\r\n", "P1283-P2302-Q21510855-0e7699bb-0\tP1283\tP2302\tQ21510855\tnormal\twikibase-item\r\n", "P1308-P2302-Q21510855-2aba96b7-0\tP1308\tP2302\tQ21510855\tnormal\twikibase-item\r\n", "P1365-P2302-Q21510855-c809b758-0\tP1365\tP2302\tQ21510855\tnormal\twikibase-item\r\n", "P1366-P2302-Q21510855-eee12ef8-0\tP1366\tP2302\tQ21510855\tnormal\twikibase-item\r\n" ] } ], "source": [ "!head ../../constraintsOP/inverseConstraint/claims.constraints_list.tsv" ] }, { "cell_type": "code", "execution_count": 6, "id": "received-colonial", "metadata": {}, "outputs": [], "source": [ "import pandas as pd\n", "qualiDF = pd.read_csv(\"../../gdrive-kgtk-dump-2020-12-07/qualifiers.properties.tsv.gz\",sep='\\t')\n", "constDF = pd.read_csv(\"../../constraintsOP/inverseConstraint/claims.constraints_list.tsv\",sep='\\t')" ] }, { "cell_type": "code", "execution_count": 7, "id": "overall-expense", "metadata": {}, "outputs": [], "source": [ "constDF2 = constDF.set_index('id').join(qualiDF.set_index('node1'),rsuffix='_qualifier').drop(columns=['id', 'node2;wikidatatype_qualifier', 'rank', 'node2', 'label', 'node2;wikidatatype']).rename(columns={'label_qualifier':'label', 'node2_qualifier': 'node2'})\n", "constDF2 = constDF2.reset_index()\n", "constDF2 = constDF2.rename(columns={'index':'id'})\n", "constDF2['label'] = constDF2.label.fillna(\"P2316\")\n", "constDF2['node2'] = constDF2.node2.fillna(\"Normal\")" ] }, { "cell_type": "code", "execution_count": 8, "id": "valid-throat", "metadata": {}, "outputs": [], "source": [ "constDF2.to_csv(\"../../constraintsOP/inverseConstraint/claims.constraints_all.tsv\",sep=\"\\t\",index=False)" ] }, { "cell_type": "code", "execution_count": 9, "id": "focused-pennsylvania", "metadata": {}, "outputs": [], "source": [ "import pandas as pd\n", "import math\n", "dfItemRequires = pd.read_csv('../../constraintsOP/inverseConstraint/claims.constraints_all.tsv',sep='\\t')" ] }, { "cell_type": "code", "execution_count": 10, "id": "moved-rental", "metadata": {}, "outputs": [], "source": [ "dfItemRequires = dfItemRequires.groupby(['id','node1','label']).node2.apply(lambda p: p.tolist()).reset_index()" ] }, { "cell_type": "code", "execution_count": 11, "id": "attached-rings", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array(['P2306', 'P2316', 'P4155', 'P2303'], dtype=object)" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "dfItemRequires['label'].unique()" ] }, { "cell_type": "code", "execution_count": 12, "id": "loving-mileage", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "P2306 110\n", "P2316 10\n", "P2303 2\n", "P4155 1\n", "Name: label, dtype: int64" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "dfItemRequires['label'].value_counts()" ] }, { "cell_type": "code", "execution_count": 13, "id": "local-forty", "metadata": {}, "outputs": [], "source": [ "#Reference: https://stackoverflow.com/a/17298454\n", "# dfItemRequires.pivot_table('node2', ['node1', 'id'], 'label')\n", "dfItemRequires = dfItemRequires.pivot(index=['node1','id'], columns='label', values='node2')" ] }, { "cell_type": "code", "execution_count": 14, "id": "pressed-upset", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
labelP2303P2306P2316P4155
node1id
P1026P1026-P2302-Q21510855-adc83b86-0NaN[P50]NaNNaN
P1029P1029-P2302-Q21510855-6b55e057-0NaN[P5096]NaNNaN
P115P115-P2302-Q21510855-f7aa0b78-0NaN[P466]NaNNaN
P1151P1151-P2302-Q21510855-0d9aa9c6-0NaN[P1204][Q21502408]NaN
P1204P1204-P2302-Q21510855-e3d53bb6-0NaN[P1151]NaNNaN
\n", "
" ], "text/plain": [ "label P2303 P2306 P2316 P4155\n", "node1 id \n", "P1026 P1026-P2302-Q21510855-adc83b86-0 NaN [P50] NaN NaN\n", "P1029 P1029-P2302-Q21510855-6b55e057-0 NaN [P5096] NaN NaN\n", "P115 P115-P2302-Q21510855-f7aa0b78-0 NaN [P466] NaN NaN\n", "P1151 P1151-P2302-Q21510855-0d9aa9c6-0 NaN [P1204] [Q21502408] NaN\n", "P1204 P1204-P2302-Q21510855-e3d53bb6-0 NaN [P1151] NaN NaN" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "dfItemRequires.head()" ] }, { "cell_type": "code", "execution_count": 15, "id": "extra-stomach", "metadata": {}, "outputs": [], "source": [ "dfItemRequires = dfItemRequires.droplevel(1)" ] }, { "cell_type": "code", "execution_count": 16, "id": "seeing-marine", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
labelP2303P2306P2316P4155
node1
P1026NaN[P50]NaNNaN
P1029NaN[P5096]NaNNaN
P115NaN[P466]NaNNaN
P1151NaN[P1204][Q21502408]NaN
P1204NaN[P1151]NaNNaN
\n", "
" ], "text/plain": [ "label P2303 P2306 P2316 P4155\n", "node1 \n", "P1026 NaN [P50] NaN NaN\n", "P1029 NaN [P5096] NaN NaN\n", "P115 NaN [P466] NaN NaN\n", "P1151 NaN [P1204] [Q21502408] NaN\n", "P1204 NaN [P1151] NaN NaN" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ "dfItemRequires.head()" ] }, { "cell_type": "markdown", "id": "composite-cutting", "metadata": {}, "source": [ "### Query Generator" ] }, { "cell_type": "code", "execution_count": 17, "id": "acoustic-belarus", "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "b59f5f665aca4df7a79eaa3420c47bc5", "version_major": 2, "version_minor": 0 }, "text/plain": [ "0it [00:00, ?it/s]" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "from tqdm.notebook import tqdm\n", "import os.path\n", "import os\n", "\n", "cnt = 0\n", "fCnt = 0\n", "fOP = None\n", "\n", "folderName = 'inverseConstraint_Final'\n", "shellFileSuffix = 'invConst_Validator_new3_'\n", "graph_cache_file_prefix = \"inv_4_\"\n", "\n", "for prop, constraint in tqdm(dfItemRequires.iterrows()):\n", "# try:\n", " \n", " if type(constraint['P2316']) == list:\n", " if constraint['P2316'][0] == 'Q21502408':\n", " subFolderName = \"mandatory\"\n", " elif constraint['P2316'][0] == 'Q62026391':\n", " subFolderName = \"suggestion\"\n", " else:\n", " subFolderName = \"normal\"\n", " \n", " if not(os.path.isfile(\"../../propertiesSplitWRemoved/claims.\"+ prop +\".tsv\")):\n", " continue\n", " \n", " prop2 = constraint['P2306']\n", "\n", " if type(prop2) != list:\n", " continue\n", " prop2 = prop2[0]\n", "\n", " if not(os.path.isfile(\"../../propertiesSplitWRemoved/claims.\"+ prop2 +\".tsv\")):\n", " print(f\"File: ../../propertiesSplitWRemoved/claims.{prop2}.tsv does not exist\")\n", " continue\n", " \n", " if cnt % 40 == 0:\n", " if fOP:\n", " fOP.close()\n", " fCnt += 1\n", " fOP = open(\"../../propertiesSplitWRemoved/checkViolations/\" + shellFileSuffix + str(fCnt) + \".sh\",\"w\")\n", " \n", " \n", " command = \"{ time ( kgtk --debug query -i ../../propertiesSplitWRemoved/claims.\"+ prop +\".tsv \\\n", " ../../propertiesSplitWRemoved/claims.\"+ prop2 +\".tsv \\\n", " --match '\"+ \\\n", " f\"{prop}: (node1)-[nodeProp]->(node2), {prop2}: (node2)-[]->(node1)' \"\n", "\n", " if type(constraint['P2303']) != list: # Exceptions not present\n", " commandRest = \" --return 'distinct nodeProp.id, node1 as `node1`, nodeProp.label as `label`, node2 as `node2`' \\\n", " -o ../../allConstraintsAnalysisWRemoved/\" + folderName + \"/\" + subFolderName + \"/claims.\"+ prop +\".correct.tsv \\\n", " --graph-cache ~/sqlite3_caches/\" + str(graph_cache_file_prefix) + str(fCnt) + \".sqlite3.db; \\\n", " kgtk --debug ifnotexists -i ../../propertiesSplitWRemoved/claims.\"+ prop +\".tsv \\\n", " --filter-on ../../allConstraintsAnalysisWRemoved/\" + folderName + \"/\" + subFolderName + \"/claims.\"+ prop +\".correct.tsv \\\n", " --filter-mode NONE \\\n", " --input-keys node1 label \\\n", " --filter-keys node1 label \"\n", " \n", " commandOPFile = \"-o ../../allConstraintsAnalysisWRemoved/\" + folderName + \"/\" + subFolderName + \"/claims.\"+ prop +\".\"\n", " \n", " command += commandRest + commandOPFile + \"incorrect.tsv ) } 2>> ../../propertiesSplitWRemoved/checkViolations/exec_logs/\" + shellFileSuffix + str(fCnt) + \".txt;\\n\"\n", "# print(command)\n", " fOP.write(command)\n", " else:\n", " excptns = set(constraint['P2303'])\n", " commandRest = \" --return 'distinct nodeProp.id, node1 as `node1`, nodeProp.label as `label`, node2 as `node2`' \\\n", " -o ../../allConstraintsAnalysisWRemoved/\" + folderName + \"/\" + subFolderName + \"/claims.\"+ prop +\".correct_wo_exceptions.tsv \\\n", " --graph-cache ~/sqlite3_caches/\" + str(graph_cache_file_prefix) + str(fCnt) + \".sqlite3.db; \\\n", " kgtk --debug ifnotexists -i ../../propertiesSplitWRemoved/claims.\"+ prop +\".tsv \\\n", " --filter-on ../../allConstraintsAnalysisWRemoved/\" + folderName + \"/\" + subFolderName + \"/claims.\"+ prop +\".correct_wo_exceptions.tsv \\\n", " --filter-mode NONE \\\n", " --input-keys node1 label \\\n", " --filter-keys node1 label \"\n", " \n", " commandOPFile = \"-o ../../allConstraintsAnalysisWRemoved/\" + folderName + \"/\" + subFolderName + \"/claims.\"+ prop +\".\"\n", " \n", " command += commandRest + commandOPFile + \"incorrect_wo_exceptions.tsv; \"\n", "# print(command)\n", " fOP.write(command)\n", " \n", " command = \" kgtk --debug query -i ../../allConstraintsAnalysisWRemoved/\" + folderName + \"/\" + subFolderName + \"/claims.\" + prop + \".incorrect_wo_exceptions.tsv \\\n", " --match '(node1)-[]->()' --where 'node1 in \" + str(list(excptns)).replace(\"'\",'\"') + \"' \\\n", " -o ../../allConstraintsAnalysisWRemoved/\" + folderName + \"/\" + subFolderName + \"/claims.\" + prop + \".incorrect_w_exceptions.tsv \\\n", " --graph-cache ~/sqlite3_caches/\" + str(graph_cache_file_prefix) + str(fCnt) + \".sqlite3.db; \"\n", "# print(command) \n", " fOP.write(command)\n", " \n", " command = \" kgtk --debug ifnotexists -i ../../allConstraintsAnalysisWRemoved/\" + folderName + \"/\" + subFolderName + \"/claims.\" + prop + \".incorrect_wo_exceptions.tsv \\\n", " --filter-on ../../allConstraintsAnalysisWRemoved/\" + folderName + \"/\" + subFolderName + \"/claims.\" + prop + \".incorrect_w_exceptions.tsv \\\n", " --filter-mode NONE \\\n", " --input-keys node1 label \\\n", " --filter-keys node1 label \\\n", " -o ../../allConstraintsAnalysisWRemoved/\" + folderName + \"/\" + subFolderName + \"/claims.\"+ prop +\".incorrect.tsv; \"\n", "# print(command)\n", " fOP.write(command)\n", " \n", " command = \" kgtk cat -i ../../allConstraintsAnalysisWRemoved/\" + folderName + \"/\" + subFolderName + \"/claims.\"+ prop +\".correct_wo_exceptions.tsv \\\n", " ../../allConstraintsAnalysisWRemoved/\" + folderName + \"/\" + subFolderName + \"/claims.\"+ prop +\".incorrect_w_exceptions.tsv \\\n", " -o ../../allConstraintsAnalysisWRemoved/\" + folderName + \"/\" + subFolderName + \"/claims.\"+ prop +\".correct.tsv ) } 2>> ../../propertiesSplitWRemoved/checkViolations/exec_logs/\" + shellFileSuffix + str(fCnt) + \".txt; \\n\"\n", "# print(command)\n", " fOP.write(command)\n", " \n", " \n", " cnt += 1\n", "# except:\n", "# print(\"Something failed for prop:\",prop)\n", "if fOP:\n", " fOP.close()" ] }, { "cell_type": "code", "execution_count": 18, "id": "large-climb", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "110" ] }, "execution_count": 18, "metadata": {}, "output_type": "execute_result" } ], "source": [ "cnt" ] }, { "cell_type": "code", "execution_count": null, "id": "involved-vietnamese", "metadata": {}, "outputs": [], "source": [ "# import os\n", "# for i in range(1,7):\n", "# os.system(\"screen -dm sh ../../propertiesSplitWRemoved/checkViolations/invConst_Validator_new3_\"+str(i)+\".sh\")" ] }, { "cell_type": "markdown", "id": "retired-audio", "metadata": {}, "source": [ "### Analyze Violations" ] }, { "cell_type": "code", "execution_count": 20, "id": "specified-evanescence", "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "a74a23c16aba41699ee53f4b2fc430ee", "version_major": 2, "version_minor": 0 }, "text/plain": [ "0it [00:00, ?it/s]" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "daa550eb584443cfa2cebf366c663cd1", "version_major": 2, "version_minor": 0 }, "text/plain": [ " 0%| | 0/12 [00:00\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
correctincorrectpathsviolation_ratio
P267383967[../../allConstraintsAnalysisWRemoved/inverseC...0.073951
P41472868[../../allConstraintsAnalysisWRemoved/inverseC...0.027211
P41492864[../../allConstraintsAnalysisWRemoved/inverseC...0.013793
P2033187925[../../allConstraintsAnalysisWRemoved/inverseC...0.013130
P450177922[../../allConstraintsAnalysisWRemoved/inverseC...0.012215
P1151180317[../../allConstraintsAnalysisWRemoved/inverseC...0.009341
\n", "" ], "text/plain": [ " correct incorrect paths \\\n", "P2673 839 67 [../../allConstraintsAnalysisWRemoved/inverseC... \n", "P4147 286 8 [../../allConstraintsAnalysisWRemoved/inverseC... \n", "P4149 286 4 [../../allConstraintsAnalysisWRemoved/inverseC... \n", "P2033 1879 25 [../../allConstraintsAnalysisWRemoved/inverseC... \n", "P450 1779 22 [../../allConstraintsAnalysisWRemoved/inverseC... \n", "P1151 1803 17 [../../allConstraintsAnalysisWRemoved/inverseC... \n", "\n", " violation_ratio \n", "P2673 0.073951 \n", "P4147 0.027211 \n", "P4149 0.013793 \n", "P2033 0.013130 \n", "P450 0.012215 \n", "P1151 0.009341 " ] }, "execution_count": 25, "metadata": {}, "output_type": "execute_result" } ], "source": [ "invConstDF1 = pd.DataFrame(invConstViolations['mandatory']).T\n", "invConstDF1['violation_ratio'] = invConstDF1.apply(lambda p: p.incorrect / (p.correct + p.incorrect), axis=1)\n", "invConstDF1.sort_values(by=['violation_ratio'],ascending=False).head(15)" ] }, { "cell_type": "code", "execution_count": 26, "id": "valid-symposium", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
correctincorrectpathsviolation_ratio
P143436775003[../../allConstraintsAnalysisWRemoved/inverseC...0.576382
P155103664753103[../../allConstraintsAnalysisWRemoved/inverseC...0.048730
P156103663640868[../../allConstraintsAnalysisWRemoved/inverseC...0.037928
P62974030240[../../allConstraintsAnalysisWRemoved/inverseC...0.003231
\n", "
" ], "text/plain": [ " correct incorrect paths \\\n", "P1434 3677 5003 [../../allConstraintsAnalysisWRemoved/inverseC... \n", "P155 1036647 53103 [../../allConstraintsAnalysisWRemoved/inverseC... \n", "P156 1036636 40868 [../../allConstraintsAnalysisWRemoved/inverseC... \n", "P629 74030 240 [../../allConstraintsAnalysisWRemoved/inverseC... \n", "\n", " violation_ratio \n", "P1434 0.576382 \n", "P155 0.048730 \n", "P156 0.037928 \n", "P629 0.003231 " ] }, "execution_count": 26, "metadata": {}, "output_type": "execute_result" } ], "source": [ "invConstDF2 = pd.DataFrame(invConstViolations['suggestion']).T\n", "invConstDF2['violation_ratio'] = invConstDF2.apply(lambda p: p.incorrect / (p.correct + p.incorrect), axis=1)\n", "invConstDF2.sort_values(by=['violation_ratio'],ascending=False).head(15)" ] }, { "cell_type": "code", "execution_count": 27, "id": "resident-mustang", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
correctincorrectpathsviolation_ratio
P160513190[../../allConstraintsAnalysisWRemoved/inverseC...0.935961
P34486054575[../../allConstraintsAnalysisWRemoved/inverseC...0.883205
P92515[../../allConstraintsAnalysisWRemoved/inverseC...0.833333
P92615[../../allConstraintsAnalysisWRemoved/inverseC...0.833333
P10294902397[../../allConstraintsAnalysisWRemoved/inverseC...0.830274
P115694824721[../../allConstraintsAnalysisWRemoved/inverseC...0.780606
P51342354[../../allConstraintsAnalysisWRemoved/inverseC...0.701299
P38161427[../../allConstraintsAnalysisWRemoved/inverseC...0.658537
P128314052423[../../allConstraintsAnalysisWRemoved/inverseC...0.632968
P8625915[../../allConstraintsAnalysisWRemoved/inverseC...0.625000
P51328190[../../allConstraintsAnalysisWRemoved/inverseC...0.526316
P42527412938[../../allConstraintsAnalysisWRemoved/inverseC...0.517345
P2512221159[../../allConstraintsAnalysisWRemoved/inverseC...0.418421
P167764[../../allConstraintsAnalysisWRemoved/inverseC...0.400000
P25781111622[../../allConstraintsAnalysisWRemoved/inverseC...0.358915
\n", "
" ], "text/plain": [ " correct incorrect paths \\\n", "P1605 13 190 [../../allConstraintsAnalysisWRemoved/inverseC... \n", "P3448 605 4575 [../../allConstraintsAnalysisWRemoved/inverseC... \n", "P925 1 5 [../../allConstraintsAnalysisWRemoved/inverseC... \n", "P926 1 5 [../../allConstraintsAnalysisWRemoved/inverseC... \n", "P1029 490 2397 [../../allConstraintsAnalysisWRemoved/inverseC... \n", "P115 6948 24721 [../../allConstraintsAnalysisWRemoved/inverseC... \n", "P5134 23 54 [../../allConstraintsAnalysisWRemoved/inverseC... \n", "P3816 14 27 [../../allConstraintsAnalysisWRemoved/inverseC... \n", "P1283 1405 2423 [../../allConstraintsAnalysisWRemoved/inverseC... \n", "P8625 9 15 [../../allConstraintsAnalysisWRemoved/inverseC... \n", "P5132 81 90 [../../allConstraintsAnalysisWRemoved/inverseC... \n", "P425 2741 2938 [../../allConstraintsAnalysisWRemoved/inverseC... \n", "P2512 221 159 [../../allConstraintsAnalysisWRemoved/inverseC... \n", "P1677 6 4 [../../allConstraintsAnalysisWRemoved/inverseC... \n", "P2578 1111 622 [../../allConstraintsAnalysisWRemoved/inverseC... \n", "\n", " violation_ratio \n", "P1605 0.935961 \n", "P3448 0.883205 \n", "P925 0.833333 \n", "P926 0.833333 \n", "P1029 0.830274 \n", "P115 0.780606 \n", "P5134 0.701299 \n", "P3816 0.658537 \n", "P1283 0.632968 \n", "P8625 0.625000 \n", "P5132 0.526316 \n", "P425 0.517345 \n", "P2512 0.418421 \n", "P1677 0.400000 \n", "P2578 0.358915 " ] }, "execution_count": 27, "metadata": {}, "output_type": "execute_result" } ], "source": [ "invConstDF3 = pd.DataFrame(invConstViolations['normal']).T\n", "invConstDF3['violation_ratio'] = invConstDF3.apply(lambda p: p.incorrect / (p.correct + p.incorrect), axis=1)\n", "invConstDF3.sort_values(by=['violation_ratio'],ascending=False).head(15)" ] }, { "cell_type": "code", "execution_count": 28, "id": "dietary-venue", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "head: cannot open ‘../../allConstraintsAnalysisWRemoved/inverseConstraint/normal/claims.P925.incorrect.tsv’ for reading: No such file or directory\r\n" ] } ], "source": [ "!head ../../allConstraintsAnalysisWRemoved/inverseConstraint/normal/claims.P925.incorrect.tsv" ] }, { "cell_type": "code", "execution_count": 29, "id": "entire-gauge", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Text(0.5, 1.0, 'Symmetric Normal Constraint - Violation Ratios')" ] }, "execution_count": 29, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "invConstDF3.sort_values(by=['violation_ratio'],ascending=False)['violation_ratio'].plot.hist(bins=100).set_title(\"Symmetric Normal Constraint - Violation Ratios\")" ] }, { "cell_type": "markdown", "id": "working-stable", "metadata": {}, "source": [ "### Find out time required" ] }, { "cell_type": "code", "execution_count": 55, "id": "saved-twelve", "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "2e8a241c831b4968ae22d06c22c6e85e", "version_major": 2, "version_minor": 0 }, "text/plain": [ " 0%| | 0/122 [00:00" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "import seaborn as sns\n", "sns.lineplot(data=pd.Series(times)).set_title(\"Distribution of times (in s) taken for symmetric constraint checks\")" ] }, { "cell_type": "code", "execution_count": null, "id": "numerical-month", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "id": "stuck-criticism", "metadata": {}, "source": [ "# Analysis on properties with constraints" ] }, { "cell_type": "code", "execution_count": 26, "id": "driven-reference", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[2021-04-03 09:14:12 query]: SQL Translation:\r\n", "---------------------------------------------\r\n", " SELECT *\r\n", " FROM graph_1 AS graph_1_c1\r\n", " WHERE graph_1_c1.\"label\"=?\r\n", " PARAS: ['P2302']\r\n", "---------------------------------------------\r\n" ] } ], "source": [ "!kgtk --debug query -i ../../gdrive-kgtk-dump-2020-12-07/claims.properties.tsv.gz \\\n", " ../../gdrive-kgtk-dump-2020-12-07/qualifiers.properties.tsv.gz \\\n", " --match \"p: (nodeProp1)-[nodePropEdge:P2302]->()\" \\\n", " -o ../../constraintsOP/claims.constraints_list.tsv \\\n", " --graph-cache ~/sqlite3_caches/temp1345.valuetype.sqlite3.db" ] }, { "cell_type": "code", "execution_count": 39, "id": "exciting-focus", "metadata": {}, "outputs": [], "source": [ "!kgtk unique -i ../../gdrive-kgtk-dump-2020-12-07/claims.properties.tsv.gz --column node1 -o ../../constraintsOP/claims.propList.tsv" ] }, { "cell_type": "code", "execution_count": 42, "id": "flush-romania", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "node1\tlabel\tnode2\r\n", "P10\tcount\t17\r\n", "P1000\tcount\t10\r\n", "P1001\tcount\t26\r\n", "P1002\tcount\t9\r\n", "P1003\tcount\t20\r\n", "P1004\tcount\t33\r\n", "P1005\tcount\t21\r\n", "P1006\tcount\t26\r\n", "P1007\tcount\t19\r\n" ] } ], "source": [ "!head ../../constraintsOP/claims.propList.tsv" ] }, { "cell_type": "code", "execution_count": 43, "id": "chemical-harris", "metadata": {}, "outputs": [], "source": [ "import pandas as pd\n", "import os\n", "props = pd.read_csv(\"../../constraintsOP/claims.constraints_list.tsv\", sep='\\t')" ] }, { "cell_type": "code", "execution_count": 44, "id": "higher-underground", "metadata": {}, "outputs": [], "source": [ "props2 = props.groupby(['node1']).node2.apply(list)" ] }, { "cell_type": "code", "execution_count": 45, "id": "light-appreciation", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "8100" ] }, "execution_count": 45, "metadata": {}, "output_type": "execute_result" } ], "source": [ "len(props2)" ] }, { "cell_type": "code", "execution_count": 48, "id": "yellow-helmet", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(2336, 8100)" ] }, "execution_count": 48, "metadata": {}, "output_type": "execute_result" } ], "source": [ "cnt = 0\n", "totalCnt = 0\n", "for prop in props2.index:\n", " totalCnt += 1\n", " if not(os.path.isfile(\"../../propertiesSplitWRemoved/claims.\"+ prop +\".tsv\")):\n", " continue\n", " else:\n", " cnt += 1\n", "cnt, totalCnt" ] }, { "cell_type": "code", "execution_count": 50, "id": "detected-skiing", "metadata": { "scrolled": true }, "outputs": [ { "data": { "text/plain": [ "node1\n", "P10 [Q21502404, Q21510851, Q21510852, Q52004125, Q...\n", "P1000 [Q21510856, Q21510865, Q53869507]\n", "P1001 [Q21502838, Q21503250, Q21510865, Q25796498]\n", "P1002 [Q21503250, Q21510865]\n", "P1003 [Q19474404, Q21502404, Q21502410, Q21510851, Q...\n", " ... \n", "P1563 [Q19474404, Q21502404, Q21502410, Q21503247, Q...\n", "P1564 [Q19474404, Q21502404, Q21502410, Q21503247, Q...\n", "P1565 [Q19474404, Q21502404, Q21502410, Q21503247, Q...\n", "P1566 [Q19474404, Q21502404, Q21502410, Q21502838, Q...\n", "P1567 [Q19474404, Q21502404, Q21502410, Q21502838, Q...\n", "Name: node2, Length: 500, dtype: object" ] }, "execution_count": 50, "metadata": {}, "output_type": "execute_result" } ], "source": [ "props2.head(500)" ] }, { "cell_type": "code", "execution_count": 32, "id": "processed-perfume", "metadata": {}, "outputs": [], "source": [ "import pandas as pd\n", "import os\n", "props2 = pd.read_csv(\"../../constraintsOP/claims.propList.tsv\", sep='\\t')" ] }, { "cell_type": "code", "execution_count": 33, "id": "increasing-graphics", "metadata": {}, "outputs": [], "source": [ "props2 = props2.groupby(['node1']).node2.apply(list)" ] }, { "cell_type": "code", "execution_count": 34, "id": "posted-ukraine", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "8193" ] }, "execution_count": 34, "metadata": {}, "output_type": "execute_result" } ], "source": [ "len(props2)" ] }, { "cell_type": "code", "execution_count": 35, "id": "fifth-provision", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(2415, 8193)" ] }, "execution_count": 35, "metadata": {}, "output_type": "execute_result" } ], "source": [ "cnt = 0\n", "totalCnt = 0\n", "for prop in props2.index:\n", " totalCnt += 1\n", " if not(os.path.isfile(\"../../propertiesSplitWRemoved/claims.\"+ prop +\".tsv\")):\n", " continue\n", " else:\n", " cnt += 1\n", "cnt, totalCnt" ] }, { "cell_type": "code", "execution_count": 50, "id": "married-heating", "metadata": { "scrolled": true }, "outputs": [ { "data": { "text/plain": [ "node1\n", "P10 [Q21502404, Q21510851, Q21510852, Q52004125, Q...\n", "P1000 [Q21510856, Q21510865, Q53869507]\n", "P1001 [Q21502838, Q21503250, Q21510865, Q25796498]\n", "P1002 [Q21503250, Q21510865]\n", "P1003 [Q19474404, Q21502404, Q21502410, Q21510851, Q...\n", " ... \n", "P1563 [Q19474404, Q21502404, Q21502410, Q21503247, Q...\n", "P1564 [Q19474404, Q21502404, Q21502410, Q21503247, Q...\n", "P1565 [Q19474404, Q21502404, Q21502410, Q21503247, Q...\n", "P1566 [Q19474404, Q21502404, Q21502410, Q21502838, Q...\n", "P1567 [Q19474404, Q21502404, Q21502410, Q21502838, Q...\n", "Name: node2, Length: 500, dtype: object" ] }, "execution_count": 50, "metadata": {}, "output_type": "execute_result" } ], "source": [ "props2.head(500)" ] }, { "cell_type": "code", "execution_count": null, "id": "magnetic-conditions", "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "kgtkEnv", "language": "python", "name": "kgtkenv" }, "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.8.5" }, "toc": { "base_numbering": 1, "nav_menu": {}, "number_sections": true, "sideBar": true, "skip_h1_title": false, "title_cell": "Table of Contents", "title_sidebar": "Contents", "toc_cell": false, "toc_position": { "height": "calc(100% - 180px)", "left": "10px", "top": "150px", "width": "318px" }, "toc_section_display": true, "toc_window_display": true }, "varInspector": { "cols": { "lenName": 16, "lenType": 16, "lenVar": 40 }, "kernels_config": { "python": { "delete_cmd_postfix": "", "delete_cmd_prefix": "del ", "library": "var_list.py", "varRefreshCmd": "print(var_dic_list())" }, "r": { "delete_cmd_postfix": ") ", "delete_cmd_prefix": "rm(", "library": "var_list.r", "varRefreshCmd": "cat(var_dic_list()) " } }, "oldHeight": 122, "position": { "height": "40px", "left": "1170px", "right": "20px", "top": "120px", "width": "250px" }, "types_to_exclude": [ "module", "function", "builtin_function_or_method", "instance", "_Feature" ], "varInspector_section_display": "none", "window_display": false } }, "nbformat": 4, "nbformat_minor": 5 }