From 1a4f8abd88781f7d520d44de5620aaeee9b7585f Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 30 May 2024 06:42:33 +0000 Subject: [PATCH] Deploy to GitHub pages --- index.html | 10378 ++++++++++++++++++++++++++++++++++++++ tbox_analysis_vis.html | 10378 ++++++++++++++++++++++++++++++++++++++ tbox_analysis_vis.ipynb | 3633 +++++++++++++ 3 files changed, 24389 insertions(+) create mode 100644 index.html create mode 100644 tbox_analysis_vis.html create mode 100644 tbox_analysis_vis.ipynb diff --git a/index.html b/index.html new file mode 100644 index 0000000..60d28bb --- /dev/null +++ b/index.html @@ -0,0 +1,10378 @@ + + + + + +tbox_analysis_vis_out + + + + + + + + + + + + +
+ +
+
+ +
+ + +
+
+ +
+ + +
+
+ +
+ + +
+
+ +
+ + +
+
+ +
+ + +
+
+ +
+ + +
+
+ +
+ + +
+
+ +
+ + +
+ + +
+
+ +
+ + +
+
+ +
+ + +
+ +
+
+ + + diff --git a/tbox_analysis_vis.html b/tbox_analysis_vis.html new file mode 100644 index 0000000..60d28bb --- /dev/null +++ b/tbox_analysis_vis.html @@ -0,0 +1,10378 @@ + + + + + +tbox_analysis_vis_out + + + + + + + + + + + + +
+ +
+
+ +
+ + +
+
+ +
+ + +
+
+ +
+ + +
+
+ +
+ + +
+
+ +
+ + +
+
+ +
+ + +
+
+ +
+ + +
+
+ +
+ + +
+ + +
+
+ +
+ + +
+
+ +
+ + +
+ +
+
+ + + diff --git a/tbox_analysis_vis.ipynb b/tbox_analysis_vis.ipynb new file mode 100644 index 0000000..269a737 --- /dev/null +++ b/tbox_analysis_vis.ipynb @@ -0,0 +1,3633 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "id": "2c884799", + "metadata": { + "execution": { + "iopub.execute_input": "2024-05-30T06:40:09.504592Z", + "iopub.status.busy": "2024-05-30T06:40:09.504347Z", + "iopub.status.idle": "2024-05-30T06:40:09.862315Z", + "shell.execute_reply": "2024-05-30T06:40:09.861652Z" + }, + "papermill": { + "duration": 0.363532, + "end_time": "2024-05-30T06:40:09.863917", + "exception": false, + "start_time": "2024-05-30T06:40:09.500385", + "status": "completed" + }, + "tags": [] + }, + "outputs": [], + "source": [ + "import json\n", + "import pandas as pd\n", + "\n", + "projects = [\n", + " 'DigiBatMat',\n", + " 'DIGITRUBBER',\n", + " 'DiProMag',\n", + " #'DiStAl',\n", + " 'GlasDigital',\n", + " #'iBain',\n", + " 'KNOW-NOW',\n", + " 'KupferDigital',\n", + " 'LeBeDigital',\n", + " 'ODE_AM',\n", + " 'PMDao_MO',\n", + " 'PMDao_TTO',\n", + " 'SensoTwin',\n", + " 'SmaDi',\n", + " 'StahlDigital'\n", + "]\n", + "\n", + "data = {}\n", + "\n", + "for ont in projects:\n", + " with open(f'{ont}/{ont}.json', 'r', encoding='utf-8') as f:\n", + " data.update({ont: json.load(f)})" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "id": "97081f1f", + "metadata": { + "papermill": { + "duration": 0.011221, + "end_time": "2024-05-30T06:40:09.878050", + "exception": false, + "start_time": "2024-05-30T06:40:09.866829", + "status": "completed" + }, + "tags": [] + }, + "source": [ + "## Used Top-Level-Ontologies\n", + "For each of the provided ontologies the use of TLOs was analyzed. This was achieved by counting rdfs:subClassOf and rdfs:subPropertyOf chains, for which the subject belongs to the projects namespace and the object belongs to the TLOs namespace. For example, the SPARQL-Query for the usage of PMD Core Ontology (v2.0.x) in the SensoTwin project reads:\n", + "```sparql\n", + "SELECT (COUNT(*) as ?subcount)\n", + "WHERE {\n", + " ?ao rdfs:subClassOf+|rdfs:subPropertyOf+ ?tlo .\n", + " FILTER( STRSTARTS( STR(?tlo), \"https://w3id.org/pmd/co\" ) ) .\n", + " FILTER( STRSTARTS( STR(?ao), \"http://w3id.org/sensotwin/applicationontology\" ) ) .\n", + "}\n", + "```" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "d9d3af11", + "metadata": { + "execution": { + "iopub.execute_input": "2024-05-30T06:40:09.884248Z", + "iopub.status.busy": "2024-05-30T06:40:09.883806Z", + "iopub.status.idle": "2024-05-30T06:40:09.896402Z", + "shell.execute_reply": "2024-05-30T06:40:09.895850Z" + }, + "papermill": { + "duration": 0.017013, + "end_time": "2024-05-30T06:40:09.897585", + "exception": false, + "start_time": "2024-05-30T06:40:09.880572", + "status": "completed" + }, + "tags": [] + }, + "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", + "
pmdco-2.0.7pmdco-v0.1-betaemmoccobforoiaoprov-oqudtchebi
DigiBatMat8000000410
DIGITRUBBER00002030032800232
DiProMag16400000096830
GlasDigital028400000000
KNOW-NOW12103400008100
KupferDigital77300000029300
LeBeDigital26800000011500
ODE_AM0003169700000
PMDao_MO33700000014500
PMDao_TTO1260000004700
SensoTwin50900000033400
SmaDi0000000000
StahlDigital05230000000
\n", + "
" + ], + "text/plain": [ + " pmdco-2.0.7 pmdco-v0.1-beta emmo cco bfo ro iao prov-o \\\n", + "DigiBatMat 8 0 0 0 0 0 0 4 \n", + "DIGITRUBBER 0 0 0 0 2030 0 328 0 \n", + "DiProMag 164 0 0 0 0 0 0 96 \n", + "GlasDigital 0 284 0 0 0 0 0 0 \n", + "KNOW-NOW 121 0 34 0 0 0 0 81 \n", + "KupferDigital 773 0 0 0 0 0 0 293 \n", + "LeBeDigital 268 0 0 0 0 0 0 115 \n", + "ODE_AM 0 0 0 316 97 0 0 0 \n", + "PMDao_MO 337 0 0 0 0 0 0 145 \n", + "PMDao_TTO 126 0 0 0 0 0 0 47 \n", + "SensoTwin 509 0 0 0 0 0 0 334 \n", + "SmaDi 0 0 0 0 0 0 0 0 \n", + "StahlDigital 0 52 3 0 0 0 0 0 \n", + "\n", + " qudt chebi \n", + "DigiBatMat 1 0 \n", + "DIGITRUBBER 0 232 \n", + "DiProMag 83 0 \n", + "GlasDigital 0 0 \n", + "KNOW-NOW 0 0 \n", + "KupferDigital 0 0 \n", + "LeBeDigital 0 0 \n", + "ODE_AM 0 0 \n", + "PMDao_MO 0 0 \n", + "PMDao_TTO 0 0 \n", + "SensoTwin 0 0 \n", + "SmaDi 0 0 \n", + "StahlDigital 0 0 " + ] + }, + "execution_count": 2, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "pd.DataFrame({ont: {tlo: d['subclassesproperties'] for tlo, d in item['tlos']['reasoned'].items()} for ont, item in data.items()}).T" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "id": "ef1af79b", + "metadata": { + "papermill": { + "duration": 0.002647, + "end_time": "2024-05-30T06:40:09.903043", + "exception": false, + "start_time": "2024-05-30T06:40:09.900396", + "status": "completed" + }, + "tags": [] + }, + "source": [ + "```sparql\n", + "SELECT (COUNT(*) as ?count)\n", + "WHERE {\n", + " ?ao ?p ?o .\n", + " FILTER( STRSTARTS( STR(?p), \"https://w3id.org/pmd/co\" ) ) .\n", + " FILTER( STRSTARTS( STR(?ao), \"http://w3id.org/sensotwin/applicationontology\" ) ) .\n", + "}\n", + "```\n", + "\n", + "```sparql\n", + "SELECT (COUNT(*) as ?count)\n", + "WHERE {\n", + " ?ao ?p ?o .\n", + " FILTER( STRSTARTS( STR(?o), \"https://w3id.org/pmd/co\" ) ) .\n", + " FILTER( STRSTARTS( STR(?ao), \"http://w3id.org/sensotwin/applicationontology\" ) ) .\n", + "}\n", + "```" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "0b43f723", + "metadata": { + "execution": { + "iopub.execute_input": "2024-05-30T06:40:09.909889Z", + "iopub.status.busy": "2024-05-30T06:40:09.909547Z", + "iopub.status.idle": "2024-05-30T06:40:09.918158Z", + "shell.execute_reply": "2024-05-30T06:40:09.917667Z" + }, + "papermill": { + "duration": 0.013596, + "end_time": "2024-05-30T06:40:09.919352", + "exception": false, + "start_time": "2024-05-30T06:40:09.905756", + "status": "completed" + }, + "tags": [] + }, + "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", + "
pmdco-2.0.7pmdco-v0.1-betaemmoccobforoiaoprov-oqudtchebi
DigiBatMat10880000004795350
DIGITRUBBER0000375017800051
DiProMag33200000017820
GlasDigital01180000140000
KNOW-NOW189301200009700
KupferDigital15217000000000
LeBeDigital487100000043600
ODE_AM000463300000
PMDao_MO216000000000
PMDao_TTO82000000000
SensoTwin12937000000180000
SmaDi0000000000
StahlDigital05410000020
\n", + "
" + ], + "text/plain": [ + " pmdco-2.0.7 pmdco-v0.1-beta emmo cco bfo ro iao prov-o \\\n", + "DigiBatMat 1088 0 0 0 0 0 0 479 \n", + "DIGITRUBBER 0 0 0 0 375 0 1780 0 \n", + "DiProMag 332 0 0 0 0 0 0 17 \n", + "GlasDigital 0 118 0 0 0 0 140 0 \n", + "KNOW-NOW 1893 0 12 0 0 0 0 97 \n", + "KupferDigital 15217 0 0 0 0 0 0 0 \n", + "LeBeDigital 4871 0 0 0 0 0 0 436 \n", + "ODE_AM 0 0 0 463 3 0 0 0 \n", + "PMDao_MO 216 0 0 0 0 0 0 0 \n", + "PMDao_TTO 82 0 0 0 0 0 0 0 \n", + "SensoTwin 12937 0 0 0 0 0 0 1800 \n", + "SmaDi 0 0 0 0 0 0 0 0 \n", + "StahlDigital 0 54 1 0 0 0 0 0 \n", + "\n", + " qudt chebi \n", + "DigiBatMat 535 0 \n", + "DIGITRUBBER 0 51 \n", + "DiProMag 82 0 \n", + "GlasDigital 0 0 \n", + "KNOW-NOW 0 0 \n", + "KupferDigital 0 0 \n", + "LeBeDigital 0 0 \n", + "ODE_AM 0 0 \n", + "PMDao_MO 0 0 \n", + "PMDao_TTO 0 0 \n", + "SensoTwin 0 0 \n", + "SmaDi 0 0 \n", + "StahlDigital 2 0 " + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "pd.DataFrame({ont: {tlo: d['objects']+d['predicates'] for tlo, d in item['tlos']['reasoned'].items()} for ont, item in data.items()}).T" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "id": "47cc1996", + "metadata": { + "papermill": { + "duration": 0.003602, + "end_time": "2024-05-30T06:40:09.925965", + "exception": false, + "start_time": "2024-05-30T06:40:09.922363", + "status": "completed" + }, + "tags": [] + }, + "source": [ + "## Overall defined concepts\n", + "The overall number of introduced concepts was analysed. For that, the projects ontology as well as the applicable pmdco were loaded into Protégé and a Reasoner was run. On the resultant graph, the following query was executed (exemplary for `owl:Class`es in SensoTwin):\n", + "\n", + "```sparql\n", + "SELECT (COUNT(*) as ?classcount)\n", + "WHERE {\n", + " ?class a owl:Class .\n", + " FILTER STRSTARTS( ?class, \"http://w3id.org/sensotwin/applicationontology\" ) .\n", + "}\n", + "```\n", + "\n", + "The table below shows the respective numbers of found definitions." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "54cf8432", + "metadata": { + "execution": { + "iopub.execute_input": "2024-05-30T06:40:09.932904Z", + "iopub.status.busy": "2024-05-30T06:40:09.932508Z", + "iopub.status.idle": "2024-05-30T06:40:09.941148Z", + "shell.execute_reply": "2024-05-30T06:40:09.940651Z" + }, + "papermill": { + "duration": 0.013366, + "end_time": "2024-05-30T06:40:09.942305", + "exception": false, + "start_time": "2024-05-30T06:40:09.928939", + "status": "completed" + }, + "tags": [] + }, + "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", + "
owl:Classowl:ObjectPropertyowl:DatatypePropertyTotalReasoner
DigiBatMat103013pellet-2.2.0
DIGITRUBBER63600636elk-0.5.0
DiProMag21732222elk-0.5.0
GlasDigital2131033256pellet-2.2.0
KNOW-NOW813084pellet-2.2.0
KupferDigital29300293pellet-2.2.0
LeBeDigital11400114pellet-2.2.0
ODE_AM256123271pellet-2.2.0
PMDao_MO14500145pellet-2.2.0
PMDao_TTO471048pellet-2.2.0
SensoTwin1931914226pellet-2.2.0
SmaDi105128125pellet-2.2.0
StahlDigital307295294896pellet-2.2.0
\n", + "
" + ], + "text/plain": [ + " owl:Class owl:ObjectProperty owl:DatatypeProperty Total \\\n", + "DigiBatMat 10 3 0 13 \n", + "DIGITRUBBER 636 0 0 636 \n", + "DiProMag 217 3 2 222 \n", + "GlasDigital 213 10 33 256 \n", + "KNOW-NOW 81 3 0 84 \n", + "KupferDigital 293 0 0 293 \n", + "LeBeDigital 114 0 0 114 \n", + "ODE_AM 256 12 3 271 \n", + "PMDao_MO 145 0 0 145 \n", + "PMDao_TTO 47 1 0 48 \n", + "SensoTwin 193 19 14 226 \n", + "SmaDi 105 12 8 125 \n", + "StahlDigital 307 295 294 896 \n", + "\n", + " Reasoner \n", + "DigiBatMat pellet-2.2.0 \n", + "DIGITRUBBER elk-0.5.0 \n", + "DiProMag elk-0.5.0 \n", + "GlasDigital pellet-2.2.0 \n", + "KNOW-NOW pellet-2.2.0 \n", + "KupferDigital pellet-2.2.0 \n", + "LeBeDigital pellet-2.2.0 \n", + "ODE_AM pellet-2.2.0 \n", + "PMDao_MO pellet-2.2.0 \n", + "PMDao_TTO pellet-2.2.0 \n", + "SensoTwin pellet-2.2.0 \n", + "SmaDi pellet-2.2.0 \n", + "StahlDigital pellet-2.2.0 " + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "concepts = {ont: {\n", + " 'owl:Class': item['definitioncounts']['owl:Class'],\n", + " 'owl:ObjectProperty': item['definitioncounts']['owl:ObjectProperty'],\n", + " 'owl:DatatypeProperty': item['definitioncounts']['owl:DatatypeProperty'],\n", + " 'Total': item['definitioncounts']['owl:Class']+item['definitioncounts']['owl:ObjectProperty']+item['definitioncounts']['owl:DatatypeProperty'],\n", + " 'Reasoner': f\"{item['reasoner']['reasoner']}-{item['reasoner']['version']}\"\n", + "} for ont, item in data.items()}\n", + "pd.DataFrame(concepts).T" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "id": "b59b3c76", + "metadata": { + "papermill": { + "duration": 0.003096, + "end_time": "2024-05-30T06:40:09.948662", + "exception": false, + "start_time": "2024-05-30T06:40:09.945566", + "status": "completed" + }, + "tags": [] + }, + "source": [ + "## Number of ProcessingNodes, ValueObjects, Processes, Objects (pmdco-2.0.x) and ProcessNodes (pmdco-v0.1-beta)\n", + "To get an overview over the usage of the PMD Core Ontology the number of subclasses of ProcessingNode, ValueObject, Process and Object was determined. For that, the projects ontology as well as the applicable pmdco were loaded into Protégé and a Reasoner was run. On the resultant graph, the following query was executed (exemplary for sub-classes of ProcessingNode in SensoTwin):\n", + "\n", + "```sparql\n", + "SELECT ?classname\n", + "WHERE {\n", + " ?x rdfs:subClassOf+ .\n", + " BIND(STR(?x) AS ?classname) .\n", + " FILTER STRSTARTS( ?classname, \"http://w3id.org/sensotwin/applicationontology\" ) .\n", + "}\n", + "```\n", + "\n", + "The table below shows the respective numbers of found definitions." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "f34c0fd7", + "metadata": { + "execution": { + "iopub.execute_input": "2024-05-30T06:40:09.956191Z", + "iopub.status.busy": "2024-05-30T06:40:09.955640Z", + "iopub.status.idle": "2024-05-30T06:40:09.967092Z", + "shell.execute_reply": "2024-05-30T06:40:09.966532Z" + }, + "papermill": { + "duration": 0.01655, + "end_time": "2024-05-30T06:40:09.968324", + "exception": false, + "start_time": "2024-05-30T06:40:09.951774", + "status": "completed" + }, + "tags": [] + }, + "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", + "
ProcessingNode (2.0.x)ValueObject (2.0.x)Process (2.0.x)Object (2.0.x)Total (2.0.x)ProcessNode (v0.1-beta)Total (v0.1-beta)Total (both)Reasoner
DigiBatMat00404004pellet-2.2.0
DIGITRUBBER00000000elk-0.5.0
DiProMag2155154950095elk-0.5.0
GlasDigital00000333pellet-2.2.0
KNOW-NOW651177810081pellet-2.2.0
KupferDigital2819655027900279pellet-2.2.0
LeBeDigital942134711100111pellet-2.2.0
ODE_AM00000000pellet-2.2.0
PMDao_MO3738561114200142pellet-2.2.0
PMDao_TTO24410470047pellet-2.2.0
SensoTwin14182521629100291pellet-2.2.0
SmaDi00000000pellet-2.2.0
StahlDigital00000000pellet-2.2.0
\n", + "
" + ], + "text/plain": [ + " ProcessingNode (2.0.x) ValueObject (2.0.x) Process (2.0.x) \\\n", + "DigiBatMat 0 0 4 \n", + "DIGITRUBBER 0 0 0 \n", + "DiProMag 21 55 15 \n", + "GlasDigital 0 0 0 \n", + "KNOW-NOW 6 51 17 \n", + "KupferDigital 28 196 55 \n", + "LeBeDigital 9 42 13 \n", + "ODE_AM 0 0 0 \n", + "PMDao_MO 37 38 56 \n", + "PMDao_TTO 2 44 1 \n", + "SensoTwin 141 82 52 \n", + "SmaDi 0 0 0 \n", + "StahlDigital 0 0 0 \n", + "\n", + " Object (2.0.x) Total (2.0.x) ProcessNode (v0.1-beta) \\\n", + "DigiBatMat 0 4 0 \n", + "DIGITRUBBER 0 0 0 \n", + "DiProMag 4 95 0 \n", + "GlasDigital 0 0 3 \n", + "KNOW-NOW 7 81 0 \n", + "KupferDigital 0 279 0 \n", + "LeBeDigital 47 111 0 \n", + "ODE_AM 0 0 0 \n", + "PMDao_MO 11 142 0 \n", + "PMDao_TTO 0 47 0 \n", + "SensoTwin 16 291 0 \n", + "SmaDi 0 0 0 \n", + "StahlDigital 0 0 0 \n", + "\n", + " Total (v0.1-beta) Total (both) Reasoner \n", + "DigiBatMat 0 4 pellet-2.2.0 \n", + "DIGITRUBBER 0 0 elk-0.5.0 \n", + "DiProMag 0 95 elk-0.5.0 \n", + "GlasDigital 3 3 pellet-2.2.0 \n", + "KNOW-NOW 0 81 pellet-2.2.0 \n", + "KupferDigital 0 279 pellet-2.2.0 \n", + "LeBeDigital 0 111 pellet-2.2.0 \n", + "ODE_AM 0 0 pellet-2.2.0 \n", + "PMDao_MO 0 142 pellet-2.2.0 \n", + "PMDao_TTO 0 47 pellet-2.2.0 \n", + "SensoTwin 0 291 pellet-2.2.0 \n", + "SmaDi 0 0 pellet-2.2.0 \n", + "StahlDigital 0 0 pellet-2.2.0 " + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "pmdusage = {ont: {\n", + " 'ProcessingNode (2.0.x)': item['processingnodes']['pmdco-2.0.7']['count'],\n", + " 'ValueObject (2.0.x)': item['valueobjects']['pmdco-2.0.7']['count'],\n", + " 'Process (2.0.x)': item['processes']['pmdco-2.0.7']['count'],\n", + " 'Object (2.0.x)': item['objects']['pmdco-2.0.7']['count'],\n", + " 'Total (2.0.x)': item['processingnodes']['pmdco-2.0.7']['count']+item['valueobjects']['pmdco-2.0.7']['count']+item['processes']['pmdco-2.0.7']['count']+item['objects']['pmdco-2.0.7']['count'],\n", + " 'ProcessNode (v0.1-beta)': item['processingnodes']['pmdco-v0.1-beta']['count'],\n", + " 'Total (v0.1-beta)': item['processingnodes']['pmdco-v0.1-beta']['count'],\n", + " 'Total (both)': item['processingnodes']['pmdco-2.0.7']['count']+item['valueobjects']['pmdco-2.0.7']['count']+item['processes']['pmdco-2.0.7']['count']+item['objects']['pmdco-2.0.7']['count']+item['processingnodes']['pmdco-v0.1-beta']['count'],\n", + " 'Reasoner': f\"{item['reasoner']['reasoner']}-{item['reasoner']['version']}\"\n", + "} for ont, item in data.items()}\n", + "pd.DataFrame(pmdusage).T" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "id": "b709a2cb", + "metadata": { + "papermill": { + "duration": 0.003505, + "end_time": "2024-05-30T06:40:09.975663", + "exception": false, + "start_time": "2024-05-30T06:40:09.972158", + "status": "completed" + }, + "tags": [] + }, + "source": [ + "## Used Licenses\n", + "The following table summarizes the referenced licenses. The SPARQL used for finding this information reads:\n", + "```sparql\n", + "SELECT ?lic\n", + "WHERE {\n", + " ?x | ?lic .\n", + "}\n", + "```" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "c06bce66", + "metadata": { + "execution": { + "iopub.execute_input": "2024-05-30T06:40:09.983802Z", + "iopub.status.busy": "2024-05-30T06:40:09.983407Z", + "iopub.status.idle": "2024-05-30T06:40:09.991418Z", + "shell.execute_reply": "2024-05-30T06:40:09.990800Z" + }, + "papermill": { + "duration": 0.013565, + "end_time": "2024-05-30T06:40:09.992721", + "exception": false, + "start_time": "2024-05-30T06:40:09.979156", + "status": "completed" + }, + "tags": [] + }, + "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", + "
used_licenses
DigiBatMatCC BY-SA 4.0
DIGITRUBBER
DiProMagCC BY 4.0
GlasDigitalCC BY 4.0
KNOW-NOW
KupferDigital
LeBeDigitalCC BY 4.0
ODE_AMCC-BY-4.0
PMDao_MOCC BY 4.0
PMDao_TTOCC BY 4.0
SensoTwinCC BY 4.0
SmaDiCC BY 4.0
StahlDigital
\n", + "
" + ], + "text/plain": [ + " used_licenses\n", + "DigiBatMat CC BY-SA 4.0\n", + "DIGITRUBBER \n", + "DiProMag CC BY 4.0\n", + "GlasDigital CC BY 4.0\n", + "KNOW-NOW \n", + "KupferDigital \n", + "LeBeDigital CC BY 4.0\n", + "ODE_AM CC-BY-4.0\n", + "PMDao_MO CC BY 4.0\n", + "PMDao_TTO CC BY 4.0\n", + "SensoTwin CC BY 4.0\n", + "SmaDi CC BY 4.0\n", + "StahlDigital " + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "def license_cleanup(license):\n", + " replacements = [\n", + " ('https://creativecommons.org/licenses/by/4.0', 'CC BY 4.0'),\n", + " ('http://creativecommons.org/licenses/by/4.0', 'CC BY 4.0'),\n", + " ('https://creativecommons.org/licenses/by-sa/4.0/', 'CC BY-SA 4.0'),\n", + " ('https://creativecommons.org/licenses/unspecified', '')\n", + " ]\n", + " license = license.replace('<', '').replace('>', '')\n", + " for old, new in replacements:\n", + " if license.startswith(old):\n", + " return new\n", + " return license\n", + "\n", + "licenses = {ont: {'used_licenses': ', '.join(map(license_cleanup, set(item['license']['items'])))} for ont, item in data.items()}\n", + "pd.DataFrame(licenses).T" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "id": "37a8a148", + "metadata": { + "papermill": { + "duration": 0.003601, + "end_time": "2024-05-30T06:40:10.000064", + "exception": false, + "start_time": "2024-05-30T06:40:09.996463", + "status": "completed" + }, + "tags": [] + }, + "source": [ + "## Contributors" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "8da50c4c", + "metadata": { + "execution": { + "iopub.execute_input": "2024-05-30T06:40:10.008468Z", + "iopub.status.busy": "2024-05-30T06:40:10.008011Z", + "iopub.status.idle": "2024-05-30T06:40:17.096272Z", + "shell.execute_reply": "2024-05-30T06:40:17.095626Z" + }, + "papermill": { + "duration": 7.093989, + "end_time": "2024-05-30T06:40:17.097589", + "exception": false, + "start_time": "2024-05-30T06:40:10.003600", + "status": "completed" + }, + "tags": [] + }, + "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", + "
creators_contributors
DigiBatMatMilena Perovic
Tobias Kraus
Amir Haghipour
https://orcid.org/0009-0009-2713-802X (literal) -> Vincent Nebel
Andriy Taranovskyy
Dirk Werth
Philip Gümbel
Volker Knoblauch
Volker Presser
Lisa Beran
Yunjie Li
Arno Kwade
https://orcid.org/0000-0002-5918-6407 (literal) -> Marcel Mutz
Tobias Käfer
Jonas Oehm
Laura Gottschalk
Klaus Dröder
Veit Königer
DIGITRUBBERITA
Alexander Aschemann
https://orcid.org/0000-0002-8688-6599 (literal) -> James Balhoff
Luis Ramos
Sven Schwabe (IFNANO)
https://orcid.org/0000-0002-6601-2165 (literal) -> Christopher Mungall
DiProMagMichael Feige
Simon Bekemeier
Andreas Hütten
Tapas Samanta
Basil Ell
Lennart Schwan
Luana Caron
Thomas Hilbig
Inga Ennen
Moritz Blum
Martin Wortmann
Philipp Cimiano
Sonja Schöning
Alisa Chirkova
Günter Reiss
Christian Schröder
GlasDigitalYa-Fan Chen (https://orcid.org/0000-0003-4295-7815)
Simon Stier (https://orcid.org/0000-0003-0410-3616)
KNOW-NOWBen Hassine, Sahar
Baca Duque, Lui Felipe
Guejiep Dowouo, Simplice
KupferDigitalHossein Beygi Nasrabadi (www.orcid.org/0000-0002-3092-0532)
LeBeDigitalhttps://orcid.org/0009-0006-4524-9143 (literal) -> Melissa Telong
https://orcid.org/0000-0003-2445-6734 (literal) -> Birgit Meng
https://orcid.org/0009-0004-9700-2439 (literal) -> Aida Zoriyatkha
https://orcid.org/0009-0003-7121-0283 (literal) -> Mattheo Krüger
Mattheo Krüger, Melissa Telong Donfack, Aida Zoriyatkha, Birgit Meng, Stephan Pirskawetz
https://orcid.org/0000-0003-0626-5002 (literal) -> Stephan Pirskawetz
ODE_AMMohamed Kamal, Heiko Beinersdorf
Mohamed Kamal, Jan Reimann
Thomas Bjarsch
PMDao_MOhttps://orcid.org/0000-0002-7094-5371 (literal) -> Markus Schilling
https://orcid.org/0000-0002-3717-7104 (literal) -> Bernd Bayerlein
PMDao_TTOhttps://orcid.org/0000-0001-7192-7143 (literal) -> Jörg Waitelonis
https://orcid.org/0000-0003-4971-3645 (literal) -> Philipp von Hartrott
https://orcid.org/0000-0002-9014-2920 (literal) -> Henk Birkholz
https://orcid.org/0000-0002-7094-5371 (literal) -> Markus Schilling
https://orcid.org/0000-0002-3717-7104 (literal) -> Bernd Bayerlein
SensoTwinhttps://orcid.org/0009-0004-1208-3971 (literal) -> Ursula Pähler
SmaDihttps://orcid.org/0000-0003-1017-8921 (uri) -> Mena Leemhuis
StahlDigitalClemens Fehrenbach, Alexander Butz, Alexander Wessel, Andreas Trondl, Silke Klitschke, Paul Zierep, Lukas Morand, Dirk Helm
" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import re\n", + "import rdflib\n", + "from IPython.display import display, HTML\n", + "\n", + "def pp(df):\n", + " return display(HTML(df.to_html().replace('\\\\n', '
')))\n", + "\n", + "def orcid_resolve(string):\n", + " m = re.match(r\"?\", string)\n", + " if m:\n", + " orcid = m.group(1)\n", + " stype = 'uri' if f'<{orcid}>' == string else 'literal'\n", + "\n", + " g = rdflib.Graph()\n", + " g.parse(orcid)\n", + " names = []\n", + " [names.append(str(row.gname)) for row in g.query(\n", + " f\"\"\"\n", + " SELECT ?gname WHERE {{\n", + " <{orcid}> ?gname .\n", + " }}\n", + " \"\"\"\n", + " )]\n", + " [names.append(str(row.fname)) for row in g.query(\n", + " f\"\"\"\n", + " SELECT ?fname WHERE {{\n", + " <{orcid}> ?fname .\n", + " }}\n", + " \"\"\"\n", + " )]\n", + " name = ' '.join(names)\n", + " return f'{orcid} ({stype}) -> {name}'\n", + " return string\n", + "\n", + "contributors = {ont: {'creators_contributors': '\\n'.join(map(orcid_resolve, set(item['creators_contributors']['items'])))} for ont, item in data.items()}\n", + "df = pd.DataFrame(contributors).T\n", + "pp(df)" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "id": "1487c3e5", + "metadata": { + "papermill": { + "duration": 0.00358, + "end_time": "2024-05-30T06:40:17.105343", + "exception": false, + "start_time": "2024-05-30T06:40:17.101763", + "status": "completed" + }, + "tags": [] + }, + "source": [ + "## Namespaces\n", + "To analyze which namespaces were used in the projects T-Boxes, the ontology files were parsed for all occurences of semantically valid uris (`'<(https?:\\/\\/([0-9A-z-_~\\.]+[\\/|#])+)'`). The list of uris was stored (`requests_raw.xlsx`) and manually curated with applicable namespace identifiers (`requests.xlsx`). This approach was necessary, as in some of the ontology files wrong or ambiguous identifiers were used (e.g. `http://material-digital.de/pmdco/` instead of `https://material-digital.de/pmdco/`). For all uris it was tested, if they are dereferecenceable. If so, it was checked if they allow for content negotiation and deliver some owl serialization." + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "746bb901", + "metadata": { + "execution": { + "iopub.execute_input": "2024-05-30T06:40:17.113860Z", + "iopub.status.busy": "2024-05-30T06:40:17.113434Z", + "iopub.status.idle": "2024-05-30T06:42:30.420350Z", + "shell.execute_reply": "2024-05-30T06:42:30.419743Z" + }, + "papermill": { + "duration": 133.312725, + "end_time": "2024-05-30T06:42:30.421761", + "exception": false, + "start_time": "2024-05-30T06:40:17.109036", + "status": "completed" + }, + "tags": [] + }, + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "1711762493914670b181e641e5c06831", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "IntProgress(value=0, max=124)" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import requests\n", + "from ipywidgets import IntProgress\n", + "from IPython.display import display\n", + "\n", + "mime_types = ['text/turtle','application/rdf+xml','application/ld+json','application/n-triples']\n", + "res = {\n", + " 'accept': {},\n", + " 'noaccept': {},\n", + " 'error': {}\n", + "}\n", + "\n", + "all_namespaces = list(set(x for ds in data.values() for x in ds['namespaces']['items']))\n", + "\n", + "f = IntProgress(min=0, max=len(all_namespaces))\n", + "display(f)\n", + "\n", + "for x in all_namespaces:\n", + " f.value += 1\n", + " try:\n", + " req = requests.head(x, headers={'Accept': ','.join(mime_types)}, allow_redirects=True)\n", + " if req.headers['content-type'] in mime_types: \n", + " res['accept'].update({x: {'status_code': req.status_code, 'content_type': req.headers['content-type']}})\n", + " else:\n", + " res['noaccept'].update({x: {'status_code': req.status_code, 'content_type': req.headers['content-type']}})\n", + " except Exception as e:\n", + " res['error'].update({x: {'error': e}})\n", + "responses = pd.concat((\n", + " pd.DataFrame(res['accept']).T, \n", + " pd.DataFrame(res['noaccept']).T, \n", + " #pd.DataFrame(res['error']).T\n", + "))\n", + "\n", + "import json\n", + "with open('requests.json', 'r', encoding='utf8') as jf:\n", + " requests_data = json.load(jf)\n", + "\n", + "for a, x in responses.iterrows():\n", + " if a not in requests_data:\n", + " requests_data.update({a: {\n", + " 'status_code': x['status_code'],\n", + " 'content_type': x['content_type'],\n", + " 'countas_tlo': None,\n", + " 'countas_ao': None}})\n", + " print(f'added {a} to requests_data (with empty information)')\n", + " if a in requests_data:\n", + " if not x['status_code'] == requests_data[a]['status_code']:\n", + " requests_data[a].update({'status_code': x['status_code']})\n", + " print(f'updated status code for {a}')\n", + " if not x['content_type'] == requests_data[a]['content_type']:\n", + " requests_data[a].update({'content_type': x['content_type']})\n", + " print(f'updated content type for {a}')\n", + "\n", + "with open('requests.json', 'w', encoding='utf8') as jf:\n", + " json.dump(requests_data, jf, indent=4)" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "id": "3beda5ec", + "metadata": { + "papermill": { + "duration": 0.003852, + "end_time": "2024-05-30T06:42:30.429730", + "exception": false, + "start_time": "2024-05-30T06:42:30.425878", + "status": "completed" + }, + "tags": [] + }, + "source": [ + "## Namespace identifiers\n", + "The following uri(-stubs) were collected into the respective namespace identifiers. " + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "271fd28f", + "metadata": { + "execution": { + "iopub.execute_input": "2024-05-30T06:42:30.438358Z", + "iopub.status.busy": "2024-05-30T06:42:30.438098Z", + "iopub.status.idle": "2024-05-30T06:42:30.448567Z", + "shell.execute_reply": "2024-05-30T06:42:30.448018Z" + }, + "papermill": { + "duration": 0.016274, + "end_time": "2024-05-30T06:42:30.449797", + "exception": false, + "start_time": "2024-05-30T06:42:30.433523", + "status": "completed" + }, + "tags": [] + }, + "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", + "
uris
edamontologyhttp://edamontology.org/
tekom_iirdshttp://iirds.tekom.de/iirds#
pmdco01https://material-digital.de/pmdco/, http://material-digital.de/pmdco/
nmrCVhttp://nmrML.org/nmrCV#
allotropehttp://purl.allotrope.org/, http://purl.allotrope.org/ontologies/
dataonehttp://purl.dataone.org/odo/
bfohttp://purl.obolibrary.org/obo/bfo.owl#, http://purl.obolibrary.org/obo/bfo/axiom/
rohttp://purl.obolibrary.org/obo/ro/docs/direct-and-indirect-relations/, http://purl.obolibrary.org/obo/ro/docs/, http://purl.obolibrary.org/obo/ro.owl#, http://purl.obolibrary.org/obo/ro/docs/reflexivity/, http://purl.obolibrary.org/obo/ro/subsets#, http://purl.obolibrary.org/obo/ro/docs/temporal-semantics/
chebihttp://purl.obolibrary.org/obo/chebi#, http://purl.obolibrary.org/obo/chebi/
dcelementshttp://purl.org/dc/elements/1.1/
pavhttp://purl.org/pav/
dctermshttp://purl.org/dc/terms/
qudthttp://qudt.org/schema/qudt/, https://qudt.org/2.1/schema/qudt/, http://qudt.org/vocab/, http://qudt.org/schema/, http://qudt.org/vocab/quantitykind/, http://qudt.org/vocab/unit/
ccohttps://raw.githubusercontent.com/CommonCoreOntology/CommonCoreOntologies/v2021-03-01/, http://www.ontologyrepository.com/CommonCoreOntologies/
swrlhttp://swrl.stanford.edu/ontologies/3.3/swrla.owl#, http://www.w3.org/2003/11/swrl#
provhttps://w3.org/ns/prov#
csvwhttps://w3.org/ns/csvw#
pmdco20https://w3id.org/pmd/co/, https://w3id.org/pmd/co/2.0.7/
oknhttps://w3id.org/okn/o/
nfdi4inghttp://w3id.org/nfdi4ing/metadata4ing#
geneontologyhttp://wiki.geneontology.org/index.php/, http://www.geneontology.org/formats/oboInOwl#
wikibasehttp://wikiba.se/ontology/, http://wikiba.se/ontology#
aidimmehttp://www.aidimme.es/
efohttp://www.ebi.ac.uk/efo/
ontology-of-units-of-measurehttp://www.ontology-of-units-of-measure.org/resource/om-2/, http://www.ontology-of-units-of-measure.org/resource/
geosparqlhttp://www.opengis.net/ont/geosparql#
shaclhttp://www.w3.org/ns/shacl#
prochttp://www.w3.org/ns/prov#
sosahttp://www.w3.org/ns/sosa/
ssnhttp://www.w3.org/ns/ssn/systems/
rdfhttp://www.w3.org/1999/02/22-rdf-syntax-ns#
dcathttp://www.w3.org/ns/dcat#
owlhttp://www.w3.org/2002/07/owl#
rdfshttp://www.w3.org/2000/01/rdf-schema#
skoshttp://www.w3.org/2004/02/skos/core#
xmlhttp://www.w3.org/2001/XMLSchema#
foafhttp://xmlns.com/foaf/0.1/
PMDao_TTOhttps://w3id.org/pmd/tto/
oahttp://www.w3.org/ns/oa#
PMDao_MOhttps://w3id.org/pmd/mo/
emmohttp://emmo.info/emmo/top/annotations#, http://emmo.info/emmo/middle/math#, http://emmo.info/emmo/middle/models#, http://emmo.info/emmo/middle/metrology#, http://emmo.info/emmo#
emtermshttps://www.jeol.co.jp/en/words/emterms/
emglossaryhttps://codebase.helmholtz.cloud/em_glossary/em_glossary/-/blob/main/terms/
\n", + "
" + ], + "text/plain": [ + " uris\n", + "edamontology http://edamontology.org/\n", + "tekom_iirds http://iirds.tekom.de/iirds#\n", + "pmdco01 https://material-digital.de/pmdco/, http://material-digital.de/pmdco/\n", + "nmrCV http://nmrML.org/nmrCV#\n", + "allotrope http://purl.allotrope.org/, http://purl.allotrope.org/ontologies/\n", + "dataone http://purl.dataone.org/odo/\n", + "bfo http://purl.obolibrary.org/obo/bfo.owl#, http://purl.obolibrary.org/obo/bfo/axiom/\n", + "ro http://purl.obolibrary.org/obo/ro/docs/direct-and-indirect-relations/, http://purl.obolibrary.org/obo/ro/docs/, http://purl.obolibrary.org/obo/ro.owl#, http://purl.obolibrary.org/obo/ro/docs/reflexivity/, http://purl.obolibrary.org/obo/ro/subsets#, http://purl.obolibrary.org/obo/ro/docs/temporal-semantics/\n", + "chebi http://purl.obolibrary.org/obo/chebi#, http://purl.obolibrary.org/obo/chebi/\n", + "dcelements http://purl.org/dc/elements/1.1/\n", + "pav http://purl.org/pav/\n", + "dcterms http://purl.org/dc/terms/\n", + "qudt http://qudt.org/schema/qudt/, https://qudt.org/2.1/schema/qudt/, http://qudt.org/vocab/, http://qudt.org/schema/, http://qudt.org/vocab/quantitykind/, http://qudt.org/vocab/unit/\n", + "cco https://raw.githubusercontent.com/CommonCoreOntology/CommonCoreOntologies/v2021-03-01/, http://www.ontologyrepository.com/CommonCoreOntologies/\n", + "swrl http://swrl.stanford.edu/ontologies/3.3/swrla.owl#, http://www.w3.org/2003/11/swrl#\n", + "prov https://w3.org/ns/prov#\n", + "csvw https://w3.org/ns/csvw#\n", + "pmdco20 https://w3id.org/pmd/co/, https://w3id.org/pmd/co/2.0.7/\n", + "okn https://w3id.org/okn/o/\n", + "nfdi4ing http://w3id.org/nfdi4ing/metadata4ing#\n", + "geneontology http://wiki.geneontology.org/index.php/, http://www.geneontology.org/formats/oboInOwl#\n", + "wikibase http://wikiba.se/ontology/, http://wikiba.se/ontology#\n", + "aidimme http://www.aidimme.es/\n", + "efo http://www.ebi.ac.uk/efo/\n", + "ontology-of-units-of-measure http://www.ontology-of-units-of-measure.org/resource/om-2/, http://www.ontology-of-units-of-measure.org/resource/\n", + "geosparql http://www.opengis.net/ont/geosparql#\n", + "shacl http://www.w3.org/ns/shacl#\n", + "proc http://www.w3.org/ns/prov#\n", + "sosa http://www.w3.org/ns/sosa/\n", + "ssn http://www.w3.org/ns/ssn/systems/\n", + "rdf http://www.w3.org/1999/02/22-rdf-syntax-ns#\n", + "dcat http://www.w3.org/ns/dcat#\n", + "owl http://www.w3.org/2002/07/owl#\n", + "rdfs http://www.w3.org/2000/01/rdf-schema#\n", + "skos http://www.w3.org/2004/02/skos/core#\n", + "xml http://www.w3.org/2001/XMLSchema#\n", + "foaf http://xmlns.com/foaf/0.1/\n", + "PMDao_TTO https://w3id.org/pmd/tto/\n", + "oa http://www.w3.org/ns/oa#\n", + "PMDao_MO https://w3id.org/pmd/mo/\n", + "emmo http://emmo.info/emmo/top/annotations#, http://emmo.info/emmo/middle/math#, http://emmo.info/emmo/middle/models#, http://emmo.info/emmo/middle/metrology#, http://emmo.info/emmo#\n", + "emterms https://www.jeol.co.jp/en/words/emterms/\n", + "emglossary https://codebase.helmholtz.cloud/em_glossary/em_glossary/-/blob/main/terms/" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "with open('requests.json', 'r', encoding='utf8') as jf:\n", + " requests_data = json.load(jf)\n", + "\n", + "tlodict = dict()\n", + "for tkey, tval in requests_data.items():\n", + " if not tval['countas_tlo']:\n", + " continue\n", + " if tval['countas_tlo'] not in tlodict:\n", + " tlodict[tval['countas_tlo']] = {'uris': [tkey]}\n", + " else:\n", + " tlodict[tval['countas_tlo']]['uris'].append(tkey)\n", + "tlodict = {k: {'uris': ', '.join(v['uris'])} for k, v in tlodict.items()}\n", + "pd.set_option('display.max_colwidth', None)\n", + "pd.DataFrame(tlodict).T" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "9f72ab59", + "metadata": { + "execution": { + "iopub.execute_input": "2024-05-30T06:42:30.459208Z", + "iopub.status.busy": "2024-05-30T06:42:30.458799Z", + "iopub.status.idle": "2024-05-30T06:42:30.466396Z", + "shell.execute_reply": "2024-05-30T06:42:30.465897Z" + }, + "papermill": { + "duration": 0.013569, + "end_time": "2024-05-30T06:42:30.467575", + "exception": false, + "start_time": "2024-05-30T06:42:30.454006", + "status": "completed" + }, + "tags": [] + }, + "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", + "
uris
KupferDigitalhttps://gitlab.com/kupferdigital/process-graphs/lcf-test/, https://gitlab.com/kupferdigital/process-graphs/tensile-test/, https://gitlab.com/kupferdigital/ontologies/mechanical-testing-ontology/, https://gitlab.com/kupferdigital/process-graphs/relaxation-test/
GlasDigitalhttps://glasdigi.cms.uni-jena.de/, https://glasdigi.cms.uni-jena.de/glass/, https://w3id.org/pmd/glass-ontology/
DIGITRUBBERhttp://purl.obolibrary.org/obo/digitrubber/releases/2023-06-01/, http://purl.obolibrary.org/obo/digitrubber/, https://www.tib.eu/digitrubber#
LeBeDigitalhttps://w3id.org/cpto/GGBS/, https://w3id.org/cpto/
SensoTwinhttp://w3id.org/sensotwin/applicationontology#, http://w3id.org/sensotwin/, http://w3id.org/sensotwin/applicationontology/
ODE_AMhttps://w3id.org/ODE_AM/, https://w3id.org/ODE_AM/AMAO#, https://w3id.org/ODE_AM/AMAO/, https://w3id.org/ODE_AM/CEMAO/, https://w3id.org/ODE_AM/MAO/, https://w3id.org/ODE_AM/PBFAO/, https://w3id.org/ODE_AM/WAAMAO/
DiProMaghttps://www.dipromag.de/dipromag_onto/0.1/, https://www.dipromag.de/ottr-templates/
PMDao_TTOhttps://w3id.org/pmd/tto/
PMDao_MOhttps://w3id.org/pmd/mo/
KNOW-NOWhttp://www.semanticweb.org/ontologies/KnowNow#
DigiBatMathttps://purl.org/bpco/, https://purl.org/bpco#
StahlDigitalhttps://w3id.org/steel/, https://w3id.org/steel/ProcessOntology/
\n", + "
" + ], + "text/plain": [ + " uris\n", + "KupferDigital https://gitlab.com/kupferdigital/process-graphs/lcf-test/, https://gitlab.com/kupferdigital/process-graphs/tensile-test/, https://gitlab.com/kupferdigital/ontologies/mechanical-testing-ontology/, https://gitlab.com/kupferdigital/process-graphs/relaxation-test/\n", + "GlasDigital https://glasdigi.cms.uni-jena.de/, https://glasdigi.cms.uni-jena.de/glass/, https://w3id.org/pmd/glass-ontology/\n", + "DIGITRUBBER http://purl.obolibrary.org/obo/digitrubber/releases/2023-06-01/, http://purl.obolibrary.org/obo/digitrubber/, https://www.tib.eu/digitrubber#\n", + "LeBeDigital https://w3id.org/cpto/GGBS/, https://w3id.org/cpto/\n", + "SensoTwin http://w3id.org/sensotwin/applicationontology#, http://w3id.org/sensotwin/, http://w3id.org/sensotwin/applicationontology/\n", + "ODE_AM https://w3id.org/ODE_AM/, https://w3id.org/ODE_AM/AMAO#, https://w3id.org/ODE_AM/AMAO/, https://w3id.org/ODE_AM/CEMAO/, https://w3id.org/ODE_AM/MAO/, https://w3id.org/ODE_AM/PBFAO/, https://w3id.org/ODE_AM/WAAMAO/\n", + "DiProMag https://www.dipromag.de/dipromag_onto/0.1/, https://www.dipromag.de/ottr-templates/\n", + "PMDao_TTO https://w3id.org/pmd/tto/\n", + "PMDao_MO https://w3id.org/pmd/mo/\n", + "KNOW-NOW http://www.semanticweb.org/ontologies/KnowNow#\n", + "DigiBatMat https://purl.org/bpco/, https://purl.org/bpco#\n", + "StahlDigital https://w3id.org/steel/, https://w3id.org/steel/ProcessOntology/" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "aodict = dict()\n", + "for tkey, tval in requests_data.items():\n", + " if not tval['countas_ao']:\n", + " continue\n", + " if tval['countas_ao'] not in aodict:\n", + " aodict[tval['countas_ao']] = {'uris': [tkey]}\n", + " else:\n", + " aodict[tval['countas_ao']]['uris'].append(tkey)\n", + "aodict = {k: {'uris': ', '.join(v['uris'])} for k, v in aodict.items()}\n", + "pd.set_option('display.max_colwidth', None)\n", + "pd.DataFrame(aodict).T" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "id": "979637f2", + "metadata": { + "papermill": { + "duration": 0.004233, + "end_time": "2024-05-30T06:42:30.476327", + "exception": false, + "start_time": "2024-05-30T06:42:30.472094", + "status": "completed" + }, + "tags": [] + }, + "source": [ + "### TLO usage\n", + "The used TLOs are listed in the table below. Also trivial cases like `owl` and `rdfs` were included. The column `Sum` denoted the number of evaluated A-Boxes, that used concepts belonging to the respective namespace." + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "79fab6c7", + "metadata": { + "execution": { + "iopub.execute_input": "2024-05-30T06:42:30.486106Z", + "iopub.status.busy": "2024-05-30T06:42:30.485650Z", + "iopub.status.idle": "2024-05-30T06:42:30.504831Z", + "shell.execute_reply": "2024-05-30T06:42:30.504292Z" + }, + "papermill": { + "duration": 0.025479, + "end_time": "2024-05-30T06:42:30.506031", + "exception": false, + "start_time": "2024-05-30T06:42:30.480552", + "status": "completed" + }, + "tags": [] + }, + "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", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
DigiBatMatDIGITRUBBERDiProMagGlasDigitalKNOW-NOWKupferDigitalLeBeDigitalODE_AMPMDao_MOPMDao_TTOSensoTwinSmaDiStahlDigitalSumname
owl111111111111113owl
rdfs111111111111113rdfs
dcterms111111101111112dcterms
rdf111110010111110rdf
xml111111010110110xml
dcelements11001001111018dcelements
pmdco2010101110111008pmdco20
skos01011101110018skos
proc00001110011005proc
qudt10101100000015qudt
bfo01000001000002bfo
emmo00001000000012emmo
pmdco0100010000000012pmdco01
swrl01000001000002swrl
PMDao_MO00000000100001PMDao_MO
PMDao_TTO00000000010001PMDao_TTO
aidimme01000000000001aidimme
allotrope01000000000001allotrope
cco00000001000001cco
chebi01000000000001chebi
csvw00000100000001csvw
dataone01000000000001dataone
dcat00100000000001dcat
edamontology01000000000001edamontology
efo01000000000001efo
emglossary00000000100001emglossary
emterms00000000100001emterms
foaf01000000000001foaf
geneontology01000000000001geneontology
geosparql01000000000001geosparql
nfdi4ing01000000000001nfdi4ing
nmrCV01000000000001nmrCV
oa00001000000001oa
okn01000000000001okn
ontology-of-units-of-measure01000000000001ontology-of-units-of-measure
pav01000000000001pav
prov00000100000001prov
ro01000000000001ro
shacl01000000000001shacl
sosa01000000000001sosa
ssn01000000000001ssn
tekom_iirds01000000000001tekom_iirds
wikibase00010000000001wikibase
\n", + "
" + ], + "text/plain": [ + " DigiBatMat DIGITRUBBER DiProMag GlasDigital \\\n", + "owl 1 1 1 1 \n", + "rdfs 1 1 1 1 \n", + "dcterms 1 1 1 1 \n", + "rdf 1 1 1 1 \n", + "xml 1 1 1 1 \n", + "dcelements 1 1 0 0 \n", + "pmdco20 1 0 1 0 \n", + "skos 0 1 0 1 \n", + "proc 0 0 0 0 \n", + "qudt 1 0 1 0 \n", + "bfo 0 1 0 0 \n", + "emmo 0 0 0 0 \n", + "pmdco01 0 0 0 1 \n", + "swrl 0 1 0 0 \n", + "PMDao_MO 0 0 0 0 \n", + "PMDao_TTO 0 0 0 0 \n", + "aidimme 0 1 0 0 \n", + "allotrope 0 1 0 0 \n", + "cco 0 0 0 0 \n", + "chebi 0 1 0 0 \n", + "csvw 0 0 0 0 \n", + "dataone 0 1 0 0 \n", + "dcat 0 0 1 0 \n", + "edamontology 0 1 0 0 \n", + "efo 0 1 0 0 \n", + "emglossary 0 0 0 0 \n", + "emterms 0 0 0 0 \n", + "foaf 0 1 0 0 \n", + "geneontology 0 1 0 0 \n", + "geosparql 0 1 0 0 \n", + "nfdi4ing 0 1 0 0 \n", + "nmrCV 0 1 0 0 \n", + "oa 0 0 0 0 \n", + "okn 0 1 0 0 \n", + "ontology-of-units-of-measure 0 1 0 0 \n", + "pav 0 1 0 0 \n", + "prov 0 0 0 0 \n", + "ro 0 1 0 0 \n", + "shacl 0 1 0 0 \n", + "sosa 0 1 0 0 \n", + "ssn 0 1 0 0 \n", + "tekom_iirds 0 1 0 0 \n", + "wikibase 0 0 0 1 \n", + "\n", + " KNOW-NOW KupferDigital LeBeDigital ODE_AM \\\n", + "owl 1 1 1 1 \n", + "rdfs 1 1 1 1 \n", + "dcterms 1 1 1 0 \n", + "rdf 1 0 0 1 \n", + "xml 1 1 0 1 \n", + "dcelements 1 0 0 1 \n", + "pmdco20 1 1 1 0 \n", + "skos 1 1 0 1 \n", + "proc 1 1 1 0 \n", + "qudt 1 1 0 0 \n", + "bfo 0 0 0 1 \n", + "emmo 1 0 0 0 \n", + "pmdco01 0 0 0 0 \n", + "swrl 0 0 0 1 \n", + "PMDao_MO 0 0 0 0 \n", + "PMDao_TTO 0 0 0 0 \n", + "aidimme 0 0 0 0 \n", + "allotrope 0 0 0 0 \n", + "cco 0 0 0 1 \n", + "chebi 0 0 0 0 \n", + "csvw 0 1 0 0 \n", + "dataone 0 0 0 0 \n", + "dcat 0 0 0 0 \n", + "edamontology 0 0 0 0 \n", + "efo 0 0 0 0 \n", + "emglossary 0 0 0 0 \n", + "emterms 0 0 0 0 \n", + "foaf 0 0 0 0 \n", + "geneontology 0 0 0 0 \n", + "geosparql 0 0 0 0 \n", + "nfdi4ing 0 0 0 0 \n", + "nmrCV 0 0 0 0 \n", + "oa 1 0 0 0 \n", + "okn 0 0 0 0 \n", + "ontology-of-units-of-measure 0 0 0 0 \n", + "pav 0 0 0 0 \n", + "prov 0 1 0 0 \n", + "ro 0 0 0 0 \n", + "shacl 0 0 0 0 \n", + "sosa 0 0 0 0 \n", + "ssn 0 0 0 0 \n", + "tekom_iirds 0 0 0 0 \n", + "wikibase 0 0 0 0 \n", + "\n", + " PMDao_MO PMDao_TTO SensoTwin SmaDi \\\n", + "owl 1 1 1 1 \n", + "rdfs 1 1 1 1 \n", + "dcterms 1 1 1 1 \n", + "rdf 0 1 1 1 \n", + "xml 0 1 1 0 \n", + "dcelements 1 1 1 0 \n", + "pmdco20 1 1 1 0 \n", + "skos 1 1 0 0 \n", + "proc 0 1 1 0 \n", + "qudt 0 0 0 0 \n", + "bfo 0 0 0 0 \n", + "emmo 0 0 0 0 \n", + "pmdco01 0 0 0 0 \n", + "swrl 0 0 0 0 \n", + "PMDao_MO 1 0 0 0 \n", + "PMDao_TTO 0 1 0 0 \n", + "aidimme 0 0 0 0 \n", + "allotrope 0 0 0 0 \n", + "cco 0 0 0 0 \n", + "chebi 0 0 0 0 \n", + "csvw 0 0 0 0 \n", + "dataone 0 0 0 0 \n", + "dcat 0 0 0 0 \n", + "edamontology 0 0 0 0 \n", + "efo 0 0 0 0 \n", + "emglossary 1 0 0 0 \n", + "emterms 1 0 0 0 \n", + "foaf 0 0 0 0 \n", + "geneontology 0 0 0 0 \n", + "geosparql 0 0 0 0 \n", + "nfdi4ing 0 0 0 0 \n", + "nmrCV 0 0 0 0 \n", + "oa 0 0 0 0 \n", + "okn 0 0 0 0 \n", + "ontology-of-units-of-measure 0 0 0 0 \n", + "pav 0 0 0 0 \n", + "prov 0 0 0 0 \n", + "ro 0 0 0 0 \n", + "shacl 0 0 0 0 \n", + "sosa 0 0 0 0 \n", + "ssn 0 0 0 0 \n", + "tekom_iirds 0 0 0 0 \n", + "wikibase 0 0 0 0 \n", + "\n", + " StahlDigital Sum name \n", + "owl 1 13 owl \n", + "rdfs 1 13 rdfs \n", + "dcterms 1 12 dcterms \n", + "rdf 1 10 rdf \n", + "xml 1 10 xml \n", + "dcelements 1 8 dcelements \n", + "pmdco20 0 8 pmdco20 \n", + "skos 1 8 skos \n", + "proc 0 5 proc \n", + "qudt 1 5 qudt \n", + "bfo 0 2 bfo \n", + "emmo 1 2 emmo \n", + "pmdco01 1 2 pmdco01 \n", + "swrl 0 2 swrl \n", + "PMDao_MO 0 1 PMDao_MO \n", + "PMDao_TTO 0 1 PMDao_TTO \n", + "aidimme 0 1 aidimme \n", + "allotrope 0 1 allotrope \n", + "cco 0 1 cco \n", + "chebi 0 1 chebi \n", + "csvw 0 1 csvw \n", + "dataone 0 1 dataone \n", + "dcat 0 1 dcat \n", + "edamontology 0 1 edamontology \n", + "efo 0 1 efo \n", + "emglossary 0 1 emglossary \n", + "emterms 0 1 emterms \n", + "foaf 0 1 foaf \n", + "geneontology 0 1 geneontology \n", + "geosparql 0 1 geosparql \n", + "nfdi4ing 0 1 nfdi4ing \n", + "nmrCV 0 1 nmrCV \n", + "oa 0 1 oa \n", + "okn 0 1 okn \n", + "ontology-of-units-of-measure 0 1 ontology-of-units-of-measure \n", + "pav 0 1 pav \n", + "prov 0 1 prov \n", + "ro 0 1 ro \n", + "shacl 0 1 shacl \n", + "sosa 0 1 sosa \n", + "ssn 0 1 ssn \n", + "tekom_iirds 0 1 tekom_iirds \n", + "wikibase 0 1 wikibase " + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "pd.reset_option('display.max_colwidth')\n", + "tlodict = dict()\n", + "for tkey, tval in requests_data.items():\n", + " if not tval['countas_tlo']:\n", + " continue\n", + " if tval['countas_tlo'] not in tlodict:\n", + " tlodict[tval['countas_tlo']] = {'uris': [tkey]}\n", + " else:\n", + " tlodict[tval['countas_tlo']]['uris'].append(tkey)\n", + "\n", + "dftlo = pd.DataFrame({proj: {key: max([int(x in data[proj]['namespaces']['items']) for x in tlodict[key]['uris']]) for key in tlodict.keys()} for proj in data.keys()})\n", + "dftlo.insert(loc=len(dftlo.columns), column='Sum', value=dftlo.sum(axis=1))\n", + "dftlo['name'] = dftlo.index\n", + "dftlo.sort_values(by=['Sum', 'name'], ascending=[False, True], inplace=True)\n", + "dftlo" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "id": "0b149668", + "metadata": { + "papermill": { + "duration": 0.005002, + "end_time": "2024-05-30T06:42:30.516511", + "exception": false, + "start_time": "2024-05-30T06:42:30.511509", + "status": "completed" + }, + "tags": [] + }, + "source": [ + "### Inter-AO usage\n", + "The table below denotes the usage of concepts from other projects namespaces. It can easily be seen, that there is no concept usage between the projects visible in the current state." + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "id": "985c8237", + "metadata": { + "execution": { + "iopub.execute_input": "2024-05-30T06:42:30.527649Z", + "iopub.status.busy": "2024-05-30T06:42:30.527187Z", + "iopub.status.idle": "2024-05-30T06:42:30.540671Z", + "shell.execute_reply": "2024-05-30T06:42:30.540151Z" + }, + "papermill": { + "duration": 0.020431, + "end_time": "2024-05-30T06:42:30.541847", + "exception": false, + "start_time": "2024-05-30T06:42:30.521416", + "status": "completed" + }, + "tags": [] + }, + "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", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
DIGITRUBBERDiProMagDigiBatMatGlasDigitalKNOW-NOWKupferDigitalLeBeDigitalODE_AMPMDao_MOPMDao_TTOSensoTwinStahlDigitalSum
DIGITRUBBER1000000000001
DiProMag0100000000001
DigiBatMat0010000000001
GlasDigital0001000000001
KNOW-NOW0000100000001
KupferDigital0000010000001
LeBeDigital0000001000001
ODE_AM0000000100001
PMDao_MO0000000010001
PMDao_TTO0000000001001
SensoTwin0000000000101
StahlDigital0000000000011
\n", + "
" + ], + "text/plain": [ + " DIGITRUBBER DiProMag DigiBatMat GlasDigital KNOW-NOW \\\n", + "DIGITRUBBER 1 0 0 0 0 \n", + "DiProMag 0 1 0 0 0 \n", + "DigiBatMat 0 0 1 0 0 \n", + "GlasDigital 0 0 0 1 0 \n", + "KNOW-NOW 0 0 0 0 1 \n", + "KupferDigital 0 0 0 0 0 \n", + "LeBeDigital 0 0 0 0 0 \n", + "ODE_AM 0 0 0 0 0 \n", + "PMDao_MO 0 0 0 0 0 \n", + "PMDao_TTO 0 0 0 0 0 \n", + "SensoTwin 0 0 0 0 0 \n", + "StahlDigital 0 0 0 0 0 \n", + "\n", + " KupferDigital LeBeDigital ODE_AM PMDao_MO PMDao_TTO \\\n", + "DIGITRUBBER 0 0 0 0 0 \n", + "DiProMag 0 0 0 0 0 \n", + "DigiBatMat 0 0 0 0 0 \n", + "GlasDigital 0 0 0 0 0 \n", + "KNOW-NOW 0 0 0 0 0 \n", + "KupferDigital 1 0 0 0 0 \n", + "LeBeDigital 0 1 0 0 0 \n", + "ODE_AM 0 0 1 0 0 \n", + "PMDao_MO 0 0 0 1 0 \n", + "PMDao_TTO 0 0 0 0 1 \n", + "SensoTwin 0 0 0 0 0 \n", + "StahlDigital 0 0 0 0 0 \n", + "\n", + " SensoTwin StahlDigital Sum \n", + "DIGITRUBBER 0 0 1 \n", + "DiProMag 0 0 1 \n", + "DigiBatMat 0 0 1 \n", + "GlasDigital 0 0 1 \n", + "KNOW-NOW 0 0 1 \n", + "KupferDigital 0 0 1 \n", + "LeBeDigital 0 0 1 \n", + "ODE_AM 0 0 1 \n", + "PMDao_MO 0 0 1 \n", + "PMDao_TTO 0 0 1 \n", + "SensoTwin 1 0 1 \n", + "StahlDigital 0 1 1 " + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "aodict = dict()\n", + "for tkey, tval in requests_data.items():\n", + " if not tval['countas_ao']:\n", + " continue\n", + " if tval['countas_tlo'] not in aodict:\n", + " aodict[tval['countas_ao']] = {'uris': [tkey]}\n", + " else:\n", + " aodict[tval['countas_ao']]['uris'].append(tkey)\n", + "\n", + "dfao = pd.DataFrame({proj: {key: max([int(x in data[proj]['namespaces']['items']) for x in aodict[key]['uris']]) for key in aodict.keys()} for proj in data.keys()})\n", + "dfao.insert(loc=len(dfao.columns), column='Sum', value=dfao.sum(axis=1))\n", + "dfao['name'] = dfao.index\n", + "dfao.sort_values(by=['Sum', 'name'], ascending=[False, True], inplace=True)\n", + "dfao[list(dfao.index) + ['Sum']]\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "73edc0e9", + "metadata": { + "papermill": { + "duration": 0.005171, + "end_time": "2024-05-30T06:42:30.552468", + "exception": false, + "start_time": "2024-05-30T06:42:30.547297", + "status": "completed" + }, + "tags": [] + }, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "pmd_kernel", + "language": "python", + "name": "pmd_kernel" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.10.12" + }, + "papermill": { + "default_parameters": {}, + "duration": 142.224352, + "end_time": "2024-05-30T06:42:30.773379", + "environment_variables": {}, + "exception": null, + "input_path": "tbox_analysis_vis.ipynb", + "output_path": "tbox_analysis_vis_out.ipynb", + "parameters": {}, + "start_time": "2024-05-30T06:40:08.549027", + "version": "2.6.0" + }, + "vscode": { + "interpreter": { + "hash": "6d1d5feec15dbfe738666fd10cea7256000e8b4477dd9d92c4285180248ab7ed" + } + }, + "widgets": { + "application/vnd.jupyter.widget-state+json": { + "state": { + "1711762493914670b181e641e5c06831": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "IntProgressModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "2.0.0", + "_model_name": "IntProgressModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "2.0.0", + "_view_name": "ProgressView", + "bar_style": "", + "description": "", + "description_allow_html": false, + "layout": "IPY_MODEL_bab417846d8944dfae5311840e722056", + "max": 124, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_2718b4e89a054a50a04651001f682b8c", + "tabbable": null, + "tooltip": null, + "value": 124 + } + }, + "2718b4e89a054a50a04651001f682b8c": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "ProgressStyleModel", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "2.0.0", + "_model_name": "ProgressStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "2.0.0", + "_view_name": "StyleView", + "bar_color": null, + "description_width": "" + } + }, + "bab417846d8944dfae5311840e722056": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "2.0.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "2.0.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "2.0.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border_bottom": null, + "border_left": null, + "border_right": null, + "border_top": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + } + }, + "version_major": 2, + "version_minor": 0 + } + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} \ No newline at end of file