From 753d96f1b01f19d7b438d31e4a0d19e5b7b038df Mon Sep 17 00:00:00 2001 From: Stuart Chalk Date: Wed, 28 Feb 2024 13:17:02 -0500 Subject: [PATCH 1/4] NFDI4Chem TS Contribution via issue #43 --- .../images/nfdi4chem_ts_fig1.png | Bin 0 -> 75227 bytes .../jh_ps_nfdi4chem_ts/nfdi4chem_ts.md | 92 ++++++++++++++++++ 2 files changed, 92 insertions(+) create mode 100644 book/contributions/jh_ps_nfdi4chem_ts/images/nfdi4chem_ts_fig1.png create mode 100644 book/contributions/jh_ps_nfdi4chem_ts/nfdi4chem_ts.md diff --git a/book/contributions/jh_ps_nfdi4chem_ts/images/nfdi4chem_ts_fig1.png b/book/contributions/jh_ps_nfdi4chem_ts/images/nfdi4chem_ts_fig1.png new file mode 100644 index 0000000000000000000000000000000000000000..e03e3d58c5afac0af16fc507dd7a0c6fc324d178 GIT binary patch literal 75227 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 Date: Mon, 15 Jul 2024 10:07:19 -0400 Subject: [PATCH 2/4] organized text and made a couple of changes, fixed links to image --- .../jh_ps_nfdi4chem_ts/nfdi4chem_ts.md | 69 ++++++++++++++++--- 1 file changed, 58 insertions(+), 11 deletions(-) diff --git a/book/contributions/jh_ps_nfdi4chem_ts/nfdi4chem_ts.md b/book/contributions/jh_ps_nfdi4chem_ts/nfdi4chem_ts.md index 841e32a2..2d3746fa 100644 --- a/book/contributions/jh_ps_nfdi4chem_ts/nfdi4chem_ts.md +++ b/book/contributions/jh_ps_nfdi4chem_ts/nfdi4chem_ts.md @@ -1,23 +1,70 @@ -Authors: [Johannes Hunold](https://orcid.org/0000-0002-4378-6061), [Philip Strömert](https://orcid.org/0000-0002-1595-3213) +# The NFDI4Chem Terminology Service -# About NFDI4Chem +## About NFDI4Chem -[NFDI4Chem](https://www.nfdi4chem.de/) is the Chemistry Consortium in the National Research Data Infrastructure for Germany [NFDI](https://www.nfdi.de/?lang=en) (German: **N**ationale **F**orschungs**D**aten**I**nfrastruktur), a project launched in 2018 and funded by the German government to build a national research data infrastructure in Germany for a wide range of scientific disciplines. The vision of NFDI4Chem is to digitize all key steps in chemical research to support scientists in their efforts to collect, store, process, analyze, publish, and reuse research data. Actions to promote open science and research data management (RDM) in line with the [FAIR data principles](https://www.go-fair.org/fair-principles/) are fundamental objectives of NFDI4Chem to provide the chemistry community with a holistic approach to research data access. To this end, the overall goal is to develop and maintain innovative and user-friendly services and novel scientific approaches based on the reuse of research data. NFDI4Chem aims to represent all disciplines of chemistry in academia and therefore works closely with thematically related NFDI consortia. +[NFDI4Chem](https://www.nfdi4chem.de/) is the Chemistry Consortium in the National Research Data Infrastructure for Germany [NFDI](https://www.nfdi.de/?lang=en) +(German: **N**ationale **F**orschungs**D**aten**I**nfrastruktur), a project launched in 2018 and funded by the German +government to build a national research data infrastructure in Germany for a wide range of scientific disciplines. The +vision of NFDI4Chem is to digitize all key steps in chemical research to support scientists in their efforts to collect, +store, process, analyze, publish, and reuse research data. Actions to promote open science and research data management +(RDM) in line with the [FAIR data principles](https://www.go-fair.org/fair-principles/) are fundamental objectives of NFDI4Chem to provide the chemistry +community with a holistic approach to research data access. To this end, the overall goal is to develop and maintain +innovative and user-friendly services and novel scientific approaches based on the reuse of research data. NFDI4Chem +aims to represent all disciplines of chemistry in academia and therefore works closely with thematically related +NFDI consortia. -# NFDI4Chem Terminology Service +## NFDI4Chem Terminology Service -Research data is not just a collection of numbers or images in a scientific journal article, experimental section, or supplementary information. To fully comprehend the deduction of results and enable the exploration of new data-driven, interdisciplinary research questions, access to the raw data and knowledge of how it was generated, processed, and analyzed is essential. Research data needs to be FAIR (**F**indable, **A**ccessible, **I**nteroperable, **R**eusable) for both humans and machines. Achieving machine-usable FAIR research data requires extensive metadata annotation, which describes the data and its context. To semantically describe research data, ontologies, taxonomies, terminologies, or vocabularies can be used, playing an important role in creating semantically rich, discipline-specific metadata. In addition, consensual definitions of entities are formed, ensuring conceptual alignment across domains, even if the nomenclature of the individual domains is different. Please visit the [NFDI4Chem Knowledge Base article about Ontology](https://knowledgebase.nfdi4chem.de/knowledge_base/docs/ontology/?_highlight=terminol#sources-and-further-information) to learn more about this topic. +Research data is not just a collection of numbers or images in a scientific journal article, experimental section, or +supplementary information. To fully comprehend the deduction of results and enable the exploration of new data-driven, +interdisciplinary research questions, access to the raw data and knowledge of how it was generated, processed, and +analyzed is essential. Research data needs to be FAIR (**F**indable, **A**ccessible, **I**nteroperable, **R**eusable) +for both humans and machines. Achieving machine-usable FAIR research data requires extensive metadata annotation, which +describes the data and its context. To semantically describe research data, ontologies, taxonomies, terminologies, or +vocabularies can be used, playing an important role in creating semantically rich, discipline-specific metadata. In +addition, consensual definitions of entities are formed, ensuring conceptual alignment across domains, even if the +nomenclature of the individual domains is different. Please visit the +[NFDI4Chem Knowledge Base article about Ontologies](https://knowledgebase.nfdi4chem.de/knowledge_base/docs/ontology/?_highlight=terminol#sources-and-further-information) to learn more about this topic. -Using terminologies for data annotation presents a significant challenge as it requires selecting the appropriate terms from the available terminologies. To make an informed decision, one must either possess prior knowledge of the suitable terminologies and terms for a specific scientific context and use case or acquire this knowledge by browsing the available terminologies. A terminology service is a tool for browsing terminologies that aims to make them understandable to humans. Therefore, it should provide detailed information about the terminologies and the terms they contain. This is particularly important when comparing multiple terminologies that cover the same or overlapping areas of knowledge. Terminology users must be able to recognize the semantic differences and similarities, as well as the interdependencies between terminologies, to make informed decisions. Although there are many sophisticated terminology services available, such as the [Basic Register of Thesauri, Ontologies & Classifications (BARTOC)](https://bartoc.org/) or the [Ontology Lookup Service (OLS)](https://www.ebi.ac.uk/ols4), they contain a large selection of different terminologies and ontologies that can overwhelm domain experts. +Using terminologies for data annotation presents a significant challenge as it requires selecting the appropriate terms +from the available terminologies. To make an informed decision, one must either possess prior knowledge of the suitable +terminologies and terms for a specific scientific context and use case or acquire this knowledge by browsing the +available terminologies. A terminology service is a tool for browsing terminologies that aims to make them +understandable to humans. Therefore, it should provide detailed information about the terminologies and the terms +they contain. This is particularly important when comparing multiple terminologies that cover the same or overlapping +areas of knowledge. Terminology users must be able to recognize the semantic differences and similarities, as well +as the interdependencies between terminologies, to make informed decisions. Although there are many sophisticated +terminology services available, such as the [Basic Register of Thesauri, Ontologies & Classifications (BARTOC)](https://bartoc.org/) +or the [Ontology Lookup Service (OLS)](https://www.ebi.ac.uk/ols4), they contain a large selection of different terminologies and ontologies +that can overwhelm domain experts. -The [NFDI4Chem Terminology Service (TS)](https://terminology.nfdi4chem.de/ts/) only indexes terminologies that are most relevant to chemistry using various parameters such as subject area relevance and license to facilitate domain experts' selection. Additionally, the NFDI4Chem TS provides functions that go beyond simple search and provision of ontologies, enabling collaborative curation and management. To minimize the risk of losing track, users can list or write GitHub issues directly from the TS. If an ontology is not maintained on GitHub or if additional contextual information is desired, users can write notes at the ontology or term level to make open issues, recommendations, or insights more visible to themselves and others. +The [NFDI4Chem Terminology Service (TS)](https://terminology.nfdi4chem.de/ts/) only indexes terminologies that are most relevant to chemistry using +various parameters such as subject area relevance and license to facilitate domain experts' selection. Additionally, +the NFDI4Chem TS provides functions that go beyond simple search and provision of ontologies, enabling collaborative +curation and management. To minimize the risk of losing track, users can list or write GitHub issues directly from +the TS. If an ontology is not maintained on GitHub or if additional contextual information is desired, users can +write notes at the ontology or term level to make open issues, recommendations, or insights more visible to +themselves and others. -Using the example of "[mass concentration](https://terminology.nfdi4chem.de/ts/search?and=false&sorting=title&page=1&size=10&q=mass+concentration)", a search in the NFDI4Chem TS yields almost 6,000 results. However, selecting the "Exact Match" option reduces the number of results to 6 (see [Figure 1](../images/NFDI4Chem_TS_fig1.png)). +Using the example of "[mass concentration](https://terminology.nfdi4chem.de/ts/search?and=false&sorting=title&page=1&size=10&q=mass+concentration)", +a search in the NFDI4Chem TS yields almost 6,000 results. However, selecting the "Exact Match" option reduces the +number of results to six (see [Figure 1](images/nfdi4chem_ts_fig1.png)). -![Figure 1: Screenshot of the result list obtained by searching for the term "mass concentration" in the NFDI4Chem TS with the "Exact Match" option.](../images/NFDI4Chem_TS_fig1.png) +![Figure 1: Screenshot of the result list obtained by searching for the term "mass concentration" in the NFDI4Chem TS with the "Exact Match" option.](images/nfdi4chem_ts_fig1.png) -Of the 6 results, the option "Unit of Mass Concentration" is unsuitable as it only describes the unit. Therefore, only 5 options remain, all of which are in principle suitable for semantically describing the term "mass concentration". However, the term ["mass concentration" defined in the Chemical Methods Ontology (CHMO)](https://terminology.nfdi4chem.de/ts/ontologies/chmo/terms?iri=http%3A%2F%2Fpurl.obolibrary.org%2Fobo%2FCHMO_0002821&obsoletes=false) appears to be the most appropriate, as it is already used by another ontology, as indicated by the "Also in" field. This example briefly illustrates how the NFDI4Chem TS assists chemists in identifying and selecting the most appropriate terminology for their specific use case. -In addition to the previously described use case of using the NFDI4Chem TS through the Graphical User Interface (GUI), the TS can also be utilized by other services, such as [Electronic Lab Notebooks (ELNs)](https://knowledgebase.nfdi4chem.de/knowledge_base/docs/eln/), through the provided [Application Programming Interface (API)](https://terminology.nfdi4chem.de/ts/api). In addition to the search functionality, the Terminology Service API provides other functions for interacting with indexed ontologies. For example, the autocomplete or direct select function can be used to populate forms or dropdown menus. The interactive [Swagger documentation](https://service.tib.eu/ts4tib/swagger-ui.html#/) documents all available API functions and allows for live testing. +Of the six results, the option "Unit of Mass Concentration" is unsuitable as it only describes the unit. Therefore, +only five options remain, all of which are in principle suitable for semantically describing the term +"mass concentration". However, the term ["mass concentration" defined in the Chemical Methods Ontology (CHMO)](https://terminology.nfdi4chem.de/ts/ontologies/chmo/terms?iri=http%3A%2F%2Fpurl.obolibrary.org%2Fobo%2FCHMO_0002821&obsoletes=false) +appears to be the most appropriate, as it is already used by another ontology, as indicated by the "Also in" field. +This example briefly illustrates how the NFDI4Chem TS assists chemists in identifying and selecting the most +appropriate terminology for their specific use case. + +In addition to the previously described use case of using the NFDI4Chem TS through the Graphical User Interface (GUI), +the TS can also be utilized by other services, such as [Electronic Lab Notebooks (ELNs)](https://knowledgebase.nfdi4chem.de/knowledge_base/docs/eln/), through the provided +[Application Programming Interface (API)](https://terminology.nfdi4chem.de/ts/api). In addition to the search functionality, the Terminology Service API +provides other functions for interacting with indexed ontologies. For example, the autocomplete or direct select +function can be used to populate forms or dropdown menus. The interactive [Swagger documentation](https://service.tib.eu/ts4tib/swagger-ui.html#/) documents all +available API functions and allows for live testing. To implement the search example above in Python using the NFDI4Chem TS API, follow these steps: From 5512159ae6405033fc1ae7eaee8e1f84dda6e98b Mon Sep 17 00:00:00 2001 From: Stuart Chalk Date: Fri, 19 Jul 2024 12:19:31 -0400 Subject: [PATCH 3/4] Python file of the code in this contribution --- .../jh_ps_nfdi4chem_ts/nfdi_ts.py | 71 +++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100644 book/contributions/jh_ps_nfdi4chem_ts/nfdi_ts.py diff --git a/book/contributions/jh_ps_nfdi4chem_ts/nfdi_ts.py b/book/contributions/jh_ps_nfdi4chem_ts/nfdi_ts.py new file mode 100644 index 00000000..47ccfabb --- /dev/null +++ b/book/contributions/jh_ps_nfdi4chem_ts/nfdi_ts.py @@ -0,0 +1,71 @@ +""" Code to create a NFDI4Chem Terminology Service search class based on the service API """ +# The code below has been formatted using the best practices for coding in Python +# found at https://peps.python.org/pep-0008/ "PEP 8 – Style Guide for Python Code" + +# import the Python packages needed to run this code +import requests +import urllib.parse + + +# +class ChemSearch: + def __init__(self, query, exactMatch, page, size): + """ Initialize (configure) parameters for the API search """ + self.query = urllib.parse.quote_plus(query) + self.exactMatch = exactMatch + self.rows = size + self.start = page + self.collection = "NFDI4CHEM" + self.base_api_url = "https://service.tib.eu/ts4tib/api/search?groupField = iri & & schema = collection" + self.search_result = [] + self.search_facet = [] + + def run(self): + """ Run the search on the terminology server and load results into the 'search_result' attribute """ + params = "&q={}&exact={}&start={}&rows={}&classification={}".format( + self.query, + self.exactMatch, + self.start, + self.rows, + self.collection) + + searchUrl = self.base_api_url + params + result = requests.get(searchUrl) + if result.status_code == 200: + result = result.json() + self.search_result = result['response'] + self.search_facet = result['facet_counts']['facet_fields'] + return True + return False + + def get_number_of_found_result(self): + """ Display the number results are found """ + print(self.search_result['numFound']) + return True + + def get_results(self): + """ Display the search result data """ + for res in self.search_result['docs']: + print("Iri: " + res['iri']) + print("short_form: " + res['short_form']) + print("ontology_name: " + res['ontology_name']) + print("Type: " + res['type']) + return True + + """ Its not clear what this code does """ + # def get_facet(self): + # for facet_name, facet_values in self.search_facet.items(): + # print("Facet Field Name: " + facet_name) + # for i in range(len(facet_values)): + # if i % 2 == 0: + # print("facet item: " + facet_values[i]) + # else: + # print("count: " + str(facet_values[i])) + # return True + + +# This code uses the Class developed above to run a search for the term "mass concentration" +search = ChemSearch("mass concentration", True, 0, 40) +search.run() +search.get_number_of_found_result() +search.get_results() From f050d98b8c522ad852767f8f99250f11897c8cff Mon Sep 17 00:00:00 2001 From: Stuart Chalk Date: Tue, 29 Apr 2025 09:54:49 -0400 Subject: [PATCH 4/4] update pipfile/requirements --- Pipfile | 6 +++--- requirements.txt | 20 +------------------- 2 files changed, 4 insertions(+), 22 deletions(-) diff --git a/Pipfile b/Pipfile index 24db7aa6..c14369cc 100644 --- a/Pipfile +++ b/Pipfile @@ -11,7 +11,7 @@ jupyter-cache = ">=0.2,<1.0" matplotlib = ">=3.8" docutils = ">=0.17.0,<0.20" openbabel-wheel = ">=3.1" -rdkit-pypi = ">=2022.9" +rdkit = ">=2024.9.3" numpy = ">=1.26" jcamp = ">=1.2" sphinx = ">=6.2.0" @@ -20,7 +20,7 @@ nbmake = ">=1.4" nbclient = ">=0.6.8,<0.7" pyparsing = ">=3.0,<3.1" mdit-py-plugins = ">0.3,<0.4" -Jinja2 = ">=3.1.3" +Jinja2 = ">=3.1.6" pandas = "*" seaborn = "*" JupyterLab = ">=4.0.11" @@ -30,4 +30,4 @@ IPython = "*" [dev-packages] [requires] -python_version = "3.11" \ No newline at end of file +python_version = "3.12" \ No newline at end of file diff --git a/requirements.txt b/requirements.txt index 01ea113d..6e5c12e0 100644 --- a/requirements.txt +++ b/requirements.txt @@ -9,14 +9,12 @@ asttokens==2.4.1 async-lru==2.0.4 attrs==23.1.0 Babel==2.14.0 -backcall==0.2.0 beautifulsoup4==4.12.2 bleach==6.1.0 certifi==2023.11.17 cffi==1.16.0 charset-normalizer==3.3.2 click==8.1.7 -colorama==0.4.6 comm==0.2.0 contourpy==1.2.0 cycler==0.12.1 @@ -25,28 +23,22 @@ debugpy==1.8.0 decorator==5.1.1 defusedxml==0.7.1 docutils==0.17.1 -entrypoints==0.4 -exceptiongroup==1.2.0 executing==2.0.1 fastjsonschema==2.19.0 fonttools==4.47.0 fqdn==1.5.1 ghp-import==2.1.0 -gitdb==4.0.10 -GitPython>=3.1.37 -greenlet==3.0.3 idna==3.6 imagesize==1.4.1 importlib-metadata==7.0.0 iniconfig==2.0.0 ipykernel==6.27.1 ipython==8.19.0 -ipython-genutils==0.2.0 ipywidgets==8.1.1 isoduration==20.11.0 jcamp==1.2.2 jedi==0.19.1 -Jinja2==3.1.2 +Jinja2==3.1.6 json5==0.9.14 jsonpointer==2.4 jsonschema==4.20.0 @@ -57,8 +49,6 @@ jupyter-cache==0.6.1 jupyter-console==6.6.3 jupyter-events==0.9.0 jupyter-lsp==2.2.2 -jupyter-server-mathjax==0.2.6 -jupyter-sphinx==0.3.2 jupyter_client==8.6.0 jupyter_core==5.5.1 jupyter_server==2.12.1 @@ -70,7 +60,6 @@ jupyterlab_server==2.25.2 kiwisolver==1.4.5 latexcodec==2.0.1 linkify-it-py==2.0.2 -lxml==4.9.2 markdown-it-py==2.2.0 MarkupSafe==2.1.3 matplotlib==3.8.2 @@ -80,10 +69,8 @@ mdurl==0.1.2 mistune==3.0.2 myst-nb==0.17.2 myst-parser==0.18.1 -nbclassic==0.4.8 nbclient==0.6.8 nbconvert==7.13.1 -nbdime==3.1.1 nbformat==5.9.2 nbmake==1.4.6 nest-asyncio==1.5.8 @@ -97,7 +84,6 @@ pandas==2.1.4 pandocfilters==1.5.0 parso==0.8.3 pexpect==4.9.0 -pickleshare==0.7.5 Pillow==10.2.0 platformdirs==4.1.0 pluggy==1.3.0 @@ -112,7 +98,6 @@ pycparser==2.21 pydata-sphinx-theme==0.13.3 Pygments==2.17.2 pyparsing==3.0.9 -pyrsistent==0.19.2 pytest==7.4.3 python-dateutil==2.8.2 python-json-logger==2.0.7 @@ -121,7 +106,6 @@ PyYAML==6.0.1 pyzmq==25.1.2 qtconsole==5.5.1 QtPy==2.4.1 -rdkit-pypi==2022.9.5 referencing==0.32.0 requests==2.31.0 rfc3339-validator==0.1.4 @@ -130,7 +114,6 @@ rpds-py==0.15.2 seaborn==0.13.0 Send2Trash==1.8.2 six==1.16.0 -smmap==5.0.0 sniffio==1.3.0 snowballstemmer==2.2.0 soupsieve==2.5 @@ -156,7 +139,6 @@ stack-data==0.6.3 tabulate==0.9.0 terminado==0.18.0 tinycss2==1.2.1 -tomli==2.0.1 tornado==6.4 traitlets==5.14.0 types-python-dateutil==2.8.19.14