From e85b5f81ccc990e75de06302fcd2a3bdcd4ba0ef Mon Sep 17 00:00:00 2001
From: Anna <35895017+calnfynn@users.noreply.github.com>
Date: Tue, 6 Aug 2024 08:08:25 +0000
Subject: [PATCH] changed html + markdown + tex
---
cosite001.ipynb | 464 +++++++++++++++----
docs/Co-Site-Glossar.docx | Bin 576877 -> 575714 bytes
docs/Co-Site-Glossar.epub | Bin 414413 -> 414027 bytes
docs/Co-Site-Glossar.pdf | Bin 87070 -> 86244 bytes
docs/contributors.html | 2 +-
docs/cosite001.html | 489 +++++++--------------
docs/glossary.css | 28 ++
docs/imprint.html | 2 +-
docs/index.html | 2 +-
docs/references.html | 2 +-
docs/search.json | 12 +-
docs/site_libs/bootstrap/bootstrap.min.css | 2 +-
epa.ipynb | 70 +--
in-header.tex | 4 +-
14 files changed, 631 insertions(+), 446 deletions(-)
create mode 100644 docs/glossary.css
diff --git a/cosite001.ipynb b/cosite001.ipynb
index eb36d96..5ce4ed8 100644
--- a/cosite001.ipynb
+++ b/cosite001.ipynb
@@ -20,23 +20,22 @@
},
{
"cell_type": "code",
- "execution_count": 9,
+ "execution_count": 8,
"metadata": {},
"outputs": [],
"source": [
"from datetime import datetime\n",
"import sys\n",
"import time\n",
- "from SPARQLWrapper import SPARQLWrapper, JSON\n",
"import requests\n",
"import html\n",
"\n",
"\n",
"api_url = \"https://climatekg.semanticclimate.net/api.php\"\n",
"\n",
- "def fetch_mediawiki_data(api_url, params):\n",
+ "def fetch_mediawiki_data(api_url, params, session):\n",
" try:\n",
- " response = requests.get(api_url, params=params)\n",
+ " response = session.get(api_url, params=params)\n",
" response.raise_for_status() # Raise an exception for HTTP errors\n",
" data = response.json()\n",
" return data\n",
@@ -50,19 +49,36 @@
" \n",
" for item_id, item_data in results.items():\n",
" #print(item_data)\n",
- " subcats = item_data[\"printouts\"].get(\"subcategoryOf\", [None])\n",
- " subcat = \"\"\n",
- " if len(subcats) > 0: \n",
- " subcat = subcats[0] \n",
- " definition = \"\"\n",
- " if item_data[\"printouts\"].get(\"definition\", [{}]):\n",
- " definition = item_data[\"printouts\"].get(\"definition\", [{}])[0].get(\"Text\", {}).get(\"item\", [None])[0]\n",
+ " \n",
+ " multilang_fields = [\"description\"]\n",
+ " entity_fields = [\"subCategoryOf\", \"synonyms\", \"similarTo\"]\n",
+ " txt_fields = [\"term\",\"description_plain\",\"vocabulary\",\"acronym\",\"tags\"]\n",
" item = {\n",
- " \"id\": item_id,\n",
- " \"term\": item_data[\"printouts\"].get(\"term\", [None])[0],\n",
- " \"definition\": definition,\n",
- " \"subCategoryOf\": subcat\n",
+ " \"id\": item_id\n",
" }\n",
+ "\n",
+ " for fieldname in txt_fields:\n",
+ " if item_data[\"printouts\"].get(fieldname, [{}]):\n",
+ " #print(fieldname)\n",
+ " item[fieldname] = item_data[\"printouts\"].get(fieldname, [None])[0]\n",
+ " else:\n",
+ " item[fieldname] = \"\"\n",
+ " \n",
+ " for fieldname in entity_fields:\n",
+ " if item_data[\"printouts\"].get(fieldname, [{}]):\n",
+ " #print(fieldname)\n",
+ " item[fieldname] = str(item_data[\"printouts\"].get(fieldname, [None]))\n",
+ " else:\n",
+ " item[fieldname] = \"\"\n",
+ "\n",
+ " for fieldname in multilang_fields:\n",
+ " if item_data[\"printouts\"].get(fieldname, [{}]):\n",
+ " #print(fieldname)\n",
+ " item[fieldname] = item_data[\"printouts\"].get(fieldname, [{}])[0].get(\"Text\", {}).get(\"item\", [None])[0]\n",
+ " else:\n",
+ " item[fieldname] = \"\"\n",
+ " \n",
+ "\n",
" items.append(item)\n",
" \n",
" return items\n",
@@ -79,95 +95,381 @@
" markdown += f'|{item[\"subCategoryOf\"]}'\n",
" markdown += '|\\n'\n",
" \n",
- " return markdown\n",
+ " # Rows\n",
+ " for item in items:\n",
+ " html += '
'\n",
+ " html += f'{item[\"id\"]} | '\n",
+ " html += f'{item[\"term\"]} | '\n",
+ " html += f'{item[\"definition\"]} | '\n",
+ " html += f'{item[\"subCategoryOf\"]} | '\n",
+ " html += '
'\n",
+ " \n",
+ " html += ''\n",
+ " return html\n",
+ "\n",
+ "def generate_html_span(items, vocabulary):\n",
+ " \n",
+ " html = f'## {vocabulary}\\n' \n",
+ " for item in items: \n",
+ " html += f''' \n",
+ "
\n",
+ "\n",
+ "### {item[\"term\"]} \n",
+ "\n",
+ "{item[\"description\"]}\n",
+ "\n",
+ "**Klartextbeschreibung (label)**\n",
+ " \n",
+ "{item[\"description_plain\"]}\n",
+ " \n",
+ "**Akronym (label)** \n",
+ " \n",
+ "{item[\"acronym\"]}\n",
+ " \n",
+ "**Tag (label)**\n",
+ " \n",
+ "{item[\"tags\"]}\n",
+ " \n",
+ "**Ähnlich (label)**\n",
+ " \n",
+ "{item[\"similarTo\"]}\n",
+ " \n",
+ "**Unterklasse von (label)**\n",
+ " \n",
+ "{item[\"subCategoryOf\"]}\n",
+ " \n",
+ "**Synonyme (label)**\n",
+ " \n",
+ "{item[\"synonyms\"]}\n",
+ " \n",
+ " '''\n",
+ " return html\n",
+ "\n",
+ "def login(api_url, username, password):\n",
+ " session = requests.Session()\n",
+ " \n",
+ " # Step 1: GET request to fetch login token\n",
+ " login_token_params = {\n",
+ " 'action': 'query',\n",
+ " 'meta': 'tokens',\n",
+ " 'type': 'login',\n",
+ " 'format': 'json'\n",
+ " }\n",
+ " response = session.get(api_url, params=login_token_params)\n",
+ " response.raise_for_status()\n",
+ " login_token = response.json()['query']['tokens']['logintoken']\n",
+ " \n",
+ " # Step 2: POST request to log in\n",
+ " login_params = {\n",
+ " 'action': 'login',\n",
+ " 'lgname': username,\n",
+ " 'lgpassword': password,\n",
+ " 'lgtoken': login_token,\n",
+ " 'format': 'json'\n",
+ " }\n",
+ " response = session.post(api_url, data=login_params)\n",
+ " response.raise_for_status()\n",
+ " login_result = response.json()\n",
+ " \n",
+ " if login_result['login']['result'] == 'Success':\n",
+ " print('Logged in successfully')\n",
+ " return session\n",
+ " else:\n",
+ " print('Failed to log in')\n",
+ " sys.exit(1)\n",
"\n",
+ "def get_glossary(vocabulary, session):\n",
"\n",
- "def get_glossary():\n",
" params = {\n",
" 'action': 'ask',\n",
- " 'query': '[[Item:+]] [[has subobject::+]] [[P1::Term]] |?Wikibase description=definition |?P3=term |?P10.P3=subcategoryOf',\n",
+ " 'query': f'[[Item:+]] [[has subobject::+]] [[P1::Term]] [[P18::{vocabulary}]]|?Wikibase description=description |?P26=description_plain |?P3=term |?P10.P3=subCategoryOf |?P21=acronym |?P22=tags |?P23=similarTo |?P18=vocabulary |?P24=synonyms',\n",
" 'format': 'json'\n",
" }\n",
"\n",
- " response = fetch_mediawiki_data(api_url, params)\n",
+ " response = fetch_mediawiki_data(api_url, params, session)\n",
" items = extract_items(response)\n",
+ " \n",
" if items:\n",
- " # Generate the markdown for the table\n",
- " markdown_table = generate_markdown_table(items)\n",
- " print(markdown_table)\n",
- "\n",
- "\n",
- "\n"
+ " # Generate the HTML for the table\n",
+ " html = '\\n\\n'\n",
+ " #html += generate_html_table(items)\n",
+ " html += generate_html_span(items,vocabulary)\n",
+ " html += '\\n'\n",
+ " print(html)"
]
},
{
"cell_type": "code",
- "execution_count": 10,
+ "execution_count": 9,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
+ "Logged in successfully\n",
+ "\n",
+ "\n",
+ "## CoSite\n",
+ " \n",
+ "
\n",
+ "\n",
+ "### Co-Site \n",
"\n",
- "| ID | Begriff | Definition | Unterkategorie von |\n",
- "|---|---|---|---|\n",
- "|Item:Q10|low confidence|Each finding is grounded in an evaluation of underlying evidence and agreement. The IPCC calibrated language uses five qualifiers to express a level of confidence (very low, low, medium, high and very high )|qualifiers|\n",
- "|Item:Q100|baseline/reference|The reference point or period against which changes are measured, providing a baseline for analysis.|terms|\n",
- "|Item:Q1000|AOGCM|Atmosphere-Ocean General Circulation Model|acronyms|\n",
- "|Item:Q1001|AOSIS|Alliance of Small Island States|acronyms|\n",
- "|Item:Q1002|APEC|Asia-Pacific Economic Cooperation|acronyms|\n",
- "|Item:Q1003|APP|Agricultural Adaptation and Perception|acronyms|\n",
- "|Item:Q1004|APRA|Australian Prudential Regulation Authority|acronyms|\n",
- "|Item:Q1005|AQ|air quality|acronyms|\n",
- "|Item:Q1006|AR4|Fourth Assessment Report of the Intergovernmental Panel on Climate Change|acronyms|\n",
- "|Item:Q1007|AR5|Fifth Assessment Report of the Intergovernmental Panel on Climate Change|acronyms|\n",
- "|Item:Q1008|AR6|Sixth Assessment Report of the Intergovernmental Panel on Climate Change|acronyms|\n",
- "|Item:Q1009|AR7|Seventh Assessment Cycle of the Intergovernmental Panel on Climate Change|acronyms|\n",
- "|Item:Q101|baseline scenario|A hypothetical scenario used as a benchmark to assess the impact of potential changes or interventions.||\n",
- "|Item:Q1010|ARA|Arab Region of Asia|acronyms|\n",
- "|Item:Q1011|ARC|African Risk Capacity|acronyms|\n",
- "|Item:Q1012|ARO|Arctic Ocean|acronyms|\n",
- "|Item:Q1013|ARP|Arabian Peninsula|acronyms|\n",
- "|Item:Q1014|ARPA-E|Advanced Research Projects Agency-Energy|acronyms|\n",
- "|Item:Q1015|ARS|Arabian Sea|acronyms|\n",
- "|Item:Q1016|Art.|Article (e.g., of the UNFCCC),|acronyms|\n",
- "|Item:Q1017|ASAP|Adaptation for Smallholder Agriculture Programme|acronyms|\n",
- "|Item:Q1018|ASBEC|Australian Sustainable Built Environment Council|acronyms|\n",
- "|Item:Q1019|ASCM|Agreement on Subsidies and Countervailing Measures|acronyms|\n",
- "|Item:Q102|BE|Berkeley Earth|acronyms|\n",
- "|Item:Q1020|ASE|Amundsen Sea Embayment|acronyms|\n",
- "|Item:Q1021|ASEAN|Association of Southeast Asian Nations|acronyms|\n",
- "|Item:Q1022|ASFI|Australian Sustainable Finance Initiative|acronyms|\n",
- "|Item:Q1023|ASI|Avoid-Shift-Improve|acronyms|\n",
- "|Item:Q1024|ASK|available seat kilometres|acronyms|\n",
- "|Item:Q1025|ASP|Adaptive Social Protection|acronyms|\n",
- "|Item:Q1026|ATLAS|Adaptation Thought Leadership and Assessments|acronyms|\n",
- "|Item:Q1027|AUC|Area under the Curve|acronyms|\n",
- "|Item:Q1028|AUM|assets under management|acronyms|\n",
- "|Item:Q1029|AUP|Auckland Unitary Plan|acronyms|\n",
- "|Item:Q103|benthic|Organisms living on or in the sea floor, often used to indicate the health of marine ecosystems.||\n",
- "|Item:Q1030|AUS|Australasia|acronyms|\n",
- "|Item:Q1031|AusMCM|Australian–Maritime Continent monsoon|acronyms|\n",
- "|Item:Q1032|AVHRR|Advanced Very High Resolution Radiometer|acronyms|\n",
- "|Item:Q1033|AZM|Atlantic Zonal Modes|acronyms|\n",
- "|Item:Q1034|BAT|best available technology|acronyms|\n",
- "|Item:Q1035|BAU|Business-as-Usual|acronyms|\n",
- "|Item:Q1036|BC|black carbon|acronyms|\n",
- "|Item:Q1037|BCA|border carbon adjustment|acronyms|\n",
- "|Item:Q1038|BCE|Before the Common Era|acronyms|\n",
- "|Item:Q1039|BCP|biological carbon pump|acronyms|\n",
- "|Item:Q104|benthos|||\n",
- "|Item:Q1040|BDP|The Bangladesh Delta Plan|acronyms|\n",
- "|Item:Q1041|BECCS|Bioenergy with Carbon Dioxide Capture and Storage|acronyms|\n",
- "|Item:Q1042|BEES|building energy efficiency standards|acronyms|\n",
- "|Item:Q1043|BEMS|building energy management systems|acronyms|\n",
- "\n"
+ "Co-Kreation in der Region - Systematisch und innovativ Transfer entwickeln\n",
+ "\n",
+ "**Klartextbeschreibung (label)**\n",
+ " \n",
+ "\n",
+ " \n",
+ "**Akronym (label)** \n",
+ " \n",
+ "\n",
+ " \n",
+ "**Tag (label)**\n",
+ " \n",
+ "Forschungsprojekt\n",
+ " \n",
+ "**Ähnlich (label)**\n",
+ " \n",
+ "\n",
+ " \n",
+ "**Unterklasse von (label)**\n",
+ " \n",
+ "\n",
+ " \n",
+ "**Synonyme (label)**\n",
+ " \n",
+ "\n",
+ " \n",
+ " \n",
+ "
\n",
+ "\n",
+ "### Wissenschaftskommunikation \n",
+ "\n",
+ "Wissenschaftskommunikation umfasst alle Aspekte der Kommunikation wissenschaftlicher Arbeit und wissenschaftlicher Ergebnisse, sowohl innerhalb der Wissenschaft als auch bei der Kommunikation zwischen Wissenschaft und Öffentlichkeit.\n",
+ "\n",
+ "**Klartextbeschreibung (label)**\n",
+ " \n",
+ "Wissenschaftskommunikation umfasst alle Aspekte der Kommunikation wissenschaftlicher Arbeit und wissenschaftlicher Ergebnisse, sowohl innerhalb der Wissenschaft als auch bei der Kommunikation zwischen Wissenschaft und Öffentlichkeit.\n",
+ " \n",
+ "**Akronym (label)** \n",
+ " \n",
+ "\n",
+ " \n",
+ "**Tag (label)**\n",
+ " \n",
+ "\n",
+ " \n",
+ "**Ähnlich (label)**\n",
+ " \n",
+ "\n",
+ " \n",
+ "**Unterklasse von (label)**\n",
+ " \n",
+ "\n",
+ " \n",
+ "**Synonyme (label)**\n",
+ " \n",
+ "\n",
+ " \n",
+ " \n",
+ "
\n",
+ "\n",
+ "### Makroebene \n",
+ "\n",
+ "Ebene der Wissenschaftskommunikation mit dem Ziel der Kommunikation über das Gesamtsystem wissenschaftlicher Funktionen und Leistungen für die Gesellschaft.\n",
+ "\n",
+ "**Klartextbeschreibung (label)**\n",
+ " \n",
+ "Ebene der Wissenschaftskommunikation mit dem Ziel der Kommunikation über das Gesamtsystem wissenschaftlicher Funktionen und Leistungen für die Gesellschaft.\n",
+ " \n",
+ "**Akronym (label)** \n",
+ " \n",
+ "\n",
+ " \n",
+ "**Tag (label)**\n",
+ " \n",
+ "\n",
+ " \n",
+ "**Ähnlich (label)**\n",
+ " \n",
+ "\n",
+ " \n",
+ "**Unterklasse von (label)**\n",
+ " \n",
+ "\n",
+ " \n",
+ "**Synonyme (label)**\n",
+ " \n",
+ "\n",
+ " \n",
+ " \n",
+ "
\n",
+ "\n",
+ "### Mesoebene \n",
+ "\n",
+ "Ebene der Wissenschaftskommunikation mit dem Fokus auf die Kommunikation wissenschaftlicher Einrichtungen zu eigenen Aufgaben und Leistungen.\n",
+ "\n",
+ "**Klartextbeschreibung (label)**\n",
+ " \n",
+ "Ebene der Wissenschaftskommunikation mit dem Fokus auf die Kommunikation wissenschaftlicher Einrichtungen zu eigenen Aufgaben und Leistungen.\n",
+ " \n",
+ "**Akronym (label)** \n",
+ " \n",
+ "\n",
+ " \n",
+ "**Tag (label)**\n",
+ " \n",
+ "\n",
+ " \n",
+ "**Ähnlich (label)**\n",
+ " \n",
+ "\n",
+ " \n",
+ "**Unterklasse von (label)**\n",
+ " \n",
+ "\n",
+ " \n",
+ "**Synonyme (label)**\n",
+ " \n",
+ "\n",
+ " \n",
+ " \n",
+ "
\n",
+ "\n",
+ "### Mikroebene \n",
+ "\n",
+ "Ebene der Wissenschaftskommunikation mit dem Fokus auf die Kommunikation einzelner Wissenschaftler zu Forschungsthemen sowie Projekten (Vorhaben und Ergebnissen).\n",
+ "\n",
+ "**Klartextbeschreibung (label)**\n",
+ " \n",
+ "Ebene der Wissenschaftskommunikation mit dem Fokus auf die Kommunikation einzelner Wissenschaftler zu Forschungsthemen sowie Projekten (Vorhaben und Ergebnissen).\n",
+ " \n",
+ "**Akronym (label)** \n",
+ " \n",
+ "\n",
+ " \n",
+ "**Tag (label)**\n",
+ " \n",
+ "\n",
+ " \n",
+ "**Ähnlich (label)**\n",
+ " \n",
+ "\n",
+ " \n",
+ "**Unterklasse von (label)**\n",
+ " \n",
+ "\n",
+ " \n",
+ "**Synonyme (label)**\n",
+ " \n",
+ "\n",
+ " \n",
+ " \n",
+ "
\n",
+ "\n",
+ "### Kommunikation \n",
+ "\n",
+ "Austausch oder die Übertragung von Informationen, die auf verschiedene Arten (verbal, nonverbal und paraverbal) und auf verschiedenen Wegen (Sprechen, Schreiben) stattfinden kann.\n",
+ "\n",
+ "**Klartextbeschreibung (label)**\n",
+ " \n",
+ "Austausch oder die Übertragung von Informationen, die auf verschiedene Arten (verbal, nonverbal und paraverbal) und auf verschiedenen Wegen (Sprechen, Schreiben) stattfinden kann.\n",
+ " \n",
+ "**Akronym (label)** \n",
+ " \n",
+ "\n",
+ " \n",
+ "**Tag (label)**\n",
+ " \n",
+ "\n",
+ " \n",
+ "**Ähnlich (label)**\n",
+ " \n",
+ "\n",
+ " \n",
+ "**Unterklasse von (label)**\n",
+ " \n",
+ "\n",
+ " \n",
+ "**Synonyme (label)**\n",
+ " \n",
+ "\n",
+ " \n",
+ " \n",
+ "
\n",
+ "\n",
+ "### Wissenschaft \n",
+ "\n",
+ "Gesamtheit des menschlichen Wissens, der Erkenntnisse und der Erfahrungen einer Zeitepoche, welche systematisch erweitert, gesammelt, aufbewahrt, gelehrt und tradiert wird.\n",
+ "\n",
+ "**Klartextbeschreibung (label)**\n",
+ " \n",
+ "Gesamtheit des menschlichen Wissens, der Erkenntnisse und der Erfahrungen einer Zeitepoche, welche systematisch erweitert, gesammelt, aufbewahrt, gelehrt und tradiert wird.\n",
+ " \n",
+ "**Akronym (label)** \n",
+ " \n",
+ "\n",
+ " \n",
+ "**Tag (label)**\n",
+ " \n",
+ "\n",
+ " \n",
+ "**Ähnlich (label)**\n",
+ " \n",
+ "\n",
+ " \n",
+ "**Unterklasse von (label)**\n",
+ " \n",
+ "\n",
+ " \n",
+ "**Synonyme (label)**\n",
+ " \n",
+ "\n",
+ " \n",
+ " \n",
+ "
\n",
+ "\n",
+ "### sdsdf \n",
+ "\n",
+ "sdsd\n",
+ "\n",
+ "**Klartextbeschreibung (label)**\n",
+ " \n",
+ "dsfsdf\n",
+ " \n",
+ "**Akronym (label)** \n",
+ " \n",
+ "\n",
+ " \n",
+ "**Tag (label)**\n",
+ " \n",
+ "\n",
+ " \n",
+ "**Ähnlich (label)**\n",
+ " \n",
+ "\n",
+ " \n",
+ "**Unterklasse von (label)**\n",
+ " \n",
+ "\n",
+ " \n",
+ "**Synonyme (label)**\n",
+ " \n",
+ "\n",
+ " \n",
+ " \n",
+ "\n"
]
}
],
"source": [
- "get_glossary()"
+ "username = 'reader' # Replace with your username\n",
+ "password = 'readonly' # Replace with your password\n",
+ "\n",
+ "session = login(api_url, username, password)\n",
+ "get_glossary(\"CoSite\", session)"
]
}
],
@@ -187,7 +489,7 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
- "version": "3.10.11"
+ "version": "3.10.13"
}
},
"nbformat": 4,
diff --git a/docs/Co-Site-Glossar.docx b/docs/Co-Site-Glossar.docx
index 8553af61c948e5896a8ce132045f5752c8fa00a4..87a65c60634e2acd498eb4843d5c75e4e04aa2b3 100644
GIT binary patch
delta 4549
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