From 1876f697a9f38bbd935ea4f8c6b9545ebcba0b2a Mon Sep 17 00:00:00 2001 From: fedur8 Date: Fri, 7 Jun 2024 13:53:24 +0200 Subject: [PATCH 01/12] setup firsts services for phis --- src/agroservices/phis/phis.py | 289 ++++++++++++++++++++++------------ test/test_phis.py | 198 ++++++++++++++++++++--- 2 files changed, 370 insertions(+), 117 deletions(-) diff --git a/src/agroservices/phis/phis.py b/src/agroservices/phis/phis.py index 4c9fe8d..f7f3dbb 100644 --- a/src/agroservices/phis/phis.py +++ b/src/agroservices/phis/phis.py @@ -9,7 +9,7 @@ # ============================================================================== import urllib -from urllib.parse import quote +from urllib.parse import quote, quote_plus import requests import six @@ -59,92 +59,203 @@ def post_json(self, web_service, json_txt, timeout=10., overwrote = True return response, overwrote - def get(self, web_service, timeout=10., **kwargs): + # def get(self, web_service, timeout=10., **kwargs): + # """ + + # :param web_service: (str) name of web service requested + # :param timeout: (float) timeout for connexion in seconds + # :param kwargs: (str) arguments relative to web service (see http://147.100.202.17/m3p/api-docs/) + # :return: + # (dict) response of the server (standard http) + # """ + # response = requests.request(method='GET', + # url=self.url + web_service, + # params=kwargs, timeout=timeout) + + # return response + + # def get_all_data(self, web_service, timeout=10., **kwargs): + # """ + + # :param web_service: (str) name of web service requested + # :param timeout: (float) timeout for connexion in seconds + # :param kwargs: (str) arguments relative to web service (see http://147.100.202.17/m3p/api-docs/) + # :return: + # (list of dict) data relative to web service and parameters + # """ + # current_page = 0 + # total_pages = 1 + # values = list() + + # # TODO remove 'plants' specificity as soon as web service delay fixed + # if not web_service == 'plants': + # kwargs['pageSize'] = 50000 + # else: + # kwargs['pageSize'] = 10 + + # while total_pages > current_page: + # kwargs['page'] = current_page + # response = requests.request(method='GET', + # url=self.url + web_service, + # params=kwargs, timeout=timeout) + # if response.status_code == 200: + # values.extend(response.json()) + # elif response.status_code == 500: + # raise Exception("Server error") + # else: + # raise Exception( + # response.json()["result"]["message"]) + + # if response.json()["metadata"]["pagination"] is None: + # total_pages = 0 + # else: + # total_pages = response.json()["metadata"]["pagination"][ + # "totalPages"] + # current_page += 1 + + # return values + + def authenticate(self, identifier='phenoarch@lepse.inra.fr', + password='phenoarch'): + """ Authenticate a user and return an access token """ + json = f"""{{ + "identifier": "{identifier}", + "password": "{password}" + }}""" + + response, _ = self.post_json('security/authenticate', json) + status_code = response.status_code + if status_code == 200: + token = response.json()['result']['token'] + elif status_code == 403: + raise ValueError(response.json()["result"]["message"]) + else: + raise Exception(response.json()["result"]["message"]) + return token, status_code + + + + def get_list_experiment(self, token, name=None, year=None, is_ended=None, species=None, factors=None, + projects=None, is_public=None, facilities=None, order_by=None, page=None, page_size=None): + + url = self.url + 'core/experiments' + query = {} + + if name: + query['name'] = name + if year is not None: + query['year'] = str(year) + if is_ended is not None: + query['is_ended'] = str(is_ended).lower() + if species: + query['species'] = species + if factors: + query['factors'] = factors + if projects: + query['projects'] = projects + if is_public is not None: + query['is_public'] = str(is_public).lower() + if facilities: + query['facilities'] = facilities + if order_by: + query['order_by'] = order_by + if page is not None: + query['page'] = str(page) + if page_size is not None: + query['page_size'] = str(page_size) + + if query: + query_string = '&'.join(f'{key}={quote_plus(value)}' for key, value in query.items()) + url += '?' + query_string + + try: + response = self.http_get(url, headers={'Authorization': token}) + if response['result'] == []: + raise Exception("Empty result") + return response, True # Succès de la requête + except Exception as e: + return str(e), False # Erreur lors de la requête + + + def get_experiment(self, uri, token): + """ Get all experiments information from a project or/and a season, or only information about experiment_uri + specified + See http://147.100.202.17/m3p/api-docs/ for exact documentation - :param web_service: (str) name of web service requested - :param timeout: (float) timeout for connexion in seconds - :param kwargs: (str) arguments relative to web service (see http://147.100.202.17/m3p/api-docs/) + :param uri: (str) specify an experiment URI to get detailed information + :param token: (str) token received from authenticate() :return: - (dict) response of the server (standard http) + (dict) experiment information + :raises: + Exception: if the experiment is not found (HTTP 404) """ - response = requests.request(method='GET', - url=self.url + web_service, - params=kwargs, timeout=timeout) + result = self.http_get(self.url + 'core/experiments/' + + quote_plus(uri), headers={'Authorization':token}) + if result == 404: + raise Exception("Experiment not found") + return result - return response - def get_all_data(self, web_service, timeout=10., **kwargs): - """ + def get_list_variable(self, token): + return self.http_get(self.url + 'core/variables/', headers={'Authorization':token}) + - :param web_service: (str) name of web service requested - :param timeout: (float) timeout for connexion in seconds - :param kwargs: (str) arguments relative to web service (see http://147.100.202.17/m3p/api-docs/) - :return: - (list of dict) data relative to web service and parameters - """ - current_page = 0 - total_pages = 1 - values = list() + def get_variable(self, uri, token): + result = self.http_get(self.url + 'core/variables/' + + quote_plus(uri), headers={'Authorization':token}) + if result == 404: + raise Exception("Experiment not found") + return result - # TODO remove 'plants' specificity as soon as web service delay fixed - if not web_service == 'plants': - kwargs['pageSize'] = 50000 - else: - kwargs['pageSize'] = 10 - while total_pages > current_page: - kwargs['page'] = current_page - response = requests.request(method='GET', - url=self.url + web_service, - params=kwargs, timeout=timeout) - if response.status_code == 200: - values.extend(response.json()) - elif response.status_code == 500: - raise Exception("Server error") - else: - raise Exception( - response.json()["result"]["message"]) - - if response.json()["metadata"]["pagination"] is None: - total_pages = 0 - else: - total_pages = response.json()["metadata"]["pagination"][ - "totalPages"] - current_page += 1 - - return values - - def ws_token(self, username='pheonoarch@lepse.inra.fr', - password='phenoarch'): - """ Get token for PHIS web service - See http://147.100.202.17/m3p/api-docs/ for exact documentation + def get_list_project(self, token): + return self.http_get(self.url + 'core/projects', headers={'Authorization':token}) + - :param username: (str) - :param password: (str) - :return: - (str) token value - """ - response = self.get('security/authenticate', username=username, - password=password) - if response.status_code in [200, 201]: - return response.json()['result'] - elif response.status_code == 500: - raise Exception("Server error") - else: - raise Exception(response.json()["result"]["message"]) + def get_project(self, uri, token): + result = self.http_get(self.url + 'core/projects/' + + quote_plus(uri), headers={'Authorization':token}) + if (result == 404 or result == 500): + raise Exception("Experiment not found") + return result - def ws_projects(self, session_id, project_name=''): - """ Get all projects information if project_name is empty, or only information about project_name specified - See http://147.100.202.17/m3p/api-docs/ for exact documentation - :param session_id: (str) token got from ws_token() - :param project_name: (str) specify a project name to get detailed information - :return: - (list of dict) projects list (one value only in list if project_name specified) - """ - return self.get_all_data('projects/' + project_name, - sessionId=session_id) + def get_list_facility(self, token): + return self.http_get(self.url + 'core/facilities', headers={'Authorization':token}) + + + def get_facility(self, uri, token): + result = self.http_get(self.url + 'core/facilities/' + + quote_plus(uri), headers={'Authorization':token}) + if (result == 404): + raise Exception("Experiment not found") + return result + + + def get_list_germplasm(self, token): + return self.http_get(self.url + 'core/germplasm', headers={'Authorization':token}) + + + def get_germplasm(self, uri, token): + result = self.http_get(self.url + 'core/germplasm/' + + quote_plus(uri), headers={'Authorization':token}) + if result == 404: + raise Exception("Experiment not found") + return result + + + def get_list_device(self, token): + return self.http_get(self.url + 'core/devices', headers={'Authorization':token}) + + + def get_device(self, uri, token): + result = self.http_get(self.url + 'core/devices/' + + quote_plus(uri), headers={'Authorization':token}) + if result == 404: + raise Exception("Experiment not found") + return result + def ws_germplasms(self, session_id, experiment_uri=None, species_uri=None, project_name=None, germplasm_uri=None): @@ -232,30 +343,6 @@ def ws_variables(self, session_id, experiment_uri, category='environment', experimentURI=experiment_uri, imageryProvider=provider) - def ws_experiments(self, session_id, project_name=None, season=None, - experiment_uri=None): - """ Get all experiments information from a project or/and a season, or only information about experiment_uri - specified - See http://147.100.202.17/m3p/api-docs/ for exact documentation - - :param session_id: (str) token got from ws_token() - :param project_name: (str) specify a project name to get specifics experiments information - :param season: (int or str) find experiments by season (eg. 2012, 2013...) - :param experiment_uri: (str) specify an experiment URI to get detailed information - :return: - (list of dict) experiments information - """ - if project_name is None and season is None and experiment_uri is None: - raise Exception( - "You must specify one parameter of project_name, season or experiment_uri") - if isinstance(experiment_uri, six.string_types): - return self.get_all_data('core/experiments/' + quote( - experiment_uri) + '/details', - sessionId=session_id) - else: - return self.get_all_data('core/experiments', - sessionId=session_id, - projectName=project_name, season=season) def ws_label_views(self, session_id, experiment_uri, camera_angle=None, view_type=None, provider=None): @@ -419,3 +506,7 @@ def ws_images_analysis(self, session_id, experiment_uri, date=None, date=date, provider=provider, labelView=label_view, variablesName=variables_name) + + + + diff --git a/test/test_phis.py b/test/test_phis.py index 38e314b..0970ea3 100644 --- a/test/test_phis.py +++ b/test/test_phis.py @@ -1,5 +1,6 @@ import requests from agroservices.phis.phis import Phis +from urllib.parse import quote_plus def test_url(): @@ -13,27 +14,188 @@ def test_url(): assert True -def test_token(): +def test_authenticate(): phis = Phis() - json = '{ \ - "identifier": "phenoarch@lepse.inra.fr",\ - "password": "phenoarch"\ - }' + token, status_code = phis.authenticate() + assert status_code == 200 + + try: + token, status_code = phis.authenticate(password='wrong') + except ValueError as e: + assert str(e) == "User does not exists, is disabled or password is invalid" + + try: + token, status_code = phis.authenticate(identifier='wrong') + except ValueError as e: + assert str(e) == "User does not exists, is disabled or password is invalid" + + +def test_get_list_experiment(): + phis = Phis() + token, _ = phis.authenticate() + + data, received = phis.get_list_experiment(token=token, year=2022, is_ended=True, is_public=True) + assert received, f"Request failed: {data}" + + data, received = phis.get_list_experiment(token=token, year=200) + assert not received, f"Expected request failure, got data: {data}" + + +def test_get_experiment(): + phis = Phis() + token, _ = phis.authenticate() + + # Test with a valid URI + try: + data = phis.get_experiment(uri='m3p:id/experiment/g2was2022', token=token) + except Exception as err: + assert False, "Unexpected error: " + err + + # Test with an invalid URI + try: + data = phis.get_experiment(uri='m3p:id/experiment/wrong', token=token) + except Exception as err: + assert True # Exception is expected + else: + assert False, "Expected an exception, but none was raised" + + +def test_get_list_variable(): + phis = Phis() + token, _ = phis.authenticate() + + data = phis.get_list_variable(token=token) + print(data) + assert True + + +def test_get_variable(): + phis = Phis() + token, _ = phis.authenticate() + + # Test with a valid URI + try: + data = phis.get_variable(uri='http://phenome.inrae.fr/m3p/id/variable/ev000020', token=token) + except Exception as err: + assert False, "Unexpected error: " + err + + # Test with an invalid URI + try: + data = phis.get_variable(uri='http://phenome.inrae.fr/m3p/id/variable/wrong', token=token) + except Exception as err: + assert True # Exception is expected + else: + assert False, "Expected an exception, but none was raised" + + +def test_get_list_project(): + phis = Phis() + token, _ = phis.authenticate() + + data = phis.get_list_project(token=token) + print(data) + assert True + +def test_get_project(): + phis = Phis() + token, _ = phis.authenticate() + + # Test with a valid URI + try: + data = phis.get_project(uri='m3p:id/project/vitsec', token=token) + except Exception as err: + assert False, "Unexpected error: " + err - response, _ = phis.post_json('security/authenticate', json) - token = response.json()['result']['token'] - assert len(token) > 1 + # Test with an invalid URI + try: + data = phis.get_project(uri='m3p:id/project/wrong', token=token) + except Exception as err: + assert True # Exception is expected + else: + assert False, "Expected an exception, but none was raised" + + +def test_get_list_facility(): + phis = Phis() + token, _ = phis.authenticate() + + data = phis.get_list_facility(token=token) + print(data) + assert True + + +def test_get_facility(): + phis = Phis() + token, _ = phis.authenticate() + + # Test with a valid URI + try: + data = phis.get_facility(uri='m3p:id/organization/facility.phenoarch', token=token) + except Exception as err: + assert False, "Unexpected error: " + err + + # Test with an invalid URI + try: + data = phis.get_facility(uri='m3p:id/organization/wrong', token=token) + except Exception as err: + assert True # Exception is expected + else: + assert False, "Expected an exception, but none was raised" + + +def test_get_list_germplasm(): + phis = Phis() + token, _ = phis.authenticate() + + data = phis.get_list_germplasm(token=token) + print(data) + assert True -def test_ws_experiments(): +def test_get_germplasm(): phis = Phis() - json = '{ \ - "identifier": "phenoarch@lepse.inra.fr",\ - "password": "phenoarch"\ - }' + token, _ = phis.authenticate() + + # Test with a valid URI + try: + data = phis.get_germplasm(uri='http://aims.fao.org/aos/agrovoc/c_1066', token=token) + except Exception as err: + assert False, "Unexpected error: " + err + + # Test with an invalid URI + try: + data = phis.get_germplasm(uri='http://aims.fao.org/aos/agrovoc/wrong', token=token) + except Exception as err: + assert True # Exception is expected + else: + assert False, "Expected an exception, but none was raised" + + +def test_get_list_device(): + phis = Phis() + token, _ = phis.authenticate() + + data = phis.get_list_device(token=token) + print(data) + assert True - response, _ = phis.post_json('security/authenticate', json) - token = response.json()['result']['token'] - data = phis.ws_experiments(experiment_uri='m3p:id/experiment/g2was2022', - session_id=token) - print(data) \ No newline at end of file + +def test_get_device(): + phis = Phis() + token, _ = phis.authenticate() + + data = phis.get_device(uri='http://www.phenome-fppn.fr/m3p/ec1/2016/sa1600064', token=token) + + # Test with a valid URI + try: + data = phis.get_device(uri='http://www.phenome-fppn.fr/m3p/ec1/2016/sa1600064', token=token) + except Exception as err: + assert False, "Unexpected error: " + err + + # Test with an invalid URI + try: + data = phis.get_device(uri='http://www.phenome-fppn.fr/m3p/ec1/2016/wrong', token=token) + except Exception as err: + assert True # Exception is expected + else: + assert False, "Expected an exception, but none was raised" \ No newline at end of file From dcb37bbafe6a838c85fe54fc964e7f19e66e2f32 Mon Sep 17 00:00:00 2001 From: fedur8 Date: Fri, 7 Jun 2024 14:24:03 +0200 Subject: [PATCH 02/12] add quickstart tutorial for phis exploration --- example/phis/quickstart.ipynb | 98 +++++++++++++++++++++++++++++++++++ 1 file changed, 98 insertions(+) create mode 100644 example/phis/quickstart.ipynb diff --git a/example/phis/quickstart.ipynb b/example/phis/quickstart.ipynb new file mode 100644 index 0000000..7c895a5 --- /dev/null +++ b/example/phis/quickstart.ipynb @@ -0,0 +1,98 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "bb705f67-cb8a-4af0-a721-22270f7f872e", + "metadata": {}, + "source": [ + "# Phis Demo" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "8b735135-5275-4711-952c-7b1cf1141c24", + "metadata": {}, + "outputs": [], + "source": [ + "from agroservices.phis.phis import Phis" + ] + }, + { + "cell_type": "markdown", + "id": "8c1b7aaa-f001-4c7a-951e-a0d74edba0c3", + "metadata": {}, + "source": [ + "### Navigate data" + ] + }, + { + "cell_type": "markdown", + "id": "2888f417-39a6-4d4b-903c-c238775923be", + "metadata": {}, + "source": [ + "#### List available experriments" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "cbd24e93-8592-45b4-9fed-d2f58d34e04b", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\u001b[33mWARNING [agroservices:Phis:116]: \u001b[0m \u001b[34mThe URL (http://147.100.202.17/m3p/rest/) provided cannot be reached.\u001b[0m\n" + ] + }, + { + "ename": "AttributeError", + "evalue": "'Phis' object has no attribute 'get_experiments'", + "output_type": "error", + "traceback": [ + "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[1;31mAttributeError\u001b[0m Traceback (most recent call last)", + "Cell \u001b[1;32mIn[4], line 3\u001b[0m\n\u001b[0;32m 1\u001b[0m phis\u001b[38;5;241m=\u001b[39mPhis()\n\u001b[0;32m 2\u001b[0m token\u001b[38;5;241m=\u001b[39mphis\u001b[38;5;241m.\u001b[39mauthenticate()\n\u001b[1;32m----> 3\u001b[0m \u001b[43mphis\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mget_experiments\u001b[49m(token)\n", + "\u001b[1;31mAttributeError\u001b[0m: 'Phis' object has no attribute 'get_experiments'" + ] + } + ], + "source": [ + "phis=Phis()\n", + "token=phis.authenticate()\n", + "phis.get_experiments(token)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "bfdce3db-d828-4b8e-8f0b-aacb0742578c", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.12.3" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} From 69215717e8a00f850a5c0633331ccdd781879712 Mon Sep 17 00:00:00 2001 From: fedur8 Date: Tue, 11 Jun 2024 15:22:47 +0200 Subject: [PATCH 03/12] Phis update --- example/phis/quickstart.ipynb | 27 +- src/agroservices/phis/phis.py | 569 ++++++++++++++++++++++++++++++---- test/test_phis.py | 226 ++++++++++---- 3 files changed, 693 insertions(+), 129 deletions(-) diff --git a/example/phis/quickstart.ipynb b/example/phis/quickstart.ipynb index 7c895a5..11d049f 100644 --- a/example/phis/quickstart.ipynb +++ b/example/phis/quickstart.ipynb @@ -10,7 +10,7 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": 2, "id": "8b735135-5275-4711-952c-7b1cf1141c24", "metadata": {}, "outputs": [], @@ -31,12 +31,12 @@ "id": "2888f417-39a6-4d4b-903c-c238775923be", "metadata": {}, "source": [ - "#### List available experriments" + "#### List available experiments" ] }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 3, "id": "cbd24e93-8592-45b4-9fed-d2f58d34e04b", "metadata": {}, "outputs": [ @@ -48,21 +48,30 @@ ] }, { - "ename": "AttributeError", - "evalue": "'Phis' object has no attribute 'get_experiments'", + "ename": "JSONDecodeError", + "evalue": "Expecting value: line 1 column 1 (char 0)", "output_type": "error", "traceback": [ "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[1;31mAttributeError\u001b[0m Traceback (most recent call last)", - "Cell \u001b[1;32mIn[4], line 3\u001b[0m\n\u001b[0;32m 1\u001b[0m phis\u001b[38;5;241m=\u001b[39mPhis()\n\u001b[0;32m 2\u001b[0m token\u001b[38;5;241m=\u001b[39mphis\u001b[38;5;241m.\u001b[39mauthenticate()\n\u001b[1;32m----> 3\u001b[0m \u001b[43mphis\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mget_experiments\u001b[49m(token)\n", - "\u001b[1;31mAttributeError\u001b[0m: 'Phis' object has no attribute 'get_experiments'" + "\u001b[1;31mJSONDecodeError\u001b[0m Traceback (most recent call last)", + "File \u001b[1;32m~\\AppData\\Local\\miniconda3\\envs\\agroservices\\Lib\\site-packages\\requests\\models.py:974\u001b[0m, in \u001b[0;36mResponse.json\u001b[1;34m(self, **kwargs)\u001b[0m\n\u001b[0;32m 973\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[1;32m--> 974\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mcomplexjson\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mloads\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mtext\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 975\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m JSONDecodeError \u001b[38;5;28;01mas\u001b[39;00m e:\n\u001b[0;32m 976\u001b[0m \u001b[38;5;66;03m# Catch JSON-related errors and raise as requests.JSONDecodeError\u001b[39;00m\n\u001b[0;32m 977\u001b[0m \u001b[38;5;66;03m# This aliases json.JSONDecodeError and simplejson.JSONDecodeError\u001b[39;00m\n", + "File \u001b[1;32m~\\AppData\\Local\\miniconda3\\envs\\agroservices\\Lib\\json\\__init__.py:346\u001b[0m, in \u001b[0;36mloads\u001b[1;34m(s, cls, object_hook, parse_float, parse_int, parse_constant, object_pairs_hook, **kw)\u001b[0m\n\u001b[0;32m 343\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m (\u001b[38;5;28mcls\u001b[39m \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m \u001b[38;5;129;01mand\u001b[39;00m object_hook \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m \u001b[38;5;129;01mand\u001b[39;00m\n\u001b[0;32m 344\u001b[0m parse_int \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m \u001b[38;5;129;01mand\u001b[39;00m parse_float \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m \u001b[38;5;129;01mand\u001b[39;00m\n\u001b[0;32m 345\u001b[0m parse_constant \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m \u001b[38;5;129;01mand\u001b[39;00m object_pairs_hook \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m \u001b[38;5;129;01mand\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m kw):\n\u001b[1;32m--> 346\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43m_default_decoder\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mdecode\u001b[49m\u001b[43m(\u001b[49m\u001b[43ms\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 347\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mcls\u001b[39m \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n", + "File \u001b[1;32m~\\AppData\\Local\\miniconda3\\envs\\agroservices\\Lib\\json\\decoder.py:337\u001b[0m, in \u001b[0;36mJSONDecoder.decode\u001b[1;34m(self, s, _w)\u001b[0m\n\u001b[0;32m 333\u001b[0m \u001b[38;5;250m\u001b[39m\u001b[38;5;124;03m\"\"\"Return the Python representation of ``s`` (a ``str`` instance\u001b[39;00m\n\u001b[0;32m 334\u001b[0m \u001b[38;5;124;03mcontaining a JSON document).\u001b[39;00m\n\u001b[0;32m 335\u001b[0m \n\u001b[0;32m 336\u001b[0m \u001b[38;5;124;03m\"\"\"\u001b[39;00m\n\u001b[1;32m--> 337\u001b[0m obj, end \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mraw_decode\u001b[49m\u001b[43m(\u001b[49m\u001b[43ms\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43midx\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43m_w\u001b[49m\u001b[43m(\u001b[49m\u001b[43ms\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m0\u001b[39;49m\u001b[43m)\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mend\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 338\u001b[0m end \u001b[38;5;241m=\u001b[39m _w(s, end)\u001b[38;5;241m.\u001b[39mend()\n", + "File \u001b[1;32m~\\AppData\\Local\\miniconda3\\envs\\agroservices\\Lib\\json\\decoder.py:355\u001b[0m, in \u001b[0;36mJSONDecoder.raw_decode\u001b[1;34m(self, s, idx)\u001b[0m\n\u001b[0;32m 354\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mStopIteration\u001b[39;00m \u001b[38;5;28;01mas\u001b[39;00m err:\n\u001b[1;32m--> 355\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m JSONDecodeError(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mExpecting value\u001b[39m\u001b[38;5;124m\"\u001b[39m, s, err\u001b[38;5;241m.\u001b[39mvalue) \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m\n\u001b[0;32m 356\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m obj, end\n", + "\u001b[1;31mJSONDecodeError\u001b[0m: Expecting value: line 1 column 1 (char 0)", + "\nDuring handling of the above exception, another exception occurred:\n", + "\u001b[1;31mJSONDecodeError\u001b[0m Traceback (most recent call last)", + "Cell \u001b[1;32mIn[3], line 2\u001b[0m\n\u001b[0;32m 1\u001b[0m phis\u001b[38;5;241m=\u001b[39mPhis()\n\u001b[1;32m----> 2\u001b[0m token\u001b[38;5;241m=\u001b[39m\u001b[43mphis\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mauthenticate\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 3\u001b[0m phis\u001b[38;5;241m.\u001b[39mget_experiment(token)\n", + "File \u001b[1;32mc:\\users\\boudierm\\agroservices\\src\\agroservices\\phis\\phis.py:134\u001b[0m, in \u001b[0;36mPhis.authenticate\u001b[1;34m(self, identifier, password)\u001b[0m\n\u001b[0;32m 132\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mValueError\u001b[39;00m(response\u001b[38;5;241m.\u001b[39mjson()[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mresult\u001b[39m\u001b[38;5;124m\"\u001b[39m][\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mmessage\u001b[39m\u001b[38;5;124m\"\u001b[39m])\n\u001b[0;32m 133\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m--> 134\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mException\u001b[39;00m(\u001b[43mresponse\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mjson\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mresult\u001b[39m\u001b[38;5;124m\"\u001b[39m][\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mmessage\u001b[39m\u001b[38;5;124m\"\u001b[39m])\n\u001b[0;32m 135\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m token, status_code\n", + "File \u001b[1;32m~\\AppData\\Local\\miniconda3\\envs\\agroservices\\Lib\\site-packages\\requests\\models.py:978\u001b[0m, in \u001b[0;36mResponse.json\u001b[1;34m(self, **kwargs)\u001b[0m\n\u001b[0;32m 974\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m complexjson\u001b[38;5;241m.\u001b[39mloads(\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mtext, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs)\n\u001b[0;32m 975\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m JSONDecodeError \u001b[38;5;28;01mas\u001b[39;00m e:\n\u001b[0;32m 976\u001b[0m \u001b[38;5;66;03m# Catch JSON-related errors and raise as requests.JSONDecodeError\u001b[39;00m\n\u001b[0;32m 977\u001b[0m \u001b[38;5;66;03m# This aliases json.JSONDecodeError and simplejson.JSONDecodeError\u001b[39;00m\n\u001b[1;32m--> 978\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m RequestsJSONDecodeError(e\u001b[38;5;241m.\u001b[39mmsg, e\u001b[38;5;241m.\u001b[39mdoc, e\u001b[38;5;241m.\u001b[39mpos)\n", + "\u001b[1;31mJSONDecodeError\u001b[0m: Expecting value: line 1 column 1 (char 0)" ] } ], "source": [ "phis=Phis()\n", "token=phis.authenticate()\n", - "phis.get_experiments(token)" + "phis.get_experiment(token)" ] }, { diff --git a/src/agroservices/phis/phis.py b/src/agroservices/phis/phis.py index f7f3dbb..931416d 100644 --- a/src/agroservices/phis/phis.py +++ b/src/agroservices/phis/phis.py @@ -135,10 +135,43 @@ def authenticate(self, identifier='phenoarch@lepse.inra.fr', return token, status_code - - def get_list_experiment(self, token, name=None, year=None, is_ended=None, species=None, factors=None, + def get_experiment(self, token, uri=None, name=None, year=None, is_ended=None, species=None, factors=None, projects=None, is_public=None, facilities=None, order_by=None, page=None, page_size=None): + """ + Retrieve experiment information based on various parameters or a specific URI. + + This function can either get detailed information about a specific experiment by its URI or list + experiments based on various filtering criteria. + + :param token: (str) Token received from authenticate() + :param uri: (str) Specify an experiment URI to get detailed information about that specific experiment + :param name: (str) Filter experiments by name + :param year: (int or str) Filter experiments by year (e.g., 2012, 2013...) + :param is_ended: (bool) Filter experiments by their ended status + :param species: (str) Filter experiments by species + :param factors: (str) Filter experiments by factors + :param projects: (str) Filter experiments by projects + :param is_public: (bool) Filter experiments by their public status + :param facilities: (str) Filter experiments by facilities + :param order_by: (str) Order the experiments by a specific field + :param page: (int or str) Specify the page number for pagination + :param page_size: (int or str) Specify the page size for pagination + :return: + (tuple) A tuple containing: + - (dict or str) The experiment information or an error message + - (bool) True if the request was successful, False otherwise + :raises: + Exception: if the experiment is not found (HTTP 404) or if the result is empty + """ + + # Get specific experiment information by uri + if uri: + result = self.http_get(self.url + 'core/experiments/' + quote_plus(uri), headers={'Authorization':token}) + if result == 404: + raise Exception("Experiment not found") + return result + # Get list of experiments based on filtering criteria url = self.url + 'core/experiments' query = {} @@ -170,91 +203,499 @@ def get_list_experiment(self, token, name=None, year=None, is_ended=None, specie url += '?' + query_string try: - response = self.http_get(url, headers={'Authorization': token}) - if response['result'] == []: + response = self.http_get(url, headers={'Authorization':token}) + if response == 404: raise Exception("Empty result") - return response, True # Succès de la requête + return response except Exception as e: - return str(e), False # Erreur lors de la requête + return str(e) + + def get_variable(self, token, uri=None, name=None, entity=None, entity_of_interest=None, characteristic=None, + method=None, unit=None, group_of_variables=None, not_included_in_group_of_variables=None, data_type=None, + time_interval=None, species=None, withAssociatedData=None, experiments=None, scientific_objects=None, + devices=None, order_by=None, page=None, page_size=None, sharedResourceInstance=None): + + # Get specific variable information by uri + if uri: + result = self.http_get(self.url + 'core/variables/' + + quote_plus(uri), headers={'Authorization':token}) + if result == 404: + raise Exception("Variable not found") + return result + + # Get list of variables based on filtering criteria + url = self.url + 'core/variables' + query = {} - def get_experiment(self, uri, token): - """ Get all experiments information from a project or/and a season, or only information about experiment_uri - specified - See http://147.100.202.17/m3p/api-docs/ for exact documentation + if name: + query['name'] = name + if entity: + query['entity'] = entity + if entity_of_interest: + query['entity_of_interest'] = entity_of_interest + if characteristic: + query['characteristic'] = characteristic + if method: + query['method'] = method + if unit: + query['unit'] = unit + if group_of_variables: + query['group_of_variables'] = group_of_variables + if not_included_in_group_of_variables: + query['not_included_in_group_of_variables'] = not_included_in_group_of_variables + if data_type: + query['data_type'] = data_type + if time_interval: + query['time_interval'] = time_interval + if species: + query['species'] = species + if withAssociatedData is not None: + query['withAssociatedData'] = str(withAssociatedData).lower() + if experiments: + query['experiments'] = experiments + if scientific_objects: + query['scientific_objects'] = scientific_objects + if devices: + query['devices'] = devices + if order_by: + query['order_by'] = order_by + if page is not None: + query['page'] = str(page) + if page_size is not None: + query['page_size'] = str(page_size) + if sharedResourceInstance: + query['sharedResourceInstance'] = sharedResourceInstance - :param uri: (str) specify an experiment URI to get detailed information - :param token: (str) token received from authenticate() - :return: - (dict) experiment information - :raises: - Exception: if the experiment is not found (HTTP 404) - """ - result = self.http_get(self.url + 'core/experiments/' - + quote_plus(uri), headers={'Authorization':token}) - if result == 404: - raise Exception("Experiment not found") - return result + if query: + query_string = '&'.join(f'{key}={quote_plus(value)}' for key, value in query.items()) + url += '?' + query_string - def get_list_variable(self, token): - return self.http_get(self.url + 'core/variables/', headers={'Authorization':token}) + try: + response = self.http_get(url, headers={'Authorization':token}) + if response == 404: + raise Exception("Empty result") + return response + except Exception as e: + return str(e) - def get_variable(self, uri, token): - result = self.http_get(self.url + 'core/variables/' - + quote_plus(uri), headers={'Authorization':token}) - if result == 404: - raise Exception("Experiment not found") - return result + def get_project(self, token, uri=None, name=None, year=None, keyword=None, financial_funding=None, order_by=None, + page=None, page_size=None): + # Get specific project information by uri + if uri: + result = self.http_get(self.url + 'core/projects/' + + quote_plus(uri), headers={'Authorization':token}) + if (result == 404 or result == 500): + raise Exception("Project not found") + return result + + # Get list of projects based on filtering criteria + url = self.url + 'core/projects' + query = {} + if query: + query_string = '&'.join(f'{key}={quote_plus(value)}' for key, value in query.items()) + url += '?' + query_string - def get_list_project(self, token): - return self.http_get(self.url + 'core/projects', headers={'Authorization':token}) + try: + response = self.http_get(url, headers={'Authorization':token}) + if response == 404: + raise Exception("Empty result") + return response + except Exception as e: + return str(e) - def get_project(self, uri, token): - result = self.http_get(self.url + 'core/projects/' - + quote_plus(uri), headers={'Authorization':token}) - if (result == 404 or result == 500): - raise Exception("Experiment not found") - return result - + def get_facility(self, token, uri=None): + # Get specific facility information by uri + if uri: + result = self.http_get(self.url + 'core/facilities/' + + quote_plus(uri), headers={'Authorization':token}) + if (result == 404): + raise Exception("Facility not found") + return result + + # Get list of facilities based on filtering criteria + url = self.url + 'core/facilities' + query = {} - def get_list_facility(self, token): - return self.http_get(self.url + 'core/facilities', headers={'Authorization':token}) + if query: + query_string = '&'.join(f'{key}={quote_plus(value)}' for key, value in query.items()) + url += '?' + query_string + + try: + response = self.http_get(url, headers={'Authorization':token}) + if response == 404: + raise Exception("Empty result") + return response + except Exception as e: + return str(e) - def get_facility(self, uri, token): - result = self.http_get(self.url + 'core/facilities/' - + quote_plus(uri), headers={'Authorization':token}) - if (result == 404): - raise Exception("Experiment not found") - return result - + def get_germplasm(self, token, uri=None): + # Get specific germplasm information by uri + if uri: + result = self.http_get(self.url + 'core/germplasm/' + + quote_plus(uri), headers={'Authorization':token}) + if result == 404: + raise Exception("Germplasm not found") + return result + + # Get list of germplasms based on filtering criteria + url = self.url + 'core/germplasm' + query = {} - def get_list_germplasm(self, token): - return self.http_get(self.url + 'core/germplasm', headers={'Authorization':token}) + if query: + query_string = '&'.join(f'{key}={quote_plus(value)}' for key, value in query.items()) + url += '?' + query_string + + try: + response = self.http_get(url, headers={'Authorization':token}) + if response == 404: + raise Exception("Empty result") + return response + except Exception as e: + return str(e) - def get_germplasm(self, uri, token): - result = self.http_get(self.url + 'core/germplasm/' - + quote_plus(uri), headers={'Authorization':token}) - if result == 404: - raise Exception("Experiment not found") - return result + def get_device(self, token, uri=None): + # Get specific device information by uri + if uri: + result = self.http_get(self.url + 'core/devices/' + + quote_plus(uri), headers={'Authorization':token}) + if result == 404: + raise Exception("Device not found") + return result + + # Get list of devices based on filtering criteria + url = self.url + 'core/devices' + query = {} + if query: + query_string = '&'.join(f'{key}={quote_plus(value)}' for key, value in query.items()) + url += '?' + query_string + + try: + response = self.http_get(url, headers={'Authorization':token}) + if response == 404: + raise Exception("Empty result") + return response + except Exception as e: + return str(e) + + + def get_annotation(self, token, uri=None): + # Get specific annotation information by uri + if uri: + result = self.http_get(self.url + 'core/annotations/' + + quote_plus(uri), headers={'Authorization':token}) + if result == 404: + raise Exception("Annotation not found") + return result + + # Get list of annotations based on filtering criteria + url = self.url + 'core/annotations' + query = {} + + if query: + query_string = '&'.join(f'{key}={quote_plus(value)}' for key, value in query.items()) + url += '?' + query_string - def get_list_device(self, token): - return self.http_get(self.url + 'core/devices', headers={'Authorization':token}) + try: + response = self.http_get(url, headers={'Authorization':token}) + if response == 404: + raise Exception("Empty result") + return response + except Exception as e: + return str(e) - def get_device(self, uri, token): - result = self.http_get(self.url + 'core/devices/' - + quote_plus(uri), headers={'Authorization':token}) - if result == 404: - raise Exception("Experiment not found") - return result + def get_document(self, token, uri=None): + # Get specific document information by uri + if uri: + result = self.http_get(self.url + 'core/documents/' + + quote_plus(uri), headers={'Authorization':token}) + if result == 404: + raise Exception("Document not found") + return result + + # Get list of documents based on filtering criteria + url = self.url + 'core/documents' + query = {} + + if query: + query_string = '&'.join(f'{key}={quote_plus(value)}' for key, value in query.items()) + url += '?' + query_string + + try: + response = self.http_get(url, headers={'Authorization':token}) + if response == 404: + raise Exception("Empty result") + return response + except Exception as e: + return str(e) + + + def get_factor(self, token, uri=None): + # Get specific factor information by uri + if uri: + result = self.http_get(self.url + 'core/experiments/factors' + + quote_plus(uri), headers={'Authorization':token}) + if result == 404: + raise Exception("Factor not found") + return result + + # Get list of factors based on filtering criteria + url = self.url + 'core/experiments/factors' + query = {} + + if query: + query_string = '&'.join(f'{key}={quote_plus(value)}' for key, value in query.items()) + url += '?' + query_string + + try: + response = self.http_get(url, headers={'Authorization':token}) + if response == 404: + raise Exception("Empty result") + return response + except Exception as e: + return str(e) + + + def get_organization(self, token, uri=None): + # Get specific organization information by uri + if uri: + result = self.http_get(self.url + 'core/organisations' + + quote_plus(uri), headers={'Authorization':token}) + if result == 404: + raise Exception("Organization not found") + return result + + # Get list of organizations based on filtering criteria + url = self.url + 'core/organisations' + query = {} + + if query: + query_string = '&'.join(f'{key}={quote_plus(value)}' for key, value in query.items()) + url += '?' + query_string + + try: + response = self.http_get(url, headers={'Authorization':token}) + if response == 404: + raise Exception("Empty result") + return response + except Exception as e: + return str(e) + + + def get_site(self, token, uri=None): + # Get specific site information by uri + if uri: + result = self.http_get(self.url + 'core/sites' + + quote_plus(uri), headers={'Authorization':token}) + if result == 404: + raise Exception("Site not found") + return result + + # Get list of sites based on filtering criteria + url = self.url + 'core/sites' + query = {} + + if query: + query_string = '&'.join(f'{key}={quote_plus(value)}' for key, value in query.items()) + url += '?' + query_string + + try: + response = self.http_get(url, headers={'Authorization':token}) + if response == 404: + raise Exception("Empty result") + return response + except Exception as e: + return str(e) + + + def get_scientific_object(self, token, uri=None): + # Get specific scientific object information by uri + if uri: + result = self.http_get(self.url + 'core/scientific_objects' + + quote_plus(uri), headers={'Authorization':token}) + if result == 404: + raise Exception("Scientific object not found") + return result + + # Get list of scientific objects based on filtering criteria + url = self.url + 'core/scientific_objects' + query = {} + + if query: + query_string = '&'.join(f'{key}={quote_plus(value)}' for key, value in query.items()) + url += '?' + query_string + + try: + response = self.http_get(url, headers={'Authorization':token}) + if response == 404: + raise Exception("Empty result") + return response + except Exception as e: + return str(e) + + + def get_species(self, token): + # Get list of species + url = self.url + 'core/species' + + try: + response = self.http_get(url, headers={'Authorization':token}) + if response == 404: + raise Exception("Empty result") + return response + except Exception as e: + return str(e) + + + def get_system_info(self, token): + # Get system informations + url = self.url + 'core/system/info' + + try: + response = self.http_get(url, headers={'Authorization':token}) + if response == 404: + raise Exception("Empty result") + return response + except Exception as e: + return str(e) + + + def get_characteristic(self, token, uri=None): + # Get specific characteristic information by uri + if uri: + result = self.http_get(self.url + 'core/characteristics' + + quote_plus(uri), headers={'Authorization':token}) + if result == 404: + raise Exception("Characteristic not found") + return result + + # Get list of characterstics based on filtering criteria + url = self.url + 'core/characteristics' + query = {} + + if query: + query_string = '&'.join(f'{key}={quote_plus(value)}' for key, value in query.items()) + url += '?' + query_string + + try: + response = self.http_get(url, headers={'Authorization':token}) + if response == 404: + raise Exception("Empty result") + return response + except Exception as e: + return str(e) + + + def get_entity(self, token, uri=None): + # Get specific entity information by uri + if uri: + result = self.http_get(self.url + 'core/entities' + + quote_plus(uri), headers={'Authorization':token}) + if result == 404: + raise Exception("Entity not found") + return result + + # Get list of entities based on filtering criteria + url = self.url + 'core/entities' + query = {} + + if query: + query_string = '&'.join(f'{key}={quote_plus(value)}' for key, value in query.items()) + url += '?' + query_string + + try: + response = self.http_get(url, headers={'Authorization':token}) + if response == 404: + raise Exception("Empty result") + return response + except Exception as e: + return str(e) + + + def get_entity_of_interest(self, token, uri=None): + # Get specific entity of interest information by uri + if uri: + result = self.http_get(self.url + 'core/entities_of_interest' + + quote_plus(uri), headers={'Authorization':token}) + if result == 404: + raise Exception("Entity of interest not found") + return result + + # Get list of entities of interest based on filtering criteria + url = self.url + 'core/entities_of_interest' + query = {} + + if query: + query_string = '&'.join(f'{key}={quote_plus(value)}' for key, value in query.items()) + url += '?' + query_string + + try: + response = self.http_get(url, headers={'Authorization':token}) + if response == 404: + raise Exception("Empty result") + return response + except Exception as e: + return str(e) + + + def get_method(self, token, uri=None): + # Get specific method information by uri + if uri: + result = self.http_get(self.url + 'core/methods' + + quote_plus(uri), headers={'Authorization':token}) + if result == 404: + raise Exception("Method not found") + return result + + # Get list of methods based on filtering criteria + url = self.url + 'core/methods' + query = {} + + if query: + query_string = '&'.join(f'{key}={quote_plus(value)}' for key, value in query.items()) + url += '?' + query_string + + try: + response = self.http_get(url, headers={'Authorization':token}) + if response == 404: + raise Exception("Empty result") + return response + except Exception as e: + return str(e) + + + def get_unit(self, token, uri=None): + # Get specific unit information by uri + if uri: + result = self.http_get(self.url + 'core/units' + + quote_plus(uri), headers={'Authorization':token}) + if result == 404: + raise Exception("Unit not found") + return result + + # Get list of units based on filtering criteria + url = self.url + 'core/units' + query = {} + + if query: + query_string = '&'.join(f'{key}={quote_plus(value)}' for key, value in query.items()) + url += '?' + query_string + + try: + response = self.http_get(url, headers={'Authorization':token}) + if response == 404: + raise Exception("Empty result") + return response + except Exception as e: + return str(e) def ws_germplasms(self, session_id, experiment_uri=None, species_uri=None, diff --git a/test/test_phis.py b/test/test_phis.py index 0970ea3..9eb6f6a 100644 --- a/test/test_phis.py +++ b/test/test_phis.py @@ -16,40 +16,45 @@ def test_url(): def test_authenticate(): phis = Phis() + + # Connexion test token, status_code = phis.authenticate() assert status_code == 200 + # Wrong password test try: token, status_code = phis.authenticate(password='wrong') except ValueError as e: assert str(e) == "User does not exists, is disabled or password is invalid" + # Wrong identifier test try: token, status_code = phis.authenticate(identifier='wrong') except ValueError as e: assert str(e) == "User does not exists, is disabled or password is invalid" -def test_get_list_experiment(): +def test_get_experiment(): phis = Phis() token, _ = phis.authenticate() - - data, received = phis.get_list_experiment(token=token, year=2022, is_ended=True, is_public=True) - assert received, f"Request failed: {data}" - data, received = phis.get_list_experiment(token=token, year=200) - assert not received, f"Expected request failure, got data: {data}" + # Search test + data = phis.get_experiment(token=token) + assert data['result'] != [], "Request failed" + # Filtered search test + data = phis.get_experiment(token=token, year=2022, is_ended=True, is_public=True) + assert data['result'] != [], "Request failed" -def test_get_experiment(): - phis = Phis() - token, _ = phis.authenticate() + # Filtered search test without results + data = phis.get_experiment(token=token, year=200) + assert data['result'] == [], "Expected no results, got data: " + data['result'] # Test with a valid URI try: data = phis.get_experiment(uri='m3p:id/experiment/g2was2022', token=token) except Exception as err: - assert False, "Unexpected error: " + err + assert False, "Unexpected error: " + str(err) # Test with an invalid URI try: @@ -60,19 +65,15 @@ def test_get_experiment(): assert False, "Expected an exception, but none was raised" -def test_get_list_variable(): - phis = Phis() - token, _ = phis.authenticate() - - data = phis.get_list_variable(token=token) - print(data) - assert True - - def test_get_variable(): phis = Phis() token, _ = phis.authenticate() + # Search test + data = phis.get_variable(token=token) + if data['metadata']['pagination']['totalCount'] != 0: + assert data['result'] != [], "Request failed" + # Test with a valid URI try: data = phis.get_variable(uri='http://phenome.inrae.fr/m3p/id/variable/ev000020', token=token) @@ -88,17 +89,14 @@ def test_get_variable(): assert False, "Expected an exception, but none was raised" -def test_get_list_project(): - phis = Phis() - token, _ = phis.authenticate() - - data = phis.get_list_project(token=token) - print(data) - assert True - def test_get_project(): phis = Phis() token, _ = phis.authenticate() + + # Search test + data = phis.get_project(token=token) + if data['metadata']['pagination']['totalCount'] != 0: + assert data['result'] != [], "Request failed" # Test with a valid URI try: @@ -115,19 +113,15 @@ def test_get_project(): assert False, "Expected an exception, but none was raised" -def test_get_list_facility(): - phis = Phis() - token, _ = phis.authenticate() - - data = phis.get_list_facility(token=token) - print(data) - assert True - - def test_get_facility(): phis = Phis() token, _ = phis.authenticate() + # Search test + data = phis.get_facility(token=token) + if data['metadata']['pagination']['totalCount'] != 0: + assert data['result'] != [], "Request failed" + # Test with a valid URI try: data = phis.get_facility(uri='m3p:id/organization/facility.phenoarch', token=token) @@ -143,19 +137,15 @@ def test_get_facility(): assert False, "Expected an exception, but none was raised" -def test_get_list_germplasm(): - phis = Phis() - token, _ = phis.authenticate() - - data = phis.get_list_germplasm(token=token) - print(data) - assert True - - def test_get_germplasm(): phis = Phis() token, _ = phis.authenticate() + # Search test + data = phis.get_germplasm(token=token) + if data['metadata']['pagination']['totalCount'] != 0: + assert data['result'] != [], "Request failed" + # Test with a valid URI try: data = phis.get_germplasm(uri='http://aims.fao.org/aos/agrovoc/c_1066', token=token) @@ -171,20 +161,14 @@ def test_get_germplasm(): assert False, "Expected an exception, but none was raised" -def test_get_list_device(): - phis = Phis() - token, _ = phis.authenticate() - - data = phis.get_list_device(token=token) - print(data) - assert True - - def test_get_device(): phis = Phis() token, _ = phis.authenticate() - data = phis.get_device(uri='http://www.phenome-fppn.fr/m3p/ec1/2016/sa1600064', token=token) + # Search test + data = phis.get_device(token=token) + if data['metadata']['pagination']['totalCount'] != 0: + assert data['result'] != [], "Request failed" # Test with a valid URI try: @@ -198,4 +182,134 @@ def test_get_device(): except Exception as err: assert True # Exception is expected else: - assert False, "Expected an exception, but none was raised" \ No newline at end of file + assert False, "Expected an exception, but none was raised" + + +def test_get_annotation(): + phis = Phis() + token, _ = phis.authenticate() + + # Search test + data = phis.get_annotation(token=token) + if data['metadata']['pagination']['totalCount'] != 0: + assert data['result'] != [], "Request failed" + + +def test_get_document(): + phis = Phis() + token, _ = phis.authenticate() + + # Search test + data = phis.get_document(token=token) + if data['metadata']['pagination']['totalCount'] != 0: + assert data['result'] != [], "Request failed" + + +def test_get_factor(): + phis = Phis() + token, _ = phis.authenticate() + + # Search test + data = phis.get_factor(token=token) + if data['metadata']['pagination']['totalCount'] != 0: + assert data['result'] != [], "Request failed" + + +def test_get_organization(): + phis = Phis() + token, _ = phis.authenticate() + + # Search test + data = phis.get_organization(token=token) + if data['metadata']['pagination']['totalCount'] != 0: + assert data['result'] != [], "Request failed" + + +def test_get_site(): + phis = Phis() + token, _ = phis.authenticate() + + # Search test + data = phis.get_site(token=token) + if data['metadata']['pagination']['totalCount'] != 0: + assert data['result'] != [], "Request failed" + + +def test_get_scientific_object(): + phis = Phis() + token, _ = phis.authenticate() + + # Search test + data = phis.get_scientific_object(token=token) + if data['metadata']['pagination']['totalCount'] != 0: + assert data['result'] != [], "Request failed" + + +def test_get_species(): + phis = Phis() + token, _ = phis.authenticate() + + # Search test + data = phis.get_species(token=token) + if data['metadata']['pagination']['totalCount'] != 0: + assert data['result'] != [], "Request failed" + + +def test_get_system_info(): + phis = Phis() + token, _ = phis.authenticate() + + # Search test + data = phis.get_system_info(token=token) + if data['metadata']['pagination']['totalCount'] != 0: + assert data['result'] != [], "Request failed" + + +def test_get_characteristic(): + phis = Phis() + token, _ = phis.authenticate() + + # Search test + data = phis.get_characteristic(token=token) + if data['metadata']['pagination']['totalCount'] != 0: + assert data['result'] != [], "Request failed" + + +def test_get_entity(): + phis = Phis() + token, _ = phis.authenticate() + + # Search test + data = phis.get_entity(token=token) + if data['metadata']['pagination']['totalCount'] != 0: + assert data['result'] != [], "Request failed" + + +def test_get_entity(): + phis = Phis() + token, _ = phis.authenticate() + + # Search test + data = phis.get_entity_of_interest(token=token) + if data['metadata']['pagination']['totalCount'] != 0: + assert data['result'] != [], "Request failed" + + +def test_get_method(): + phis = Phis() + token, _ = phis.authenticate() + + # Search test + data = phis.get_method(token=token) + if data['metadata']['pagination']['totalCount'] != 0: + assert data['result'] != [], "Request failed" + + +def test_get_unit(): + phis = Phis() + token, _ = phis.authenticate() + + # Search test + data = phis.get_unit(token=token) + if data['metadata']['pagination']['totalCount'] != 0: + assert data['result'] != [], "Request failed" \ No newline at end of file From d468464e57870483bbbd011db38c24e42d5ae4aa Mon Sep 17 00:00:00 2001 From: fedur8 Date: Thu, 13 Jun 2024 14:51:12 +0200 Subject: [PATCH 04/12] Phis quickstart update --- example/phis/quickstart.ipynb | 3107 ++++++++++++++++++++++++++++++++- src/agroservices/phis/phis.py | 20 +- test/test_phis.py | 85 +- 3 files changed, 3161 insertions(+), 51 deletions(-) diff --git a/example/phis/quickstart.ipynb b/example/phis/quickstart.ipynb index 11d049f..04c9c23 100644 --- a/example/phis/quickstart.ipynb +++ b/example/phis/quickstart.ipynb @@ -10,12 +10,55 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 1, "id": "8b735135-5275-4711-952c-7b1cf1141c24", "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\u001b[33mWARNING [agroservices:Phis:116]: \u001b[0m \u001b[34mThe URL (https://phenome.inrae.fr/m3p/rest/) provided cannot be reached.\u001b[0m\n" + ] + } + ], + "source": [ + "from agroservices.phis.phis import Phis\n", + "phis = Phis()" + ] + }, + { + "cell_type": "markdown", + "id": "ab23cc99-4a04-4b32-81bd-41452a56d0e2", + "metadata": {}, "source": [ - "from agroservices.phis.phis import Phis" + "## Authentification" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "9bbad2bd-1c30-4853-9394-24ac84d39f40", + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "eyJhbGciOiJSUzUxMiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJvcGVuc2lsZXgiLCJzdWIiOiJtM3A6aWQvdXNlci9hY2NvdW50LnBoZW5vYXJjaGxlcHNlaW5yYWZyIiwiaWF0IjoxNzE4MjgyODE2LCJleHAiOjE3MTgyODU1MTYsImdpdmVuX25hbWUiOiJwaGVub2FyY2giLCJmYW1pbHlfbmFtZSI6ImxlcHNlIiwiZW1haWwiOiJwaGVub2FyY2hAbGVwc2UuaW5yYS5mciIsIm5hbWUiOiJwaGVub2FyY2hAbGVwc2UuaW5yYS5mciIsImxvY2FsZSI6ImVuIiwiaXNfYWRtaW4iOmZhbHNlLCJjcmVkZW50aWFsc19saXN0IjpbImFjY291bnQtYWNjZXNzIiwiZGF0YS1hY2Nlc3MiLCJkZXZpY2UtYWNjZXNzIiwiZG9jdW1lbnQtYWNjZXNzIiwiZXZlbnQtYWNjZXNzIiwiZXhwZXJpbWVudC1hY2Nlc3MiLCJmYWNpbGl0eS1hY2Nlc3MiLCJnZXJtcGxhc20tYWNjZXNzIiwiZ3JvdXAtYWNjZXNzIiwib3JnYW5pemF0aW9uLWFjY2VzcyIsInByb2plY3QtYWNjZXNzIiwicHJvdmVuYW5jZS1hY2Nlc3MiLCJzY2llbnRpZmljLW9iamVjdHMtYWNjZXNzIiwidmFyaWFibGUtYWNjZXNzIiwidm9jYWJ1bGFyeS1hY2Nlc3MiXX0.EKoUw2RnZnNXp2oAntVG3l5dy1kvoyv3YTArERrrWrqY8y7D1Gy2W6nhYKMk3BOjvoJGM5X-ocKl9mBQHsuxMTxWChqYSmLs0jhj6mC8B3IFPLvsWzsPoHpqSq-2bDf1mPb3p3u9XFo6Dqt13jB3eTfUwAAjEdcljkdSDQ7C-YaCeH661BTtjFbSnBi_HI-sFDy7kdUrUMyTj7kIjnsazQw-JYE3Wk5c1QncBse0ZAhKIQS1xmJM6EZ_kaLmI_dN7sn8csfb1JFOdfjxN9tnaaxFFhMRayRmWPtumFzvHgAs-1z-cDPJtFN83kqUuhIaRdJQ-2atvekSzOYvNONPdQ\n", + "-\n", + "200\n" + ] + } + ], + "source": [ + "token, status_code = phis.authenticate()\n", + "\n", + "print(token)\n", + "print('-')\n", + "print(status_code)" ] }, { @@ -23,7 +66,7 @@ "id": "8c1b7aaa-f001-4c7a-951e-a0d74edba0c3", "metadata": {}, "source": [ - "### Navigate data" + "## Navigate data" ] }, { @@ -41,46 +84,3042 @@ "metadata": {}, "outputs": [ { - "name": "stderr", - "output_type": "stream", - "text": [ - "\u001b[33mWARNING [agroservices:Phis:116]: \u001b[0m \u001b[34mThe URL (http://147.100.202.17/m3p/rest/) provided cannot be reached.\u001b[0m\n" - ] - }, - { - "ename": "JSONDecodeError", - "evalue": "Expecting value: line 1 column 1 (char 0)", - "output_type": "error", - "traceback": [ - "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[1;31mJSONDecodeError\u001b[0m Traceback (most recent call last)", - "File \u001b[1;32m~\\AppData\\Local\\miniconda3\\envs\\agroservices\\Lib\\site-packages\\requests\\models.py:974\u001b[0m, in \u001b[0;36mResponse.json\u001b[1;34m(self, **kwargs)\u001b[0m\n\u001b[0;32m 973\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[1;32m--> 974\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mcomplexjson\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mloads\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mtext\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 975\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m JSONDecodeError \u001b[38;5;28;01mas\u001b[39;00m e:\n\u001b[0;32m 976\u001b[0m \u001b[38;5;66;03m# Catch JSON-related errors and raise as requests.JSONDecodeError\u001b[39;00m\n\u001b[0;32m 977\u001b[0m \u001b[38;5;66;03m# This aliases json.JSONDecodeError and simplejson.JSONDecodeError\u001b[39;00m\n", - "File \u001b[1;32m~\\AppData\\Local\\miniconda3\\envs\\agroservices\\Lib\\json\\__init__.py:346\u001b[0m, in \u001b[0;36mloads\u001b[1;34m(s, cls, object_hook, parse_float, parse_int, parse_constant, object_pairs_hook, **kw)\u001b[0m\n\u001b[0;32m 343\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m (\u001b[38;5;28mcls\u001b[39m \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m \u001b[38;5;129;01mand\u001b[39;00m object_hook \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m \u001b[38;5;129;01mand\u001b[39;00m\n\u001b[0;32m 344\u001b[0m parse_int \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m \u001b[38;5;129;01mand\u001b[39;00m parse_float \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m \u001b[38;5;129;01mand\u001b[39;00m\n\u001b[0;32m 345\u001b[0m parse_constant \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m \u001b[38;5;129;01mand\u001b[39;00m object_pairs_hook \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m \u001b[38;5;129;01mand\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m kw):\n\u001b[1;32m--> 346\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43m_default_decoder\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mdecode\u001b[49m\u001b[43m(\u001b[49m\u001b[43ms\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 347\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mcls\u001b[39m \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n", - "File \u001b[1;32m~\\AppData\\Local\\miniconda3\\envs\\agroservices\\Lib\\json\\decoder.py:337\u001b[0m, in \u001b[0;36mJSONDecoder.decode\u001b[1;34m(self, s, _w)\u001b[0m\n\u001b[0;32m 333\u001b[0m \u001b[38;5;250m\u001b[39m\u001b[38;5;124;03m\"\"\"Return the Python representation of ``s`` (a ``str`` instance\u001b[39;00m\n\u001b[0;32m 334\u001b[0m \u001b[38;5;124;03mcontaining a JSON document).\u001b[39;00m\n\u001b[0;32m 335\u001b[0m \n\u001b[0;32m 336\u001b[0m \u001b[38;5;124;03m\"\"\"\u001b[39;00m\n\u001b[1;32m--> 337\u001b[0m obj, end \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mraw_decode\u001b[49m\u001b[43m(\u001b[49m\u001b[43ms\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43midx\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43m_w\u001b[49m\u001b[43m(\u001b[49m\u001b[43ms\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m0\u001b[39;49m\u001b[43m)\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mend\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 338\u001b[0m end \u001b[38;5;241m=\u001b[39m _w(s, end)\u001b[38;5;241m.\u001b[39mend()\n", - "File \u001b[1;32m~\\AppData\\Local\\miniconda3\\envs\\agroservices\\Lib\\json\\decoder.py:355\u001b[0m, in \u001b[0;36mJSONDecoder.raw_decode\u001b[1;34m(self, s, idx)\u001b[0m\n\u001b[0;32m 354\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mStopIteration\u001b[39;00m \u001b[38;5;28;01mas\u001b[39;00m err:\n\u001b[1;32m--> 355\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m JSONDecodeError(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mExpecting value\u001b[39m\u001b[38;5;124m\"\u001b[39m, s, err\u001b[38;5;241m.\u001b[39mvalue) \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m\n\u001b[0;32m 356\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m obj, end\n", - "\u001b[1;31mJSONDecodeError\u001b[0m: Expecting value: line 1 column 1 (char 0)", - "\nDuring handling of the above exception, another exception occurred:\n", - "\u001b[1;31mJSONDecodeError\u001b[0m Traceback (most recent call last)", - "Cell \u001b[1;32mIn[3], line 2\u001b[0m\n\u001b[0;32m 1\u001b[0m phis\u001b[38;5;241m=\u001b[39mPhis()\n\u001b[1;32m----> 2\u001b[0m token\u001b[38;5;241m=\u001b[39m\u001b[43mphis\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mauthenticate\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 3\u001b[0m phis\u001b[38;5;241m.\u001b[39mget_experiment(token)\n", - "File \u001b[1;32mc:\\users\\boudierm\\agroservices\\src\\agroservices\\phis\\phis.py:134\u001b[0m, in \u001b[0;36mPhis.authenticate\u001b[1;34m(self, identifier, password)\u001b[0m\n\u001b[0;32m 132\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mValueError\u001b[39;00m(response\u001b[38;5;241m.\u001b[39mjson()[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mresult\u001b[39m\u001b[38;5;124m\"\u001b[39m][\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mmessage\u001b[39m\u001b[38;5;124m\"\u001b[39m])\n\u001b[0;32m 133\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m--> 134\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mException\u001b[39;00m(\u001b[43mresponse\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mjson\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mresult\u001b[39m\u001b[38;5;124m\"\u001b[39m][\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mmessage\u001b[39m\u001b[38;5;124m\"\u001b[39m])\n\u001b[0;32m 135\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m token, status_code\n", - "File \u001b[1;32m~\\AppData\\Local\\miniconda3\\envs\\agroservices\\Lib\\site-packages\\requests\\models.py:978\u001b[0m, in \u001b[0;36mResponse.json\u001b[1;34m(self, **kwargs)\u001b[0m\n\u001b[0;32m 974\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m complexjson\u001b[38;5;241m.\u001b[39mloads(\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mtext, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs)\n\u001b[0;32m 975\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m JSONDecodeError \u001b[38;5;28;01mas\u001b[39;00m e:\n\u001b[0;32m 976\u001b[0m \u001b[38;5;66;03m# Catch JSON-related errors and raise as requests.JSONDecodeError\u001b[39;00m\n\u001b[0;32m 977\u001b[0m \u001b[38;5;66;03m# This aliases json.JSONDecodeError and simplejson.JSONDecodeError\u001b[39;00m\n\u001b[1;32m--> 978\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m RequestsJSONDecodeError(e\u001b[38;5;241m.\u001b[39mmsg, e\u001b[38;5;241m.\u001b[39mdoc, e\u001b[38;5;241m.\u001b[39mpos)\n", - "\u001b[1;31mJSONDecodeError\u001b[0m: Expecting value: line 1 column 1 (char 0)" - ] + "data": { + "text/plain": [ + "{'metadata': {'pagination': {'pageSize': 20,\n", + " 'currentPage': 0,\n", + " 'totalCount': 1,\n", + " 'totalPages': 1,\n", + " 'limitCount': 0,\n", + " 'hasNextPage': True},\n", + " 'status': [],\n", + " 'datafiles': []},\n", + " 'result': [{'uri': 'm3p:id/experiment/g2was2022',\n", + " 'name': 'G2WAS2022',\n", + " 'start_date': '2022-05-15',\n", + " 'end_date': '2022-07-31',\n", + " 'description': '',\n", + " 'objective': 'G2WAS project',\n", + " 'species': [],\n", + " 'is_public': True,\n", + " 'facilities': ['m3p:id/organization/facility.phenoarch',\n", + " 'm3p:id/organization/facility.phenodyn']}]}" + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" } ], "source": [ - "phis=Phis()\n", - "token=phis.authenticate()\n", "phis.get_experiment(token)" ] }, + { + "cell_type": "markdown", + "id": "df52a98c-e9fc-4329-b29e-682a0dde8dcb", + "metadata": {}, + "source": [ + "#### Get specific experiment with URI" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "8c387ecf-d025-4f94-9c2b-11cb799f3b41", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'metadata': {'pagination': {'pageSize': 0,\n", + " 'currentPage': 0,\n", + " 'totalCount': 0,\n", + " 'totalPages': 0,\n", + " 'limitCount': 0,\n", + " 'hasNextPage': False},\n", + " 'status': [],\n", + " 'datafiles': []},\n", + " 'result': {'uri': 'm3p:id/experiment/g2was2022',\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None,\n", + " 'name': 'G2WAS2022',\n", + " 'start_date': '2022-05-15',\n", + " 'end_date': '2022-07-31',\n", + " 'description': '',\n", + " 'objective': 'G2WAS project',\n", + " 'species': [],\n", + " 'factors': [],\n", + " 'organisations': [{'uri': 'http://phenome.inrae.fr/id/organization/m3p',\n", + " 'name': 'M3P',\n", + " 'rdf_type': 'vocabulary:LocalOrganization',\n", + " 'rdf_type_name': 'local organization',\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'm3p:id/organization/phenoarch',\n", + " 'name': 'PHENOARCH',\n", + " 'rdf_type': 'vocabulary:LocalOrganization',\n", + " 'rdf_type_name': 'local organization',\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'm3p:id/organization/phenodyn',\n", + " 'name': 'PHENODYN',\n", + " 'rdf_type': 'vocabulary:LocalOrganization',\n", + " 'rdf_type_name': 'local organization',\n", + " 'publication_date': None,\n", + " 'last_updated_date': None}],\n", + " 'facilities': [{'uri': 'm3p:id/organization/facility.phenoarch',\n", + " 'name': 'phenoarch',\n", + " 'rdf_type': 'vocabulary:Greenhouse',\n", + " 'rdf_type_name': 'greenhouse',\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'm3p:id/organization/facility.phenodyn',\n", + " 'name': 'phenodyn',\n", + " 'rdf_type': 'vocabulary:Greenhouse',\n", + " 'rdf_type_name': 'greenhouse',\n", + " 'publication_date': None,\n", + " 'last_updated_date': None}],\n", + " 'projects': [],\n", + " 'scientific_supervisors': ['https://orcid.org/0000-0002-2147-2846/Person'],\n", + " 'technical_supervisors': [],\n", + " 'groups': ['m3p:id/group/m3p-dev'],\n", + " 'is_public': True}}" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "phis.get_experiment(uri='m3p:id/experiment/g2was2022', token=token)" + ] + }, + { + "cell_type": "markdown", + "id": "55819c69-cc9b-40df-a357-85dae9182360", + "metadata": {}, + "source": [ + "#### List available variables" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "5f272de0-ee56-496a-9b14-b1be6b280d89", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'metadata': {'pagination': {'pageSize': 20,\n", + " 'currentPage': 0,\n", + " 'totalCount': 18,\n", + " 'totalPages': 1,\n", + " 'limitCount': 0,\n", + " 'hasNextPage': True},\n", + " 'status': [],\n", + " 'datafiles': []},\n", + " 'result': [{'uri': 'http://phenome.inrae.fr/m3p/id/variable/ev000020',\n", + " 'name': 'air humidity_weather station_percentage',\n", + " 'entity': {'uri': 'm3p:id/variable/entity.air', 'name': 'Air'},\n", + " 'entity_of_interest': None,\n", + " 'characteristic': {'uri': 'm3p:id/variable/characteristic.humidity',\n", + " 'name': 'humidity'},\n", + " 'method': {'uri': 'm3p:id/variable/method.shelter_instant',\n", + " 'name': 'Shelter_Instant_Measurement'},\n", + " 'unit': {'uri': 'm3p:id/variable/unit.percentage', 'name': 'percent'},\n", + " 'onLocal': False,\n", + " 'sharedResourceInstance': None,\n", + " 'alternative_name': None},\n", + " {'uri': 'http://phenome.inrae.fr/m3p/id/variable/ev000001',\n", + " 'name': 'air temperature_weather station_degree celsius',\n", + " 'entity': {'uri': 'm3p:id/variable/entity.air', 'name': 'Air'},\n", + " 'entity_of_interest': None,\n", + " 'characteristic': {'uri': 'm3p:id/variable/characteristic.temperature',\n", + " 'name': 'Temperature'},\n", + " 'method': {'uri': 'm3p:id/variable/method.shelter_instant',\n", + " 'name': 'Shelter_Instant_Measurement'},\n", + " 'unit': {'uri': 'm3p:id/variable/unit.celsius', 'name': 'degree celsius'},\n", + " 'onLocal': False,\n", + " 'sharedResourceInstance': None,\n", + " 'alternative_name': None},\n", + " {'uri': 'http://phenome.inrae.fr/m3p/id/variable/ev000024',\n", + " 'name': 'CarbonDioxide_sensor_part per million',\n", + " 'entity': {'uri': 'm3p:id/variable/entity.air', 'name': 'Air'},\n", + " 'entity_of_interest': None,\n", + " 'characteristic': {'uri': 'm3p:id/variable/characteristic..co2',\n", + " 'name': 'CO2'},\n", + " 'method': {'uri': 'm3p:id/variable/method.measurement',\n", + " 'name': 'Measurement'},\n", + " 'unit': {'uri': 'http://purl.obolibrary.org/obo/UO_0000169', 'name': 'ppm'},\n", + " 'onLocal': False,\n", + " 'sharedResourceInstance': None,\n", + " 'alternative_name': None},\n", + " {'uri': 'http://phenome.inrae.fr/m3p/id/variable/ev000035',\n", + " 'name': 'diffuse PAR light_sensor_micromole.m-2.s-1',\n", + " 'entity': {'uri': 'm3p:id/variable/entity.solar', 'name': 'Solar'},\n", + " 'entity_of_interest': None,\n", + " 'characteristic': {'uri': 'http://www.ontology-of-units-of-measure.org/resource/om-2/Irradiance',\n", + " 'name': 'Irradiance'},\n", + " 'method': {'uri': 'm3p:id/variable/method.par_diffuse',\n", + " 'name': 'PAR_Diffuse'},\n", + " 'unit': {'uri': 'http://qudt.org/vocab/unit/MicroMOL-PER-M2-SEC',\n", + " 'name': 'MicroMOL-PER-M2-SEC'},\n", + " 'onLocal': False,\n", + " 'sharedResourceInstance': None,\n", + " 'alternative_name': None},\n", + " {'uri': 'http://phenome.inrae.fr/m3p/id/variable/ev000034',\n", + " 'name': 'direct PAR light_sensor_micromole.m-2.s-1',\n", + " 'entity': {'uri': 'm3p:id/variable/entity.solar', 'name': 'Solar'},\n", + " 'entity_of_interest': None,\n", + " 'characteristic': {'uri': 'http://www.ontology-of-units-of-measure.org/resource/om-2/Irradiance',\n", + " 'name': 'Irradiance'},\n", + " 'method': {'uri': 'm3p:id/variable/method.par_direct',\n", + " 'name': 'PAR_Direct'},\n", + " 'unit': {'uri': 'http://qudt.org/vocab/unit/MicroMOL-PER-M2-SEC',\n", + " 'name': 'MicroMOL-PER-M2-SEC'},\n", + " 'onLocal': False,\n", + " 'sharedResourceInstance': None,\n", + " 'alternative_name': None},\n", + " {'uri': 'http://phenome.inrae.fr/m3p/id/variable/greenhouse_lightning_setpoint_boolean',\n", + " 'name': 'Greenhouse_Lightning_Setpoint_Boolean',\n", + " 'entity': {'uri': 'm3p:id/variable/entity.greenhouse',\n", + " 'name': 'Greenhouse'},\n", + " 'entity_of_interest': None,\n", + " 'characteristic': {'uri': 'm3p:id/variable/characteristic.lightning',\n", + " 'name': 'Lightning'},\n", + " 'method': {'uri': 'm3p:id/variable/method.setpoint', 'name': 'Setpoint'},\n", + " 'unit': {'uri': 'm3p:id/variable/unit.boolean', 'name': 'Boolean'},\n", + " 'onLocal': False,\n", + " 'sharedResourceInstance': None,\n", + " 'alternative_name': 'Greenhouse_Lightning'},\n", + " {'uri': 'http://phenome.inrae.fr/m3p/id/variable/greenhouse_shading_setpoint_boolean',\n", + " 'name': 'Greenhouse_Shading_Setpoint_Boolean',\n", + " 'entity': {'uri': 'm3p:id/variable/entity.greenhouse',\n", + " 'name': 'Greenhouse'},\n", + " 'entity_of_interest': None,\n", + " 'characteristic': {'uri': 'm3p:id/variable/characteristic.shading',\n", + " 'name': 'Shading'},\n", + " 'method': {'uri': 'm3p:id/variable/method.setpoint', 'name': 'Setpoint'},\n", + " 'unit': {'uri': 'm3p:id/variable/unit.boolean', 'name': 'Boolean'},\n", + " 'onLocal': False,\n", + " 'sharedResourceInstance': None,\n", + " 'alternative_name': 'Greenhouse_Shading'},\n", + " {'uri': 'http://phenome.inrae.fr/m3p/id/variable/ev000021',\n", + " 'name': 'leaf temperature_thermocouple sensor_degree celsius',\n", + " 'entity': {'uri': 'm3p:id/variable/entity.leaf', 'name': 'Leaf'},\n", + " 'entity_of_interest': None,\n", + " 'characteristic': {'uri': 'm3p:id/variable/characteristic.temperature',\n", + " 'name': 'Temperature'},\n", + " 'method': {'uri': 'm3p:id/variable/method.thermocouple',\n", + " 'name': 'thermocouple'},\n", + " 'unit': {'uri': 'm3p:id/variable/unit.celsius', 'name': 'degree celsius'},\n", + " 'onLocal': False,\n", + " 'sharedResourceInstance': None,\n", + " 'alternative_name': None},\n", + " {'uri': 'http://phenome.inrae.fr/m3p/id/variable/ev000040',\n", + " 'name': 'lower near-surface infra-red radiation spectrum_wheater station_watt.m2',\n", + " 'entity': {'uri': 'm3p:id/variable/entity.solar', 'name': 'Solar'},\n", + " 'entity_of_interest': None,\n", + " 'characteristic': {'uri': 'm3p:id/variable/characteristic..infra-red-radiation',\n", + " 'name': 'Infra-red radiation'},\n", + " 'method': {'uri': 'm3p:id/variable/method.lower-near-surface',\n", + " 'name': 'Lower near-surface'},\n", + " 'unit': {'uri': 'http://purl.obolibrary.org/obo/UO_0000155',\n", + " 'name': 'watt per square meter'},\n", + " 'onLocal': False,\n", + " 'sharedResourceInstance': None,\n", + " 'alternative_name': None},\n", + " {'uri': 'http://phenome.inrae.fr/m3p/id/variable/ev000038',\n", + " 'name': 'lower solar radiation flux density_wheater station_watt.m2',\n", + " 'entity': {'uri': 'm3p:id/variable/entity.solar', 'name': 'Solar'},\n", + " 'entity_of_interest': None,\n", + " 'characteristic': {'uri': 'http://www.ontology-of-units-of-measure.org/resource/om-2/Irradiance',\n", + " 'name': 'Irradiance'},\n", + " 'method': {'uri': 'm3p:id/variable/method.lower-near-surface',\n", + " 'name': 'Lower near-surface'},\n", + " 'unit': {'uri': 'http://purl.obolibrary.org/obo/UO_0000155',\n", + " 'name': 'watt per square meter'},\n", + " 'onLocal': False,\n", + " 'sharedResourceInstance': None,\n", + " 'alternative_name': None},\n", + " {'uri': 'http://phenome.inrae.fr/m3p/id/variable/ev000036',\n", + " 'name': 'net irradiance_calculated variable_watt.m2',\n", + " 'entity': {'uri': 'm3p:id/variable/entity.solar', 'name': 'Solar'},\n", + " 'entity_of_interest': None,\n", + " 'characteristic': {'uri': 'http://www.ontology-of-units-of-measure.org/resource/om-2/Irradiance',\n", + " 'name': 'Irradiance'},\n", + " 'method': {'uri': 'm3p:id/variable/method.radiation_global',\n", + " 'name': 'Radiation_Global'},\n", + " 'unit': {'uri': 'http://purl.obolibrary.org/obo/UO_0000155',\n", + " 'name': 'watt per square meter'},\n", + " 'onLocal': False,\n", + " 'sharedResourceInstance': None,\n", + " 'alternative_name': None},\n", + " {'uri': 'http://phenome.inrae.fr/m3p/id/variable/ev000023',\n", + " 'name': 'PAR Light_weather station_micromole.m-2.s-1',\n", + " 'entity': {'uri': 'm3p:id/variable/entity.solar', 'name': 'Solar'},\n", + " 'entity_of_interest': None,\n", + " 'characteristic': {'uri': 'http://www.ontology-of-units-of-measure.org/resource/om-2/Irradiance',\n", + " 'name': 'Irradiance'},\n", + " 'method': {'uri': 'm3p:id/variable/method.par', 'name': 'PAR'},\n", + " 'unit': {'uri': 'http://qudt.org/vocab/unit/MicroMOL-PER-M2-SEC',\n", + " 'name': 'MicroMOL-PER-M2-SEC'},\n", + " 'onLocal': False,\n", + " 'sharedResourceInstance': None,\n", + " 'alternative_name': None},\n", + " {'uri': 'http://phenome.inrae.fr/m3p/id/variable/test_renaud_on_m3p_instance',\n", + " 'name': 'test_renaud_on_m3p_instance',\n", + " 'entity': {'uri': 'm3p:id/variable/entity.air', 'name': 'Air'},\n", + " 'entity_of_interest': None,\n", + " 'characteristic': {'uri': 'm3p:id/variable/characteristic..co2',\n", + " 'name': 'CO2'},\n", + " 'method': {'uri': 'm3p:id/variable/method.computation',\n", + " 'name': 'Computation'},\n", + " 'unit': {'uri': 'm3p:id/variable/unit.percentage', 'name': 'percent'},\n", + " 'onLocal': False,\n", + " 'sharedResourceInstance': None,\n", + " 'alternative_name': 'test_renaud_on_m3p_instance'},\n", + " {'uri': 'http://phenome.inrae.fr/m3p/id/variable/ev000039',\n", + " 'name': 'upper near-surface infra-red radiation spectrum_wheater station_watt.m2',\n", + " 'entity': {'uri': 'm3p:id/variable/entity.solar', 'name': 'Solar'},\n", + " 'entity_of_interest': None,\n", + " 'characteristic': {'uri': 'm3p:id/variable/characteristic..infra-red-radiation',\n", + " 'name': 'Infra-red radiation'},\n", + " 'method': {'uri': 'm3p:id/variable/method.upper-near-surface',\n", + " 'name': 'Upper near-surface'},\n", + " 'unit': {'uri': 'http://purl.obolibrary.org/obo/UO_0000155',\n", + " 'name': 'watt per square meter'},\n", + " 'onLocal': False,\n", + " 'sharedResourceInstance': None,\n", + " 'alternative_name': None},\n", + " {'uri': 'http://phenome.inrae.fr/m3p/id/variable/ev000037',\n", + " 'name': 'upper solar radiation flux density_wheater station_watt.m2',\n", + " 'entity': {'uri': 'm3p:id/variable/entity.solar', 'name': 'Solar'},\n", + " 'entity_of_interest': None,\n", + " 'characteristic': {'uri': 'http://www.ontology-of-units-of-measure.org/resource/om-2/Irradiance',\n", + " 'name': 'Irradiance'},\n", + " 'method': {'uri': 'm3p:id/variable/method.upper-near-surface',\n", + " 'name': 'Upper near-surface'},\n", + " 'unit': {'uri': 'http://purl.obolibrary.org/obo/UO_0000155',\n", + " 'name': 'watt per square meter'},\n", + " 'onLocal': False,\n", + " 'sharedResourceInstance': None,\n", + " 'alternative_name': None},\n", + " {'uri': 'http://phenome.inrae.fr/m3p/id/variable/v003',\n", + " 'name': 'weightAfter_unspecified_g',\n", + " 'entity': {'uri': 'http://purl.obolibrary.org/obo/PO_0000003',\n", + " 'name': 'Plant'},\n", + " 'entity_of_interest': None,\n", + " 'characteristic': {'uri': 'm3p:id/variable/characteristic.fresh_weight',\n", + " 'name': 'fresh_weight'},\n", + " 'method': {'uri': 'm3p:id/variable/method.computation',\n", + " 'name': 'Computation'},\n", + " 'unit': {'uri': 'm3p:id/variable/unit.gram', 'name': 'gram'},\n", + " 'onLocal': False,\n", + " 'sharedResourceInstance': None,\n", + " 'alternative_name': None},\n", + " {'uri': 'http://phenome.inrae.fr/m3p/id/variable/v004',\n", + " 'name': 'weightAmount_unspecified_g',\n", + " 'entity': {'uri': 'm3p:id/variable/entity.water', 'name': 'Water'},\n", + " 'entity_of_interest': None,\n", + " 'characteristic': {'uri': 'm3p:id/variable/characteristic.fresh_weight',\n", + " 'name': 'fresh_weight'},\n", + " 'method': {'uri': 'm3p:id/variable/method.computation',\n", + " 'name': 'Computation'},\n", + " 'unit': {'uri': 'm3p:id/variable/unit.gram', 'name': 'gram'},\n", + " 'onLocal': False,\n", + " 'sharedResourceInstance': None,\n", + " 'alternative_name': None},\n", + " {'uri': 'http://phenome.inrae.fr/m3p/id/variable/v002',\n", + " 'name': 'weightBefore_unspecified_g',\n", + " 'entity': {'uri': 'http://purl.obolibrary.org/obo/PO_0000003',\n", + " 'name': 'Plant'},\n", + " 'entity_of_interest': None,\n", + " 'characteristic': {'uri': 'm3p:id/variable/characteristic.fresh_weight',\n", + " 'name': 'fresh_weight'},\n", + " 'method': {'uri': 'm3p:id/variable/method.computation',\n", + " 'name': 'Computation'},\n", + " 'unit': {'uri': 'm3p:id/variable/unit.gram', 'name': 'gram'},\n", + " 'onLocal': False,\n", + " 'sharedResourceInstance': None,\n", + " 'alternative_name': None}]}" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "phis.get_variable(token=token)" + ] + }, + { + "cell_type": "markdown", + "id": "8032a524-1e86-41bc-b85d-1fd3621fe3ea", + "metadata": {}, + "source": [ + "#### Get specific variable with URI" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "fab949ac-7544-4ede-ac5b-2696778c0aa2", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'metadata': {'pagination': {'pageSize': 0,\n", + " 'currentPage': 0,\n", + " 'totalCount': 0,\n", + " 'totalPages': 0,\n", + " 'limitCount': 0,\n", + " 'hasNextPage': False},\n", + " 'status': [],\n", + " 'datafiles': []},\n", + " 'result': {'uri': 'http://phenome.inrae.fr/m3p/id/variable/ev000020',\n", + " 'name': 'air humidity_weather station_percentage',\n", + " 'alternative_name': None,\n", + " 'description': None,\n", + " 'entity': {'uri': 'm3p:id/variable/entity.air', 'name': 'Air'},\n", + " 'entity_of_interest': None,\n", + " 'characteristic': {'uri': 'm3p:id/variable/characteristic.humidity',\n", + " 'name': 'humidity'},\n", + " 'trait': None,\n", + " 'trait_name': None,\n", + " 'method': {'uri': 'm3p:id/variable/method.shelter_instant',\n", + " 'name': 'Shelter_Instant_Measurement'},\n", + " 'unit': {'uri': 'm3p:id/variable/unit.percentage',\n", + " 'name': 'percent',\n", + " 'description': '\"Percent\" is a unit for \\'Dimensionless Ratio\\' expressed as %',\n", + " 'symbol': '%',\n", + " 'alternative_symbol': None,\n", + " 'exact_match': ['http://qudt.org/vocab/unit/PERCENT'],\n", + " 'close_match': [],\n", + " 'broad_match': [],\n", + " 'narrow_match': [],\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': '2024-03-29T10:11:40.121535+01:00',\n", + " 'from_shared_resource_instance': None},\n", + " 'species': [],\n", + " 'time_interval': None,\n", + " 'sampling_interval': None,\n", + " 'datatype': 'http://www.w3.org/2001/XMLSchema#decimal',\n", + " 'exact_match': [],\n", + " 'close_match': [],\n", + " 'broad_match': [],\n", + " 'narrow_match': [],\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None,\n", + " 'from_shared_resource_instance': None}}" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "phis.get_variable(uri='http://phenome.inrae.fr/m3p/id/variable/ev000020', token=token)" + ] + }, + { + "cell_type": "markdown", + "id": "9cf51b5d-6d54-409f-8cdf-0739e6260b5a", + "metadata": {}, + "source": [ + "#### List available projects" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "d24bf742-f2da-4ab6-8345-1a8dd5a5077e", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'metadata': {'pagination': {'pageSize': 20,\n", + " 'currentPage': 0,\n", + " 'totalCount': 20,\n", + " 'totalPages': 1,\n", + " 'limitCount': 0,\n", + " 'hasNextPage': True},\n", + " 'status': [],\n", + " 'datafiles': []},\n", + " 'result': [{'uri': 'm3p:id/project/amaizing',\n", + " 'publisher': None,\n", + " 'publication_date': '2024-02-19T14:59:50.71845+01:00',\n", + " 'last_updated_date': None,\n", + " 'name': 'Amaizing',\n", + " 'shortname': None,\n", + " 'start_date': '2011-01-10',\n", + " 'end_date': '2011-01-10',\n", + " 'description': 'http://www.amaizing.fr/⏎> Responsable scientifiqu…',\n", + " 'objective': None,\n", + " 'financial_funding': 'Agence Nationale de la Recherche (ANR)',\n", + " 'website': None,\n", + " 'related_projects': [],\n", + " 'coordinators': ['m3p:id/user/person.franois.tardieu'],\n", + " 'scientific_contacts': [],\n", + " 'administrative_contacts': [],\n", + " 'experiments': []},\n", + " {'uri': 'm3p:id/project/cawas',\n", + " 'publisher': None,\n", + " 'publication_date': '2024-02-19T15:02:03.738864+01:00',\n", + " 'last_updated_date': None,\n", + " 'name': 'CAWaS',\n", + " 'shortname': None,\n", + " 'start_date': '2015-01-01',\n", + " 'end_date': '2017-12-31',\n", + " 'description': 'Cotton adaptation to water stress: genetic and mo…',\n", + " 'objective': None,\n", + " 'financial_funding': 'Agropolis Fondation',\n", + " 'website': None,\n", + " 'related_projects': [],\n", + " 'coordinators': ['m3p:id/user/person.marc.giband'],\n", + " 'scientific_contacts': [],\n", + " 'administrative_contacts': [],\n", + " 'experiments': []},\n", + " {'uri': 'm3p:id/project/crops',\n", + " 'publisher': None,\n", + " 'publication_date': '2024-02-19T15:04:12.971969+01:00',\n", + " 'last_updated_date': None,\n", + " 'name': 'CROPS',\n", + " 'shortname': None,\n", + " 'start_date': '2014-07-01',\n", + " 'end_date': '2014-07-08',\n", + " 'description': None,\n", + " 'objective': None,\n", + " 'financial_funding': None,\n", + " 'website': None,\n", + " 'related_projects': [],\n", + " 'coordinators': [],\n", + " 'scientific_contacts': ['m3p:id/user/person.franois.tardieu'],\n", + " 'administrative_contacts': [],\n", + " 'experiments': []},\n", + " {'uri': 'm3p:id/project/drops',\n", + " 'publisher': None,\n", + " 'publication_date': '2024-02-19T15:07:06.744774+01:00',\n", + " 'last_updated_date': None,\n", + " 'name': 'DROPS',\n", + " 'shortname': None,\n", + " 'start_date': '2010-07-01',\n", + " 'end_date': '2015-07-01',\n", + " 'description': 'DROPS aims at developing novel methods and strate…',\n", + " 'objective': 'DROPS aims at developing novel methods and strate…',\n", + " 'financial_funding': 'European Union',\n", + " 'website': None,\n", + " 'related_projects': [],\n", + " 'coordinators': ['m3p:id/user/person.franois.tardieu'],\n", + " 'scientific_contacts': [],\n", + " 'administrative_contacts': [],\n", + " 'experiments': []},\n", + " {'uri': 'm3p:id/project/eppn',\n", + " 'publisher': None,\n", + " 'publication_date': '2024-02-19T15:09:36.544874+01:00',\n", + " 'last_updated_date': None,\n", + " 'name': 'EPPN',\n", + " 'shortname': None,\n", + " 'start_date': '2012-01-01',\n", + " 'end_date': '2015-12-31',\n", + " 'description': None,\n", + " 'objective': None,\n", + " 'financial_funding': 'European Union',\n", + " 'website': None,\n", + " 'related_projects': [],\n", + " 'coordinators': ['m3p:id/user/person.franois.tardieu'],\n", + " 'scientific_contacts': [],\n", + " 'administrative_contacts': [],\n", + " 'experiments': []},\n", + " {'uri': 'https://eppn2020.plant-phenotyping.eu/',\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None,\n", + " 'name': 'EPPN2020',\n", + " 'shortname': 'EPPN2020',\n", + " 'start_date': '2017-01-03',\n", + " 'end_date': '2021-10-31',\n", + " 'description': None,\n", + " 'objective': None,\n", + " 'financial_funding': None,\n", + " 'website': 'https://eppn2020.plant-phenotyping.eu/',\n", + " 'related_projects': [],\n", + " 'coordinators': [],\n", + " 'scientific_contacts': [],\n", + " 'administrative_contacts': [],\n", + " 'experiments': []},\n", + " {'uri': 'm3p:id/project/expose',\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None,\n", + " 'name': 'EXPOSE',\n", + " 'shortname': None,\n", + " 'start_date': '2021-01-01',\n", + " 'end_date': None,\n", + " 'description': None,\n", + " 'objective': None,\n", + " 'financial_funding': None,\n", + " 'website': None,\n", + " 'related_projects': [],\n", + " 'coordinators': [],\n", + " 'scientific_contacts': [],\n", + " 'administrative_contacts': [],\n", + " 'experiments': []},\n", + " {'uri': 'm3p:id/project/florimaize',\n", + " 'publisher': None,\n", + " 'publication_date': '2024-02-19T15:12:18.831087+01:00',\n", + " 'last_updated_date': None,\n", + " 'name': 'Florimaize',\n", + " 'shortname': None,\n", + " 'start_date': '2013-09-01',\n", + " 'end_date': None,\n", + " 'description': 'Rôle des protéines florigènes dans la reprogramma…',\n", + " 'objective': None,\n", + " 'financial_funding': 'Agropolis Fondation',\n", + " 'website': None,\n", + " 'related_projects': [],\n", + " 'coordinators': ['m3p:id/user/person.franois.tardieu'],\n", + " 'scientific_contacts': [],\n", + " 'administrative_contacts': [],\n", + " 'experiments': []},\n", + " {'uri': 'm3p:id/project/g2was',\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None,\n", + " 'name': 'G2WAS',\n", + " 'shortname': 'G2WAS',\n", + " 'start_date': '2021-01-01',\n", + " 'end_date': '2025-12-31',\n", + " 'description': None,\n", + " 'objective': None,\n", + " 'financial_funding': 'ANR',\n", + " 'website': None,\n", + " 'related_projects': [],\n", + " 'coordinators': [],\n", + " 'scientific_contacts': [],\n", + " 'administrative_contacts': [],\n", + " 'experiments': []},\n", + " {'uri': 'm3p:id/project/lines_vs_hyb',\n", + " 'publisher': None,\n", + " 'publication_date': '2024-02-19T15:14:22.419076+01:00',\n", + " 'last_updated_date': None,\n", + " 'name': 'Lines_VS_Hyb',\n", + " 'shortname': None,\n", + " 'start_date': '2014-07-01',\n", + " 'end_date': '2014-07-08',\n", + " 'description': None,\n", + " 'objective': None,\n", + " 'financial_funding': None,\n", + " 'website': None,\n", + " 'related_projects': [],\n", + " 'coordinators': ['m3p:id/user/person.franois.tardieu'],\n", + " 'scientific_contacts': [],\n", + " 'administrative_contacts': [],\n", + " 'experiments': []},\n", + " {'uri': 'm3p:id/project/myb',\n", + " 'publisher': None,\n", + " 'publication_date': '2024-02-19T15:16:49.113458+01:00',\n", + " 'last_updated_date': None,\n", + " 'name': 'MYB',\n", + " 'shortname': None,\n", + " 'start_date': '2014-07-01',\n", + " 'end_date': '2014-07-08',\n", + " 'description': None,\n", + " 'objective': None,\n", + " 'financial_funding': None,\n", + " 'website': None,\n", + " 'related_projects': [],\n", + " 'coordinators': ['m3p:id/user/person.franois.tardieu'],\n", + " 'scientific_contacts': [],\n", + " 'administrative_contacts': [],\n", + " 'experiments': []},\n", + " {'uri': 'm3p:id/project/phenome',\n", + " 'publisher': None,\n", + " 'publication_date': '2024-02-19T15:18:51.382343+01:00',\n", + " 'last_updated_date': None,\n", + " 'name': 'PHENOME',\n", + " 'shortname': None,\n", + " 'start_date': '2012-01-01',\n", + " 'end_date': '2019-12-31',\n", + " 'description': 'PHENOME, the French plant phenomic network (FPPN)…',\n", + " 'objective': None,\n", + " 'financial_funding': 'Agence Nationale de la Recherche (ANR)',\n", + " 'website': None,\n", + " 'related_projects': [],\n", + " 'coordinators': ['m3p:id/user/person.franois.tardieu'],\n", + " 'scientific_contacts': [],\n", + " 'administrative_contacts': [],\n", + " 'experiments': []},\n", + " {'uri': 'm3p:id/project/phis_publi',\n", + " 'publisher': None,\n", + " 'publication_date': '2024-02-19T15:20:35.05958+01:00',\n", + " 'last_updated_date': None,\n", + " 'name': 'PHIS_Publi',\n", + " 'shortname': None,\n", + " 'start_date': '2016-03-01',\n", + " 'end_date': None,\n", + " 'description': None,\n", + " 'objective': None,\n", + " 'financial_funding': None,\n", + " 'website': None,\n", + " 'related_projects': [],\n", + " 'coordinators': ['m3p:id/user/person.pascal.neveu'],\n", + " 'scientific_contacts': [],\n", + " 'administrative_contacts': [],\n", + " 'experiments': []},\n", + " {'uri': 'm3p:id/project/progress_genetique',\n", + " 'publisher': None,\n", + " 'publication_date': '2024-02-19T15:23:27.959462+01:00',\n", + " 'last_updated_date': None,\n", + " 'name': 'Progress_Genetique',\n", + " 'shortname': None,\n", + " 'start_date': '2014-07-01',\n", + " 'end_date': '2014-07-08',\n", + " 'description': None,\n", + " 'objective': None,\n", + " 'financial_funding': None,\n", + " 'website': None,\n", + " 'related_projects': [],\n", + " 'coordinators': ['m3p:id/user/person.franois.tardieu'],\n", + " 'scientific_contacts': [],\n", + " 'administrative_contacts': [],\n", + " 'experiments': []},\n", + " {'uri': 'm3p:id/project/selgen',\n", + " 'publisher': None,\n", + " 'publication_date': '2024-02-19T15:25:33.899926+01:00',\n", + " 'last_updated_date': None,\n", + " 'name': 'SelGen',\n", + " 'shortname': None,\n", + " 'start_date': '2016-01-01',\n", + " 'end_date': '2017-12-31',\n", + " 'description': 'Genomic selection parent projects DROPs & Amaizing',\n", + " 'objective': None,\n", + " 'financial_funding': None,\n", + " 'website': None,\n", + " 'related_projects': ['m3p:id/project/amaizing'],\n", + " 'coordinators': ['m3p:id/user/person.franois.tardieu'],\n", + " 'scientific_contacts': [],\n", + " 'administrative_contacts': [],\n", + " 'experiments': []},\n", + " {'uri': 'm3p:id/project/sorghum_genomics_toolbox',\n", + " 'publisher': None,\n", + " 'publication_date': '2024-02-19T11:11:01.550354+01:00',\n", + " 'last_updated_date': None,\n", + " 'name': 'Sorghum genomics toolbox',\n", + " 'shortname': None,\n", + " 'start_date': '2016-09-01',\n", + " 'end_date': '2019-09-01',\n", + " 'description': 'The “Sorghum Genomics Toolbox” project (SGT) aims at providing methods and data for accelerating trait and gene discovery in support to sorghum improvement for Sudano-Sahelian cropping environments. Danforth and Kansas university coordinate the sequencing of a panel of ~1000 African sorghum accessions. CIRAD and ICRISAT lead the development and application of field phenotyping facilities in Senegal (CERAAS), Mali (IER), Ethiopia (EIAR). Phenotyping focus will be on plant and crop growth, architecture, resource acquisition and use (light, water) and biomass / grain yield components. At each hub (site/partner), facilities will be implemented to improve sampling logistics, coding and processing, environmental characterization, drone based phenotyping (using TIR, multispectral, RGB sensors), data management and analysis. CIRAD and ICRISAT will also contribute to articulate field crop phenotyping with phenotyping in platforms (controlled environments: LeasyScan, Phenoarch) giving access to finer traits and the estimation of key crop model parameters.',\n", + " 'objective': '',\n", + " 'financial_funding': 'Bill and Melinda Gates Foundation',\n", + " 'website': None,\n", + " 'related_projects': [],\n", + " 'coordinators': [],\n", + " 'scientific_contacts': [],\n", + " 'administrative_contacts': [],\n", + " 'experiments': []},\n", + " {'uri': 'm3p:id/project/test',\n", + " 'publisher': None,\n", + " 'publication_date': '2024-02-19T15:28:26.508934+01:00',\n", + " 'last_updated_date': None,\n", + " 'name': 'Test',\n", + " 'shortname': None,\n", + " 'start_date': '2015-06-01',\n", + " 'end_date': None,\n", + " 'description': None,\n", + " 'objective': None,\n", + " 'financial_funding': None,\n", + " 'website': None,\n", + " 'related_projects': [],\n", + " 'coordinators': ['m3p:id/user/person.isabelle.nembrot'],\n", + " 'scientific_contacts': [],\n", + " 'administrative_contacts': [],\n", + " 'experiments': []},\n", + " {'uri': 'm3p:id/project/vitsec',\n", + " 'publisher': None,\n", + " 'publication_date': '2024-02-19T15:30:43.433037+01:00',\n", + " 'last_updated_date': None,\n", + " 'name': 'VITSEC',\n", + " 'shortname': None,\n", + " 'start_date': '2010-01-01',\n", + " 'end_date': '2012-12-31',\n", + " 'description': 'Molecular bases of grapevine adaptation to water …',\n", + " 'objective': None,\n", + " 'financial_funding': 'Agence Nationale de la Recherche (ANR)',\n", + " 'website': None,\n", + " 'related_projects': [],\n", + " 'coordinators': ['m3p:id/user/person.thierry.simonneau'],\n", + " 'scientific_contacts': [],\n", + " 'administrative_contacts': [],\n", + " 'experiments': []},\n", + " {'uri': 'm3p:id/project/xyz',\n", + " 'publisher': None,\n", + " 'publication_date': '2024-02-19T15:33:38.24394+01:00',\n", + " 'last_updated_date': '2024-02-19T15:36:34.851019+01:00',\n", + " 'name': 'XYZ',\n", + " 'shortname': None,\n", + " 'start_date': '2015-12-18',\n", + " 'end_date': '2015-12-18',\n", + " 'description': 'Background: In maize, silks are hundreds of filam…',\n", + " 'objective': None,\n", + " 'financial_funding': None,\n", + " 'website': None,\n", + " 'related_projects': ['m3p:id/project/phenome'],\n", + " 'coordinators': ['m3p:id/user/person.nicolas.brichet'],\n", + " 'scientific_contacts': ['https://orcid.org/0000-0002-2147-2846/Person'],\n", + " 'administrative_contacts': [],\n", + " 'experiments': []},\n", + " {'uri': 'm3p:id/project/ztest',\n", + " 'publisher': None,\n", + " 'publication_date': '2024-02-19T15:37:46.207302+01:00',\n", + " 'last_updated_date': None,\n", + " 'name': 'ZTEST',\n", + " 'shortname': None,\n", + " 'start_date': '2015-01-04',\n", + " 'end_date': '2015-03-30',\n", + " 'description': 'test 2015 Elcom',\n", + " 'objective': None,\n", + " 'financial_funding': None,\n", + " 'website': None,\n", + " 'related_projects': [],\n", + " 'coordinators': ['https://orcid.org/0000-0002-2147-2846/Person'],\n", + " 'scientific_contacts': [],\n", + " 'administrative_contacts': [],\n", + " 'experiments': []}]}" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "phis.get_project(token=token)" + ] + }, + { + "cell_type": "markdown", + "id": "1a3a4b8e-f681-4aa7-a733-f00d68278801", + "metadata": {}, + "source": [ + "#### Get specific project with URI" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "8a4505b9-3f38-48ce-aee6-fe56e6498755", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'metadata': {'pagination': {'pageSize': 0,\n", + " 'currentPage': 0,\n", + " 'totalCount': 0,\n", + " 'totalPages': 0,\n", + " 'limitCount': 0,\n", + " 'hasNextPage': False},\n", + " 'status': [],\n", + " 'datafiles': []},\n", + " 'result': {'uri': 'm3p:id/project/vitsec',\n", + " 'publisher': {'uri': 'http://www.phenome.inrae.fr/m3p/users#admin.opensilex',\n", + " 'email': 'admin@opensilex.org',\n", + " 'language': 'en',\n", + " 'admin': True,\n", + " 'first_name': 'Admin',\n", + " 'last_name': 'OpenSilex',\n", + " 'linked_person': 'http://www.phenome.inrae.fr/m3p/users#admin.opensilex/Person',\n", + " 'enable': True,\n", + " 'favorites': None},\n", + " 'publication_date': '2024-02-19T15:30:43.433037+01:00',\n", + " 'last_updated_date': None,\n", + " 'name': 'VITSEC',\n", + " 'shortname': None,\n", + " 'start_date': '2010-01-01',\n", + " 'end_date': '2012-12-31',\n", + " 'description': 'Molecular bases of grapevine adaptation to water …',\n", + " 'objective': None,\n", + " 'financial_funding': 'Agence Nationale de la Recherche (ANR)',\n", + " 'website': None,\n", + " 'related_projects': [],\n", + " 'coordinators': ['m3p:id/user/person.thierry.simonneau'],\n", + " 'scientific_contacts': [],\n", + " 'administrative_contacts': [],\n", + " 'experiments': []}}" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "phis.get_project(uri='m3p:id/project/vitsec', token=token)" + ] + }, + { + "cell_type": "markdown", + "id": "8e0ed766-a3a5-41a5-8773-095d335c96cc", + "metadata": {}, + "source": [ + "#### List available facilities" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "cff8e32f-a7b3-426c-9163-25261541fbb4", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'metadata': {'pagination': {'pageSize': 5,\n", + " 'currentPage': 0,\n", + " 'totalCount': 5,\n", + " 'totalPages': 1,\n", + " 'limitCount': 0,\n", + " 'hasNextPage': True},\n", + " 'status': [],\n", + " 'datafiles': []},\n", + " 'result': [{'uri': 'm3p:id/organization/facility.chambre-e',\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None,\n", + " 'rdf_type': 'vocabulary:GrowthChamber',\n", + " 'rdf_type_name': 'growth chamber',\n", + " 'name': 'chambre E',\n", + " 'organizations': [],\n", + " 'sites': [],\n", + " 'address': None,\n", + " 'variableGroups': [],\n", + " 'geometry': None,\n", + " 'relations': []},\n", + " {'uri': 'm3p:id/organization/facility.phenoarch',\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None,\n", + " 'rdf_type': 'vocabulary:Greenhouse',\n", + " 'rdf_type_name': 'greenhouse',\n", + " 'name': 'phenoarch',\n", + " 'organizations': [],\n", + " 'sites': [],\n", + " 'address': None,\n", + " 'variableGroups': [],\n", + " 'geometry': None,\n", + " 'relations': []},\n", + " {'uri': 'm3p:id/organization/facility.phenopsis-1',\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None,\n", + " 'rdf_type': 'vocabulary:GrowthChamber',\n", + " 'rdf_type_name': 'growth chamber',\n", + " 'name': 'PHENOPSIS-1',\n", + " 'organizations': [],\n", + " 'sites': [],\n", + " 'address': None,\n", + " 'variableGroups': [],\n", + " 'geometry': None,\n", + " 'relations': []},\n", + " {'uri': 'm3p:id/organization/facility.phenopsis-2',\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None,\n", + " 'rdf_type': 'vocabulary:GrowthChamber',\n", + " 'rdf_type_name': 'growth chamber',\n", + " 'name': 'PHENOPSIS-2',\n", + " 'organizations': [],\n", + " 'sites': [],\n", + " 'address': None,\n", + " 'variableGroups': [],\n", + " 'geometry': None,\n", + " 'relations': []},\n", + " {'uri': 'm3p:id/organization/facility.phenopsis-3',\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None,\n", + " 'rdf_type': 'vocabulary:GrowthChamber',\n", + " 'rdf_type_name': 'growth chamber',\n", + " 'name': 'PHENOPSIS-3',\n", + " 'organizations': [],\n", + " 'sites': [],\n", + " 'address': None,\n", + " 'variableGroups': [],\n", + " 'geometry': None,\n", + " 'relations': []}]}" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "phis.get_facility(token=token)" + ] + }, + { + "cell_type": "markdown", + "id": "683fe09d-ee07-4a10-b19e-76849afdf626", + "metadata": {}, + "source": [ + "#### Get specific facility with URI" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "12aaf697-7208-4602-8a0c-d311c9571c85", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'metadata': {'pagination': {'pageSize': 0,\n", + " 'currentPage': 0,\n", + " 'totalCount': 0,\n", + " 'totalPages': 0,\n", + " 'limitCount': 0,\n", + " 'hasNextPage': False},\n", + " 'status': [],\n", + " 'datafiles': []},\n", + " 'result': {'uri': 'm3p:id/organization/facility.phenoarch',\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None,\n", + " 'rdf_type': 'vocabulary:Greenhouse',\n", + " 'rdf_type_name': 'greenhouse',\n", + " 'name': 'phenoarch',\n", + " 'organizations': [],\n", + " 'sites': [],\n", + " 'address': None,\n", + " 'variableGroups': [],\n", + " 'geometry': None,\n", + " 'relations': []}}" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "phis.get_facility(uri='m3p:id/organization/facility.phenoarch', token=token)" + ] + }, + { + "cell_type": "markdown", + "id": "501d0584-f961-418e-98a9-d8c59157a8c4", + "metadata": {}, + "source": [ + "#### List available germplasms" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "04fe01d1-8cf8-406f-8760-ce13b9ad971d", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'metadata': {'pagination': {'pageSize': 20,\n", + " 'currentPage': 0,\n", + " 'totalCount': 1239,\n", + " 'totalPages': 62,\n", + " 'limitCount': 0,\n", + " 'hasNextPage': True},\n", + " 'status': [],\n", + " 'datafiles': []},\n", + " 'result': [{'uri': 'http://aims.fao.org/aos/agrovoc/c_4555',\n", + " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Species',\n", + " 'rdf_type_name': 'Species',\n", + " 'name': 'apple tree',\n", + " 'species': None,\n", + " 'species_name': None,\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'http://aims.fao.org/aos/agrovoc/c_29128',\n", + " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Species',\n", + " 'rdf_type_name': 'Species',\n", + " 'name': 'banana',\n", + " 'species': None,\n", + " 'species_name': None,\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'http://aims.fao.org/aos/agrovoc/c_3662',\n", + " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Species',\n", + " 'rdf_type_name': 'Species',\n", + " 'name': 'barley',\n", + " 'species': None,\n", + " 'species_name': None,\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'http://aims.fao.org/aos/agrovoc/c_7951',\n", + " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Species',\n", + " 'rdf_type_name': 'Species',\n", + " 'name': 'bread wheat',\n", + " 'species': None,\n", + " 'species_name': None,\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'http://aims.fao.org/aos/agrovoc/c_1066',\n", + " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Species',\n", + " 'rdf_type_name': 'Species',\n", + " 'name': 'colza',\n", + " 'species': None,\n", + " 'species_name': None,\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'http://aims.fao.org/aos/agrovoc/c_7955',\n", + " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Species',\n", + " 'rdf_type_name': 'Species',\n", + " 'name': 'durum wheat',\n", + " 'species': None,\n", + " 'species_name': None,\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'http://aims.fao.org/aos/agrovoc/c_8283',\n", + " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Species',\n", + " 'rdf_type_name': 'Species',\n", + " 'name': 'grapevine',\n", + " 'species': None,\n", + " 'species_name': None,\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'http://aims.fao.org/aos/agrovoc/c_8504',\n", + " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Species',\n", + " 'rdf_type_name': 'Species',\n", + " 'name': 'maize',\n", + " 'species': None,\n", + " 'species_name': None,\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'http://aims.fao.org/aos/agrovoc/c_13199',\n", + " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Species',\n", + " 'rdf_type_name': 'Species',\n", + " 'name': 'Pearl millet',\n", + " 'species': None,\n", + " 'species_name': None,\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'http://aims.fao.org/aos/agrovoc/c_6116',\n", + " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Species',\n", + " 'rdf_type_name': 'Species',\n", + " 'name': 'poplar',\n", + " 'species': None,\n", + " 'species_name': None,\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'http://aims.fao.org/aos/agrovoc/c_5438',\n", + " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Species',\n", + " 'rdf_type_name': 'Species',\n", + " 'name': 'rice',\n", + " 'species': None,\n", + " 'species_name': None,\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'http://aims.fao.org/aos/agrovoc/c_7247',\n", + " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Species',\n", + " 'rdf_type_name': 'Species',\n", + " 'name': 'sorghum',\n", + " 'species': None,\n", + " 'species_name': None,\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'http://aims.fao.org/aos/agrovoc/c_15476',\n", + " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Species',\n", + " 'rdf_type_name': 'Species',\n", + " 'name': 'teosintes',\n", + " 'species': None,\n", + " 'species_name': None,\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'http://aims.fao.org/aos/agrovoc/c_3339',\n", + " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Species',\n", + " 'rdf_type_name': 'Species',\n", + " 'name': 'upland cotton',\n", + " 'species': None,\n", + " 'species_name': None,\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'http://phenome.inrae.fr/m3p/id/germplasm/variety.17g',\n", + " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Variety',\n", + " 'rdf_type_name': 'Variety',\n", + " 'name': '17g',\n", + " 'species': 'http://aims.fao.org/aos/agrovoc/c_8504',\n", + " 'species_name': 'maize',\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'http://phenome.inrae.fr/m3p/id/germplasm/accesion.17g_inrae',\n", + " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Accession',\n", + " 'rdf_type_name': 'Accession',\n", + " 'name': '17g_inrae',\n", + " 'species': 'http://aims.fao.org/aos/agrovoc/c_8504',\n", + " 'species_name': 'maize',\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'http://phenome.inrae.fr/m3p/id/germplasm/variety.23298mtp40',\n", + " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Variety',\n", + " 'rdf_type_name': 'Variety',\n", + " 'name': '23298Mtp40',\n", + " 'species': 'http://aims.fao.org/aos/agrovoc/c_8283',\n", + " 'species_name': 'grapevine',\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'http://phenome.inrae.fr/m3p/id/germplasm/variety.23298mtp7',\n", + " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Variety',\n", + " 'rdf_type_name': 'Variety',\n", + " 'name': '23298Mtp7',\n", + " 'species': 'http://aims.fao.org/aos/agrovoc/c_8283',\n", + " 'species_name': 'grapevine',\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'http://phenome.inrae.fr/m3p/id/germplasm/variety.2369',\n", + " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Variety',\n", + " 'rdf_type_name': 'Variety',\n", + " 'name': '2369',\n", + " 'species': 'http://aims.fao.org/aos/agrovoc/c_8504',\n", + " 'species_name': 'maize',\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'http://phenome.inrae.fr/m3p/id/germplasm/accesion.2369_udel',\n", + " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Accession',\n", + " 'rdf_type_name': 'Accession',\n", + " 'name': '2369_udel',\n", + " 'species': 'http://aims.fao.org/aos/agrovoc/c_8504',\n", + " 'species_name': 'maize',\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None}]}" + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "phis.get_germplasm(token=token)" + ] + }, + { + "cell_type": "markdown", + "id": "47d512bf-6e4c-4a05-acde-2669f4b9921b", + "metadata": {}, + "source": [ + "#### Get specific germplasm with URI" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "id": "f41c781e-6f93-427b-96bc-e273fa939d72", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'metadata': {'pagination': {'pageSize': 0,\n", + " 'currentPage': 0,\n", + " 'totalCount': 0,\n", + " 'totalPages': 0,\n", + " 'limitCount': 0,\n", + " 'hasNextPage': False},\n", + " 'status': [],\n", + " 'datafiles': []},\n", + " 'result': {'uri': 'http://aims.fao.org/aos/agrovoc/c_1066',\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None,\n", + " 'rdf_type': 'vocabulary:Species',\n", + " 'rdf_type_name': 'Species',\n", + " 'name': 'colza',\n", + " 'synonyms': [],\n", + " 'code': None,\n", + " 'production_year': None,\n", + " 'description': None,\n", + " 'species': None,\n", + " 'species_name': None,\n", + " 'variety': None,\n", + " 'variety_name': None,\n", + " 'accession': None,\n", + " 'accession_name': None,\n", + " 'institute': None,\n", + " 'website': None,\n", + " 'has_parent_germplasm': None,\n", + " 'has_parent_germplasm_m': None,\n", + " 'has_parent_germplasm_f': None,\n", + " 'metadata': None}}" + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "phis.get_germplasm(uri='http://aims.fao.org/aos/agrovoc/c_1066', token=token)" + ] + }, + { + "cell_type": "markdown", + "id": "abe6ba29-c8ec-4f05-93c8-a043df7f4a30", + "metadata": {}, + "source": [ + "#### List available devices" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "id": "3bc8180f-a5f0-4d91-a927-61dcfdf834d5", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'metadata': {'pagination': {'pageSize': 20,\n", + " 'currentPage': 0,\n", + " 'totalCount': 339,\n", + " 'totalPages': 17,\n", + " 'limitCount': 0,\n", + " 'hasNextPage': True},\n", + " 'status': [],\n", + " 'datafiles': []},\n", + " 'result': [{'uri': 'http://www.phenome-fppn.fr/m3p/ec1/2016/sa1600064',\n", + " 'rdf_type': 'vocabulary:CO2Sensor',\n", + " 'rdf_type_name': 'CO2 sensor',\n", + " 'name': 'aria_co2_cE1',\n", + " 'brand': 'ARIA',\n", + " 'constructor_model': None,\n", + " 'serial_number': None,\n", + " 'person_in_charge': None,\n", + " 'start_up': '2011-05-01',\n", + " 'removal': None,\n", + " 'relations': [{'property': 'vocabulary:measures',\n", + " 'value': 'm3p:id/variable/ev000024',\n", + " 'inverse': False}],\n", + " 'description': None,\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'http://www.phenome-fppn.fr/m3p/ec2/2016/sa1600073',\n", + " 'rdf_type': 'vocabulary:CO2Sensor',\n", + " 'rdf_type_name': 'CO2 sensor',\n", + " 'name': 'aria_co2_cE2',\n", + " 'brand': 'ARIA',\n", + " 'constructor_model': None,\n", + " 'serial_number': None,\n", + " 'person_in_charge': None,\n", + " 'start_up': '2011-05-01',\n", + " 'removal': None,\n", + " 'relations': [{'property': 'vocabulary:measures',\n", + " 'value': 'm3p:id/variable/ev000024',\n", + " 'inverse': False}],\n", + " 'description': None,\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'http://www.phenome-fppn.fr/m3p/arch/2016/sa1600057',\n", + " 'rdf_type': 'vocabulary:CO2Sensor',\n", + " 'rdf_type_name': 'CO2 sensor',\n", + " 'name': 'aria_co2_p',\n", + " 'brand': 'ARIA',\n", + " 'constructor_model': None,\n", + " 'serial_number': None,\n", + " 'person_in_charge': None,\n", + " 'start_up': '2011-05-01',\n", + " 'removal': None,\n", + " 'relations': [{'property': 'vocabulary:measures',\n", + " 'value': 'm3p:id/variable/ev000024',\n", + " 'inverse': False}],\n", + " 'description': None,\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'http://www.phenome-fppn.fr/m3p/eo/2016/sa1600005',\n", + " 'rdf_type': 'vocabulary:CupAnemometer',\n", + " 'rdf_type_name': 'cup anemometer',\n", + " 'name': 'aria_directionVent_ext',\n", + " 'brand': 'ARIA',\n", + " 'constructor_model': None,\n", + " 'serial_number': None,\n", + " 'person_in_charge': None,\n", + " 'start_up': '2011-05-01',\n", + " 'removal': None,\n", + " 'relations': [],\n", + " 'description': None,\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'http://www.phenome-fppn.fr/m3p/arch/2016/sa1600051',\n", + " 'rdf_type': 'vocabulary:Lightning',\n", + " 'rdf_type_name': 'lightning',\n", + " 'name': 'aria_eclairage1_p',\n", + " 'brand': None,\n", + " 'constructor_model': 'ARIA',\n", + " 'serial_number': None,\n", + " 'person_in_charge': None,\n", + " 'start_up': None,\n", + " 'removal': None,\n", + " 'relations': [{'property': 'vocabulary:measures',\n", + " 'value': 'm3p:id/variable/greenhouse_lightning_setpoint_boolean',\n", + " 'inverse': False}],\n", + " 'description': None,\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'http://www.phenome-fppn.fr/m3p/dyn/2016/sa1600026',\n", + " 'rdf_type': 'vocabulary:Lightning',\n", + " 'rdf_type_name': 'lightning',\n", + " 'name': 'aria_eclairage1_s1',\n", + " 'brand': None,\n", + " 'constructor_model': 'ARIA',\n", + " 'serial_number': None,\n", + " 'person_in_charge': None,\n", + " 'start_up': None,\n", + " 'removal': None,\n", + " 'relations': [{'property': 'vocabulary:measures',\n", + " 'value': 'm3p:id/variable/greenhouse_lightning_setpoint_boolean',\n", + " 'inverse': False}],\n", + " 'description': None,\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'http://www.phenome-fppn.fr/m3p/arch/2016/sa1600052',\n", + " 'rdf_type': 'vocabulary:Lightning',\n", + " 'rdf_type_name': 'lightning',\n", + " 'name': 'aria_eclairage2_p',\n", + " 'brand': None,\n", + " 'constructor_model': 'ARIA',\n", + " 'serial_number': None,\n", + " 'person_in_charge': None,\n", + " 'start_up': None,\n", + " 'removal': None,\n", + " 'relations': [{'property': 'vocabulary:measures',\n", + " 'value': 'm3p:id/variable/greenhouse_lightning_setpoint_boolean',\n", + " 'inverse': False}],\n", + " 'description': None,\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'http://www.phenome-fppn.fr/m3p/dyn/2016/sa1600027',\n", + " 'rdf_type': 'vocabulary:Lightning',\n", + " 'rdf_type_name': 'lightning',\n", + " 'name': 'aria_eclairage2_s1',\n", + " 'brand': None,\n", + " 'constructor_model': 'ARIA',\n", + " 'serial_number': None,\n", + " 'person_in_charge': None,\n", + " 'start_up': None,\n", + " 'removal': None,\n", + " 'relations': [{'property': 'vocabulary:measures',\n", + " 'value': 'm3p:id/variable/greenhouse_lightning_setpoint_boolean',\n", + " 'inverse': False}],\n", + " 'description': None,\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'http://www.phenome-fppn.fr/m3p/arch/2016/sa1600053',\n", + " 'rdf_type': 'vocabulary:Lightning',\n", + " 'rdf_type_name': 'lightning',\n", + " 'name': 'aria_eclairage3_p',\n", + " 'brand': None,\n", + " 'constructor_model': 'ARIA',\n", + " 'serial_number': None,\n", + " 'person_in_charge': None,\n", + " 'start_up': None,\n", + " 'removal': None,\n", + " 'relations': [{'property': 'vocabulary:measures',\n", + " 'value': 'm3p:id/variable/greenhouse_lightning_setpoint_boolean',\n", + " 'inverse': False}],\n", + " 'description': None,\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'http://www.phenome-fppn.fr/m3p/dyn/2016/sa1600028',\n", + " 'rdf_type': 'vocabulary:Lightning',\n", + " 'rdf_type_name': 'lightning',\n", + " 'name': 'aria_eclairage3_s1',\n", + " 'brand': None,\n", + " 'constructor_model': 'ARIA',\n", + " 'serial_number': None,\n", + " 'person_in_charge': None,\n", + " 'start_up': None,\n", + " 'removal': None,\n", + " 'relations': [{'property': 'vocabulary:measures',\n", + " 'value': 'm3p:id/variable/greenhouse_lightning_setpoint_boolean',\n", + " 'inverse': False}],\n", + " 'description': None,\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'http://www.phenome-fppn.fr/m3p/dyn/2016/sa1600029',\n", + " 'rdf_type': 'vocabulary:Lightning',\n", + " 'rdf_type_name': 'lightning',\n", + " 'name': 'aria_eclairage4_s1',\n", + " 'brand': None,\n", + " 'constructor_model': 'ARIA',\n", + " 'serial_number': None,\n", + " 'person_in_charge': None,\n", + " 'start_up': None,\n", + " 'removal': None,\n", + " 'relations': [{'property': 'vocabulary:measures',\n", + " 'value': 'm3p:id/variable/greenhouse_lightning_setpoint_boolean',\n", + " 'inverse': False}],\n", + " 'description': None,\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'http://www.phenome-fppn.fr/m3p/dyn/2016/sa1600030',\n", + " 'rdf_type': 'vocabulary:Lightning',\n", + " 'rdf_type_name': 'lightning',\n", + " 'name': 'aria_eclairage5_s1',\n", + " 'brand': None,\n", + " 'constructor_model': 'ARIA',\n", + " 'serial_number': None,\n", + " 'person_in_charge': None,\n", + " 'start_up': None,\n", + " 'removal': None,\n", + " 'relations': [{'property': 'vocabulary:measures',\n", + " 'value': 'm3p:id/variable/greenhouse_lightning_setpoint_boolean',\n", + " 'inverse': False}],\n", + " 'description': None,\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'http://www.phenome-fppn.fr/m3p/dyn/2016/sa1600031',\n", + " 'rdf_type': 'vocabulary:Lightning',\n", + " 'rdf_type_name': 'lightning',\n", + " 'name': 'aria_eclairage6_s1',\n", + " 'brand': None,\n", + " 'constructor_model': 'ARIA',\n", + " 'serial_number': None,\n", + " 'person_in_charge': None,\n", + " 'start_up': None,\n", + " 'removal': None,\n", + " 'relations': [{'property': 'vocabulary:measures',\n", + " 'value': 'm3p:id/variable/greenhouse_lightning_setpoint_boolean',\n", + " 'inverse': False}],\n", + " 'description': None,\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'http://www.phenome-fppn.fr/m3p/arch/2016/sa1600048',\n", + " 'rdf_type': 'vocabulary:Shadows',\n", + " 'rdf_type_name': 'shadows',\n", + " 'name': 'aria_ecranBardage1_p',\n", + " 'brand': None,\n", + " 'constructor_model': 'ARIA',\n", + " 'serial_number': None,\n", + " 'person_in_charge': None,\n", + " 'start_up': None,\n", + " 'removal': None,\n", + " 'relations': [{'property': 'vocabulary:measures',\n", + " 'value': 'm3p:id/variable/greenhouse_shading_setpoint_boolean',\n", + " 'inverse': False}],\n", + " 'description': None,\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'http://www.phenome-fppn.fr/m3p/dyn/2016/sa1600023',\n", + " 'rdf_type': 'vocabulary:Shadows',\n", + " 'rdf_type_name': 'shadows',\n", + " 'name': 'aria_ecranBardage1_s1',\n", + " 'brand': None,\n", + " 'constructor_model': 'ARIA',\n", + " 'serial_number': None,\n", + " 'person_in_charge': None,\n", + " 'start_up': None,\n", + " 'removal': None,\n", + " 'relations': [{'property': 'vocabulary:measures',\n", + " 'value': 'm3p:id/variable/greenhouse_shading_setpoint_boolean',\n", + " 'inverse': False}],\n", + " 'description': None,\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'http://www.phenome-fppn.fr/m3p/arch/2016/sa1600049',\n", + " 'rdf_type': 'vocabulary:Shadows',\n", + " 'rdf_type_name': 'shadows',\n", + " 'name': 'aria_ecranBardage2_p',\n", + " 'brand': None,\n", + " 'constructor_model': 'ARIA',\n", + " 'serial_number': None,\n", + " 'person_in_charge': None,\n", + " 'start_up': None,\n", + " 'removal': None,\n", + " 'relations': [{'property': 'vocabulary:measures',\n", + " 'value': 'm3p:id/variable/greenhouse_shading_setpoint_boolean',\n", + " 'inverse': False}],\n", + " 'description': None,\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'http://www.phenome-fppn.fr/m3p/dyn/2016/sa1600024',\n", + " 'rdf_type': 'vocabulary:Shadows',\n", + " 'rdf_type_name': 'shadows',\n", + " 'name': 'aria_ecranBardage2_s1',\n", + " 'brand': None,\n", + " 'constructor_model': 'ARIA',\n", + " 'serial_number': None,\n", + " 'person_in_charge': None,\n", + " 'start_up': None,\n", + " 'removal': None,\n", + " 'relations': [{'property': 'vocabulary:measures',\n", + " 'value': 'm3p:id/variable/greenhouse_shading_setpoint_boolean',\n", + " 'inverse': False}],\n", + " 'description': None,\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'http://www.phenome-fppn.fr/m3p/arch/2016/sa1600047',\n", + " 'rdf_type': 'vocabulary:Shadows',\n", + " 'rdf_type_name': 'shadows',\n", + " 'name': 'aria_ecranPignon_p',\n", + " 'brand': None,\n", + " 'constructor_model': 'ARIA',\n", + " 'serial_number': None,\n", + " 'person_in_charge': None,\n", + " 'start_up': None,\n", + " 'removal': None,\n", + " 'relations': [{'property': 'vocabulary:measures',\n", + " 'value': 'm3p:id/variable/greenhouse_shading_setpoint_boolean',\n", + " 'inverse': False}],\n", + " 'description': None,\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'http://www.phenome-fppn.fr/m3p/dyn/2016/sa1600022',\n", + " 'rdf_type': 'vocabulary:Shadows',\n", + " 'rdf_type_name': 'shadows',\n", + " 'name': 'aria_ecranPignon_s1',\n", + " 'brand': None,\n", + " 'constructor_model': 'ARIA',\n", + " 'serial_number': None,\n", + " 'person_in_charge': None,\n", + " 'start_up': None,\n", + " 'removal': None,\n", + " 'relations': [{'property': 'vocabulary:measures',\n", + " 'value': 'm3p:id/variable/greenhouse_shading_setpoint_boolean',\n", + " 'inverse': False}],\n", + " 'description': None,\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'http://www.phenome-fppn.fr/m3p/arch/2016/sa1600046',\n", + " 'rdf_type': 'vocabulary:Shadows',\n", + " 'rdf_type_name': 'shadows',\n", + " 'name': 'aria_ecranPlan_p',\n", + " 'brand': None,\n", + " 'constructor_model': 'ARIA',\n", + " 'serial_number': None,\n", + " 'person_in_charge': None,\n", + " 'start_up': None,\n", + " 'removal': None,\n", + " 'relations': [{'property': 'vocabulary:measures',\n", + " 'value': 'm3p:id/variable/greenhouse_shading_setpoint_boolean',\n", + " 'inverse': False}],\n", + " 'description': None,\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None}]}" + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "phis.get_device(token=token)" + ] + }, + { + "cell_type": "markdown", + "id": "77df9f4e-91c0-44c4-b932-042ea2cdbb39", + "metadata": {}, + "source": [ + "#### Get specific device with URI" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "id": "e8193235-e5ac-4186-906f-b0d3f3a7808b", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'metadata': {'pagination': {'pageSize': 0,\n", + " 'currentPage': 0,\n", + " 'totalCount': 0,\n", + " 'totalPages': 0,\n", + " 'limitCount': 0,\n", + " 'hasNextPage': False},\n", + " 'status': [],\n", + " 'datafiles': []},\n", + " 'result': {'uri': 'http://www.phenome-fppn.fr/m3p/ec1/2016/sa1600064',\n", + " 'rdf_type': 'vocabulary:CO2Sensor',\n", + " 'rdf_type_name': 'CO2 sensor',\n", + " 'name': 'aria_co2_cE1',\n", + " 'brand': 'ARIA',\n", + " 'constructor_model': None,\n", + " 'serial_number': None,\n", + " 'person_in_charge': None,\n", + " 'start_up': '2011-05-01',\n", + " 'removal': None,\n", + " 'relations': [{'property': 'vocabulary:measures',\n", + " 'value': 'm3p:id/variable/ev000024',\n", + " 'inverse': False}],\n", + " 'description': None,\n", + " 'metadata': None,\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None}}" + ] + }, + "execution_count": 14, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "phis.get_device(uri='http://www.phenome-fppn.fr/m3p/ec1/2016/sa1600064', token=token)" + ] + }, + { + "cell_type": "markdown", + "id": "f6b0d09c-5566-4718-8832-17d837d7b74b", + "metadata": {}, + "source": [ + "#### List available annotations" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "id": "6c4fbe53-45ef-4679-ace1-9c7d21733552", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'metadata': {'pagination': {'pageSize': 20,\n", + " 'currentPage': 0,\n", + " 'totalCount': 0,\n", + " 'totalPages': 0,\n", + " 'limitCount': 0,\n", + " 'hasNextPage': False},\n", + " 'status': [],\n", + " 'datafiles': []},\n", + " 'result': []}" + ] + }, + "execution_count": 15, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "phis.get_annotation(token=token)" + ] + }, + { + "cell_type": "markdown", + "id": "c24cf5a9-0382-41c3-8902-6c8b2be47e80", + "metadata": {}, + "source": [ + "#### Get specific annotation with URI" + ] + }, { "cell_type": "code", - "execution_count": null, - "id": "bfdce3db-d828-4b8e-8f0b-aacb0742578c", + "execution_count": 16, + "id": "ec7ab620-d520-49fe-9646-eecea5ca84fe", "metadata": {}, "outputs": [], - "source": [] + "source": [ + "# No URIs" + ] + }, + { + "cell_type": "markdown", + "id": "9dcb9c9b-4c69-43e9-a656-21ac67348377", + "metadata": {}, + "source": [ + "#### List available documents" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "id": "26b13101-bad6-4767-8cc5-2df08ec12399", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'metadata': {'pagination': {'pageSize': 20,\n", + " 'currentPage': 0,\n", + " 'totalCount': 3,\n", + " 'totalPages': 1,\n", + " 'limitCount': 0,\n", + " 'hasNextPage': True},\n", + " 'status': [],\n", + " 'datafiles': []},\n", + " 'result': [{'uri': 'm3p:id/document/test_isa_doc_post_deploy',\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None,\n", + " 'identifier': None,\n", + " 'rdf_type': 'vocabulary:ScientificDocument',\n", + " 'rdf_type_name': 'Scientific Document',\n", + " 'title': 'test isa doc post deploy',\n", + " 'date': '2022-04-05',\n", + " 'description': None,\n", + " 'targets': [],\n", + " 'authors': [],\n", + " 'language': None,\n", + " 'format': 'png',\n", + " 'keywords': [],\n", + " 'deprecated': True,\n", + " 'source': None},\n", + " {'uri': 'm3p:id/document/test_isa_doc',\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None,\n", + " 'identifier': None,\n", + " 'rdf_type': 'vocabulary:ScientificDocument',\n", + " 'rdf_type_name': 'Scientific Document',\n", + " 'title': 'test isa doc ',\n", + " 'date': '2022-04-04',\n", + " 'description': None,\n", + " 'targets': [],\n", + " 'authors': [],\n", + " 'language': None,\n", + " 'format': 'png',\n", + " 'keywords': [],\n", + " 'deprecated': True,\n", + " 'source': None},\n", + " {'uri': 'm3p:id/document/test_dataset',\n", + " 'publisher': None,\n", + " 'publication_date': '2023-08-22T11:46:26.204356+02:00',\n", + " 'last_updated_date': '2023-08-22T11:53:27.395245+02:00',\n", + " 'identifier': 'doi:10.82233/BFHMFT',\n", + " 'rdf_type': 'vocabulary-dataverse:RechercheDataGouvDataset',\n", + " 'rdf_type_name': 'RechercheDataGouv Dataset',\n", + " 'title': 'Test_dataset',\n", + " 'date': '2020-02-20',\n", + " 'description': 'Test et démo connexion IRODS',\n", + " 'targets': ['m3p:id/experiment/expe_test_opensilex_irods'],\n", + " 'authors': ['http://www.phenome.inrae.fr/m3p/users#admin.opensilex/Person'],\n", + " 'language': 'English',\n", + " 'format': None,\n", + " 'keywords': [],\n", + " 'deprecated': True,\n", + " 'source': 'https://data-preproduction.inrae.fr/dataset.xhtml?persistentId=doi%3A10.82233%2FBFHMFT'}]}" + ] + }, + "execution_count": 17, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "phis.get_document(token=token)" + ] + }, + { + "cell_type": "markdown", + "id": "e55cd13a-1889-431e-a9ab-42e39ba939c8", + "metadata": {}, + "source": [ + "#### Get specific document with URI" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "id": "3069fe3f-cda6-4bca-a1f6-02e53abc85c5", + "metadata": {}, + "outputs": [], + "source": [ + "# phis.get_document(uri='m3p:id/document/test_isa_doc_post_deploy', token=token) # Doesn't work" + ] + }, + { + "cell_type": "markdown", + "id": "d39fcca3-480b-401a-9f6a-6f4d9670aa03", + "metadata": {}, + "source": [ + "#### List available factors" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "id": "acf07aee-51ad-47f8-adc7-c3d023c98e32", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'metadata': {'pagination': {'pageSize': 20,\n", + " 'currentPage': 0,\n", + " 'totalCount': 0,\n", + " 'totalPages': 0,\n", + " 'limitCount': 0,\n", + " 'hasNextPage': False},\n", + " 'status': [],\n", + " 'datafiles': []},\n", + " 'result': []}" + ] + }, + "execution_count": 19, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "phis.get_factor(token=token)" + ] + }, + { + "cell_type": "markdown", + "id": "96566eec-c90b-4ee9-9cad-88bfde988be4", + "metadata": {}, + "source": [ + "#### Get specific factor with URI" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "id": "10363530-849e-43d0-9376-f87a68e4183f", + "metadata": {}, + "outputs": [], + "source": [ + "# No URIs" + ] + }, + { + "cell_type": "markdown", + "id": "9365cbd0-5fef-40a8-8349-47911ba4ea98", + "metadata": {}, + "source": [ + "#### List available organizations" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "id": "cce64d6b-4330-4049-a8ba-60d1ed8d59d4", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'metadata': {'pagination': {'pageSize': 6,\n", + " 'currentPage': 0,\n", + " 'totalCount': 6,\n", + " 'totalPages': 1,\n", + " 'limitCount': 0,\n", + " 'hasNextPage': True},\n", + " 'status': [],\n", + " 'datafiles': []},\n", + " 'result': [{'uri': 'https://emphasis.plant-phenotyping.eu/',\n", + " 'name': 'EMPHASIS',\n", + " 'parents': [],\n", + " 'children': ['http://www.phenome-fppn.fr'],\n", + " 'rdf_type': 'vocabulary:EuropeanOrganization',\n", + " 'rdf_type_name': 'european organization',\n", + " 'publication_date': None,\n", + " 'last_updated_date': '2024-02-02T15:44:25.716531+01:00'},\n", + " {'uri': 'm3p:id/organization/phenoarch',\n", + " 'name': 'PHENOARCH',\n", + " 'parents': ['http://phenome.inrae.fr/id/organization/m3p'],\n", + " 'children': [],\n", + " 'rdf_type': 'vocabulary:LocalOrganization',\n", + " 'rdf_type_name': 'local organization',\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'm3p:id/organization/phenodyn',\n", + " 'name': 'PHENODYN',\n", + " 'parents': ['http://phenome.inrae.fr/id/organization/m3p'],\n", + " 'children': [],\n", + " 'rdf_type': 'vocabulary:LocalOrganization',\n", + " 'rdf_type_name': 'local organization',\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'http://www.phenome-fppn.fr',\n", + " 'name': 'PHENOME-EMPHASIS',\n", + " 'parents': ['https://emphasis.plant-phenotyping.eu/'],\n", + " 'children': ['http://phenome.inrae.fr/id/organization/m3p'],\n", + " 'rdf_type': 'vocabulary:NationalOrganization',\n", + " 'rdf_type_name': 'national organization',\n", + " 'publication_date': None,\n", + " 'last_updated_date': '2024-02-02T15:42:52.481122+01:00'},\n", + " {'uri': 'http://phenome.inrae.fr/id/organization/m3p',\n", + " 'name': 'M3P',\n", + " 'parents': ['http://www.phenome-fppn.fr'],\n", + " 'children': ['m3p:id/organization/phenopsis',\n", + " 'm3p:id/organization/phenoarch',\n", + " 'm3p:id/organization/phenodyn'],\n", + " 'rdf_type': 'vocabulary:LocalOrganization',\n", + " 'rdf_type_name': 'local organization',\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'm3p:id/organization/phenopsis',\n", + " 'name': 'PHENOPSIS',\n", + " 'parents': ['http://phenome.inrae.fr/id/organization/m3p'],\n", + " 'children': [],\n", + " 'rdf_type': 'vocabulary:LocalOrganization',\n", + " 'rdf_type_name': 'local organization',\n", + " 'publication_date': None,\n", + " 'last_updated_date': None}]}" + ] + }, + "execution_count": 21, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "phis.get_organization(token=token)" + ] + }, + { + "cell_type": "markdown", + "id": "327938f2-8cbf-4da2-9805-439ce37782f6", + "metadata": {}, + "source": [ + "#### Get specific organization with URI" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "id": "4fa69cce-3be1-4730-9f2b-077c8c8e5e18", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'metadata': {'pagination': {'pageSize': 0,\n", + " 'currentPage': 0,\n", + " 'totalCount': 0,\n", + " 'totalPages': 0,\n", + " 'limitCount': 0,\n", + " 'hasNextPage': False},\n", + " 'status': [],\n", + " 'datafiles': []},\n", + " 'result': {'uri': 'm3p:id/organization/phenoarch',\n", + " 'rdf_type': 'vocabulary:LocalOrganization',\n", + " 'rdf_type_name': 'local organization',\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None,\n", + " 'name': 'PHENOARCH',\n", + " 'parents': [{'uri': 'http://phenome.inrae.fr/id/organization/m3p',\n", + " 'name': 'M3P',\n", + " 'rdf_type': 'vocabulary:LocalOrganization',\n", + " 'rdf_type_name': 'local organization',\n", + " 'publication_date': None,\n", + " 'last_updated_date': None}],\n", + " 'children': [],\n", + " 'groups': [],\n", + " 'facilities': [],\n", + " 'sites': [],\n", + " 'experiments': [{'uri': 'm3p:id/experiment/dyn2020-05-15',\n", + " 'name': 'G2WAS2020',\n", + " 'rdf_type': 'vocabulary:Experiment',\n", + " 'rdf_type_name': 'experiment',\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'm3p:id/experiment/za20',\n", + " 'name': 'ZA20',\n", + " 'rdf_type': 'vocabulary:Experiment',\n", + " 'rdf_type_name': 'experiment',\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'm3p:id/experiment/ta20',\n", + " 'name': 'TA20',\n", + " 'rdf_type': 'vocabulary:Experiment',\n", + " 'rdf_type_name': 'experiment',\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'm3p:id/experiment/za22',\n", + " 'name': 'ZA22',\n", + " 'rdf_type': 'vocabulary:Experiment',\n", + " 'rdf_type_name': 'experiment',\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'm3p:id/experiment/g2was2022',\n", + " 'name': 'G2WAS2022',\n", + " 'rdf_type': 'vocabulary:Experiment',\n", + " 'rdf_type_name': 'experiment',\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'm3p:id/experiment/archtest_rice2023',\n", + " 'name': 'ARCHTEST_RICE2023',\n", + " 'rdf_type': 'vocabulary:Experiment',\n", + " 'rdf_type_name': 'experiment',\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'm3p:id/experiment/za24',\n", + " 'name': 'ZA24',\n", + " 'rdf_type': 'vocabulary:Experiment',\n", + " 'rdf_type_name': 'experiment',\n", + " 'publication_date': '2024-01-19T15:52:29.026764+01:00',\n", + " 'last_updated_date': '2024-04-08T14:59:16.113409+02:00'},\n", + " {'uri': 'http://www.phenome-fppn.fr/m3p/ARCH2012-01-01',\n", + " 'name': 'ARCH2012-01-01',\n", + " 'rdf_type': 'vocabulary:Experiment',\n", + " 'rdf_type_name': 'experiment',\n", + " 'publication_date': '2024-02-19T16:14:49.51928+01:00',\n", + " 'last_updated_date': '2024-02-20T10:42:40.334917+01:00'}]}}" + ] + }, + "execution_count": 22, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "phis.get_organization(uri='m3p:id/organization/phenoarch', token=token)" + ] + }, + { + "cell_type": "markdown", + "id": "79249735-80cb-41f9-b1f7-5ff4d0fa343a", + "metadata": {}, + "source": [ + "#### List available sites" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "id": "7df0c881-e1c1-4d54-9ca6-f971410d67d3", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'metadata': {'pagination': {'pageSize': 0,\n", + " 'currentPage': 0,\n", + " 'totalCount': 0,\n", + " 'totalPages': 0,\n", + " 'limitCount': 0,\n", + " 'hasNextPage': False},\n", + " 'status': [],\n", + " 'datafiles': []},\n", + " 'result': []}" + ] + }, + "execution_count": 23, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "phis.get_site(token=token)" + ] + }, + { + "cell_type": "markdown", + "id": "723c8495-6fee-417a-9e6e-57fb1e67d10f", + "metadata": {}, + "source": [ + "#### Get specific site with URI" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "id": "3ecafefc-4d1f-414b-b53c-303d12d70025", + "metadata": {}, + "outputs": [], + "source": [ + "# No URIs" + ] + }, + { + "cell_type": "markdown", + "id": "b8a0434f-9ad1-4a23-a59f-b35f42d6667a", + "metadata": {}, + "source": [ + "#### List available scientific objects" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "id": "4d7f5802-ca38-4134-a744-46d2e864ff70", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'metadata': {'pagination': {'pageSize': 20,\n", + " 'currentPage': 0,\n", + " 'totalCount': 3661,\n", + " 'totalPages': 184,\n", + " 'limitCount': 0,\n", + " 'hasNextPage': True},\n", + " 'status': [],\n", + " 'datafiles': []},\n", + " 'result': [{'uri': 'm3p:id/scientific-object/za20/so-0001zm4531eppn7_lwd1eppn_rep_101_01arch2020-02-03',\n", + " 'name': '0001/ZM4531/EPPN7_L/WD1/EPPN_Rep_1/01_01/ARCH2020-02-03',\n", + " 'geometry': None,\n", + " 'rdf_type': 'vocabulary:Plant',\n", + " 'rdf_type_name': 'plant',\n", + " 'publication_date': None,\n", + " 'last_updated_date': None,\n", + " 'creation_date': None,\n", + " 'destruction_date': None},\n", + " {'uri': 'm3p:id/scientific-object/za20/so-0002zm4534eppn10_lwd1eppn_rep_101_02arch2020-02-03',\n", + " 'name': '0002/ZM4534/EPPN10_L/WD1/EPPN_Rep_1/01_02/ARCH2020-02-03',\n", + " 'geometry': None,\n", + " 'rdf_type': 'vocabulary:Plant',\n", + " 'rdf_type_name': 'plant',\n", + " 'publication_date': None,\n", + " 'last_updated_date': None,\n", + " 'creation_date': None,\n", + " 'destruction_date': None},\n", + " {'uri': 'm3p:id/scientific-object/za20/so-0002zm4534eppn10_lwd1eppn_rep_101_02arch2020-02-03-1',\n", + " 'name': '0002/ZM4534/EPPN10_L/WD1/EPPN_Rep_1/01_02/ARCH2020-02-03',\n", + " 'geometry': None,\n", + " 'rdf_type': 'vocabulary:Plant',\n", + " 'rdf_type_name': 'plant',\n", + " 'publication_date': None,\n", + " 'last_updated_date': None,\n", + " 'creation_date': None,\n", + " 'destruction_date': None},\n", + " {'uri': 'm3p:id/scientific-object/za20/so-0003zm4532eppn8_lwd1eppn_rep_101_03arch2020-02-03',\n", + " 'name': '0003/ZM4532/EPPN8_L/WD1/EPPN_Rep_1/01_03/ARCH2020-02-03',\n", + " 'geometry': None,\n", + " 'rdf_type': 'vocabulary:Plant',\n", + " 'rdf_type_name': 'plant',\n", + " 'publication_date': None,\n", + " 'last_updated_date': None,\n", + " 'creation_date': None,\n", + " 'destruction_date': None},\n", + " {'uri': 'm3p:id/scientific-object/za20/so-0003zm4532eppn8_lwd1eppn_rep_101_03arch2020-02-03-1',\n", + " 'name': '0003/ZM4532/EPPN8_L/WD1/EPPN_Rep_1/01_03/ARCH2020-02-03',\n", + " 'geometry': None,\n", + " 'rdf_type': 'vocabulary:Plant',\n", + " 'rdf_type_name': 'plant',\n", + " 'publication_date': None,\n", + " 'last_updated_date': None,\n", + " 'creation_date': None,\n", + " 'destruction_date': None},\n", + " {'uri': 'm3p:id/scientific-object/za20/so-0004zm4527eppn3_lwd1eppn_rep_101_04arch2020-02-03',\n", + " 'name': '0004/ZM4527/EPPN3_L/WD1/EPPN_Rep_1/01_04/ARCH2020-02-03',\n", + " 'geometry': None,\n", + " 'rdf_type': 'vocabulary:Plant',\n", + " 'rdf_type_name': 'plant',\n", + " 'publication_date': None,\n", + " 'last_updated_date': None,\n", + " 'creation_date': None,\n", + " 'destruction_date': None},\n", + " {'uri': 'm3p:id/scientific-object/za20/so-0004zm4527eppn3_lwd1eppn_rep_101_04arch2020-02-03-1',\n", + " 'name': '0004/ZM4527/EPPN3_L/WD1/EPPN_Rep_1/01_04/ARCH2020-02-03',\n", + " 'geometry': None,\n", + " 'rdf_type': 'vocabulary:Plant',\n", + " 'rdf_type_name': 'plant',\n", + " 'publication_date': None,\n", + " 'last_updated_date': None,\n", + " 'creation_date': None,\n", + " 'destruction_date': None},\n", + " {'uri': 'm3p:id/scientific-object/za20/so-0005zm4525eppn1_lwd1eppn_rep_101_05arch2020-02-03',\n", + " 'name': '0005/ZM4525/EPPN1_L/WD1/EPPN_Rep_1/01_05/ARCH2020-02-03',\n", + " 'geometry': None,\n", + " 'rdf_type': 'vocabulary:Plant',\n", + " 'rdf_type_name': 'plant',\n", + " 'publication_date': None,\n", + " 'last_updated_date': None,\n", + " 'creation_date': None,\n", + " 'destruction_date': None},\n", + " {'uri': 'm3p:id/scientific-object/za20/so-0005zm4525eppn1_lwd1eppn_rep_101_05arch2020-02-03-1',\n", + " 'name': '0005/ZM4525/EPPN1_L/WD1/EPPN_Rep_1/01_05/ARCH2020-02-03',\n", + " 'geometry': None,\n", + " 'rdf_type': 'vocabulary:Plant',\n", + " 'rdf_type_name': 'plant',\n", + " 'publication_date': None,\n", + " 'last_updated_date': None,\n", + " 'creation_date': None,\n", + " 'destruction_date': None},\n", + " {'uri': 'm3p:id/scientific-object/za20/so-0006zm4526eppn2_lwd1eppn_rep_101_06arch2020-02-03',\n", + " 'name': '0006/ZM4526/EPPN2_L/WD1/EPPN_Rep_1/01_06/ARCH2020-02-03',\n", + " 'geometry': None,\n", + " 'rdf_type': 'vocabulary:Plant',\n", + " 'rdf_type_name': 'plant',\n", + " 'publication_date': None,\n", + " 'last_updated_date': None,\n", + " 'creation_date': None,\n", + " 'destruction_date': None},\n", + " {'uri': 'm3p:id/scientific-object/za20/so-0006zm4526eppn2_lwd1eppn_rep_101_06arch2020-02-03-1',\n", + " 'name': '0006/ZM4526/EPPN2_L/WD1/EPPN_Rep_1/01_06/ARCH2020-02-03',\n", + " 'geometry': None,\n", + " 'rdf_type': 'vocabulary:Plant',\n", + " 'rdf_type_name': 'plant',\n", + " 'publication_date': None,\n", + " 'last_updated_date': None,\n", + " 'creation_date': None,\n", + " 'destruction_date': None},\n", + " {'uri': 'm3p:id/scientific-object/za20/so-0007zm4533eppn9_lwd1eppn_rep_101_07arch2020-02-03',\n", + " 'name': '0007/ZM4533/EPPN9_L/WD1/EPPN_Rep_1/01_07/ARCH2020-02-03',\n", + " 'geometry': None,\n", + " 'rdf_type': 'vocabulary:Plant',\n", + " 'rdf_type_name': 'plant',\n", + " 'publication_date': None,\n", + " 'last_updated_date': None,\n", + " 'creation_date': None,\n", + " 'destruction_date': None},\n", + " {'uri': 'm3p:id/scientific-object/za20/so-0007zm4533eppn9_lwd1eppn_rep_101_07arch2020-02-03-1',\n", + " 'name': '0007/ZM4533/EPPN9_L/WD1/EPPN_Rep_1/01_07/ARCH2020-02-03',\n", + " 'geometry': None,\n", + " 'rdf_type': 'vocabulary:Plant',\n", + " 'rdf_type_name': 'plant',\n", + " 'publication_date': None,\n", + " 'last_updated_date': None,\n", + " 'creation_date': None,\n", + " 'destruction_date': None},\n", + " {'uri': 'm3p:id/scientific-object/za20/so-0008zm4538eppn14_lwd1eppn_rep_101_08arch2020-02-03',\n", + " 'name': '0008/ZM4538/EPPN14_L/WD1/EPPN_Rep_1/01_08/ARCH2020-02-03',\n", + " 'geometry': None,\n", + " 'rdf_type': 'vocabulary:Plant',\n", + " 'rdf_type_name': 'plant',\n", + " 'publication_date': None,\n", + " 'last_updated_date': None,\n", + " 'creation_date': None,\n", + " 'destruction_date': None},\n", + " {'uri': 'm3p:id/scientific-object/za20/so-0008zm4538eppn14_lwd1eppn_rep_101_08arch2020-02-03-1',\n", + " 'name': '0008/ZM4538/EPPN14_L/WD1/EPPN_Rep_1/01_08/ARCH2020-02-03',\n", + " 'geometry': None,\n", + " 'rdf_type': 'vocabulary:Plant',\n", + " 'rdf_type_name': 'plant',\n", + " 'publication_date': None,\n", + " 'last_updated_date': None,\n", + " 'creation_date': None,\n", + " 'destruction_date': None},\n", + " {'uri': 'm3p:id/scientific-object/za20/so-0009zm4528eppn4_lwd1eppn_rep_101_09arch2020-02-03',\n", + " 'name': '0009/ZM4528/EPPN4_L/WD1/EPPN_Rep_1/01_09/ARCH2020-02-03',\n", + " 'geometry': None,\n", + " 'rdf_type': 'vocabulary:Plant',\n", + " 'rdf_type_name': 'plant',\n", + " 'publication_date': None,\n", + " 'last_updated_date': None,\n", + " 'creation_date': None,\n", + " 'destruction_date': None},\n", + " {'uri': 'm3p:id/scientific-object/za20/so-0009zm4528eppn4_lwd1eppn_rep_101_09arch2020-02-03-1',\n", + " 'name': '0009/ZM4528/EPPN4_L/WD1/EPPN_Rep_1/01_09/ARCH2020-02-03',\n", + " 'geometry': None,\n", + " 'rdf_type': 'vocabulary:Plant',\n", + " 'rdf_type_name': 'plant',\n", + " 'publication_date': None,\n", + " 'last_updated_date': None,\n", + " 'creation_date': None,\n", + " 'destruction_date': None},\n", + " {'uri': 'm3p:id/scientific-object/za20/so-0010zm4555eppn20_twd1eppn_rep_101_10arch2020-02-03',\n", + " 'name': '0010/ZM4555/EPPN20_T/WD1/EPPN_Rep_1/01_10/ARCH2020-02-03',\n", + " 'geometry': None,\n", + " 'rdf_type': 'vocabulary:Plant',\n", + " 'rdf_type_name': 'plant',\n", + " 'publication_date': None,\n", + " 'last_updated_date': None,\n", + " 'creation_date': None,\n", + " 'destruction_date': None},\n", + " {'uri': 'm3p:id/scientific-object/za20/so-0010zm4555eppn20_twd1eppn_rep_101_10arch2020-02-03-1',\n", + " 'name': '0010/ZM4555/EPPN20_T/WD1/EPPN_Rep_1/01_10/ARCH2020-02-03',\n", + " 'geometry': None,\n", + " 'rdf_type': 'vocabulary:Plant',\n", + " 'rdf_type_name': 'plant',\n", + " 'publication_date': None,\n", + " 'last_updated_date': None,\n", + " 'creation_date': None,\n", + " 'destruction_date': None},\n", + " {'uri': 'm3p:id/scientific-object/za20/so-0011zm4537eppn13_lwd1eppn_rep_101_11arch2020-02-03',\n", + " 'name': '0011/ZM4537/EPPN13_L/WD1/EPPN_Rep_1/01_11/ARCH2020-02-03',\n", + " 'geometry': None,\n", + " 'rdf_type': 'vocabulary:Plant',\n", + " 'rdf_type_name': 'plant',\n", + " 'publication_date': None,\n", + " 'last_updated_date': None,\n", + " 'creation_date': None,\n", + " 'destruction_date': None}]}" + ] + }, + "execution_count": 25, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "phis.get_scientific_object(token=token)" + ] + }, + { + "cell_type": "markdown", + "id": "24cc536c-e817-448e-9b7a-e20db5fdb328", + "metadata": {}, + "source": [ + "#### Get specific scientific object with URI" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "id": "8779f4e4-2c2f-44c9-b7dc-6a6850d7d4dd", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'metadata': {'pagination': {'pageSize': 0,\n", + " 'currentPage': 0,\n", + " 'totalCount': 0,\n", + " 'totalPages': 0,\n", + " 'limitCount': 0,\n", + " 'hasNextPage': False},\n", + " 'status': [],\n", + " 'datafiles': []},\n", + " 'result': {'uri': 'm3p:id/scientific-object/za20/so-0001zm4531eppn7_lwd1eppn_rep_101_01arch2020-02-03',\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None,\n", + " 'rdf_type': 'vocabulary:Plant',\n", + " 'rdf_type_name': 'plant',\n", + " 'name': '0001/ZM4531/EPPN7_L/WD1/EPPN_Rep_1/01_01/ARCH2020-02-03',\n", + " 'parent': None,\n", + " 'parent_name': None,\n", + " 'factor_level': None,\n", + " 'relations': [],\n", + " 'geometry': None}}" + ] + }, + "execution_count": 26, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "phis.get_scientific_object(uri='m3p:id/scientific-object/za20/so-0001zm4531eppn7_lwd1eppn_rep_101_01arch2020-02-03',\n", + " token=token)" + ] + }, + { + "cell_type": "markdown", + "id": "c2f3d2a6-73ba-4f3e-b028-2b4cf4cfefe0", + "metadata": {}, + "source": [ + "#### List available characteristics" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "id": "efe065de-1b7a-4c35-9efe-73f97a2c2c5d", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'metadata': {'pagination': {'pageSize': 0,\n", + " 'currentPage': 0,\n", + " 'totalCount': 8,\n", + " 'totalPages': 0,\n", + " 'limitCount': 0,\n", + " 'hasNextPage': False},\n", + " 'status': [],\n", + " 'datafiles': []},\n", + " 'result': [{'uri': 'http://phenome.inrae.fr/m3p/id/variable/characteristic..co2',\n", + " 'name': 'CO2'},\n", + " {'uri': 'http://phenome.inrae.fr/m3p/id/variable/characteristic.fresh_weight',\n", + " 'name': 'fresh_weight'},\n", + " {'uri': 'http://phenome.inrae.fr/m3p/id/variable/characteristic.humidity',\n", + " 'name': 'humidity'},\n", + " {'uri': 'http://phenome.inrae.fr/m3p/id/variable/characteristic..infra-red-radiation',\n", + " 'name': 'Infra-red radiation'},\n", + " {'uri': 'http://www.ontology-of-units-of-measure.org/resource/om-2/Irradiance',\n", + " 'name': 'Irradiance'},\n", + " {'uri': 'http://phenome.inrae.fr/m3p/id/variable/characteristic.lightning',\n", + " 'name': 'Lightning'},\n", + " {'uri': 'http://phenome.inrae.fr/m3p/id/variable/characteristic.shading',\n", + " 'name': 'Shading'},\n", + " {'uri': 'http://phenome.inrae.fr/m3p/id/variable/characteristic.temperature',\n", + " 'name': 'Temperature'}]}" + ] + }, + "execution_count": 27, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "phis.get_characteristic(token=token)" + ] + }, + { + "cell_type": "markdown", + "id": "f2fd36bd-fb8d-456c-8064-bfac341e1e2d", + "metadata": {}, + "source": [ + "#### Get specific characteristic with URI" + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "id": "49f96e29-61c4-49c5-8105-f706de3991ab", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'metadata': {'pagination': {'pageSize': 0,\n", + " 'currentPage': 0,\n", + " 'totalCount': 0,\n", + " 'totalPages': 0,\n", + " 'limitCount': 0,\n", + " 'hasNextPage': False},\n", + " 'status': [],\n", + " 'datafiles': []},\n", + " 'result': {'uri': 'http://phenome.inrae.fr/m3p/id/variable/characteristic.humidity',\n", + " 'name': 'humidity',\n", + " 'description': None,\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None,\n", + " 'exact_match': [],\n", + " 'close_match': [],\n", + " 'broad_match': [],\n", + " 'narrow_match': [],\n", + " 'from_shared_resource_instance': None}}" + ] + }, + "execution_count": 28, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "phis.get_characteristic(uri='http://phenome.inrae.fr/m3p/id/variable/characteristic.humidity', token=token)" + ] + }, + { + "cell_type": "markdown", + "id": "e934104c-f83c-4b59-be49-b37337be2208", + "metadata": {}, + "source": [ + "#### List available entities" + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "id": "c98396dc-3cc9-4613-a697-6e961ff80220", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'metadata': {'pagination': {'pageSize': 0,\n", + " 'currentPage': 0,\n", + " 'totalCount': 6,\n", + " 'totalPages': 0,\n", + " 'limitCount': 0,\n", + " 'hasNextPage': False},\n", + " 'status': [],\n", + " 'datafiles': []},\n", + " 'result': [{'uri': 'http://phenome.inrae.fr/m3p/id/variable/entity.air',\n", + " 'name': 'Air'},\n", + " {'uri': 'http://phenome.inrae.fr/m3p/id/variable/entity.greenhouse',\n", + " 'name': 'Greenhouse'},\n", + " {'uri': 'http://phenome.inrae.fr/m3p/id/variable/entity.leaf',\n", + " 'name': 'Leaf'},\n", + " {'uri': 'http://purl.obolibrary.org/obo/PO_0000003', 'name': 'Plant'},\n", + " {'uri': 'http://phenome.inrae.fr/m3p/id/variable/entity.solar',\n", + " 'name': 'Solar'},\n", + " {'uri': 'http://phenome.inrae.fr/m3p/id/variable/entity.water',\n", + " 'name': 'Water'}]}" + ] + }, + "execution_count": 29, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "phis.get_entity(token=token)" + ] + }, + { + "cell_type": "markdown", + "id": "0fffe9b5-67f4-449b-aba5-84aaa812dc64", + "metadata": {}, + "source": [ + "#### Get specific entity with URI" + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "id": "9a115d99-4e40-4c64-9477-220c6378e189", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'metadata': {'pagination': {'pageSize': 0,\n", + " 'currentPage': 0,\n", + " 'totalCount': 0,\n", + " 'totalPages': 0,\n", + " 'limitCount': 0,\n", + " 'hasNextPage': False},\n", + " 'status': [],\n", + " 'datafiles': []},\n", + " 'result': {'uri': 'http://phenome.inrae.fr/m3p/id/variable/entity.solar',\n", + " 'name': 'Solar',\n", + " 'description': None,\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None,\n", + " 'exact_match': [],\n", + " 'close_match': [],\n", + " 'broad_match': [],\n", + " 'narrow_match': [],\n", + " 'from_shared_resource_instance': None}}" + ] + }, + "execution_count": 30, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "phis.get_entity(uri='http://phenome.inrae.fr/m3p/id/variable/entity.solar', token=token)" + ] + }, + { + "cell_type": "markdown", + "id": "1ab0921b-7acd-40cf-8210-27d7aeebba2f", + "metadata": {}, + "source": [ + "#### List available entities of interest" + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "id": "12aa6de7-c1d0-4648-b636-a7c4dc83bf77", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'metadata': {'pagination': {'pageSize': 0,\n", + " 'currentPage': 0,\n", + " 'totalCount': 0,\n", + " 'totalPages': 0,\n", + " 'limitCount': 0,\n", + " 'hasNextPage': False},\n", + " 'status': [],\n", + " 'datafiles': []},\n", + " 'result': []}" + ] + }, + "execution_count": 31, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "phis.get_entity_of_interest(token=token)" + ] + }, + { + "cell_type": "markdown", + "id": "203e53ab-cf80-4c99-8897-87ed32f7f8ce", + "metadata": {}, + "source": [ + "#### Get specific entity of interest with URI" + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "id": "357329e0-4c17-49ba-a585-c57eefe61602", + "metadata": {}, + "outputs": [], + "source": [ + "# No URIs" + ] + }, + { + "cell_type": "markdown", + "id": "3793f85e-1783-463f-a486-93fd981b78cb", + "metadata": {}, + "source": [ + "#### List available methods" + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "id": "e89debc4-50a9-4e57-9532-654a463a320a", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'metadata': {'pagination': {'pageSize': 0,\n", + " 'currentPage': 0,\n", + " 'totalCount': 11,\n", + " 'totalPages': 0,\n", + " 'limitCount': 0,\n", + " 'hasNextPage': False},\n", + " 'status': [],\n", + " 'datafiles': []},\n", + " 'result': [{'uri': 'http://phenome.inrae.fr/m3p/id/variable/method.computation',\n", + " 'name': 'Computation'},\n", + " {'uri': 'http://phenome.inrae.fr/m3p/id/variable/method.lower-near-surface',\n", + " 'name': 'Lower near-surface'},\n", + " {'uri': 'http://phenome.inrae.fr/m3p/id/variable/method.measurement',\n", + " 'name': 'Measurement'},\n", + " {'uri': 'http://phenome.inrae.fr/m3p/id/variable/method.par', 'name': 'PAR'},\n", + " {'uri': 'http://phenome.inrae.fr/m3p/id/variable/method.par_diffuse',\n", + " 'name': 'PAR_Diffuse'},\n", + " {'uri': 'http://phenome.inrae.fr/m3p/id/variable/method.par_direct',\n", + " 'name': 'PAR_Direct'},\n", + " {'uri': 'http://phenome.inrae.fr/m3p/id/variable/method.radiation_global',\n", + " 'name': 'Radiation_Global'},\n", + " {'uri': 'http://phenome.inrae.fr/m3p/id/variable/method.setpoint',\n", + " 'name': 'Setpoint'},\n", + " {'uri': 'http://phenome.inrae.fr/m3p/id/variable/method.shelter_instant',\n", + " 'name': 'Shelter_Instant_Measurement'},\n", + " {'uri': 'http://phenome.inrae.fr/m3p/id/variable/method.thermocouple',\n", + " 'name': 'thermocouple'},\n", + " {'uri': 'http://phenome.inrae.fr/m3p/id/variable/method.upper-near-surface',\n", + " 'name': 'Upper near-surface'}]}" + ] + }, + "execution_count": 33, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "phis.get_method(token=token)" + ] + }, + { + "cell_type": "markdown", + "id": "a8a91224-5d46-40f2-8e85-2cda9a8a4850", + "metadata": {}, + "source": [ + "#### Get specific method with URI" + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "id": "17c00ccd-0b06-4d53-925d-fc7716bc35ba", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'metadata': {'pagination': {'pageSize': 0,\n", + " 'currentPage': 0,\n", + " 'totalCount': 0,\n", + " 'totalPages': 0,\n", + " 'limitCount': 0,\n", + " 'hasNextPage': False},\n", + " 'status': [],\n", + " 'datafiles': []},\n", + " 'result': {'uri': 'http://phenome.inrae.fr/m3p/id/variable/method.measurement',\n", + " 'name': 'Measurement',\n", + " 'description': None,\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None,\n", + " 'exact_match': [],\n", + " 'close_match': [],\n", + " 'broad_match': [],\n", + " 'narrow_match': [],\n", + " 'from_shared_resource_instance': None}}" + ] + }, + "execution_count": 34, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "phis.get_method(uri='http://phenome.inrae.fr/m3p/id/variable/method.measurement', token=token)" + ] + }, + { + "cell_type": "markdown", + "id": "aea0532f-4964-4eb0-805e-5a9a2c149dcd", + "metadata": {}, + "source": [ + "#### List available units" + ] + }, + { + "cell_type": "code", + "execution_count": 35, + "id": "a5a14d0f-a53d-453c-95db-fc0e6f898c66", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'metadata': {'pagination': {'pageSize': 0,\n", + " 'currentPage': 0,\n", + " 'totalCount': 12,\n", + " 'totalPages': 0,\n", + " 'limitCount': 0,\n", + " 'hasNextPage': False},\n", + " 'status': [],\n", + " 'datafiles': []},\n", + " 'result': [{'uri': 'http://phenome.inrae.fr/m3p/id/variable/unit.boolean',\n", + " 'name': 'Boolean'},\n", + " {'uri': 'http://phenome.inrae.fr/m3p/id/variable/unit.celsius',\n", + " 'name': 'degree celsius'},\n", + " {'uri': 'http://phenome.inrae.fr/m3p/id/variable/unit.gram', 'name': 'gram'},\n", + " {'uri': 'http://qudt.org/vocab/unit/J-PER-M2', 'name': 'J-PER-M2'},\n", + " {'uri': 'http://qudt.org/vocab/unit/J', 'name': 'Joule'},\n", + " {'uri': 'http://qudt.org/vocab/unit/KiloGM', 'name': 'kilogram'},\n", + " {'uri': 'http://qudt.org/vocab/unit/MicroMOL-PER-M2-SEC',\n", + " 'name': 'MicroMOL-PER-M2-SEC'},\n", + " {'uri': 'http://phenome.inrae.fr/m3p/id/variable/unit.micromole-per-square-metre-per-second',\n", + " 'name': 'Micromole per square metre per_second'},\n", + " {'uri': 'http://qudt.org/vocab/unit/MilliM', 'name': 'millimetre '},\n", + " {'uri': 'http://phenome.inrae.fr/m3p/id/variable/unit.percentage',\n", + " 'name': 'percent'},\n", + " {'uri': 'http://purl.obolibrary.org/obo/UO_0000169', 'name': 'ppm'},\n", + " {'uri': 'http://purl.obolibrary.org/obo/UO_0000155',\n", + " 'name': 'watt per square meter'}]}" + ] + }, + "execution_count": 35, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "phis.get_unit(token=token)" + ] + }, + { + "cell_type": "markdown", + "id": "39a54c76-3e7f-4667-a7a2-897a6dffd261", + "metadata": {}, + "source": [ + "#### Get specific unit with URI" + ] + }, + { + "cell_type": "code", + "execution_count": 36, + "id": "86d4a3d3-3800-4134-a555-689461cac2d6", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'metadata': {'pagination': {'pageSize': 0,\n", + " 'currentPage': 0,\n", + " 'totalCount': 0,\n", + " 'totalPages': 0,\n", + " 'limitCount': 0,\n", + " 'hasNextPage': False},\n", + " 'status': [],\n", + " 'datafiles': []},\n", + " 'result': {'uri': 'http://qudt.org/vocab/unit/J',\n", + " 'name': 'Joule',\n", + " 'description': 'The SI unit of work or energy, defined to be the work done by a force of one newton acting to move an object through a distance of one meter in the direction in which the force is applied. Equivalently, since kinetic energy is one half the mass times the square of the velocity, one joule is the kinetic energy of a mass of two kilograms moving at a velocity of 1 m/s. This is the same as 107 ergs in the CGS system, or approximately 0.737 562 foot-pound in the traditional English system. In other energy units, one joule equals about 9.478 170 x 10-4 Btu, 0.238 846 (small) calories, or 2.777 778 x 10-4 watt hour. The joule is named for the British physicist James Prescott Joule (1818-1889), who demonstrated the equivalence of mechanical and thermal energy in a famous experiment in 1843. ',\n", + " 'symbol': 'J',\n", + " 'alternative_symbol': None,\n", + " 'exact_match': [],\n", + " 'close_match': [],\n", + " 'broad_match': [],\n", + " 'narrow_match': [],\n", + " 'publisher': {'uri': 'https://orcid.org/0000-0002-2147-2846',\n", + " 'email': 'llorenc.cabrera-bosquet@inrae.fr',\n", + " 'language': 'en',\n", + " 'admin': True,\n", + " 'first_name': 'Llorenç',\n", + " 'last_name': 'CABRERA-BOSQUET',\n", + " 'linked_person': 'https://orcid.org/0000-0002-2147-2846/Person',\n", + " 'enable': True,\n", + " 'favorites': None},\n", + " 'publication_date': '2024-03-29T10:08:49.599127+01:00',\n", + " 'last_updated_date': None,\n", + " 'from_shared_resource_instance': None}}" + ] + }, + "execution_count": 36, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "phis.get_unit(uri='http://qudt.org/vocab/unit/J', token=token)" + ] + }, + { + "cell_type": "markdown", + "id": "a4e43648-30b1-413a-950f-84060ecc94ac", + "metadata": {}, + "source": [ + "#### List available species" + ] + }, + { + "cell_type": "code", + "execution_count": 37, + "id": "7ee85624-495d-4a36-860b-1fe407ab5491", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'metadata': {'pagination': {'pageSize': 14,\n", + " 'currentPage': 0,\n", + " 'totalCount': 14,\n", + " 'totalPages': 1,\n", + " 'limitCount': 0,\n", + " 'hasNextPage': True},\n", + " 'status': [],\n", + " 'datafiles': []},\n", + " 'result': [{'uri': 'http://aims.fao.org/aos/agrovoc/c_4555',\n", + " 'name': 'apple tree'},\n", + " {'uri': 'http://aims.fao.org/aos/agrovoc/c_29128', 'name': 'banana'},\n", + " {'uri': 'http://aims.fao.org/aos/agrovoc/c_3662', 'name': 'barley'},\n", + " {'uri': 'http://aims.fao.org/aos/agrovoc/c_7951', 'name': 'bread wheat'},\n", + " {'uri': 'http://aims.fao.org/aos/agrovoc/c_1066', 'name': 'colza'},\n", + " {'uri': 'http://aims.fao.org/aos/agrovoc/c_7955', 'name': 'durum wheat'},\n", + " {'uri': 'http://aims.fao.org/aos/agrovoc/c_8283', 'name': 'grapevine'},\n", + " {'uri': 'http://aims.fao.org/aos/agrovoc/c_8504', 'name': 'maize'},\n", + " {'uri': 'http://aims.fao.org/aos/agrovoc/c_13199', 'name': 'Pearl millet'},\n", + " {'uri': 'http://aims.fao.org/aos/agrovoc/c_6116', 'name': 'poplar'},\n", + " {'uri': 'http://aims.fao.org/aos/agrovoc/c_5438', 'name': 'rice'},\n", + " {'uri': 'http://aims.fao.org/aos/agrovoc/c_7247', 'name': 'sorghum'},\n", + " {'uri': 'http://aims.fao.org/aos/agrovoc/c_15476', 'name': 'teosintes'},\n", + " {'uri': 'http://aims.fao.org/aos/agrovoc/c_3339', 'name': 'upland cotton'}]}" + ] + }, + "execution_count": 37, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "phis.get_species(token=token)" + ] + }, + { + "cell_type": "markdown", + "id": "0300a106-63cf-4edb-b11f-1a579c9b14b6", + "metadata": {}, + "source": [ + "#### Get system informations" + ] + }, + { + "cell_type": "code", + "execution_count": 38, + "id": "4876c969-c954-417c-875f-7c6fe72a7fe2", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'metadata': {'pagination': {'pageSize': 0,\n", + " 'currentPage': 0,\n", + " 'totalCount': 0,\n", + " 'totalPages': 0,\n", + " 'limitCount': 0,\n", + " 'hasNextPage': False},\n", + " 'status': [],\n", + " 'datafiles': []},\n", + " 'result': {'title': 'OpenSILEX',\n", + " 'version': '1.2.4-rdg',\n", + " 'description': 'OpenSILEX is an ontology-driven Information System designed for life science data.',\n", + " 'contact': {'name': 'OpenSILEX Team',\n", + " 'email': 'opensilex-help@groupes.renater.fr',\n", + " 'homepage': 'http://www.opensilex.org/'},\n", + " 'license': {'name': 'GNU Affero General Public License v3',\n", + " 'url': 'https://www.gnu.org/licenses/agpl-3.0.fr.html'},\n", + " 'modules_version': [{'name': 'org.opensilex.server.ServerModule',\n", + " 'version': '1.2.4-rdg'},\n", + " {'name': 'org.opensilex.fs.FileStorageModule', 'version': '1.2.4-rdg'},\n", + " {'name': 'org.opensilex.nosql.NoSQLModule', 'version': '1.2.4-rdg'},\n", + " {'name': 'org.opensilex.sparql.SPARQLModule', 'version': '1.2.4-rdg'},\n", + " {'name': 'org.opensilex.security.SecurityModule', 'version': '1.2.4-rdg'},\n", + " {'name': 'org.opensilex.core.CoreModule', 'version': '1.2.4-rdg'},\n", + " {'name': 'org.opensilex.front.FrontModule', 'version': '1.2.4-rdg'},\n", + " {'name': 'org.opensilex.phis.PhisWsModule', 'version': '1.2.4-rdg'},\n", + " {'name': 'org.opensilex.graphql.GraphQLModule', 'version': '1.2.4-rdg'},\n", + " {'name': 'org.opensilex.dataverse.DataverseModule', 'version': '1.2.4-rdg'},\n", + " {'name': 'org.opensilex.migration.MigrationModule', 'version': '1.2.4-rdg'},\n", + " {'name': 'org.opensilex.brapi.BrapiModule', 'version': '1.2.4-rdg'}],\n", + " 'external_docs': {'description': 'Opensilex dev documentation',\n", + " 'url': 'https://github.com/OpenSILEX/opensilex/blob/master/opensilex-doc/src/main/resources/index.md'},\n", + " 'api_docs': {'description': 'Opensilex API documentation',\n", + " 'url': 'http://147.100.202.17/m3p/api-docs'},\n", + " 'git_commit': {'commit_id': 'a519a2f2ee03809dc2dca56732ddff5153842c89',\n", + " 'commit_message': 'Enable dataverse'},\n", + " 'github_page': 'https://github.com/OpenSILEX/opensilex'}}" + ] + }, + "execution_count": 38, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "phis.get_system_info(token=token)" + ] } ], "metadata": { diff --git a/src/agroservices/phis/phis.py b/src/agroservices/phis/phis.py index 931416d..b82faa0 100644 --- a/src/agroservices/phis/phis.py +++ b/src/agroservices/phis/phis.py @@ -23,7 +23,7 @@ class Phis(REST): # TODO: Complete with the up to date requests def __init__(self, name='Phis', - url="http://147.100.202.17/m3p/rest/", + url="https://phenome.inrae.fr/m3p/rest/", callback=None, *args, **kwargs): super().__init__( name=name, @@ -441,7 +441,7 @@ def get_document(self, token, uri=None): def get_factor(self, token, uri=None): # Get specific factor information by uri if uri: - result = self.http_get(self.url + 'core/experiments/factors' + result = self.http_get(self.url + 'core/experiments/factors/' + quote_plus(uri), headers={'Authorization':token}) if result == 404: raise Exception("Factor not found") @@ -467,7 +467,7 @@ def get_factor(self, token, uri=None): def get_organization(self, token, uri=None): # Get specific organization information by uri if uri: - result = self.http_get(self.url + 'core/organisations' + result = self.http_get(self.url + 'core/organisations/' + quote_plus(uri), headers={'Authorization':token}) if result == 404: raise Exception("Organization not found") @@ -493,7 +493,7 @@ def get_organization(self, token, uri=None): def get_site(self, token, uri=None): # Get specific site information by uri if uri: - result = self.http_get(self.url + 'core/sites' + result = self.http_get(self.url + 'core/sites/' + quote_plus(uri), headers={'Authorization':token}) if result == 404: raise Exception("Site not found") @@ -519,7 +519,7 @@ def get_site(self, token, uri=None): def get_scientific_object(self, token, uri=None): # Get specific scientific object information by uri if uri: - result = self.http_get(self.url + 'core/scientific_objects' + result = self.http_get(self.url + 'core/scientific_objects/' + quote_plus(uri), headers={'Authorization':token}) if result == 404: raise Exception("Scientific object not found") @@ -571,7 +571,7 @@ def get_system_info(self, token): def get_characteristic(self, token, uri=None): # Get specific characteristic information by uri if uri: - result = self.http_get(self.url + 'core/characteristics' + result = self.http_get(self.url + 'core/characteristics/' + quote_plus(uri), headers={'Authorization':token}) if result == 404: raise Exception("Characteristic not found") @@ -597,7 +597,7 @@ def get_characteristic(self, token, uri=None): def get_entity(self, token, uri=None): # Get specific entity information by uri if uri: - result = self.http_get(self.url + 'core/entities' + result = self.http_get(self.url + 'core/entities/' + quote_plus(uri), headers={'Authorization':token}) if result == 404: raise Exception("Entity not found") @@ -623,7 +623,7 @@ def get_entity(self, token, uri=None): def get_entity_of_interest(self, token, uri=None): # Get specific entity of interest information by uri if uri: - result = self.http_get(self.url + 'core/entities_of_interest' + result = self.http_get(self.url + 'core/entities_of_interest/' + quote_plus(uri), headers={'Authorization':token}) if result == 404: raise Exception("Entity of interest not found") @@ -649,7 +649,7 @@ def get_entity_of_interest(self, token, uri=None): def get_method(self, token, uri=None): # Get specific method information by uri if uri: - result = self.http_get(self.url + 'core/methods' + result = self.http_get(self.url + 'core/methods/' + quote_plus(uri), headers={'Authorization':token}) if result == 404: raise Exception("Method not found") @@ -675,7 +675,7 @@ def get_method(self, token, uri=None): def get_unit(self, token, uri=None): # Get specific unit information by uri if uri: - result = self.http_get(self.url + 'core/units' + result = self.http_get(self.url + 'core/units/' + quote_plus(uri), headers={'Authorization':token}) if result == 404: raise Exception("Unit not found") diff --git a/test/test_phis.py b/test/test_phis.py index 9eb6f6a..4442f6f 100644 --- a/test/test_phis.py +++ b/test/test_phis.py @@ -78,7 +78,7 @@ def test_get_variable(): try: data = phis.get_variable(uri='http://phenome.inrae.fr/m3p/id/variable/ev000020', token=token) except Exception as err: - assert False, "Unexpected error: " + err + assert False, "Unexpected error: " + str(err) # Test with an invalid URI try: @@ -102,7 +102,7 @@ def test_get_project(): try: data = phis.get_project(uri='m3p:id/project/vitsec', token=token) except Exception as err: - assert False, "Unexpected error: " + err + assert False, "Unexpected error: " + str(err) # Test with an invalid URI try: @@ -126,7 +126,7 @@ def test_get_facility(): try: data = phis.get_facility(uri='m3p:id/organization/facility.phenoarch', token=token) except Exception as err: - assert False, "Unexpected error: " + err + assert False, "Unexpected error: " + str(err) # Test with an invalid URI try: @@ -150,7 +150,7 @@ def test_get_germplasm(): try: data = phis.get_germplasm(uri='http://aims.fao.org/aos/agrovoc/c_1066', token=token) except Exception as err: - assert False, "Unexpected error: " + err + assert False, "Unexpected error: " + str(err) # Test with an invalid URI try: @@ -174,7 +174,7 @@ def test_get_device(): try: data = phis.get_device(uri='http://www.phenome-fppn.fr/m3p/ec1/2016/sa1600064', token=token) except Exception as err: - assert False, "Unexpected error: " + err + assert False, "Unexpected error: " + str(err) # Test with an invalid URI try: @@ -194,6 +194,13 @@ def test_get_annotation(): if data['metadata']['pagination']['totalCount'] != 0: assert data['result'] != [], "Request failed" + # Test with a valid URI + # No URIs + # try: + # data = phis.get_annotation(uri='', token=token) + # except Exception as err: + # assert False, "Unexpected error: " + str(err) + def test_get_document(): phis = Phis() @@ -204,6 +211,12 @@ def test_get_document(): if data['metadata']['pagination']['totalCount'] != 0: assert data['result'] != [], "Request failed" + # Test with a valid URI + # try: + # data = phis.get_document(uri='m3p:id/document/test_isa_doc_post_deploy', token=token) + # except Exception as err: + # assert False, "Unexpected error: " + str(err) + def test_get_factor(): phis = Phis() @@ -214,6 +227,13 @@ def test_get_factor(): if data['metadata']['pagination']['totalCount'] != 0: assert data['result'] != [], "Request failed" + # Test with a valid URI + # No URIs + # try: + # data = phis.get_factor(uri='', token=token) + # except Exception as err: + # assert False, "Unexpected error: " + str(err) + def test_get_organization(): phis = Phis() @@ -224,6 +244,12 @@ def test_get_organization(): if data['metadata']['pagination']['totalCount'] != 0: assert data['result'] != [], "Request failed" + # Test with a valid URI + try: + data = phis.get_organization(uri='m3p:id/organization/phenoarch', token=token) + except Exception as err: + assert False, "Unexpected error: " + str(err) + def test_get_site(): phis = Phis() @@ -234,6 +260,13 @@ def test_get_site(): if data['metadata']['pagination']['totalCount'] != 0: assert data['result'] != [], "Request failed" + # Test with a valid URI + # No URIs + # try: + # data = phis.get_site(uri='', token=token) + # except Exception as err: + # assert False, "Unexpected error: " + str(err) + def test_get_scientific_object(): phis = Phis() @@ -244,6 +277,13 @@ def test_get_scientific_object(): if data['metadata']['pagination']['totalCount'] != 0: assert data['result'] != [], "Request failed" + # Test with a valid URI + try: + data = phis.get_scientific_object(uri='m3p:id/scientific-object/za20/so-0001zm4531eppn7_lwd1eppn_rep_101_01arch2020-02-03', + token=token) + except Exception as err: + assert False, "Unexpected error: " + str(err) + def test_get_species(): phis = Phis() @@ -274,6 +314,12 @@ def test_get_characteristic(): if data['metadata']['pagination']['totalCount'] != 0: assert data['result'] != [], "Request failed" + # Test with a valid URI + try: + data = phis.get_characteristic(uri='http://phenome.inrae.fr/m3p/id/variable/characteristic.humidity', token=token) + except Exception as err: + assert False, "Unexpected error: " + str(err) + def test_get_entity(): phis = Phis() @@ -284,8 +330,14 @@ def test_get_entity(): if data['metadata']['pagination']['totalCount'] != 0: assert data['result'] != [], "Request failed" + # Test with a valid URI + try: + data = phis.get_entity(uri='http://phenome.inrae.fr/m3p/id/variable/entity.solar', token=token) + except Exception as err: + assert False, "Unexpected error: " + str(err) + -def test_get_entity(): +def test_get_entity_of_interest(): phis = Phis() token, _ = phis.authenticate() @@ -294,6 +346,13 @@ def test_get_entity(): if data['metadata']['pagination']['totalCount'] != 0: assert data['result'] != [], "Request failed" + # Test with a valid URI + # No URIs + # try: + # data = phis.get_entity_of_interest(uri='', token=token) + # except Exception as err: + # assert False, "Unexpected error: " + err + def test_get_method(): phis = Phis() @@ -303,6 +362,12 @@ def test_get_method(): data = phis.get_method(token=token) if data['metadata']['pagination']['totalCount'] != 0: assert data['result'] != [], "Request failed" + + # Test with a valid URI + try: + data = phis.get_method(uri='http://phenome.inrae.fr/m3p/id/variable/method.measurement', token=token) + except Exception as err: + assert False, "Unexpected error: " + str(err) def test_get_unit(): @@ -312,4 +377,10 @@ def test_get_unit(): # Search test data = phis.get_unit(token=token) if data['metadata']['pagination']['totalCount'] != 0: - assert data['result'] != [], "Request failed" \ No newline at end of file + assert data['result'] != [], "Request failed" + + # Test with a valid URI + try: + data = phis.get_unit(uri='http://qudt.org/vocab/unit/J', token=token) + except Exception as err: + assert False, "Unexpected error: " + str(err) \ No newline at end of file From ea633a4e2acffd8185771a8e1c80e551948493e5 Mon Sep 17 00:00:00 2001 From: fedur8 Date: Mon, 17 Jun 2024 15:58:50 +0200 Subject: [PATCH 05/12] Adding new phis get functions, fixing gets with new pagination parameters --- example/phis/quickstart.ipynb | 6434 +++++++++++++++++++++++++++------ src/agroservices/phis/phis.py | 458 +-- test/test_phis.py | 41 +- 3 files changed, 5657 insertions(+), 1276 deletions(-) diff --git a/example/phis/quickstart.ipynb b/example/phis/quickstart.ipynb index 04c9c23..d7f158c 100644 --- a/example/phis/quickstart.ipynb +++ b/example/phis/quickstart.ipynb @@ -47,7 +47,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "eyJhbGciOiJSUzUxMiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJvcGVuc2lsZXgiLCJzdWIiOiJtM3A6aWQvdXNlci9hY2NvdW50LnBoZW5vYXJjaGxlcHNlaW5yYWZyIiwiaWF0IjoxNzE4MjgyODE2LCJleHAiOjE3MTgyODU1MTYsImdpdmVuX25hbWUiOiJwaGVub2FyY2giLCJmYW1pbHlfbmFtZSI6ImxlcHNlIiwiZW1haWwiOiJwaGVub2FyY2hAbGVwc2UuaW5yYS5mciIsIm5hbWUiOiJwaGVub2FyY2hAbGVwc2UuaW5yYS5mciIsImxvY2FsZSI6ImVuIiwiaXNfYWRtaW4iOmZhbHNlLCJjcmVkZW50aWFsc19saXN0IjpbImFjY291bnQtYWNjZXNzIiwiZGF0YS1hY2Nlc3MiLCJkZXZpY2UtYWNjZXNzIiwiZG9jdW1lbnQtYWNjZXNzIiwiZXZlbnQtYWNjZXNzIiwiZXhwZXJpbWVudC1hY2Nlc3MiLCJmYWNpbGl0eS1hY2Nlc3MiLCJnZXJtcGxhc20tYWNjZXNzIiwiZ3JvdXAtYWNjZXNzIiwib3JnYW5pemF0aW9uLWFjY2VzcyIsInByb2plY3QtYWNjZXNzIiwicHJvdmVuYW5jZS1hY2Nlc3MiLCJzY2llbnRpZmljLW9iamVjdHMtYWNjZXNzIiwidmFyaWFibGUtYWNjZXNzIiwidm9jYWJ1bGFyeS1hY2Nlc3MiXX0.EKoUw2RnZnNXp2oAntVG3l5dy1kvoyv3YTArERrrWrqY8y7D1Gy2W6nhYKMk3BOjvoJGM5X-ocKl9mBQHsuxMTxWChqYSmLs0jhj6mC8B3IFPLvsWzsPoHpqSq-2bDf1mPb3p3u9XFo6Dqt13jB3eTfUwAAjEdcljkdSDQ7C-YaCeH661BTtjFbSnBi_HI-sFDy7kdUrUMyTj7kIjnsazQw-JYE3Wk5c1QncBse0ZAhKIQS1xmJM6EZ_kaLmI_dN7sn8csfb1JFOdfjxN9tnaaxFFhMRayRmWPtumFzvHgAs-1z-cDPJtFN83kqUuhIaRdJQ-2atvekSzOYvNONPdQ\n", + "eyJhbGciOiJSUzUxMiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJvcGVuc2lsZXgiLCJzdWIiOiJtM3A6aWQvdXNlci9hY2NvdW50LnBoZW5vYXJjaGxlcHNlaW5yYWZyIiwiaWF0IjoxNzE4NjMyNDYwLCJleHAiOjE3MTg2MzUxNjAsImdpdmVuX25hbWUiOiJwaGVub2FyY2giLCJmYW1pbHlfbmFtZSI6ImxlcHNlIiwiZW1haWwiOiJwaGVub2FyY2hAbGVwc2UuaW5yYS5mciIsIm5hbWUiOiJwaGVub2FyY2hAbGVwc2UuaW5yYS5mciIsImxvY2FsZSI6ImVuIiwiaXNfYWRtaW4iOmZhbHNlLCJjcmVkZW50aWFsc19saXN0IjpbImFjY291bnQtYWNjZXNzIiwiZGF0YS1hY2Nlc3MiLCJkZXZpY2UtYWNjZXNzIiwiZG9jdW1lbnQtYWNjZXNzIiwiZXZlbnQtYWNjZXNzIiwiZXhwZXJpbWVudC1hY2Nlc3MiLCJmYWNpbGl0eS1hY2Nlc3MiLCJnZXJtcGxhc20tYWNjZXNzIiwiZ3JvdXAtYWNjZXNzIiwib3JnYW5pemF0aW9uLWFjY2VzcyIsInByb2plY3QtYWNjZXNzIiwicHJvdmVuYW5jZS1hY2Nlc3MiLCJzY2llbnRpZmljLW9iamVjdHMtYWNjZXNzIiwidmFyaWFibGUtYWNjZXNzIiwidm9jYWJ1bGFyeS1hY2Nlc3MiXX0.C4ro-2HodcctvrahqpQ3DNZY1GnfrhWw-GnCPuAURzLVnbPlD02311Kr6e2hlNALcioFZoA6COwkahj8GFRZHB4KxoRVqSeapJMELLth0XI0X2461HtgcJkbfY5_TrYPuaTmFni7X6XkvyYnyusOAoONkZFORBAH3iH2hAXF1I-_rHosSXFzN9byxICQl3zWpAYkZgzBRul_Mepfj-U_vlIWXgXBnQ2iInwuEaca3kwO9WFimrjLEF0YzSR1deWuV9HJSQ0p_3YgqJKYWiN5-tRJvR6xnAVLj3ojamqto7UCJm7zoeAN7N8CY4QowgtxYUXx2a5M-7DkqqtcLHlXjw\n", "-\n", "200\n" ] @@ -214,7 +214,7 @@ { "data": { "text/plain": [ - "{'metadata': {'pagination': {'pageSize': 20,\n", + "{'metadata': {'pagination': {'pageSize': 100,\n", " 'currentPage': 0,\n", " 'totalCount': 18,\n", " 'totalPages': 1,\n", @@ -548,7 +548,7 @@ { "data": { "text/plain": [ - "{'metadata': {'pagination': {'pageSize': 20,\n", + "{'metadata': {'pagination': {'pageSize': 100,\n", " 'currentPage': 0,\n", " 'totalCount': 20,\n", " 'totalPages': 1,\n", @@ -1118,6 +1118,51 @@ "phis.get_facility(uri='m3p:id/organization/facility.phenoarch', token=token)" ] }, + { + "cell_type": "code", + "execution_count": 11, + "id": "20704042-b0fb-4423-a16d-b880aa9d80d1", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "({'uri': 'm3p:id/organization/facility.phenoarch',\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None,\n", + " 'rdf_type': 'vocabulary:Greenhouse',\n", + " 'rdf_type_name': 'greenhouse',\n", + " 'name': 'phenoarch',\n", + " 'organizations': [],\n", + " 'sites': [],\n", + " 'address': None,\n", + " 'variableGroups': [],\n", + " 'geometry': None,\n", + " 'relations': []},)" + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + " {'uri': 'm3p:id/organization/facility.phenoarch',\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None,\n", + " 'rdf_type': 'vocabulary:Greenhouse',\n", + " 'rdf_type_name': 'greenhouse',\n", + " 'name': 'phenoarch',\n", + " 'organizations': [],\n", + " 'sites': [],\n", + " 'address': None,\n", + " 'variableGroups': [],\n", + " 'geometry': None,\n", + " 'relations': []}," + ] + }, { "cell_type": "markdown", "id": "501d0584-f961-418e-98a9-d8c59157a8c4", @@ -1128,17 +1173,17 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 12, "id": "04fe01d1-8cf8-406f-8760-ce13b9ad971d", "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "{'metadata': {'pagination': {'pageSize': 20,\n", + "{'metadata': {'pagination': {'pageSize': 100,\n", " 'currentPage': 0,\n", " 'totalCount': 1239,\n", - " 'totalPages': 62,\n", + " 'totalPages': 13,\n", " 'limitCount': 0,\n", " 'hasNextPage': True},\n", " 'status': [],\n", @@ -1322,989 +1367,3467 @@ " 'species_name': 'maize',\n", " 'publisher': None,\n", " 'publication_date': None,\n", - " 'last_updated_date': None}]}" - ] - }, - "execution_count": 11, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "phis.get_germplasm(token=token)" - ] - }, - { - "cell_type": "markdown", - "id": "47d512bf-6e4c-4a05-acde-2669f4b9921b", - "metadata": {}, - "source": [ - "#### Get specific germplasm with URI" - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "id": "f41c781e-6f93-427b-96bc-e273fa939d72", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "{'metadata': {'pagination': {'pageSize': 0,\n", - " 'currentPage': 0,\n", - " 'totalCount': 0,\n", - " 'totalPages': 0,\n", - " 'limitCount': 0,\n", - " 'hasNextPage': False},\n", - " 'status': [],\n", - " 'datafiles': []},\n", - " 'result': {'uri': 'http://aims.fao.org/aos/agrovoc/c_1066',\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None,\n", - " 'rdf_type': 'vocabulary:Species',\n", - " 'rdf_type_name': 'Species',\n", - " 'name': 'colza',\n", - " 'synonyms': [],\n", - " 'code': None,\n", - " 'production_year': None,\n", - " 'description': None,\n", - " 'species': None,\n", - " 'species_name': None,\n", - " 'variety': None,\n", - " 'variety_name': None,\n", - " 'accession': None,\n", - " 'accession_name': None,\n", - " 'institute': None,\n", - " 'website': None,\n", - " 'has_parent_germplasm': None,\n", - " 'has_parent_germplasm_m': None,\n", - " 'has_parent_germplasm_f': None,\n", - " 'metadata': None}}" - ] - }, - "execution_count": 12, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "phis.get_germplasm(uri='http://aims.fao.org/aos/agrovoc/c_1066', token=token)" - ] - }, - { - "cell_type": "markdown", - "id": "abe6ba29-c8ec-4f05-93c8-a043df7f4a30", - "metadata": {}, - "source": [ - "#### List available devices" - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "id": "3bc8180f-a5f0-4d91-a927-61dcfdf834d5", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "{'metadata': {'pagination': {'pageSize': 20,\n", - " 'currentPage': 0,\n", - " 'totalCount': 339,\n", - " 'totalPages': 17,\n", - " 'limitCount': 0,\n", - " 'hasNextPage': True},\n", - " 'status': [],\n", - " 'datafiles': []},\n", - " 'result': [{'uri': 'http://www.phenome-fppn.fr/m3p/ec1/2016/sa1600064',\n", - " 'rdf_type': 'vocabulary:CO2Sensor',\n", - " 'rdf_type_name': 'CO2 sensor',\n", - " 'name': 'aria_co2_cE1',\n", - " 'brand': 'ARIA',\n", - " 'constructor_model': None,\n", - " 'serial_number': None,\n", - " 'person_in_charge': None,\n", - " 'start_up': '2011-05-01',\n", - " 'removal': None,\n", - " 'relations': [{'property': 'vocabulary:measures',\n", - " 'value': 'm3p:id/variable/ev000024',\n", - " 'inverse': False}],\n", - " 'description': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'http://phenome.inrae.fr/m3p/id/germplasm/variety.7g20',\n", + " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Variety',\n", + " 'rdf_type_name': 'Variety',\n", + " 'name': '7G20',\n", + " 'species': 'http://aims.fao.org/aos/agrovoc/c_8283',\n", + " 'species_name': 'grapevine',\n", " 'publisher': None,\n", " 'publication_date': None,\n", " 'last_updated_date': None},\n", - " {'uri': 'http://www.phenome-fppn.fr/m3p/ec2/2016/sa1600073',\n", - " 'rdf_type': 'vocabulary:CO2Sensor',\n", - " 'rdf_type_name': 'CO2 sensor',\n", - " 'name': 'aria_co2_cE2',\n", - " 'brand': 'ARIA',\n", - " 'constructor_model': None,\n", - " 'serial_number': None,\n", - " 'person_in_charge': None,\n", - " 'start_up': '2011-05-01',\n", - " 'removal': None,\n", - " 'relations': [{'property': 'vocabulary:measures',\n", - " 'value': 'm3p:id/variable/ev000024',\n", - " 'inverse': False}],\n", - " 'description': None,\n", + " {'uri': 'http://phenome.inrae.fr/m3p/id/germplasm/variety.7g31',\n", + " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Variety',\n", + " 'rdf_type_name': 'Variety',\n", + " 'name': '7G31',\n", + " 'species': 'http://aims.fao.org/aos/agrovoc/c_8283',\n", + " 'species_name': 'grapevine',\n", " 'publisher': None,\n", " 'publication_date': None,\n", " 'last_updated_date': None},\n", - " {'uri': 'http://www.phenome-fppn.fr/m3p/arch/2016/sa1600057',\n", - " 'rdf_type': 'vocabulary:CO2Sensor',\n", - " 'rdf_type_name': 'CO2 sensor',\n", - " 'name': 'aria_co2_p',\n", - " 'brand': 'ARIA',\n", - " 'constructor_model': None,\n", - " 'serial_number': None,\n", - " 'person_in_charge': None,\n", - " 'start_up': '2011-05-01',\n", - " 'removal': None,\n", - " 'relations': [{'property': 'vocabulary:measures',\n", - " 'value': 'm3p:id/variable/ev000024',\n", - " 'inverse': False}],\n", - " 'description': None,\n", + " {'uri': 'http://phenome.inrae.fr/m3p/id/germplasm/variety.7g39',\n", + " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Variety',\n", + " 'rdf_type_name': 'Variety',\n", + " 'name': '7G39',\n", + " 'species': 'http://aims.fao.org/aos/agrovoc/c_8283',\n", + " 'species_name': 'grapevine',\n", " 'publisher': None,\n", " 'publication_date': None,\n", " 'last_updated_date': None},\n", - " {'uri': 'http://www.phenome-fppn.fr/m3p/eo/2016/sa1600005',\n", - " 'rdf_type': 'vocabulary:CupAnemometer',\n", - " 'rdf_type_name': 'cup anemometer',\n", - " 'name': 'aria_directionVent_ext',\n", - " 'brand': 'ARIA',\n", - " 'constructor_model': None,\n", - " 'serial_number': None,\n", - " 'person_in_charge': None,\n", - " 'start_up': '2011-05-01',\n", - " 'removal': None,\n", - " 'relations': [],\n", - " 'description': None,\n", + " {'uri': 'http://phenome.inrae.fr/m3p/id/germplasm/variety.affenth',\n", + " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Variety',\n", + " 'rdf_type_name': 'Variety',\n", + " 'name': 'Affenth',\n", + " 'species': 'http://aims.fao.org/aos/agrovoc/c_8283',\n", + " 'species_name': 'grapevine',\n", " 'publisher': None,\n", " 'publication_date': None,\n", " 'last_updated_date': None},\n", - " {'uri': 'http://www.phenome-fppn.fr/m3p/arch/2016/sa1600051',\n", - " 'rdf_type': 'vocabulary:Lightning',\n", - " 'rdf_type_name': 'lightning',\n", - " 'name': 'aria_eclairage1_p',\n", - " 'brand': None,\n", - " 'constructor_model': 'ARIA',\n", - " 'serial_number': None,\n", - " 'person_in_charge': None,\n", - " 'start_up': None,\n", - " 'removal': None,\n", - " 'relations': [{'property': 'vocabulary:measures',\n", - " 'value': 'm3p:id/variable/greenhouse_lightning_setpoint_boolean',\n", - " 'inverse': False}],\n", - " 'description': None,\n", + " {'uri': 'http://phenome.inrae.fr/m3p/id/germplasm/variety.alexandroouli',\n", + " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Variety',\n", + " 'rdf_type_name': 'Variety',\n", + " 'name': 'Alexandroouli',\n", + " 'species': 'http://aims.fao.org/aos/agrovoc/c_8283',\n", + " 'species_name': 'grapevine',\n", " 'publisher': None,\n", " 'publication_date': None,\n", " 'last_updated_date': None},\n", - " {'uri': 'http://www.phenome-fppn.fr/m3p/dyn/2016/sa1600026',\n", - " 'rdf_type': 'vocabulary:Lightning',\n", - " 'rdf_type_name': 'lightning',\n", - " 'name': 'aria_eclairage1_s1',\n", - " 'brand': None,\n", - " 'constructor_model': 'ARIA',\n", - " 'serial_number': None,\n", - " 'person_in_charge': None,\n", - " 'start_up': None,\n", - " 'removal': None,\n", - " 'relations': [{'property': 'vocabulary:measures',\n", - " 'value': 'm3p:id/variable/greenhouse_lightning_setpoint_boolean',\n", - " 'inverse': False}],\n", - " 'description': None,\n", + " {'uri': 'http://phenome.inrae.fr/m3p/id/germplasm/variety.ANTIGP1_SSD03',\n", + " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Variety',\n", + " 'rdf_type_name': 'Variety',\n", + " 'name': 'ANTIGP1_SSD03',\n", + " 'species': 'http://aims.fao.org/aos/agrovoc/c_8504',\n", + " 'species_name': 'maize',\n", " 'publisher': None,\n", " 'publication_date': None,\n", " 'last_updated_date': None},\n", - " {'uri': 'http://www.phenome-fppn.fr/m3p/arch/2016/sa1600052',\n", - " 'rdf_type': 'vocabulary:Lightning',\n", - " 'rdf_type_name': 'lightning',\n", - " 'name': 'aria_eclairage2_p',\n", - " 'brand': None,\n", - " 'constructor_model': 'ARIA',\n", - " 'serial_number': None,\n", - " 'person_in_charge': None,\n", - " 'start_up': None,\n", - " 'removal': None,\n", - " 'relations': [{'property': 'vocabulary:measures',\n", - " 'value': 'm3p:id/variable/greenhouse_lightning_setpoint_boolean',\n", - " 'inverse': False}],\n", - " 'description': None,\n", + " {'uri': 'http://phenome.inrae.fr/m3p/id/germplasm/accesion.ANTIGP1_SSD03_inrae',\n", + " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Accession',\n", + " 'rdf_type_name': 'Accession',\n", + " 'name': 'ANTIGP1_SSD03_inrae',\n", + " 'species': 'http://aims.fao.org/aos/agrovoc/c_8504',\n", + " 'species_name': 'maize',\n", " 'publisher': None,\n", " 'publication_date': None,\n", " 'last_updated_date': None},\n", - " {'uri': 'http://www.phenome-fppn.fr/m3p/dyn/2016/sa1600027',\n", - " 'rdf_type': 'vocabulary:Lightning',\n", - " 'rdf_type_name': 'lightning',\n", - " 'name': 'aria_eclairage2_s1',\n", - " 'brand': None,\n", - " 'constructor_model': 'ARIA',\n", - " 'serial_number': None,\n", - " 'person_in_charge': None,\n", - " 'start_up': None,\n", - " 'removal': None,\n", - " 'relations': [{'property': 'vocabulary:measures',\n", - " 'value': 'm3p:id/variable/greenhouse_lightning_setpoint_boolean',\n", - " 'inverse': False}],\n", - " 'description': None,\n", + " {'uri': 'http://phenome.inrae.fr/m3p/id/germplasm/variety.ANTIGP2_HD201',\n", + " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Variety',\n", + " 'rdf_type_name': 'Variety',\n", + " 'name': 'ANTIGP2_HD201',\n", + " 'species': 'http://aims.fao.org/aos/agrovoc/c_8504',\n", + " 'species_name': 'maize',\n", " 'publisher': None,\n", " 'publication_date': None,\n", " 'last_updated_date': None},\n", - " {'uri': 'http://www.phenome-fppn.fr/m3p/arch/2016/sa1600053',\n", - " 'rdf_type': 'vocabulary:Lightning',\n", - " 'rdf_type_name': 'lightning',\n", - " 'name': 'aria_eclairage3_p',\n", - " 'brand': None,\n", - " 'constructor_model': 'ARIA',\n", - " 'serial_number': None,\n", - " 'person_in_charge': None,\n", - " 'start_up': None,\n", - " 'removal': None,\n", - " 'relations': [{'property': 'vocabulary:measures',\n", - " 'value': 'm3p:id/variable/greenhouse_lightning_setpoint_boolean',\n", - " 'inverse': False}],\n", - " 'description': None,\n", + " {'uri': 'http://phenome.inrae.fr/m3p/id/germplasm/accesion.ANTIGP2_HD201_inrae',\n", + " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Accession',\n", + " 'rdf_type_name': 'Accession',\n", + " 'name': 'ANTIGP2_HD201_inrae',\n", + " 'species': 'http://aims.fao.org/aos/agrovoc/c_8504',\n", + " 'species_name': 'maize',\n", " 'publisher': None,\n", " 'publication_date': None,\n", " 'last_updated_date': None},\n", - " {'uri': 'http://www.phenome-fppn.fr/m3p/dyn/2016/sa1600028',\n", - " 'rdf_type': 'vocabulary:Lightning',\n", - " 'rdf_type_name': 'lightning',\n", - " 'name': 'aria_eclairage3_s1',\n", - " 'brand': None,\n", - " 'constructor_model': 'ARIA',\n", - " 'serial_number': None,\n", - " 'person_in_charge': None,\n", - " 'start_up': None,\n", - " 'removal': None,\n", - " 'relations': [{'property': 'vocabulary:measures',\n", - " 'value': 'm3p:id/variable/greenhouse_lightning_setpoint_boolean',\n", - " 'inverse': False}],\n", - " 'description': None,\n", + " {'uri': 'http://phenome.inrae.fr/m3p/id/germplasm/variety.ANTIGP2_SSD01',\n", + " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Variety',\n", + " 'rdf_type_name': 'Variety',\n", + " 'name': 'ANTIGP2_SSD01',\n", + " 'species': 'http://aims.fao.org/aos/agrovoc/c_8504',\n", + " 'species_name': 'maize',\n", " 'publisher': None,\n", " 'publication_date': None,\n", " 'last_updated_date': None},\n", - " {'uri': 'http://www.phenome-fppn.fr/m3p/dyn/2016/sa1600029',\n", - " 'rdf_type': 'vocabulary:Lightning',\n", - " 'rdf_type_name': 'lightning',\n", - " 'name': 'aria_eclairage4_s1',\n", - " 'brand': None,\n", - " 'constructor_model': 'ARIA',\n", - " 'serial_number': None,\n", - " 'person_in_charge': None,\n", - " 'start_up': None,\n", - " 'removal': None,\n", - " 'relations': [{'property': 'vocabulary:measures',\n", - " 'value': 'm3p:id/variable/greenhouse_lightning_setpoint_boolean',\n", - " 'inverse': False}],\n", - " 'description': None,\n", + " {'uri': 'http://phenome.inrae.fr/m3p/id/germplasm/accesion.ANTIGP2_SSD01_inrae',\n", + " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Accession',\n", + " 'rdf_type_name': 'Accession',\n", + " 'name': 'ANTIGP2_SSD01_inrae',\n", + " 'species': 'http://aims.fao.org/aos/agrovoc/c_8504',\n", + " 'species_name': 'maize',\n", " 'publisher': None,\n", " 'publication_date': None,\n", " 'last_updated_date': None},\n", - " {'uri': 'http://www.phenome-fppn.fr/m3p/dyn/2016/sa1600030',\n", - " 'rdf_type': 'vocabulary:Lightning',\n", - " 'rdf_type_name': 'lightning',\n", - " 'name': 'aria_eclairage5_s1',\n", - " 'brand': None,\n", - " 'constructor_model': 'ARIA',\n", - " 'serial_number': None,\n", - " 'person_in_charge': None,\n", - " 'start_up': None,\n", - " 'removal': None,\n", - " 'relations': [{'property': 'vocabulary:measures',\n", - " 'value': 'm3p:id/variable/greenhouse_lightning_setpoint_boolean',\n", - " 'inverse': False}],\n", - " 'description': None,\n", + " {'uri': 'http://phenome.inrae.fr/m3p/id/germplasm/variety.APUC140_SSD01',\n", + " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Variety',\n", + " 'rdf_type_name': 'Variety',\n", + " 'name': 'APUC140_SSD01',\n", + " 'species': 'http://aims.fao.org/aos/agrovoc/c_8504',\n", + " 'species_name': 'maize',\n", " 'publisher': None,\n", " 'publication_date': None,\n", " 'last_updated_date': None},\n", - " {'uri': 'http://www.phenome-fppn.fr/m3p/dyn/2016/sa1600031',\n", - " 'rdf_type': 'vocabulary:Lightning',\n", - " 'rdf_type_name': 'lightning',\n", - " 'name': 'aria_eclairage6_s1',\n", - " 'brand': None,\n", - " 'constructor_model': 'ARIA',\n", - " 'serial_number': None,\n", - " 'person_in_charge': None,\n", - " 'start_up': None,\n", - " 'removal': None,\n", - " 'relations': [{'property': 'vocabulary:measures',\n", - " 'value': 'm3p:id/variable/greenhouse_lightning_setpoint_boolean',\n", - " 'inverse': False}],\n", - " 'description': None,\n", + " {'uri': 'http://phenome.inrae.fr/m3p/id/germplasm/accesion.APUC140_SSD01_inrae',\n", + " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Accession',\n", + " 'rdf_type_name': 'Accession',\n", + " 'name': 'APUC140_SSD01_inrae',\n", + " 'species': 'http://aims.fao.org/aos/agrovoc/c_8504',\n", + " 'species_name': 'maize',\n", " 'publisher': None,\n", " 'publication_date': None,\n", " 'last_updated_date': None},\n", - " {'uri': 'http://www.phenome-fppn.fr/m3p/arch/2016/sa1600048',\n", - " 'rdf_type': 'vocabulary:Shadows',\n", - " 'rdf_type_name': 'shadows',\n", - " 'name': 'aria_ecranBardage1_p',\n", - " 'brand': None,\n", - " 'constructor_model': 'ARIA',\n", - " 'serial_number': None,\n", - " 'person_in_charge': None,\n", - " 'start_up': None,\n", - " 'removal': None,\n", - " 'relations': [{'property': 'vocabulary:measures',\n", - " 'value': 'm3p:id/variable/greenhouse_shading_setpoint_boolean',\n", - " 'inverse': False}],\n", - " 'description': None,\n", + " {'uri': 'http://phenome.inrae.fr/m3p/id/germplasm/variety.APUC171_SSD01',\n", + " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Variety',\n", + " 'rdf_type_name': 'Variety',\n", + " 'name': 'APUC171_SSD01',\n", + " 'species': 'http://aims.fao.org/aos/agrovoc/c_8504',\n", + " 'species_name': 'maize',\n", " 'publisher': None,\n", " 'publication_date': None,\n", " 'last_updated_date': None},\n", - " {'uri': 'http://www.phenome-fppn.fr/m3p/dyn/2016/sa1600023',\n", - " 'rdf_type': 'vocabulary:Shadows',\n", - " 'rdf_type_name': 'shadows',\n", - " 'name': 'aria_ecranBardage1_s1',\n", - " 'brand': None,\n", - " 'constructor_model': 'ARIA',\n", - " 'serial_number': None,\n", - " 'person_in_charge': None,\n", - " 'start_up': None,\n", - " 'removal': None,\n", - " 'relations': [{'property': 'vocabulary:measures',\n", - " 'value': 'm3p:id/variable/greenhouse_shading_setpoint_boolean',\n", - " 'inverse': False}],\n", - " 'description': None,\n", + " {'uri': 'http://phenome.inrae.fr/m3p/id/germplasm/accesion.APUC171_SSD01_inrae',\n", + " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Accession',\n", + " 'rdf_type_name': 'Accession',\n", + " 'name': 'APUC171_SSD01_inrae',\n", + " 'species': 'http://aims.fao.org/aos/agrovoc/c_8504',\n", + " 'species_name': 'maize',\n", " 'publisher': None,\n", " 'publication_date': None,\n", " 'last_updated_date': None},\n", - " {'uri': 'http://www.phenome-fppn.fr/m3p/arch/2016/sa1600049',\n", - " 'rdf_type': 'vocabulary:Shadows',\n", - " 'rdf_type_name': 'shadows',\n", - " 'name': 'aria_ecranBardage2_p',\n", - " 'brand': None,\n", - " 'constructor_model': 'ARIA',\n", - " 'serial_number': None,\n", - " 'person_in_charge': None,\n", - " 'start_up': None,\n", - " 'removal': None,\n", - " 'relations': [{'property': 'vocabulary:measures',\n", - " 'value': 'm3p:id/variable/greenhouse_shading_setpoint_boolean',\n", - " 'inverse': False}],\n", - " 'description': None,\n", + " {'uri': 'http://phenome.inrae.fr/m3p/id/germplasm/variety.arbane',\n", + " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Variety',\n", + " 'rdf_type_name': 'Variety',\n", + " 'name': 'Arbane',\n", + " 'species': 'http://aims.fao.org/aos/agrovoc/c_8283',\n", + " 'species_name': 'grapevine',\n", " 'publisher': None,\n", " 'publication_date': None,\n", " 'last_updated_date': None},\n", - " {'uri': 'http://www.phenome-fppn.fr/m3p/dyn/2016/sa1600024',\n", - " 'rdf_type': 'vocabulary:Shadows',\n", - " 'rdf_type_name': 'shadows',\n", - " 'name': 'aria_ecranBardage2_s1',\n", - " 'brand': None,\n", - " 'constructor_model': 'ARIA',\n", - " 'serial_number': None,\n", - " 'person_in_charge': None,\n", - " 'start_up': None,\n", - " 'removal': None,\n", - " 'relations': [{'property': 'vocabulary:measures',\n", - " 'value': 'm3p:id/variable/greenhouse_shading_setpoint_boolean',\n", - " 'inverse': False}],\n", - " 'description': None,\n", + " {'uri': 'http://phenome.inrae.fr/m3p/id/germplasm/variety.ATPS425W',\n", + " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Variety',\n", + " 'rdf_type_name': 'Variety',\n", + " 'name': 'ATPS425W',\n", + " 'species': 'http://aims.fao.org/aos/agrovoc/c_8504',\n", + " 'species_name': 'maize',\n", " 'publisher': None,\n", " 'publication_date': None,\n", " 'last_updated_date': None},\n", - " {'uri': 'http://www.phenome-fppn.fr/m3p/arch/2016/sa1600047',\n", - " 'rdf_type': 'vocabulary:Shadows',\n", - " 'rdf_type_name': 'shadows',\n", - " 'name': 'aria_ecranPignon_p',\n", - " 'brand': None,\n", - " 'constructor_model': 'ARIA',\n", - " 'serial_number': None,\n", - " 'person_in_charge': None,\n", - " 'start_up': None,\n", - " 'removal': None,\n", - " 'relations': [{'property': 'vocabulary:measures',\n", - " 'value': 'm3p:id/variable/greenhouse_shading_setpoint_boolean',\n", - " 'inverse': False}],\n", - " 'description': None,\n", + " {'uri': 'http://phenome.inrae.fr/m3p/id/germplasm/accesion.ATPS425W_inrae',\n", + " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Accession',\n", + " 'rdf_type_name': 'Accession',\n", + " 'name': 'ATPS425W_inrae',\n", + " 'species': 'http://aims.fao.org/aos/agrovoc/c_8504',\n", + " 'species_name': 'maize',\n", " 'publisher': None,\n", " 'publication_date': None,\n", " 'last_updated_date': None},\n", - " {'uri': 'http://www.phenome-fppn.fr/m3p/dyn/2016/sa1600022',\n", - " 'rdf_type': 'vocabulary:Shadows',\n", - " 'rdf_type_name': 'shadows',\n", - " 'name': 'aria_ecranPignon_s1',\n", - " 'brand': None,\n", - " 'constructor_model': 'ARIA',\n", - " 'serial_number': None,\n", - " 'person_in_charge': None,\n", - " 'start_up': None,\n", - " 'removal': None,\n", - " 'relations': [{'property': 'vocabulary:measures',\n", - " 'value': 'm3p:id/variable/greenhouse_shading_setpoint_boolean',\n", - " 'inverse': False}],\n", - " 'description': None,\n", + " {'uri': 'http://phenome.inrae.fr/m3p/id/germplasm/variety.B104',\n", + " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Variety',\n", + " 'rdf_type_name': 'Variety',\n", + " 'name': 'B104',\n", + " 'species': 'http://aims.fao.org/aos/agrovoc/c_8504',\n", + " 'species_name': 'maize',\n", " 'publisher': None,\n", " 'publication_date': None,\n", " 'last_updated_date': None},\n", - " {'uri': 'http://www.phenome-fppn.fr/m3p/arch/2016/sa1600046',\n", - " 'rdf_type': 'vocabulary:Shadows',\n", - " 'rdf_type_name': 'shadows',\n", - " 'name': 'aria_ecranPlan_p',\n", - " 'brand': None,\n", - " 'constructor_model': 'ARIA',\n", - " 'serial_number': None,\n", - " 'person_in_charge': None,\n", - " 'start_up': None,\n", - " 'removal': None,\n", - " 'relations': [{'property': 'vocabulary:measures',\n", - " 'value': 'm3p:id/variable/greenhouse_shading_setpoint_boolean',\n", - " 'inverse': False}],\n", - " 'description': None,\n", + " {'uri': 'http://phenome.inrae.fr/m3p/id/germplasm/accesion.B104_inrae',\n", + " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Accession',\n", + " 'rdf_type_name': 'Accession',\n", + " 'name': 'B104_inrae',\n", + " 'species': 'http://aims.fao.org/aos/agrovoc/c_8504',\n", + " 'species_name': 'maize',\n", " 'publisher': None,\n", " 'publication_date': None,\n", - " 'last_updated_date': None}]}" - ] - }, - "execution_count": 13, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "phis.get_device(token=token)" - ] - }, - { - "cell_type": "markdown", - "id": "77df9f4e-91c0-44c4-b932-042ea2cdbb39", - "metadata": {}, - "source": [ - "#### Get specific device with URI" - ] - }, - { - "cell_type": "code", - "execution_count": 14, - "id": "e8193235-e5ac-4186-906f-b0d3f3a7808b", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "{'metadata': {'pagination': {'pageSize': 0,\n", - " 'currentPage': 0,\n", - " 'totalCount': 0,\n", - " 'totalPages': 0,\n", - " 'limitCount': 0,\n", - " 'hasNextPage': False},\n", - " 'status': [],\n", - " 'datafiles': []},\n", - " 'result': {'uri': 'http://www.phenome-fppn.fr/m3p/ec1/2016/sa1600064',\n", - " 'rdf_type': 'vocabulary:CO2Sensor',\n", - " 'rdf_type_name': 'CO2 sensor',\n", - " 'name': 'aria_co2_cE1',\n", - " 'brand': 'ARIA',\n", - " 'constructor_model': None,\n", - " 'serial_number': None,\n", - " 'person_in_charge': None,\n", - " 'start_up': '2011-05-01',\n", - " 'removal': None,\n", - " 'relations': [{'property': 'vocabulary:measures',\n", - " 'value': 'm3p:id/variable/ev000024',\n", - " 'inverse': False}],\n", - " 'description': None,\n", - " 'metadata': None,\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None}}" - ] - }, - "execution_count": 14, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "phis.get_device(uri='http://www.phenome-fppn.fr/m3p/ec1/2016/sa1600064', token=token)" - ] - }, - { - "cell_type": "markdown", - "id": "f6b0d09c-5566-4718-8832-17d837d7b74b", - "metadata": {}, - "source": [ - "#### List available annotations" - ] - }, - { - "cell_type": "code", - "execution_count": 15, - "id": "6c4fbe53-45ef-4679-ace1-9c7d21733552", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "{'metadata': {'pagination': {'pageSize': 20,\n", - " 'currentPage': 0,\n", - " 'totalCount': 0,\n", - " 'totalPages': 0,\n", - " 'limitCount': 0,\n", - " 'hasNextPage': False},\n", - " 'status': [],\n", - " 'datafiles': []},\n", - " 'result': []}" - ] - }, - "execution_count": 15, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "phis.get_annotation(token=token)" - ] - }, - { - "cell_type": "markdown", - "id": "c24cf5a9-0382-41c3-8902-6c8b2be47e80", - "metadata": {}, - "source": [ - "#### Get specific annotation with URI" - ] - }, - { - "cell_type": "code", - "execution_count": 16, - "id": "ec7ab620-d520-49fe-9646-eecea5ca84fe", - "metadata": {}, - "outputs": [], - "source": [ - "# No URIs" - ] - }, - { - "cell_type": "markdown", - "id": "9dcb9c9b-4c69-43e9-a656-21ac67348377", - "metadata": {}, - "source": [ - "#### List available documents" - ] - }, - { - "cell_type": "code", - "execution_count": 17, - "id": "26b13101-bad6-4767-8cc5-2df08ec12399", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "{'metadata': {'pagination': {'pageSize': 20,\n", - " 'currentPage': 0,\n", - " 'totalCount': 3,\n", - " 'totalPages': 1,\n", - " 'limitCount': 0,\n", - " 'hasNextPage': True},\n", - " 'status': [],\n", - " 'datafiles': []},\n", - " 'result': [{'uri': 'm3p:id/document/test_isa_doc_post_deploy',\n", + " 'last_updated_date': None},\n", + " {'uri': 'http://phenome.inrae.fr/m3p/id/germplasm/variety.B107',\n", + " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Variety',\n", + " 'rdf_type_name': 'Variety',\n", + " 'name': 'B107',\n", + " 'species': 'http://aims.fao.org/aos/agrovoc/c_8504',\n", + " 'species_name': 'maize',\n", " 'publisher': None,\n", " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'http://phenome.inrae.fr/m3p/id/germplasm/accesion.B107_inrae',\n", + " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Accession',\n", + " 'rdf_type_name': 'Accession',\n", + " 'name': 'B107_inrae',\n", + " 'species': 'http://aims.fao.org/aos/agrovoc/c_8504',\n", + " 'species_name': 'maize',\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'http://phenome.inrae.fr/m3p/id/germplasm/variety.B14a',\n", + " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Variety',\n", + " 'rdf_type_name': 'Variety',\n", + " 'name': 'B14a',\n", + " 'species': 'http://aims.fao.org/aos/agrovoc/c_8504',\n", + " 'species_name': 'maize',\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'http://phenome.inrae.fr/m3p/id/germplasm/accesion.B14a_inrae',\n", + " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Accession',\n", + " 'rdf_type_name': 'Accession',\n", + " 'name': 'B14a_inrae',\n", + " 'species': 'http://aims.fao.org/aos/agrovoc/c_8504',\n", + " 'species_name': 'maize',\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'http://phenome.inrae.fr/m3p/id/germplasm/variety.B37',\n", + " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Variety',\n", + " 'rdf_type_name': 'Variety',\n", + " 'name': 'B37',\n", + " 'species': 'http://aims.fao.org/aos/agrovoc/c_8504',\n", + " 'species_name': 'maize',\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'http://phenome.inrae.fr/m3p/id/germplasm/accesion.B37_inrae',\n", + " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Accession',\n", + " 'rdf_type_name': 'Accession',\n", + " 'name': 'B37_inrae',\n", + " 'species': 'http://aims.fao.org/aos/agrovoc/c_8504',\n", + " 'species_name': 'maize',\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'http://phenome.inrae.fr/m3p/id/germplasm/variety.B73',\n", + " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Variety',\n", + " 'rdf_type_name': 'Variety',\n", + " 'name': 'B73',\n", + " 'species': 'http://aims.fao.org/aos/agrovoc/c_8504',\n", + " 'species_name': 'maize',\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'http://phenome.inrae.fr/m3p/id/germplasm/accesion.B73_inrae',\n", + " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Accession',\n", + " 'rdf_type_name': 'Accession',\n", + " 'name': 'B73_inrae',\n", + " 'species': 'http://aims.fao.org/aos/agrovoc/c_8504',\n", + " 'species_name': 'maize',\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'http://phenome.inrae.fr/m3p/id/germplasm/variety.B73_inrae',\n", + " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Variety',\n", + " 'rdf_type_name': 'Variety',\n", + " 'name': 'B73_inrae',\n", + " 'species': 'http://aims.fao.org/aos/agrovoc/c_8504',\n", + " 'species_name': 'maize',\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'http://phenome.inrae.fr/m3p/id/germplasm/variety.BA90',\n", + " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Variety',\n", + " 'rdf_type_name': 'Variety',\n", + " 'name': 'BA90',\n", + " 'species': 'http://aims.fao.org/aos/agrovoc/c_8504',\n", + " 'species_name': 'maize',\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'http://phenome.inrae.fr/m3p/id/germplasm/accesion.BA90_inrae',\n", + " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Accession',\n", + " 'rdf_type_name': 'Accession',\n", + " 'name': 'BA90_inrae',\n", + " 'species': 'http://aims.fao.org/aos/agrovoc/c_8504',\n", + " 'species_name': 'maize',\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'http://phenome.inrae.fr/m3p/id/germplasm/variety.BOLI711_SSD01',\n", + " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Variety',\n", + " 'rdf_type_name': 'Variety',\n", + " 'name': 'BOLI711_SSD01',\n", + " 'species': 'http://aims.fao.org/aos/agrovoc/c_8504',\n", + " 'species_name': 'maize',\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'http://phenome.inrae.fr/m3p/id/germplasm/accesion.BOLI711_SSD01_inrae',\n", + " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Accession',\n", + " 'rdf_type_name': 'Accession',\n", + " 'name': 'BOLI711_SSD01_inrae',\n", + " 'species': 'http://aims.fao.org/aos/agrovoc/c_8504',\n", + " 'species_name': 'maize',\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'http://phenome.inrae.fr/m3p/id/germplasm/variety.BOLI905_SSD03',\n", + " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Variety',\n", + " 'rdf_type_name': 'Variety',\n", + " 'name': 'BOLI905_SSD03',\n", + " 'species': 'http://aims.fao.org/aos/agrovoc/c_8504',\n", + " 'species_name': 'maize',\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'http://phenome.inrae.fr/m3p/id/germplasm/accesion.BOLI905_SSD03_inrae',\n", + " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Accession',\n", + " 'rdf_type_name': 'Accession',\n", + " 'name': 'BOLI905_SSD03_inrae',\n", + " 'species': 'http://aims.fao.org/aos/agrovoc/c_8504',\n", + " 'species_name': 'maize',\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'http://phenome.inrae.fr/m3p/id/germplasm/variety.BOZM0214_SSD01',\n", + " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Variety',\n", + " 'rdf_type_name': 'Variety',\n", + " 'name': 'BOZM0214_SSD01',\n", + " 'species': 'http://aims.fao.org/aos/agrovoc/c_8504',\n", + " 'species_name': 'maize',\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'http://phenome.inrae.fr/m3p/id/germplasm/accesion.BOZM0214_SSD01_inrae',\n", + " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Accession',\n", + " 'rdf_type_name': 'Accession',\n", + " 'name': 'BOZM0214_SSD01_inrae',\n", + " 'species': 'http://aims.fao.org/aos/agrovoc/c_8504',\n", + " 'species_name': 'maize',\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'http://phenome.inrae.fr/m3p/id/germplasm/variety.BRVI104_HD128',\n", + " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Variety',\n", + " 'rdf_type_name': 'Variety',\n", + " 'name': 'BRVI104_HD128',\n", + " 'species': 'http://aims.fao.org/aos/agrovoc/c_8504',\n", + " 'species_name': 'maize',\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'http://phenome.inrae.fr/m3p/id/germplasm/accesion.BRVI104_HD128_inrae',\n", + " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Accession',\n", + " 'rdf_type_name': 'Accession',\n", + " 'name': 'BRVI104_HD128_inrae',\n", + " 'species': 'http://aims.fao.org/aos/agrovoc/c_8504',\n", + " 'species_name': 'maize',\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'http://phenome.inrae.fr/m3p/id/germplasm/variety.BRVI117_SSD01',\n", + " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Variety',\n", + " 'rdf_type_name': 'Variety',\n", + " 'name': 'BRVI117_SSD01',\n", + " 'species': 'http://aims.fao.org/aos/agrovoc/c_8504',\n", + " 'species_name': 'maize',\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'http://phenome.inrae.fr/m3p/id/germplasm/accesion.BRVI117_SSD01_inrae',\n", + " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Accession',\n", + " 'rdf_type_name': 'Accession',\n", + " 'name': 'BRVI117_SSD01_inrae',\n", + " 'species': 'http://aims.fao.org/aos/agrovoc/c_8504',\n", + " 'species_name': 'maize',\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'http://phenome.inrae.fr/m3p/id/germplasm/variety.BRVI139_SSD01',\n", + " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Variety',\n", + " 'rdf_type_name': 'Variety',\n", + " 'name': 'BRVI139_SSD01',\n", + " 'species': 'http://aims.fao.org/aos/agrovoc/c_8504',\n", + " 'species_name': 'maize',\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'http://phenome.inrae.fr/m3p/id/germplasm/accesion.BRVI139_SSD01_inrae',\n", + " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Accession',\n", + " 'rdf_type_name': 'Accession',\n", + " 'name': 'BRVI139_SSD01_inrae',\n", + " 'species': 'http://aims.fao.org/aos/agrovoc/c_8504',\n", + " 'species_name': 'maize',\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'http://phenome.inrae.fr/m3p/id/germplasm/variety.BRVI142_HD105',\n", + " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Variety',\n", + " 'rdf_type_name': 'Variety',\n", + " 'name': 'BRVI142_HD105',\n", + " 'species': 'http://aims.fao.org/aos/agrovoc/c_8504',\n", + " 'species_name': 'maize',\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'http://phenome.inrae.fr/m3p/id/germplasm/accesion.BRVI142_HD105_inrae',\n", + " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Accession',\n", + " 'rdf_type_name': 'Accession',\n", + " 'name': 'BRVI142_HD105_inrae',\n", + " 'species': 'http://aims.fao.org/aos/agrovoc/c_8504',\n", + " 'species_name': 'maize',\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'http://phenome.inrae.fr/m3p/id/germplasm/variety.CAL14113',\n", + " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Variety',\n", + " 'rdf_type_name': 'Variety',\n", + " 'name': 'CAL14113',\n", + " 'species': 'http://aims.fao.org/aos/agrovoc/c_8504',\n", + " 'species_name': 'maize',\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'http://phenome.inrae.fr/m3p/id/germplasm/accesion.CAL14113_cim',\n", + " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Accession',\n", + " 'rdf_type_name': 'Accession',\n", + " 'name': 'CAL14113_cim',\n", + " 'species': 'http://aims.fao.org/aos/agrovoc/c_8504',\n", + " 'species_name': 'maize',\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'http://phenome.inrae.fr/m3p/id/germplasm/variety.CAL14138',\n", + " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Variety',\n", + " 'rdf_type_name': 'Variety',\n", + " 'name': 'CAL14138',\n", + " 'species': 'http://aims.fao.org/aos/agrovoc/c_8504',\n", + " 'species_name': 'maize',\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'http://phenome.inrae.fr/m3p/id/germplasm/accesion.CAL14138_cim',\n", + " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Accession',\n", + " 'rdf_type_name': 'Accession',\n", + " 'name': 'CAL14138_cim',\n", + " 'species': 'http://aims.fao.org/aos/agrovoc/c_8504',\n", + " 'species_name': 'maize',\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'http://phenome.inrae.fr/m3p/id/germplasm/variety.CAL1440',\n", + " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Variety',\n", + " 'rdf_type_name': 'Variety',\n", + " 'name': 'CAL1440',\n", + " 'species': 'http://aims.fao.org/aos/agrovoc/c_8504',\n", + " 'species_name': 'maize',\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'http://phenome.inrae.fr/m3p/id/germplasm/accesion.CAL1440_cim',\n", + " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Accession',\n", + " 'rdf_type_name': 'Accession',\n", + " 'name': 'CAL1440_cim',\n", + " 'species': 'http://aims.fao.org/aos/agrovoc/c_8504',\n", + " 'species_name': 'maize',\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'http://phenome.inrae.fr/m3p/id/germplasm/variety.CAL1469',\n", + " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Variety',\n", + " 'rdf_type_name': 'Variety',\n", + " 'name': 'CAL1469',\n", + " 'species': 'http://aims.fao.org/aos/agrovoc/c_8504',\n", + " 'species_name': 'maize',\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'http://phenome.inrae.fr/m3p/id/germplasm/accesion.CAL1469_cim',\n", + " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Accession',\n", + " 'rdf_type_name': 'Accession',\n", + " 'name': 'CAL1469_cim',\n", + " 'species': 'http://aims.fao.org/aos/agrovoc/c_8504',\n", + " 'species_name': 'maize',\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'http://phenome.inrae.fr/m3p/id/germplasm/variety.CAL152',\n", + " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Variety',\n", + " 'rdf_type_name': 'Variety',\n", + " 'name': 'CAL152',\n", + " 'species': 'http://aims.fao.org/aos/agrovoc/c_8504',\n", + " 'species_name': 'maize',\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'http://phenome.inrae.fr/m3p/id/germplasm/accesion.CAL152_cim',\n", + " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Accession',\n", + " 'rdf_type_name': 'Accession',\n", + " 'name': 'CAL152_cim',\n", + " 'species': 'http://aims.fao.org/aos/agrovoc/c_8504',\n", + " 'species_name': 'maize',\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'http://phenome.inrae.fr/m3p/id/germplasm/variety.CamInb117',\n", + " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Variety',\n", + " 'rdf_type_name': 'Variety',\n", + " 'name': 'CamInb117',\n", + " 'species': 'http://aims.fao.org/aos/agrovoc/c_8504',\n", + " 'species_name': 'maize',\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'http://phenome.inrae.fr/m3p/id/germplasm/accesion.CamInb117_inrae',\n", + " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Accession',\n", + " 'rdf_type_name': 'Accession',\n", + " 'name': 'CamInb117_inrae',\n", + " 'species': 'http://aims.fao.org/aos/agrovoc/c_8504',\n", + " 'species_name': 'maize',\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'http://phenome.inrae.fr/m3p/id/germplasm/variety.CFD11-004',\n", + " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Variety',\n", + " 'rdf_type_name': 'Variety',\n", + " 'name': 'CFD11-004',\n", + " 'species': 'http://aims.fao.org/aos/agrovoc/c_8504',\n", + " 'species_name': 'maize',\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'http://phenome.inrae.fr/m3p/id/germplasm/accesion.CFD11-004_inrae',\n", + " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Accession',\n", + " 'rdf_type_name': 'Accession',\n", + " 'name': 'CFD11-004_inrae',\n", + " 'species': 'http://aims.fao.org/aos/agrovoc/c_8504',\n", + " 'species_name': 'maize',\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'http://phenome.inrae.fr/m3p/id/germplasm/variety.CFD11-005',\n", + " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Variety',\n", + " 'rdf_type_name': 'Variety',\n", + " 'name': 'CFD11-005',\n", + " 'species': 'http://aims.fao.org/aos/agrovoc/c_8504',\n", + " 'species_name': 'maize',\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'http://phenome.inrae.fr/m3p/id/germplasm/accesion.CFD11-005_inrae',\n", + " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Accession',\n", + " 'rdf_type_name': 'Accession',\n", + " 'name': 'CFD11-005_inrae',\n", + " 'species': 'http://aims.fao.org/aos/agrovoc/c_8504',\n", + " 'species_name': 'maize',\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'http://phenome.inrae.fr/m3p/id/germplasm/variety.CFD11-006',\n", + " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Variety',\n", + " 'rdf_type_name': 'Variety',\n", + " 'name': 'CFD11-006',\n", + " 'species': 'http://aims.fao.org/aos/agrovoc/c_8504',\n", + " 'species_name': 'maize',\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'http://phenome.inrae.fr/m3p/id/germplasm/accesion.CFD11-006_inrae',\n", + " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Accession',\n", + " 'rdf_type_name': 'Accession',\n", + " 'name': 'CFD11-006_inrae',\n", + " 'species': 'http://aims.fao.org/aos/agrovoc/c_8504',\n", + " 'species_name': 'maize',\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'http://phenome.inrae.fr/m3p/id/germplasm/variety.CFD11-007',\n", + " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Variety',\n", + " 'rdf_type_name': 'Variety',\n", + " 'name': 'CFD11-007',\n", + " 'species': 'http://aims.fao.org/aos/agrovoc/c_8504',\n", + " 'species_name': 'maize',\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'http://phenome.inrae.fr/m3p/id/germplasm/accesion.CFD11-007_inrae',\n", + " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Accession',\n", + " 'rdf_type_name': 'Accession',\n", + " 'name': 'CFD11-007_inrae',\n", + " 'species': 'http://aims.fao.org/aos/agrovoc/c_8504',\n", + " 'species_name': 'maize',\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'http://phenome.inrae.fr/m3p/id/germplasm/variety.CFD11-010',\n", + " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Variety',\n", + " 'rdf_type_name': 'Variety',\n", + " 'name': 'CFD11-010',\n", + " 'species': 'http://aims.fao.org/aos/agrovoc/c_8504',\n", + " 'species_name': 'maize',\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'http://phenome.inrae.fr/m3p/id/germplasm/accesion.CFD11-010_inrae',\n", + " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Accession',\n", + " 'rdf_type_name': 'Accession',\n", + " 'name': 'CFD11-010_inrae',\n", + " 'species': 'http://aims.fao.org/aos/agrovoc/c_8504',\n", + " 'species_name': 'maize',\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'http://phenome.inrae.fr/m3p/id/germplasm/variety.CFD11-011',\n", + " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Variety',\n", + " 'rdf_type_name': 'Variety',\n", + " 'name': 'CFD11-011',\n", + " 'species': 'http://aims.fao.org/aos/agrovoc/c_8504',\n", + " 'species_name': 'maize',\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'http://phenome.inrae.fr/m3p/id/germplasm/accesion.CFD11-011_inrae',\n", + " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Accession',\n", + " 'rdf_type_name': 'Accession',\n", + " 'name': 'CFD11-011_inrae',\n", + " 'species': 'http://aims.fao.org/aos/agrovoc/c_8504',\n", + " 'species_name': 'maize',\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'http://phenome.inrae.fr/m3p/id/germplasm/variety.CFD11-026',\n", + " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Variety',\n", + " 'rdf_type_name': 'Variety',\n", + " 'name': 'CFD11-026',\n", + " 'species': 'http://aims.fao.org/aos/agrovoc/c_8504',\n", + " 'species_name': 'maize',\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'http://phenome.inrae.fr/m3p/id/germplasm/accesion.CFD11-026_inrae',\n", + " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Accession',\n", + " 'rdf_type_name': 'Accession',\n", + " 'name': 'CFD11-026_inrae',\n", + " 'species': 'http://aims.fao.org/aos/agrovoc/c_8504',\n", + " 'species_name': 'maize',\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'http://phenome.inrae.fr/m3p/id/germplasm/variety.CFD11-029',\n", + " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Variety',\n", + " 'rdf_type_name': 'Variety',\n", + " 'name': 'CFD11-029',\n", + " 'species': 'http://aims.fao.org/aos/agrovoc/c_8504',\n", + " 'species_name': 'maize',\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'http://phenome.inrae.fr/m3p/id/germplasm/accesion.CFD11-029_inrae',\n", + " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Accession',\n", + " 'rdf_type_name': 'Accession',\n", + " 'name': 'CFD11-029_inrae',\n", + " 'species': 'http://aims.fao.org/aos/agrovoc/c_8504',\n", + " 'species_name': 'maize',\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'http://phenome.inrae.fr/m3p/id/germplasm/variety.CFD11-030',\n", + " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Variety',\n", + " 'rdf_type_name': 'Variety',\n", + " 'name': 'CFD11-030',\n", + " 'species': 'http://aims.fao.org/aos/agrovoc/c_8504',\n", + " 'species_name': 'maize',\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'http://phenome.inrae.fr/m3p/id/germplasm/accesion.CFD11-030_inrae',\n", + " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Accession',\n", + " 'rdf_type_name': 'Accession',\n", + " 'name': 'CFD11-030_inrae',\n", + " 'species': 'http://aims.fao.org/aos/agrovoc/c_8504',\n", + " 'species_name': 'maize',\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'http://phenome.inrae.fr/m3p/id/germplasm/variety.CFD11-045',\n", + " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Variety',\n", + " 'rdf_type_name': 'Variety',\n", + " 'name': 'CFD11-045',\n", + " 'species': 'http://aims.fao.org/aos/agrovoc/c_8504',\n", + " 'species_name': 'maize',\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'http://phenome.inrae.fr/m3p/id/germplasm/accesion.CFD11-045_inrae',\n", + " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Accession',\n", + " 'rdf_type_name': 'Accession',\n", + " 'name': 'CFD11-045_inrae',\n", + " 'species': 'http://aims.fao.org/aos/agrovoc/c_8504',\n", + " 'species_name': 'maize',\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'http://phenome.inrae.fr/m3p/id/germplasm/variety.CFD11-047',\n", + " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Variety',\n", + " 'rdf_type_name': 'Variety',\n", + " 'name': 'CFD11-047',\n", + " 'species': 'http://aims.fao.org/aos/agrovoc/c_8504',\n", + " 'species_name': 'maize',\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'http://phenome.inrae.fr/m3p/id/germplasm/accesion.CFD11-047_inrae',\n", + " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Accession',\n", + " 'rdf_type_name': 'Accession',\n", + " 'name': 'CFD11-047_inrae',\n", + " 'species': 'http://aims.fao.org/aos/agrovoc/c_8504',\n", + " 'species_name': 'maize',\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'http://phenome.inrae.fr/m3p/id/germplasm/variety.CFD11-048',\n", + " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Variety',\n", + " 'rdf_type_name': 'Variety',\n", + " 'name': 'CFD11-048',\n", + " 'species': 'http://aims.fao.org/aos/agrovoc/c_8504',\n", + " 'species_name': 'maize',\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None}]}" + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "phis.get_germplasm(token=token)" + ] + }, + { + "cell_type": "markdown", + "id": "47d512bf-6e4c-4a05-acde-2669f4b9921b", + "metadata": {}, + "source": [ + "#### Get specific germplasm with URI" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "id": "f41c781e-6f93-427b-96bc-e273fa939d72", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'metadata': {'pagination': {'pageSize': 0,\n", + " 'currentPage': 0,\n", + " 'totalCount': 0,\n", + " 'totalPages': 0,\n", + " 'limitCount': 0,\n", + " 'hasNextPage': False},\n", + " 'status': [],\n", + " 'datafiles': []},\n", + " 'result': {'uri': 'http://aims.fao.org/aos/agrovoc/c_1066',\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None,\n", + " 'rdf_type': 'vocabulary:Species',\n", + " 'rdf_type_name': 'Species',\n", + " 'name': 'colza',\n", + " 'synonyms': [],\n", + " 'code': None,\n", + " 'production_year': None,\n", + " 'description': None,\n", + " 'species': None,\n", + " 'species_name': None,\n", + " 'variety': None,\n", + " 'variety_name': None,\n", + " 'accession': None,\n", + " 'accession_name': None,\n", + " 'institute': None,\n", + " 'website': None,\n", + " 'has_parent_germplasm': None,\n", + " 'has_parent_germplasm_m': None,\n", + " 'has_parent_germplasm_f': None,\n", + " 'metadata': None}}" + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "phis.get_germplasm(uri='http://aims.fao.org/aos/agrovoc/c_1066', token=token)" + ] + }, + { + "cell_type": "markdown", + "id": "abe6ba29-c8ec-4f05-93c8-a043df7f4a30", + "metadata": {}, + "source": [ + "#### List available devices" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "id": "3bc8180f-a5f0-4d91-a927-61dcfdf834d5", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'metadata': {'pagination': {'pageSize': 100,\n", + " 'currentPage': 0,\n", + " 'totalCount': 339,\n", + " 'totalPages': 4,\n", + " 'limitCount': 0,\n", + " 'hasNextPage': True},\n", + " 'status': [],\n", + " 'datafiles': []},\n", + " 'result': [{'uri': 'http://www.phenome-fppn.fr/m3p/ec1/2016/sa1600064',\n", + " 'rdf_type': 'vocabulary:CO2Sensor',\n", + " 'rdf_type_name': 'CO2 sensor',\n", + " 'name': 'aria_co2_cE1',\n", + " 'brand': 'ARIA',\n", + " 'constructor_model': None,\n", + " 'serial_number': None,\n", + " 'person_in_charge': None,\n", + " 'start_up': '2011-05-01',\n", + " 'removal': None,\n", + " 'relations': [{'property': 'vocabulary:measures',\n", + " 'value': 'm3p:id/variable/ev000024',\n", + " 'inverse': False}],\n", + " 'description': None,\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'http://www.phenome-fppn.fr/m3p/ec2/2016/sa1600073',\n", + " 'rdf_type': 'vocabulary:CO2Sensor',\n", + " 'rdf_type_name': 'CO2 sensor',\n", + " 'name': 'aria_co2_cE2',\n", + " 'brand': 'ARIA',\n", + " 'constructor_model': None,\n", + " 'serial_number': None,\n", + " 'person_in_charge': None,\n", + " 'start_up': '2011-05-01',\n", + " 'removal': None,\n", + " 'relations': [{'property': 'vocabulary:measures',\n", + " 'value': 'm3p:id/variable/ev000024',\n", + " 'inverse': False}],\n", + " 'description': None,\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'http://www.phenome-fppn.fr/m3p/arch/2016/sa1600057',\n", + " 'rdf_type': 'vocabulary:CO2Sensor',\n", + " 'rdf_type_name': 'CO2 sensor',\n", + " 'name': 'aria_co2_p',\n", + " 'brand': 'ARIA',\n", + " 'constructor_model': None,\n", + " 'serial_number': None,\n", + " 'person_in_charge': None,\n", + " 'start_up': '2011-05-01',\n", + " 'removal': None,\n", + " 'relations': [{'property': 'vocabulary:measures',\n", + " 'value': 'm3p:id/variable/ev000024',\n", + " 'inverse': False}],\n", + " 'description': None,\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'http://www.phenome-fppn.fr/m3p/eo/2016/sa1600005',\n", + " 'rdf_type': 'vocabulary:CupAnemometer',\n", + " 'rdf_type_name': 'cup anemometer',\n", + " 'name': 'aria_directionVent_ext',\n", + " 'brand': 'ARIA',\n", + " 'constructor_model': None,\n", + " 'serial_number': None,\n", + " 'person_in_charge': None,\n", + " 'start_up': '2011-05-01',\n", + " 'removal': None,\n", + " 'relations': [],\n", + " 'description': None,\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'http://www.phenome-fppn.fr/m3p/arch/2016/sa1600051',\n", + " 'rdf_type': 'vocabulary:Lightning',\n", + " 'rdf_type_name': 'lightning',\n", + " 'name': 'aria_eclairage1_p',\n", + " 'brand': None,\n", + " 'constructor_model': 'ARIA',\n", + " 'serial_number': None,\n", + " 'person_in_charge': None,\n", + " 'start_up': None,\n", + " 'removal': None,\n", + " 'relations': [{'property': 'vocabulary:measures',\n", + " 'value': 'm3p:id/variable/greenhouse_lightning_setpoint_boolean',\n", + " 'inverse': False}],\n", + " 'description': None,\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'http://www.phenome-fppn.fr/m3p/dyn/2016/sa1600026',\n", + " 'rdf_type': 'vocabulary:Lightning',\n", + " 'rdf_type_name': 'lightning',\n", + " 'name': 'aria_eclairage1_s1',\n", + " 'brand': None,\n", + " 'constructor_model': 'ARIA',\n", + " 'serial_number': None,\n", + " 'person_in_charge': None,\n", + " 'start_up': None,\n", + " 'removal': None,\n", + " 'relations': [{'property': 'vocabulary:measures',\n", + " 'value': 'm3p:id/variable/greenhouse_lightning_setpoint_boolean',\n", + " 'inverse': False}],\n", + " 'description': None,\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'http://www.phenome-fppn.fr/m3p/arch/2016/sa1600052',\n", + " 'rdf_type': 'vocabulary:Lightning',\n", + " 'rdf_type_name': 'lightning',\n", + " 'name': 'aria_eclairage2_p',\n", + " 'brand': None,\n", + " 'constructor_model': 'ARIA',\n", + " 'serial_number': None,\n", + " 'person_in_charge': None,\n", + " 'start_up': None,\n", + " 'removal': None,\n", + " 'relations': [{'property': 'vocabulary:measures',\n", + " 'value': 'm3p:id/variable/greenhouse_lightning_setpoint_boolean',\n", + " 'inverse': False}],\n", + " 'description': None,\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'http://www.phenome-fppn.fr/m3p/dyn/2016/sa1600027',\n", + " 'rdf_type': 'vocabulary:Lightning',\n", + " 'rdf_type_name': 'lightning',\n", + " 'name': 'aria_eclairage2_s1',\n", + " 'brand': None,\n", + " 'constructor_model': 'ARIA',\n", + " 'serial_number': None,\n", + " 'person_in_charge': None,\n", + " 'start_up': None,\n", + " 'removal': None,\n", + " 'relations': [{'property': 'vocabulary:measures',\n", + " 'value': 'm3p:id/variable/greenhouse_lightning_setpoint_boolean',\n", + " 'inverse': False}],\n", + " 'description': None,\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'http://www.phenome-fppn.fr/m3p/arch/2016/sa1600053',\n", + " 'rdf_type': 'vocabulary:Lightning',\n", + " 'rdf_type_name': 'lightning',\n", + " 'name': 'aria_eclairage3_p',\n", + " 'brand': None,\n", + " 'constructor_model': 'ARIA',\n", + " 'serial_number': None,\n", + " 'person_in_charge': None,\n", + " 'start_up': None,\n", + " 'removal': None,\n", + " 'relations': [{'property': 'vocabulary:measures',\n", + " 'value': 'm3p:id/variable/greenhouse_lightning_setpoint_boolean',\n", + " 'inverse': False}],\n", + " 'description': None,\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'http://www.phenome-fppn.fr/m3p/dyn/2016/sa1600028',\n", + " 'rdf_type': 'vocabulary:Lightning',\n", + " 'rdf_type_name': 'lightning',\n", + " 'name': 'aria_eclairage3_s1',\n", + " 'brand': None,\n", + " 'constructor_model': 'ARIA',\n", + " 'serial_number': None,\n", + " 'person_in_charge': None,\n", + " 'start_up': None,\n", + " 'removal': None,\n", + " 'relations': [{'property': 'vocabulary:measures',\n", + " 'value': 'm3p:id/variable/greenhouse_lightning_setpoint_boolean',\n", + " 'inverse': False}],\n", + " 'description': None,\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'http://www.phenome-fppn.fr/m3p/dyn/2016/sa1600029',\n", + " 'rdf_type': 'vocabulary:Lightning',\n", + " 'rdf_type_name': 'lightning',\n", + " 'name': 'aria_eclairage4_s1',\n", + " 'brand': None,\n", + " 'constructor_model': 'ARIA',\n", + " 'serial_number': None,\n", + " 'person_in_charge': None,\n", + " 'start_up': None,\n", + " 'removal': None,\n", + " 'relations': [{'property': 'vocabulary:measures',\n", + " 'value': 'm3p:id/variable/greenhouse_lightning_setpoint_boolean',\n", + " 'inverse': False}],\n", + " 'description': None,\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'http://www.phenome-fppn.fr/m3p/dyn/2016/sa1600030',\n", + " 'rdf_type': 'vocabulary:Lightning',\n", + " 'rdf_type_name': 'lightning',\n", + " 'name': 'aria_eclairage5_s1',\n", + " 'brand': None,\n", + " 'constructor_model': 'ARIA',\n", + " 'serial_number': None,\n", + " 'person_in_charge': None,\n", + " 'start_up': None,\n", + " 'removal': None,\n", + " 'relations': [{'property': 'vocabulary:measures',\n", + " 'value': 'm3p:id/variable/greenhouse_lightning_setpoint_boolean',\n", + " 'inverse': False}],\n", + " 'description': None,\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'http://www.phenome-fppn.fr/m3p/dyn/2016/sa1600031',\n", + " 'rdf_type': 'vocabulary:Lightning',\n", + " 'rdf_type_name': 'lightning',\n", + " 'name': 'aria_eclairage6_s1',\n", + " 'brand': None,\n", + " 'constructor_model': 'ARIA',\n", + " 'serial_number': None,\n", + " 'person_in_charge': None,\n", + " 'start_up': None,\n", + " 'removal': None,\n", + " 'relations': [{'property': 'vocabulary:measures',\n", + " 'value': 'm3p:id/variable/greenhouse_lightning_setpoint_boolean',\n", + " 'inverse': False}],\n", + " 'description': None,\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'http://www.phenome-fppn.fr/m3p/arch/2016/sa1600048',\n", + " 'rdf_type': 'vocabulary:Shadows',\n", + " 'rdf_type_name': 'shadows',\n", + " 'name': 'aria_ecranBardage1_p',\n", + " 'brand': None,\n", + " 'constructor_model': 'ARIA',\n", + " 'serial_number': None,\n", + " 'person_in_charge': None,\n", + " 'start_up': None,\n", + " 'removal': None,\n", + " 'relations': [{'property': 'vocabulary:measures',\n", + " 'value': 'm3p:id/variable/greenhouse_shading_setpoint_boolean',\n", + " 'inverse': False}],\n", + " 'description': None,\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'http://www.phenome-fppn.fr/m3p/dyn/2016/sa1600023',\n", + " 'rdf_type': 'vocabulary:Shadows',\n", + " 'rdf_type_name': 'shadows',\n", + " 'name': 'aria_ecranBardage1_s1',\n", + " 'brand': None,\n", + " 'constructor_model': 'ARIA',\n", + " 'serial_number': None,\n", + " 'person_in_charge': None,\n", + " 'start_up': None,\n", + " 'removal': None,\n", + " 'relations': [{'property': 'vocabulary:measures',\n", + " 'value': 'm3p:id/variable/greenhouse_shading_setpoint_boolean',\n", + " 'inverse': False}],\n", + " 'description': None,\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'http://www.phenome-fppn.fr/m3p/arch/2016/sa1600049',\n", + " 'rdf_type': 'vocabulary:Shadows',\n", + " 'rdf_type_name': 'shadows',\n", + " 'name': 'aria_ecranBardage2_p',\n", + " 'brand': None,\n", + " 'constructor_model': 'ARIA',\n", + " 'serial_number': None,\n", + " 'person_in_charge': None,\n", + " 'start_up': None,\n", + " 'removal': None,\n", + " 'relations': [{'property': 'vocabulary:measures',\n", + " 'value': 'm3p:id/variable/greenhouse_shading_setpoint_boolean',\n", + " 'inverse': False}],\n", + " 'description': None,\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'http://www.phenome-fppn.fr/m3p/dyn/2016/sa1600024',\n", + " 'rdf_type': 'vocabulary:Shadows',\n", + " 'rdf_type_name': 'shadows',\n", + " 'name': 'aria_ecranBardage2_s1',\n", + " 'brand': None,\n", + " 'constructor_model': 'ARIA',\n", + " 'serial_number': None,\n", + " 'person_in_charge': None,\n", + " 'start_up': None,\n", + " 'removal': None,\n", + " 'relations': [{'property': 'vocabulary:measures',\n", + " 'value': 'm3p:id/variable/greenhouse_shading_setpoint_boolean',\n", + " 'inverse': False}],\n", + " 'description': None,\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'http://www.phenome-fppn.fr/m3p/arch/2016/sa1600047',\n", + " 'rdf_type': 'vocabulary:Shadows',\n", + " 'rdf_type_name': 'shadows',\n", + " 'name': 'aria_ecranPignon_p',\n", + " 'brand': None,\n", + " 'constructor_model': 'ARIA',\n", + " 'serial_number': None,\n", + " 'person_in_charge': None,\n", + " 'start_up': None,\n", + " 'removal': None,\n", + " 'relations': [{'property': 'vocabulary:measures',\n", + " 'value': 'm3p:id/variable/greenhouse_shading_setpoint_boolean',\n", + " 'inverse': False}],\n", + " 'description': None,\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'http://www.phenome-fppn.fr/m3p/dyn/2016/sa1600022',\n", + " 'rdf_type': 'vocabulary:Shadows',\n", + " 'rdf_type_name': 'shadows',\n", + " 'name': 'aria_ecranPignon_s1',\n", + " 'brand': None,\n", + " 'constructor_model': 'ARIA',\n", + " 'serial_number': None,\n", + " 'person_in_charge': None,\n", + " 'start_up': None,\n", + " 'removal': None,\n", + " 'relations': [{'property': 'vocabulary:measures',\n", + " 'value': 'm3p:id/variable/greenhouse_shading_setpoint_boolean',\n", + " 'inverse': False}],\n", + " 'description': None,\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'http://www.phenome-fppn.fr/m3p/arch/2016/sa1600046',\n", + " 'rdf_type': 'vocabulary:Shadows',\n", + " 'rdf_type_name': 'shadows',\n", + " 'name': 'aria_ecranPlan_p',\n", + " 'brand': None,\n", + " 'constructor_model': 'ARIA',\n", + " 'serial_number': None,\n", + " 'person_in_charge': None,\n", + " 'start_up': None,\n", + " 'removal': None,\n", + " 'relations': [{'property': 'vocabulary:measures',\n", + " 'value': 'm3p:id/variable/greenhouse_shading_setpoint_boolean',\n", + " 'inverse': False}],\n", + " 'description': None,\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'http://www.phenome-fppn.fr/m3p/dyn/2016/sa1600021',\n", + " 'rdf_type': 'vocabulary:Shadows',\n", + " 'rdf_type_name': 'shadows',\n", + " 'name': 'aria_ecranPlan_s1',\n", + " 'brand': None,\n", + " 'constructor_model': 'ARIA',\n", + " 'serial_number': None,\n", + " 'person_in_charge': None,\n", + " 'start_up': None,\n", + " 'removal': None,\n", + " 'relations': [{'property': 'vocabulary:measures',\n", + " 'value': 'm3p:id/variable/greenhouse_shading_setpoint_boolean',\n", + " 'inverse': False}],\n", + " 'description': None,\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'http://www.phenome-fppn.fr/m3p/dyn/2016/sa1600013',\n", + " 'rdf_type': 'vocabulary:CapacitiveThinFilmPolymer',\n", + " 'rdf_type_name': 'capacitive - thin film polymer',\n", + " 'name': 'aria_hr01_s1',\n", + " 'brand': 'ARIA',\n", + " 'constructor_model': None,\n", + " 'serial_number': None,\n", + " 'person_in_charge': None,\n", + " 'start_up': '2011-05-01',\n", + " 'removal': None,\n", + " 'relations': [{'property': 'vocabulary:measures',\n", + " 'value': 'm3p:id/variable/ev000020',\n", + " 'inverse': False}],\n", + " 'description': None,\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'http://www.phenome-fppn.fr/m3p/dyn/2016/sa1600014',\n", + " 'rdf_type': 'vocabulary:CapacitiveThinFilmPolymer',\n", + " 'rdf_type_name': 'capacitive - thin film polymer',\n", + " 'name': 'aria_hr02_s1',\n", + " 'brand': 'ARIA',\n", + " 'constructor_model': None,\n", + " 'serial_number': None,\n", + " 'person_in_charge': None,\n", + " 'start_up': '2011-05-01',\n", + " 'removal': None,\n", + " 'relations': [{'property': 'vocabulary:measures',\n", + " 'value': 'm3p:id/variable/ev000020',\n", + " 'inverse': False}],\n", + " 'description': None,\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'http://www.phenome-fppn.fr/m3p/arch/2016/sa1600036',\n", + " 'rdf_type': 'vocabulary:CapacitiveThinFilmPolymer',\n", + " 'rdf_type_name': 'capacitive - thin film polymer',\n", + " 'name': 'aria_hr1_p',\n", + " 'brand': 'ARIA',\n", + " 'constructor_model': None,\n", + " 'serial_number': None,\n", + " 'person_in_charge': None,\n", + " 'start_up': '2011-05-01',\n", + " 'removal': None,\n", + " 'relations': [{'property': 'vocabulary:measures',\n", + " 'value': 'm3p:id/variable/ev000020',\n", + " 'inverse': False}],\n", + " 'description': None,\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'http://www.phenome-fppn.fr/m3p/arch/2016/sa1600037',\n", + " 'rdf_type': 'vocabulary:CapacitiveThinFilmPolymer',\n", + " 'rdf_type_name': 'capacitive - thin film polymer',\n", + " 'name': 'aria_hr2_p',\n", + " 'brand': 'ARIA',\n", + " 'constructor_model': None,\n", + " 'serial_number': None,\n", + " 'person_in_charge': None,\n", + " 'start_up': '2011-05-01',\n", + " 'removal': None,\n", + " 'relations': [],\n", + " 'description': None,\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'http://www.phenome-fppn.fr/m3p/ec1/2016/sa1600060',\n", + " 'rdf_type': 'vocabulary:CapacitiveThinFilmPolymer',\n", + " 'rdf_type_name': 'capacitive - thin film polymer',\n", + " 'name': 'aria_hr_cE1',\n", + " 'brand': 'ARIA',\n", + " 'constructor_model': None,\n", + " 'serial_number': None,\n", + " 'person_in_charge': None,\n", + " 'start_up': '2011-05-01',\n", + " 'removal': None,\n", + " 'relations': [{'property': 'vocabulary:measures',\n", + " 'value': 'm3p:id/variable/ev000020',\n", + " 'inverse': False}],\n", + " 'description': None,\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'http://www.phenome-fppn.fr/m3p/ec2/2016/sa1600069',\n", + " 'rdf_type': 'vocabulary:CapacitiveThinFilmPolymer',\n", + " 'rdf_type_name': 'capacitive - thin film polymer',\n", + " 'name': 'aria_hr_cE2',\n", + " 'brand': 'ARIA',\n", + " 'constructor_model': None,\n", + " 'serial_number': None,\n", + " 'person_in_charge': None,\n", + " 'start_up': '2011-05-01',\n", + " 'removal': None,\n", + " 'relations': [{'property': 'vocabulary:measures',\n", + " 'value': 'm3p:id/variable/ev000020',\n", + " 'inverse': False}],\n", + " 'description': None,\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'http://www.phenome-fppn.fr/m3p/eo/2016/sa1600002',\n", + " 'rdf_type': 'vocabulary:CapacitiveThinFilmPolymer',\n", + " 'rdf_type_name': 'capacitive - thin film polymer',\n", + " 'name': 'aria_hr_ext',\n", + " 'brand': 'ARIA',\n", + " 'constructor_model': None,\n", + " 'serial_number': None,\n", + " 'person_in_charge': None,\n", + " 'start_up': '2011-05-01',\n", + " 'removal': None,\n", + " 'relations': [{'property': 'vocabulary:measures',\n", + " 'value': 'm3p:id/variable/ev000020',\n", + " 'inverse': False}],\n", + " 'description': None,\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'http://www.phenome-fppn.fr/m3p/eo/2016/sa1600003',\n", + " 'rdf_type': 'vocabulary:CapacitiveThinFilmPolymer',\n", + " 'rdf_type_name': 'capacitive - thin film polymer',\n", + " 'name': 'aria_quantiteEauDsAir_ext',\n", + " 'brand': 'ARIA',\n", + " 'constructor_model': None,\n", + " 'serial_number': None,\n", + " 'person_in_charge': None,\n", + " 'start_up': '2011-05-01',\n", + " 'removal': None,\n", + " 'relations': [],\n", + " 'description': None,\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'http://www.phenome-fppn.fr/m3p/eo/2016/sa1600006',\n", + " 'rdf_type': 'vocabulary:Pyranometer',\n", + " 'rdf_type_name': 'pyranometer',\n", + " 'name': 'aria_radiation_ext',\n", + " 'brand': 'ARIA',\n", + " 'constructor_model': None,\n", + " 'serial_number': None,\n", + " 'person_in_charge': None,\n", + " 'start_up': '2011-05-01',\n", + " 'removal': None,\n", + " 'relations': [{'property': 'vocabulary:measures',\n", + " 'value': 'm3p:id/variable/ev000036',\n", + " 'inverse': False}],\n", + " 'description': None,\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'http://www.phenome-fppn.fr/m3p/arch/2016/sa1600032',\n", + " 'rdf_type': 'vocabulary:ElectricalResistanceThermometer',\n", + " 'rdf_type_name': 'electrical resistance thermometer',\n", + " 'name': 'aria_tair01_p',\n", + " 'brand': 'ARIA',\n", + " 'constructor_model': None,\n", + " 'serial_number': None,\n", + " 'person_in_charge': None,\n", + " 'start_up': '2011-05-01',\n", + " 'removal': None,\n", + " 'relations': [{'property': 'vocabulary:measures',\n", + " 'value': 'm3p:id/variable/ev000001',\n", + " 'inverse': False}],\n", + " 'description': None,\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'http://www.phenome-fppn.fr/m3p/dyn/2016/sa1600009',\n", + " 'rdf_type': 'vocabulary:ElectricalResistanceThermometer',\n", + " 'rdf_type_name': 'electrical resistance thermometer',\n", + " 'name': 'aria_tair01_s1',\n", + " 'brand': 'ARIA',\n", + " 'constructor_model': None,\n", + " 'serial_number': None,\n", + " 'person_in_charge': None,\n", + " 'start_up': '2011-05-01',\n", + " 'removal': None,\n", + " 'relations': [],\n", + " 'description': None,\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'http://www.phenome-fppn.fr/m3p/arch/2016/sa1600033',\n", + " 'rdf_type': 'vocabulary:ElectricalResistanceThermometer',\n", + " 'rdf_type_name': 'electrical resistance thermometer',\n", + " 'name': 'aria_tair02_p',\n", + " 'brand': 'ARIA',\n", + " 'constructor_model': None,\n", + " 'serial_number': None,\n", + " 'person_in_charge': None,\n", + " 'start_up': '2011-05-01',\n", + " 'removal': None,\n", + " 'relations': [{'property': 'vocabulary:measures',\n", + " 'value': 'm3p:id/variable/ev000001',\n", + " 'inverse': False}],\n", + " 'description': None,\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'http://www.phenome-fppn.fr/m3p/dyn/2016/sa1600010',\n", + " 'rdf_type': 'vocabulary:ElectricalResistanceThermometer',\n", + " 'rdf_type_name': 'electrical resistance thermometer',\n", + " 'name': 'aria_tair02_s1',\n", + " 'brand': 'ARIA',\n", + " 'constructor_model': None,\n", + " 'serial_number': None,\n", + " 'person_in_charge': None,\n", + " 'start_up': '2011-05-01',\n", + " 'removal': None,\n", + " 'relations': [{'property': 'vocabulary:measures',\n", + " 'value': 'm3p:id/variable/ev000001',\n", + " 'inverse': False}],\n", + " 'description': None,\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'http://www.phenome-fppn.fr/m3p/ec1/2016/sa1600059',\n", + " 'rdf_type': 'vocabulary:ElectricalResistanceThermometer',\n", + " 'rdf_type_name': 'electrical resistance thermometer',\n", + " 'name': 'aria_tair_cE1',\n", + " 'brand': 'ARIA',\n", + " 'constructor_model': None,\n", + " 'serial_number': None,\n", + " 'person_in_charge': None,\n", + " 'start_up': '2011-05-01',\n", + " 'removal': None,\n", + " 'relations': [{'property': 'vocabulary:measures',\n", + " 'value': 'm3p:id/variable/ev000001',\n", + " 'inverse': False}],\n", + " 'description': None,\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'http://www.phenome-fppn.fr/m3p/ec2/2016/sa1600068',\n", + " 'rdf_type': 'vocabulary:ElectricalResistanceThermometer',\n", + " 'rdf_type_name': 'electrical resistance thermometer',\n", + " 'name': 'aria_tair_cE2',\n", + " 'brand': 'ARIA',\n", + " 'constructor_model': None,\n", + " 'serial_number': None,\n", + " 'person_in_charge': None,\n", + " 'start_up': '2011-05-01',\n", + " 'removal': None,\n", + " 'relations': [],\n", + " 'description': None,\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'http://www.phenome-fppn.fr/m3p/eo/2016/sa1600001',\n", + " 'rdf_type': 'vocabulary:ElectricalResistanceThermometer',\n", + " 'rdf_type_name': 'electrical resistance thermometer',\n", + " 'name': 'aria_tair_ext',\n", + " 'brand': 'ARIA',\n", + " 'constructor_model': None,\n", + " 'serial_number': None,\n", + " 'person_in_charge': None,\n", + " 'start_up': '2011-05-01',\n", + " 'removal': None,\n", + " 'relations': [{'property': 'vocabulary:measures',\n", + " 'value': 'm3p:id/variable/ev000001',\n", + " 'inverse': False}],\n", + " 'description': None,\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'http://www.phenome-fppn.fr/m3p/arch/2016/sa1600034',\n", + " 'rdf_type': 'vocabulary:ElectricalResistanceThermometer',\n", + " 'rdf_type_name': 'electrical resistance thermometer',\n", + " 'name': 'aria_tairHaute01_p',\n", + " 'brand': 'ARIA',\n", + " 'constructor_model': None,\n", + " 'serial_number': None,\n", + " 'person_in_charge': None,\n", + " 'start_up': '2011-05-01',\n", + " 'removal': None,\n", + " 'relations': [{'property': 'vocabulary:measures',\n", + " 'value': 'm3p:id/variable/ev000001',\n", + " 'inverse': False}],\n", + " 'description': None,\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'http://www.phenome-fppn.fr/m3p/arch/2016/sa1600035',\n", + " 'rdf_type': 'vocabulary:ElectricalResistanceThermometer',\n", + " 'rdf_type_name': 'electrical resistance thermometer',\n", + " 'name': 'aria_tairHaute02_p',\n", + " 'brand': 'ARIA',\n", + " 'constructor_model': None,\n", + " 'serial_number': None,\n", + " 'person_in_charge': None,\n", + " 'start_up': '2011-05-01',\n", + " 'removal': None,\n", + " 'relations': [{'property': 'vocabulary:measures',\n", + " 'value': 'm3p:id/variable/ev000001',\n", + " 'inverse': False}],\n", + " 'description': None,\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'http://www.phenome-fppn.fr/m3p/eo/2016/sa1600004',\n", + " 'rdf_type': 'vocabulary:CupAnemometer',\n", + " 'rdf_type_name': 'cup anemometer',\n", + " 'name': 'aria_vitesseVent_ext',\n", + " 'brand': 'ARIA',\n", + " 'constructor_model': None,\n", + " 'serial_number': None,\n", + " 'person_in_charge': None,\n", + " 'start_up': '2011-05-01',\n", + " 'removal': None,\n", + " 'relations': [],\n", + " 'description': None,\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'm3p:id/deviceAttribut/eo/2016/sa1600009',\n", + " 'rdf_type': 'vocabulary:PyranometerWithShadeRing',\n", + " 'rdf_type_name': 'pyranometer with shade ring',\n", + " 'name': 'BF5',\n", + " 'brand': 'DeltaT',\n", + " 'constructor_model': 'BF5',\n", + " 'serial_number': None,\n", + " 'person_in_charge': 'https://orcid.org/0000-0002-2147-2846/Person',\n", + " 'start_up': None,\n", + " 'removal': None,\n", + " 'relations': [{'property': 'vocabulary:measures',\n", + " 'value': 'm3p:id/variable/ev000035',\n", + " 'inverse': False},\n", + " {'property': 'vocabulary:measures',\n", + " 'value': 'm3p:id/variable/ev000034',\n", + " 'inverse': False}],\n", + " 'description': None,\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'm3p:id/device/camera_test_opensilex',\n", + " 'rdf_type': 'vocabulary:Camera',\n", + " 'rdf_type_name': 'Camera',\n", + " 'name': 'CAMERA TEST OPENSILEX',\n", + " 'brand': None,\n", + " 'constructor_model': None,\n", + " 'serial_number': None,\n", + " 'person_in_charge': None,\n", + " 'start_up': None,\n", + " 'removal': None,\n", + " 'relations': [],\n", + " 'description': 'Exemple',\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'm3p:id/deviceAttribut/dyn/2014/sa140001',\n", + " 'rdf_type': 'vocabulary:CO2Sensor',\n", + " 'rdf_type_name': 'CO2 sensor',\n", + " 'name': 'co2_01_cA',\n", + " 'brand': 'ARIA',\n", + " 'constructor_model': None,\n", + " 'serial_number': None,\n", + " 'person_in_charge': None,\n", + " 'start_up': None,\n", + " 'removal': None,\n", + " 'relations': [{'property': 'vocabulary:measures',\n", + " 'value': 'm3p:id/variable/ev000024',\n", + " 'inverse': False}],\n", + " 'description': None,\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'm3p:id/deviceAttribut/eo/2017/vc170001',\n", + " 'rdf_type': 'vocabulary:Vector',\n", + " 'rdf_type_name': 'Vector',\n", + " 'name': 'Emb_1',\n", + " 'brand': None,\n", + " 'constructor_model': None,\n", + " 'serial_number': None,\n", + " 'person_in_charge': None,\n", + " 'start_up': '2017-01-01',\n", + " 'removal': None,\n", + " 'relations': [],\n", + " 'description': None,\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'm3p:id/deviceAttribut/eo/2017/vc170010',\n", + " 'rdf_type': 'vocabulary:Vector',\n", + " 'rdf_type_name': 'Vector',\n", + " 'name': 'Emb_10',\n", + " 'brand': None,\n", + " 'constructor_model': None,\n", + " 'serial_number': None,\n", + " 'person_in_charge': None,\n", + " 'start_up': '2017-01-01',\n", + " 'removal': None,\n", + " 'relations': [],\n", + " 'description': None,\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'm3p:id/deviceAttribut/eo/2017/vc170011',\n", + " 'rdf_type': 'vocabulary:Vector',\n", + " 'rdf_type_name': 'Vector',\n", + " 'name': 'Emb_11',\n", + " 'brand': None,\n", + " 'constructor_model': None,\n", + " 'serial_number': None,\n", + " 'person_in_charge': None,\n", + " 'start_up': '2017-01-01',\n", + " 'removal': None,\n", + " 'relations': [],\n", + " 'description': None,\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'm3p:id/deviceAttribut/eo/2017/vc170012',\n", + " 'rdf_type': 'vocabulary:Vector',\n", + " 'rdf_type_name': 'Vector',\n", + " 'name': 'Emb_12',\n", + " 'brand': None,\n", + " 'constructor_model': None,\n", + " 'serial_number': None,\n", + " 'person_in_charge': None,\n", + " 'start_up': '2017-01-01',\n", + " 'removal': None,\n", + " 'relations': [],\n", + " 'description': None,\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'm3p:id/deviceAttribut/eo/2017/vc170013',\n", + " 'rdf_type': 'vocabulary:Vector',\n", + " 'rdf_type_name': 'Vector',\n", + " 'name': 'Emb_13',\n", + " 'brand': None,\n", + " 'constructor_model': None,\n", + " 'serial_number': None,\n", + " 'person_in_charge': None,\n", + " 'start_up': '2017-01-01',\n", + " 'removal': None,\n", + " 'relations': [],\n", + " 'description': None,\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'm3p:id/deviceAttribut/eo/2017/vc170014',\n", + " 'rdf_type': 'vocabulary:Vector',\n", + " 'rdf_type_name': 'Vector',\n", + " 'name': 'Emb_14',\n", + " 'brand': None,\n", + " 'constructor_model': None,\n", + " 'serial_number': None,\n", + " 'person_in_charge': None,\n", + " 'start_up': '2017-01-01',\n", + " 'removal': None,\n", + " 'relations': [],\n", + " 'description': None,\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'm3p:id/deviceAttribut/eo/2017/vc170015',\n", + " 'rdf_type': 'vocabulary:Vector',\n", + " 'rdf_type_name': 'Vector',\n", + " 'name': 'Emb_15',\n", + " 'brand': None,\n", + " 'constructor_model': None,\n", + " 'serial_number': None,\n", + " 'person_in_charge': None,\n", + " 'start_up': '2017-01-01',\n", + " 'removal': None,\n", + " 'relations': [],\n", + " 'description': None,\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'm3p:id/deviceAttribut/eo/2017/vc170016',\n", + " 'rdf_type': 'vocabulary:Vector',\n", + " 'rdf_type_name': 'Vector',\n", + " 'name': 'Emb_16',\n", + " 'brand': None,\n", + " 'constructor_model': None,\n", + " 'serial_number': None,\n", + " 'person_in_charge': None,\n", + " 'start_up': '2017-01-01',\n", + " 'removal': None,\n", + " 'relations': [],\n", + " 'description': None,\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'm3p:id/deviceAttribut/eo/2017/vc170017',\n", + " 'rdf_type': 'vocabulary:Vector',\n", + " 'rdf_type_name': 'Vector',\n", + " 'name': 'Emb_17',\n", + " 'brand': None,\n", + " 'constructor_model': None,\n", + " 'serial_number': None,\n", + " 'person_in_charge': None,\n", + " 'start_up': '2017-01-01',\n", + " 'removal': None,\n", + " 'relations': [],\n", + " 'description': None,\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'm3p:id/deviceAttribut/eo/2017/vc170018',\n", + " 'rdf_type': 'vocabulary:Vector',\n", + " 'rdf_type_name': 'Vector',\n", + " 'name': 'Emb_18',\n", + " 'brand': None,\n", + " 'constructor_model': None,\n", + " 'serial_number': None,\n", + " 'person_in_charge': None,\n", + " 'start_up': '2017-01-01',\n", + " 'removal': None,\n", + " 'relations': [],\n", + " 'description': None,\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'm3p:id/deviceAttribut/eo/2017/vc170019',\n", + " 'rdf_type': 'vocabulary:Vector',\n", + " 'rdf_type_name': 'Vector',\n", + " 'name': 'Emb_19',\n", + " 'brand': None,\n", + " 'constructor_model': None,\n", + " 'serial_number': None,\n", + " 'person_in_charge': None,\n", + " 'start_up': '2017-01-01',\n", + " 'removal': None,\n", + " 'relations': [],\n", + " 'description': None,\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'm3p:id/deviceAttribut/eo/2017/vc170002',\n", + " 'rdf_type': 'vocabulary:Vector',\n", + " 'rdf_type_name': 'Vector',\n", + " 'name': 'Emb_2',\n", + " 'brand': None,\n", + " 'constructor_model': None,\n", + " 'serial_number': None,\n", + " 'person_in_charge': None,\n", + " 'start_up': '2017-01-01',\n", + " 'removal': None,\n", + " 'relations': [],\n", + " 'description': None,\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'm3p:id/deviceAttribut/eo/2017/vc170020',\n", + " 'rdf_type': 'vocabulary:Vector',\n", + " 'rdf_type_name': 'Vector',\n", + " 'name': 'Emb_20',\n", + " 'brand': None,\n", + " 'constructor_model': None,\n", + " 'serial_number': None,\n", + " 'person_in_charge': None,\n", + " 'start_up': '2017-01-01',\n", + " 'removal': None,\n", + " 'relations': [],\n", + " 'description': None,\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'm3p:id/deviceAttribut/eo/2017/vc170021',\n", + " 'rdf_type': 'vocabulary:Vector',\n", + " 'rdf_type_name': 'Vector',\n", + " 'name': 'Emb_21',\n", + " 'brand': None,\n", + " 'constructor_model': None,\n", + " 'serial_number': None,\n", + " 'person_in_charge': None,\n", + " 'start_up': '2017-01-01',\n", + " 'removal': None,\n", + " 'relations': [],\n", + " 'description': None,\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'm3p:id/deviceAttribut/eo/2017/vc170022',\n", + " 'rdf_type': 'vocabulary:Vector',\n", + " 'rdf_type_name': 'Vector',\n", + " 'name': 'Emb_22',\n", + " 'brand': None,\n", + " 'constructor_model': None,\n", + " 'serial_number': None,\n", + " 'person_in_charge': None,\n", + " 'start_up': '2017-01-01',\n", + " 'removal': None,\n", + " 'relations': [],\n", + " 'description': None,\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'm3p:id/deviceAttribut/eo/2017/vc170023',\n", + " 'rdf_type': 'vocabulary:Vector',\n", + " 'rdf_type_name': 'Vector',\n", + " 'name': 'Emb_23',\n", + " 'brand': None,\n", + " 'constructor_model': None,\n", + " 'serial_number': None,\n", + " 'person_in_charge': None,\n", + " 'start_up': '2017-01-01',\n", + " 'removal': None,\n", + " 'relations': [],\n", + " 'description': None,\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'm3p:id/deviceAttribut/eo/2017/vc170024',\n", + " 'rdf_type': 'vocabulary:Vector',\n", + " 'rdf_type_name': 'Vector',\n", + " 'name': 'Emb_24',\n", + " 'brand': None,\n", + " 'constructor_model': None,\n", + " 'serial_number': None,\n", + " 'person_in_charge': None,\n", + " 'start_up': '2017-01-01',\n", + " 'removal': None,\n", + " 'relations': [],\n", + " 'description': None,\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'm3p:id/deviceAttribut/eo/2017/vc170025',\n", + " 'rdf_type': 'vocabulary:Vector',\n", + " 'rdf_type_name': 'Vector',\n", + " 'name': 'Emb_25',\n", + " 'brand': None,\n", + " 'constructor_model': None,\n", + " 'serial_number': None,\n", + " 'person_in_charge': None,\n", + " 'start_up': '2017-01-01',\n", + " 'removal': None,\n", + " 'relations': [],\n", + " 'description': None,\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'm3p:id/deviceAttribut/eo/2017/vc170026',\n", + " 'rdf_type': 'vocabulary:Vector',\n", + " 'rdf_type_name': 'Vector',\n", + " 'name': 'Emb_26',\n", + " 'brand': None,\n", + " 'constructor_model': None,\n", + " 'serial_number': None,\n", + " 'person_in_charge': None,\n", + " 'start_up': '2017-01-01',\n", + " 'removal': None,\n", + " 'relations': [],\n", + " 'description': None,\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'm3p:id/deviceAttribut/eo/2017/vc170027',\n", + " 'rdf_type': 'vocabulary:Vector',\n", + " 'rdf_type_name': 'Vector',\n", + " 'name': 'Emb_27',\n", + " 'brand': None,\n", + " 'constructor_model': None,\n", + " 'serial_number': None,\n", + " 'person_in_charge': None,\n", + " 'start_up': '2017-01-01',\n", + " 'removal': None,\n", + " 'relations': [],\n", + " 'description': None,\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'm3p:id/deviceAttribut/eo/2017/vc170028',\n", + " 'rdf_type': 'vocabulary:Vector',\n", + " 'rdf_type_name': 'Vector',\n", + " 'name': 'Emb_28',\n", + " 'brand': None,\n", + " 'constructor_model': None,\n", + " 'serial_number': None,\n", + " 'person_in_charge': None,\n", + " 'start_up': '2017-01-01',\n", + " 'removal': None,\n", + " 'relations': [],\n", + " 'description': None,\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'm3p:id/deviceAttribut/eo/2017/vc170029',\n", + " 'rdf_type': 'vocabulary:Vector',\n", + " 'rdf_type_name': 'Vector',\n", + " 'name': 'Emb_29',\n", + " 'brand': None,\n", + " 'constructor_model': None,\n", + " 'serial_number': None,\n", + " 'person_in_charge': None,\n", + " 'start_up': '2017-01-01',\n", + " 'removal': None,\n", + " 'relations': [],\n", + " 'description': None,\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'm3p:id/deviceAttribut/eo/2017/vc170003',\n", + " 'rdf_type': 'vocabulary:Vector',\n", + " 'rdf_type_name': 'Vector',\n", + " 'name': 'Emb_3',\n", + " 'brand': None,\n", + " 'constructor_model': None,\n", + " 'serial_number': None,\n", + " 'person_in_charge': None,\n", + " 'start_up': '2017-01-01',\n", + " 'removal': None,\n", + " 'relations': [],\n", + " 'description': None,\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'm3p:id/deviceAttribut/eo/2017/vc170030',\n", + " 'rdf_type': 'vocabulary:Vector',\n", + " 'rdf_type_name': 'Vector',\n", + " 'name': 'Emb_30',\n", + " 'brand': None,\n", + " 'constructor_model': None,\n", + " 'serial_number': None,\n", + " 'person_in_charge': None,\n", + " 'start_up': '2017-01-01',\n", + " 'removal': None,\n", + " 'relations': [],\n", + " 'description': None,\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'm3p:id/deviceAttribut/eo/2017/vc170031',\n", + " 'rdf_type': 'vocabulary:Vector',\n", + " 'rdf_type_name': 'Vector',\n", + " 'name': 'Emb_31',\n", + " 'brand': None,\n", + " 'constructor_model': None,\n", + " 'serial_number': None,\n", + " 'person_in_charge': None,\n", + " 'start_up': '2017-01-01',\n", + " 'removal': None,\n", + " 'relations': [],\n", + " 'description': None,\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'm3p:id/deviceAttribut/eo/2017/vc170032',\n", + " 'rdf_type': 'vocabulary:Vector',\n", + " 'rdf_type_name': 'Vector',\n", + " 'name': 'Emb_32',\n", + " 'brand': None,\n", + " 'constructor_model': None,\n", + " 'serial_number': None,\n", + " 'person_in_charge': None,\n", + " 'start_up': '2017-01-01',\n", + " 'removal': None,\n", + " 'relations': [],\n", + " 'description': None,\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'm3p:id/deviceAttribut/eo/2017/vc170033',\n", + " 'rdf_type': 'vocabulary:Vector',\n", + " 'rdf_type_name': 'Vector',\n", + " 'name': 'Emb_33',\n", + " 'brand': None,\n", + " 'constructor_model': None,\n", + " 'serial_number': None,\n", + " 'person_in_charge': None,\n", + " 'start_up': '2017-01-01',\n", + " 'removal': None,\n", + " 'relations': [],\n", + " 'description': None,\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'm3p:id/deviceAttribut/eo/2017/vc170034',\n", + " 'rdf_type': 'vocabulary:Vector',\n", + " 'rdf_type_name': 'Vector',\n", + " 'name': 'Emb_34',\n", + " 'brand': None,\n", + " 'constructor_model': None,\n", + " 'serial_number': None,\n", + " 'person_in_charge': None,\n", + " 'start_up': '2017-01-01',\n", + " 'removal': None,\n", + " 'relations': [],\n", + " 'description': None,\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'm3p:id/deviceAttribut/eo/2017/vc170035',\n", + " 'rdf_type': 'vocabulary:Vector',\n", + " 'rdf_type_name': 'Vector',\n", + " 'name': 'Emb_35',\n", + " 'brand': None,\n", + " 'constructor_model': None,\n", + " 'serial_number': None,\n", + " 'person_in_charge': None,\n", + " 'start_up': '2017-01-01',\n", + " 'removal': None,\n", + " 'relations': [],\n", + " 'description': None,\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'm3p:id/deviceAttribut/eo/2017/vc170036',\n", + " 'rdf_type': 'vocabulary:Vector',\n", + " 'rdf_type_name': 'Vector',\n", + " 'name': 'Emb_36',\n", + " 'brand': None,\n", + " 'constructor_model': None,\n", + " 'serial_number': None,\n", + " 'person_in_charge': None,\n", + " 'start_up': '2017-01-01',\n", + " 'removal': None,\n", + " 'relations': [],\n", + " 'description': None,\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'm3p:id/deviceAttribut/eo/2017/vc170037',\n", + " 'rdf_type': 'vocabulary:Vector',\n", + " 'rdf_type_name': 'Vector',\n", + " 'name': 'Emb_37',\n", + " 'brand': None,\n", + " 'constructor_model': None,\n", + " 'serial_number': None,\n", + " 'person_in_charge': None,\n", + " 'start_up': '2017-01-01',\n", + " 'removal': None,\n", + " 'relations': [],\n", + " 'description': None,\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'm3p:id/deviceAttribut/eo/2017/vc170038',\n", + " 'rdf_type': 'vocabulary:Vector',\n", + " 'rdf_type_name': 'Vector',\n", + " 'name': 'Emb_38',\n", + " 'brand': None,\n", + " 'constructor_model': None,\n", + " 'serial_number': None,\n", + " 'person_in_charge': None,\n", + " 'start_up': '2017-01-01',\n", + " 'removal': None,\n", + " 'relations': [],\n", + " 'description': None,\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'm3p:id/deviceAttribut/eo/2017/vc170039',\n", + " 'rdf_type': 'vocabulary:Vector',\n", + " 'rdf_type_name': 'Vector',\n", + " 'name': 'Emb_39',\n", + " 'brand': None,\n", + " 'constructor_model': None,\n", + " 'serial_number': None,\n", + " 'person_in_charge': None,\n", + " 'start_up': '2017-01-01',\n", + " 'removal': None,\n", + " 'relations': [],\n", + " 'description': None,\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'm3p:id/deviceAttribut/eo/2017/vc170004',\n", + " 'rdf_type': 'vocabulary:Vector',\n", + " 'rdf_type_name': 'Vector',\n", + " 'name': 'Emb_4',\n", + " 'brand': None,\n", + " 'constructor_model': None,\n", + " 'serial_number': None,\n", + " 'person_in_charge': None,\n", + " 'start_up': '2017-01-01',\n", + " 'removal': None,\n", + " 'relations': [],\n", + " 'description': None,\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'm3p:id/deviceAttribut/eo/2017/vc170040',\n", + " 'rdf_type': 'vocabulary:Vector',\n", + " 'rdf_type_name': 'Vector',\n", + " 'name': 'Emb_40',\n", + " 'brand': None,\n", + " 'constructor_model': None,\n", + " 'serial_number': None,\n", + " 'person_in_charge': None,\n", + " 'start_up': '2017-01-01',\n", + " 'removal': None,\n", + " 'relations': [],\n", + " 'description': None,\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'm3p:id/deviceAttribut/eo/2017/vc170041',\n", + " 'rdf_type': 'vocabulary:Vector',\n", + " 'rdf_type_name': 'Vector',\n", + " 'name': 'Emb_41',\n", + " 'brand': None,\n", + " 'constructor_model': None,\n", + " 'serial_number': None,\n", + " 'person_in_charge': None,\n", + " 'start_up': '2017-01-01',\n", + " 'removal': None,\n", + " 'relations': [],\n", + " 'description': None,\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'm3p:id/deviceAttribut/eo/2017/vc170042',\n", + " 'rdf_type': 'vocabulary:Vector',\n", + " 'rdf_type_name': 'Vector',\n", + " 'name': 'Emb_42',\n", + " 'brand': None,\n", + " 'constructor_model': None,\n", + " 'serial_number': None,\n", + " 'person_in_charge': None,\n", + " 'start_up': '2017-01-01',\n", + " 'removal': None,\n", + " 'relations': [],\n", + " 'description': None,\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'm3p:id/deviceAttribut/eo/2017/vc170043',\n", + " 'rdf_type': 'vocabulary:Vector',\n", + " 'rdf_type_name': 'Vector',\n", + " 'name': 'Emb_43',\n", + " 'brand': None,\n", + " 'constructor_model': None,\n", + " 'serial_number': None,\n", + " 'person_in_charge': None,\n", + " 'start_up': '2017-01-01',\n", + " 'removal': None,\n", + " 'relations': [],\n", + " 'description': None,\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'm3p:id/deviceAttribut/eo/2017/vc170044',\n", + " 'rdf_type': 'vocabulary:Vector',\n", + " 'rdf_type_name': 'Vector',\n", + " 'name': 'Emb_44',\n", + " 'brand': None,\n", + " 'constructor_model': None,\n", + " 'serial_number': None,\n", + " 'person_in_charge': None,\n", + " 'start_up': '2017-01-01',\n", + " 'removal': None,\n", + " 'relations': [],\n", + " 'description': None,\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'm3p:id/deviceAttribut/eo/2017/vc170045',\n", + " 'rdf_type': 'vocabulary:Vector',\n", + " 'rdf_type_name': 'Vector',\n", + " 'name': 'Emb_45',\n", + " 'brand': None,\n", + " 'constructor_model': None,\n", + " 'serial_number': None,\n", + " 'person_in_charge': None,\n", + " 'start_up': '2017-01-01',\n", + " 'removal': None,\n", + " 'relations': [],\n", + " 'description': None,\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'm3p:id/deviceAttribut/eo/2017/vc170046',\n", + " 'rdf_type': 'vocabulary:Vector',\n", + " 'rdf_type_name': 'Vector',\n", + " 'name': 'Emb_46',\n", + " 'brand': None,\n", + " 'constructor_model': None,\n", + " 'serial_number': None,\n", + " 'person_in_charge': None,\n", + " 'start_up': '2017-01-01',\n", + " 'removal': None,\n", + " 'relations': [],\n", + " 'description': None,\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'm3p:id/deviceAttribut/eo/2017/vc170047',\n", + " 'rdf_type': 'vocabulary:Vector',\n", + " 'rdf_type_name': 'Vector',\n", + " 'name': 'Emb_47',\n", + " 'brand': None,\n", + " 'constructor_model': None,\n", + " 'serial_number': None,\n", + " 'person_in_charge': None,\n", + " 'start_up': '2017-01-01',\n", + " 'removal': None,\n", + " 'relations': [],\n", + " 'description': None,\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'm3p:id/deviceAttribut/eo/2017/vc170048',\n", + " 'rdf_type': 'vocabulary:Vector',\n", + " 'rdf_type_name': 'Vector',\n", + " 'name': 'Emb_48',\n", + " 'brand': None,\n", + " 'constructor_model': None,\n", + " 'serial_number': None,\n", + " 'person_in_charge': None,\n", + " 'start_up': '2017-01-01',\n", + " 'removal': None,\n", + " 'relations': [],\n", + " 'description': None,\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'm3p:id/deviceAttribut/eo/2017/vc170049',\n", + " 'rdf_type': 'vocabulary:Vector',\n", + " 'rdf_type_name': 'Vector',\n", + " 'name': 'Emb_49',\n", + " 'brand': None,\n", + " 'constructor_model': None,\n", + " 'serial_number': None,\n", + " 'person_in_charge': None,\n", + " 'start_up': '2017-01-01',\n", + " 'removal': None,\n", + " 'relations': [],\n", + " 'description': None,\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'm3p:id/deviceAttribut/eo/2017/vc170005',\n", + " 'rdf_type': 'vocabulary:Vector',\n", + " 'rdf_type_name': 'Vector',\n", + " 'name': 'Emb_5',\n", + " 'brand': None,\n", + " 'constructor_model': None,\n", + " 'serial_number': None,\n", + " 'person_in_charge': None,\n", + " 'start_up': '2017-01-01',\n", + " 'removal': None,\n", + " 'relations': [],\n", + " 'description': None,\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'm3p:id/deviceAttribut/eo/2017/vc170050',\n", + " 'rdf_type': 'vocabulary:Vector',\n", + " 'rdf_type_name': 'Vector',\n", + " 'name': 'Emb_50',\n", + " 'brand': None,\n", + " 'constructor_model': None,\n", + " 'serial_number': None,\n", + " 'person_in_charge': None,\n", + " 'start_up': '2017-01-01',\n", + " 'removal': None,\n", + " 'relations': [],\n", + " 'description': None,\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'm3p:id/deviceAttribut/eo/2017/vc170051',\n", + " 'rdf_type': 'vocabulary:Vector',\n", + " 'rdf_type_name': 'Vector',\n", + " 'name': 'Emb_51',\n", + " 'brand': None,\n", + " 'constructor_model': None,\n", + " 'serial_number': None,\n", + " 'person_in_charge': None,\n", + " 'start_up': '2017-01-01',\n", + " 'removal': None,\n", + " 'relations': [],\n", + " 'description': None,\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'm3p:id/deviceAttribut/eo/2017/vc170052',\n", + " 'rdf_type': 'vocabulary:Vector',\n", + " 'rdf_type_name': 'Vector',\n", + " 'name': 'Emb_52',\n", + " 'brand': None,\n", + " 'constructor_model': None,\n", + " 'serial_number': None,\n", + " 'person_in_charge': None,\n", + " 'start_up': '2017-01-01',\n", + " 'removal': None,\n", + " 'relations': [],\n", + " 'description': None,\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'm3p:id/deviceAttribut/eo/2017/vc170053',\n", + " 'rdf_type': 'vocabulary:Vector',\n", + " 'rdf_type_name': 'Vector',\n", + " 'name': 'Emb_53',\n", + " 'brand': None,\n", + " 'constructor_model': None,\n", + " 'serial_number': None,\n", + " 'person_in_charge': None,\n", + " 'start_up': '2017-01-01',\n", + " 'removal': None,\n", + " 'relations': [],\n", + " 'description': None,\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'm3p:id/deviceAttribut/eo/2017/vc170054',\n", + " 'rdf_type': 'vocabulary:Vector',\n", + " 'rdf_type_name': 'Vector',\n", + " 'name': 'Emb_54',\n", + " 'brand': None,\n", + " 'constructor_model': None,\n", + " 'serial_number': None,\n", + " 'person_in_charge': None,\n", + " 'start_up': '2017-01-01',\n", + " 'removal': None,\n", + " 'relations': [],\n", + " 'description': None,\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'm3p:id/deviceAttribut/eo/2017/vc170055',\n", + " 'rdf_type': 'vocabulary:Vector',\n", + " 'rdf_type_name': 'Vector',\n", + " 'name': 'Emb_55',\n", + " 'brand': None,\n", + " 'constructor_model': None,\n", + " 'serial_number': None,\n", + " 'person_in_charge': None,\n", + " 'start_up': '2017-01-01',\n", + " 'removal': None,\n", + " 'relations': [],\n", + " 'description': None,\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'm3p:id/deviceAttribut/eo/2017/vc170056',\n", + " 'rdf_type': 'vocabulary:Vector',\n", + " 'rdf_type_name': 'Vector',\n", + " 'name': 'Emb_56',\n", + " 'brand': None,\n", + " 'constructor_model': None,\n", + " 'serial_number': None,\n", + " 'person_in_charge': None,\n", + " 'start_up': '2017-01-01',\n", + " 'removal': None,\n", + " 'relations': [],\n", + " 'description': None,\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'm3p:id/deviceAttribut/eo/2017/vc170057',\n", + " 'rdf_type': 'vocabulary:Vector',\n", + " 'rdf_type_name': 'Vector',\n", + " 'name': 'Emb_57',\n", + " 'brand': None,\n", + " 'constructor_model': None,\n", + " 'serial_number': None,\n", + " 'person_in_charge': None,\n", + " 'start_up': '2017-01-01',\n", + " 'removal': None,\n", + " 'relations': [],\n", + " 'description': None,\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'm3p:id/deviceAttribut/eo/2017/vc170058',\n", + " 'rdf_type': 'vocabulary:Vector',\n", + " 'rdf_type_name': 'Vector',\n", + " 'name': 'Emb_58',\n", + " 'brand': None,\n", + " 'constructor_model': None,\n", + " 'serial_number': None,\n", + " 'person_in_charge': None,\n", + " 'start_up': '2017-01-01',\n", + " 'removal': None,\n", + " 'relations': [],\n", + " 'description': None,\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'm3p:id/deviceAttribut/eo/2017/vc170059',\n", + " 'rdf_type': 'vocabulary:Vector',\n", + " 'rdf_type_name': 'Vector',\n", + " 'name': 'Emb_59',\n", + " 'brand': None,\n", + " 'constructor_model': None,\n", + " 'serial_number': None,\n", + " 'person_in_charge': None,\n", + " 'start_up': '2017-01-01',\n", + " 'removal': None,\n", + " 'relations': [],\n", + " 'description': None,\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'm3p:id/deviceAttribut/eo/2017/vc170006',\n", + " 'rdf_type': 'vocabulary:Vector',\n", + " 'rdf_type_name': 'Vector',\n", + " 'name': 'Emb_6',\n", + " 'brand': None,\n", + " 'constructor_model': None,\n", + " 'serial_number': None,\n", + " 'person_in_charge': None,\n", + " 'start_up': '2017-01-01',\n", + " 'removal': None,\n", + " 'relations': [],\n", + " 'description': None,\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'm3p:id/deviceAttribut/eo/2017/vc170060',\n", + " 'rdf_type': 'vocabulary:Vector',\n", + " 'rdf_type_name': 'Vector',\n", + " 'name': 'Emb_60',\n", + " 'brand': None,\n", + " 'constructor_model': None,\n", + " 'serial_number': None,\n", + " 'person_in_charge': None,\n", + " 'start_up': '2017-01-01',\n", + " 'removal': None,\n", + " 'relations': [],\n", + " 'description': None,\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None}]}" + ] + }, + "execution_count": 14, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "phis.get_device(token=token)" + ] + }, + { + "cell_type": "markdown", + "id": "77df9f4e-91c0-44c4-b932-042ea2cdbb39", + "metadata": {}, + "source": [ + "#### Get specific device with URI" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "id": "e8193235-e5ac-4186-906f-b0d3f3a7808b", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'metadata': {'pagination': {'pageSize': 0,\n", + " 'currentPage': 0,\n", + " 'totalCount': 0,\n", + " 'totalPages': 0,\n", + " 'limitCount': 0,\n", + " 'hasNextPage': False},\n", + " 'status': [],\n", + " 'datafiles': []},\n", + " 'result': {'uri': 'http://www.phenome-fppn.fr/m3p/ec1/2016/sa1600064',\n", + " 'rdf_type': 'vocabulary:CO2Sensor',\n", + " 'rdf_type_name': 'CO2 sensor',\n", + " 'name': 'aria_co2_cE1',\n", + " 'brand': 'ARIA',\n", + " 'constructor_model': None,\n", + " 'serial_number': None,\n", + " 'person_in_charge': None,\n", + " 'start_up': '2011-05-01',\n", + " 'removal': None,\n", + " 'relations': [{'property': 'vocabulary:measures',\n", + " 'value': 'm3p:id/variable/ev000024',\n", + " 'inverse': False}],\n", + " 'description': None,\n", + " 'metadata': None,\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None}}" + ] + }, + "execution_count": 15, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "phis.get_device(uri='http://www.phenome-fppn.fr/m3p/ec1/2016/sa1600064', token=token)" + ] + }, + { + "cell_type": "markdown", + "id": "f6b0d09c-5566-4718-8832-17d837d7b74b", + "metadata": {}, + "source": [ + "#### List available annotations" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "id": "6c4fbe53-45ef-4679-ace1-9c7d21733552", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'metadata': {'pagination': {'pageSize': 100,\n", + " 'currentPage': 0,\n", + " 'totalCount': 0,\n", + " 'totalPages': 0,\n", + " 'limitCount': 0,\n", + " 'hasNextPage': False},\n", + " 'status': [],\n", + " 'datafiles': []},\n", + " 'result': []}" + ] + }, + "execution_count": 16, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "phis.get_annotation(token=token)" + ] + }, + { + "cell_type": "markdown", + "id": "c24cf5a9-0382-41c3-8902-6c8b2be47e80", + "metadata": {}, + "source": [ + "#### Get specific annotation with URI" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "id": "ec7ab620-d520-49fe-9646-eecea5ca84fe", + "metadata": {}, + "outputs": [], + "source": [ + "# No URIs" + ] + }, + { + "cell_type": "markdown", + "id": "9dcb9c9b-4c69-43e9-a656-21ac67348377", + "metadata": {}, + "source": [ + "#### List available documents" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "id": "26b13101-bad6-4767-8cc5-2df08ec12399", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'metadata': {'pagination': {'pageSize': 20,\n", + " 'currentPage': 0,\n", + " 'totalCount': 3,\n", + " 'totalPages': 1,\n", + " 'limitCount': 0,\n", + " 'hasNextPage': True},\n", + " 'status': [],\n", + " 'datafiles': []},\n", + " 'result': [{'uri': 'm3p:id/document/test_isa_doc_post_deploy',\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None,\n", + " 'identifier': None,\n", + " 'rdf_type': 'vocabulary:ScientificDocument',\n", + " 'rdf_type_name': 'Scientific Document',\n", + " 'title': 'test isa doc post deploy',\n", + " 'date': '2022-04-05',\n", + " 'description': None,\n", + " 'targets': [],\n", + " 'authors': [],\n", + " 'language': None,\n", + " 'format': 'png',\n", + " 'keywords': [],\n", + " 'deprecated': True,\n", + " 'source': None},\n", + " {'uri': 'm3p:id/document/test_isa_doc',\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None,\n", + " 'identifier': None,\n", + " 'rdf_type': 'vocabulary:ScientificDocument',\n", + " 'rdf_type_name': 'Scientific Document',\n", + " 'title': 'test isa doc ',\n", + " 'date': '2022-04-04',\n", + " 'description': None,\n", + " 'targets': [],\n", + " 'authors': [],\n", + " 'language': None,\n", + " 'format': 'png',\n", + " 'keywords': [],\n", + " 'deprecated': True,\n", + " 'source': None},\n", + " {'uri': 'm3p:id/document/test_dataset',\n", + " 'publisher': None,\n", + " 'publication_date': '2023-08-22T11:46:26.204356+02:00',\n", + " 'last_updated_date': '2023-08-22T11:53:27.395245+02:00',\n", + " 'identifier': 'doi:10.82233/BFHMFT',\n", + " 'rdf_type': 'vocabulary-dataverse:RechercheDataGouvDataset',\n", + " 'rdf_type_name': 'RechercheDataGouv Dataset',\n", + " 'title': 'Test_dataset',\n", + " 'date': '2020-02-20',\n", + " 'description': 'Test et démo connexion IRODS',\n", + " 'targets': ['m3p:id/experiment/expe_test_opensilex_irods'],\n", + " 'authors': ['http://www.phenome.inrae.fr/m3p/users#admin.opensilex/Person'],\n", + " 'language': 'English',\n", + " 'format': None,\n", + " 'keywords': [],\n", + " 'deprecated': True,\n", + " 'source': 'https://data-preproduction.inrae.fr/dataset.xhtml?persistentId=doi%3A10.82233%2FBFHMFT'}]}" + ] + }, + "execution_count": 18, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "phis.get_document(token=token)" + ] + }, + { + "cell_type": "markdown", + "id": "e55cd13a-1889-431e-a9ab-42e39ba939c8", + "metadata": {}, + "source": [ + "#### Get specific document with URI" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "id": "3069fe3f-cda6-4bca-a1f6-02e53abc85c5", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'metadata': {'pagination': {'pageSize': 0,\n", + " 'currentPage': 0,\n", + " 'totalCount': 0,\n", + " 'totalPages': 0,\n", + " 'limitCount': 0,\n", + " 'hasNextPage': False},\n", + " 'status': [],\n", + " 'datafiles': []},\n", + " 'result': {'uri': 'm3p:id/document/test_dataset',\n", + " 'publisher': None,\n", + " 'publication_date': '2023-08-22T11:46:26.204356+02:00',\n", + " 'last_updated_date': '2023-08-22T11:53:27.395245+02:00',\n", + " 'identifier': 'doi:10.82233/BFHMFT',\n", + " 'rdf_type': 'vocabulary-dataverse:RechercheDataGouvDataset',\n", + " 'rdf_type_name': 'RechercheDataGouv Dataset',\n", + " 'title': 'Test_dataset',\n", + " 'date': '2020-02-20',\n", + " 'description': 'Test et démo connexion IRODS',\n", + " 'targets': ['m3p:id/experiment/expe_test_opensilex_irods'],\n", + " 'authors': ['http://www.phenome.inrae.fr/m3p/users#admin.opensilex/Person'],\n", + " 'language': 'English',\n", + " 'format': None,\n", + " 'keywords': [],\n", + " 'deprecated': True,\n", + " 'source': 'https://data-preproduction.inrae.fr/dataset.xhtml?persistentId=doi%3A10.82233%2FBFHMFT'}}" + ] + }, + "execution_count": 19, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "phis.get_document(uri='m3p:id/document/test_dataset', token=token)" + ] + }, + { + "cell_type": "markdown", + "id": "d39fcca3-480b-401a-9f6a-6f4d9670aa03", + "metadata": {}, + "source": [ + "#### List available factors" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "id": "acf07aee-51ad-47f8-adc7-c3d023c98e32", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'metadata': {'pagination': {'pageSize': 100,\n", + " 'currentPage': 0,\n", + " 'totalCount': 0,\n", + " 'totalPages': 0,\n", + " 'limitCount': 0,\n", + " 'hasNextPage': False},\n", + " 'status': [],\n", + " 'datafiles': []},\n", + " 'result': []}" + ] + }, + "execution_count": 20, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "phis.get_factor(token=token)" + ] + }, + { + "cell_type": "markdown", + "id": "96566eec-c90b-4ee9-9cad-88bfde988be4", + "metadata": {}, + "source": [ + "#### Get specific factor with URI" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "id": "10363530-849e-43d0-9376-f87a68e4183f", + "metadata": {}, + "outputs": [], + "source": [ + "# No URIs" + ] + }, + { + "cell_type": "markdown", + "id": "9365cbd0-5fef-40a8-8349-47911ba4ea98", + "metadata": {}, + "source": [ + "#### List available organizations" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "id": "cce64d6b-4330-4049-a8ba-60d1ed8d59d4", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'metadata': {'pagination': {'pageSize': 6,\n", + " 'currentPage': 0,\n", + " 'totalCount': 6,\n", + " 'totalPages': 1,\n", + " 'limitCount': 0,\n", + " 'hasNextPage': True},\n", + " 'status': [],\n", + " 'datafiles': []},\n", + " 'result': [{'uri': 'https://emphasis.plant-phenotyping.eu/',\n", + " 'name': 'EMPHASIS',\n", + " 'parents': [],\n", + " 'children': ['http://www.phenome-fppn.fr'],\n", + " 'rdf_type': 'vocabulary:EuropeanOrganization',\n", + " 'rdf_type_name': 'european organization',\n", + " 'publication_date': None,\n", + " 'last_updated_date': '2024-02-02T15:44:25.716531+01:00'},\n", + " {'uri': 'm3p:id/organization/phenoarch',\n", + " 'name': 'PHENOARCH',\n", + " 'parents': ['http://phenome.inrae.fr/id/organization/m3p'],\n", + " 'children': [],\n", + " 'rdf_type': 'vocabulary:LocalOrganization',\n", + " 'rdf_type_name': 'local organization',\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'm3p:id/organization/phenodyn',\n", + " 'name': 'PHENODYN',\n", + " 'parents': ['http://phenome.inrae.fr/id/organization/m3p'],\n", + " 'children': [],\n", + " 'rdf_type': 'vocabulary:LocalOrganization',\n", + " 'rdf_type_name': 'local organization',\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'http://www.phenome-fppn.fr',\n", + " 'name': 'PHENOME-EMPHASIS',\n", + " 'parents': ['https://emphasis.plant-phenotyping.eu/'],\n", + " 'children': ['http://phenome.inrae.fr/id/organization/m3p'],\n", + " 'rdf_type': 'vocabulary:NationalOrganization',\n", + " 'rdf_type_name': 'national organization',\n", + " 'publication_date': None,\n", + " 'last_updated_date': '2024-02-02T15:42:52.481122+01:00'},\n", + " {'uri': 'http://phenome.inrae.fr/id/organization/m3p',\n", + " 'name': 'M3P',\n", + " 'parents': ['http://www.phenome-fppn.fr'],\n", + " 'children': ['m3p:id/organization/phenopsis',\n", + " 'm3p:id/organization/phenoarch',\n", + " 'm3p:id/organization/phenodyn'],\n", + " 'rdf_type': 'vocabulary:LocalOrganization',\n", + " 'rdf_type_name': 'local organization',\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'm3p:id/organization/phenopsis',\n", + " 'name': 'PHENOPSIS',\n", + " 'parents': ['http://phenome.inrae.fr/id/organization/m3p'],\n", + " 'children': [],\n", + " 'rdf_type': 'vocabulary:LocalOrganization',\n", + " 'rdf_type_name': 'local organization',\n", + " 'publication_date': None,\n", + " 'last_updated_date': None}]}" + ] + }, + "execution_count": 22, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "phis.get_organization(token=token)" + ] + }, + { + "cell_type": "markdown", + "id": "327938f2-8cbf-4da2-9805-439ce37782f6", + "metadata": {}, + "source": [ + "#### Get specific organization with URI" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "id": "4fa69cce-3be1-4730-9f2b-077c8c8e5e18", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'metadata': {'pagination': {'pageSize': 0,\n", + " 'currentPage': 0,\n", + " 'totalCount': 0,\n", + " 'totalPages': 0,\n", + " 'limitCount': 0,\n", + " 'hasNextPage': False},\n", + " 'status': [],\n", + " 'datafiles': []},\n", + " 'result': {'uri': 'm3p:id/organization/phenoarch',\n", + " 'rdf_type': 'vocabulary:LocalOrganization',\n", + " 'rdf_type_name': 'local organization',\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None,\n", + " 'name': 'PHENOARCH',\n", + " 'parents': [{'uri': 'http://phenome.inrae.fr/id/organization/m3p',\n", + " 'name': 'M3P',\n", + " 'rdf_type': 'vocabulary:LocalOrganization',\n", + " 'rdf_type_name': 'local organization',\n", + " 'publication_date': None,\n", + " 'last_updated_date': None}],\n", + " 'children': [],\n", + " 'groups': [],\n", + " 'facilities': [],\n", + " 'sites': [],\n", + " 'experiments': [{'uri': 'm3p:id/experiment/dyn2020-05-15',\n", + " 'name': 'G2WAS2020',\n", + " 'rdf_type': 'vocabulary:Experiment',\n", + " 'rdf_type_name': 'experiment',\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'm3p:id/experiment/za20',\n", + " 'name': 'ZA20',\n", + " 'rdf_type': 'vocabulary:Experiment',\n", + " 'rdf_type_name': 'experiment',\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'm3p:id/experiment/ta20',\n", + " 'name': 'TA20',\n", + " 'rdf_type': 'vocabulary:Experiment',\n", + " 'rdf_type_name': 'experiment',\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'm3p:id/experiment/za22',\n", + " 'name': 'ZA22',\n", + " 'rdf_type': 'vocabulary:Experiment',\n", + " 'rdf_type_name': 'experiment',\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'm3p:id/experiment/g2was2022',\n", + " 'name': 'G2WAS2022',\n", + " 'rdf_type': 'vocabulary:Experiment',\n", + " 'rdf_type_name': 'experiment',\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'm3p:id/experiment/archtest_rice2023',\n", + " 'name': 'ARCHTEST_RICE2023',\n", + " 'rdf_type': 'vocabulary:Experiment',\n", + " 'rdf_type_name': 'experiment',\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'm3p:id/experiment/za24',\n", + " 'name': 'ZA24',\n", + " 'rdf_type': 'vocabulary:Experiment',\n", + " 'rdf_type_name': 'experiment',\n", + " 'publication_date': '2024-01-19T15:52:29.026764+01:00',\n", + " 'last_updated_date': '2024-04-08T14:59:16.113409+02:00'},\n", + " {'uri': 'http://www.phenome-fppn.fr/m3p/ARCH2012-01-01',\n", + " 'name': 'ARCH2012-01-01',\n", + " 'rdf_type': 'vocabulary:Experiment',\n", + " 'rdf_type_name': 'experiment',\n", + " 'publication_date': '2024-02-19T16:14:49.51928+01:00',\n", + " 'last_updated_date': '2024-02-20T10:42:40.334917+01:00'}]}}" + ] + }, + "execution_count": 23, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "phis.get_organization(uri='m3p:id/organization/phenoarch', token=token)" + ] + }, + { + "cell_type": "markdown", + "id": "79249735-80cb-41f9-b1f7-5ff4d0fa343a", + "metadata": {}, + "source": [ + "#### List available sites" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "id": "7df0c881-e1c1-4d54-9ca6-f971410d67d3", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'metadata': {'pagination': {'pageSize': 0,\n", + " 'currentPage': 0,\n", + " 'totalCount': 0,\n", + " 'totalPages': 0,\n", + " 'limitCount': 0,\n", + " 'hasNextPage': False},\n", + " 'status': [],\n", + " 'datafiles': []},\n", + " 'result': []}" + ] + }, + "execution_count": 24, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "phis.get_site(token=token)" + ] + }, + { + "cell_type": "markdown", + "id": "723c8495-6fee-417a-9e6e-57fb1e67d10f", + "metadata": {}, + "source": [ + "#### Get specific site with URI" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "id": "3ecafefc-4d1f-414b-b53c-303d12d70025", + "metadata": {}, + "outputs": [], + "source": [ + "# No URIs" + ] + }, + { + "cell_type": "markdown", + "id": "b8a0434f-9ad1-4a23-a59f-b35f42d6667a", + "metadata": {}, + "source": [ + "#### List available scientific objects" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "id": "4d7f5802-ca38-4134-a744-46d2e864ff70", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'metadata': {'pagination': {'pageSize': 100,\n", + " 'currentPage': 0,\n", + " 'totalCount': 3661,\n", + " 'totalPages': 37,\n", + " 'limitCount': 0,\n", + " 'hasNextPage': True},\n", + " 'status': [],\n", + " 'datafiles': []},\n", + " 'result': [{'uri': 'm3p:id/scientific-object/za20/so-0001zm4531eppn7_lwd1eppn_rep_101_01arch2020-02-03',\n", + " 'name': '0001/ZM4531/EPPN7_L/WD1/EPPN_Rep_1/01_01/ARCH2020-02-03',\n", + " 'geometry': None,\n", + " 'rdf_type': 'vocabulary:Plant',\n", + " 'rdf_type_name': 'plant',\n", + " 'publication_date': None,\n", + " 'last_updated_date': None,\n", + " 'creation_date': None,\n", + " 'destruction_date': None},\n", + " {'uri': 'm3p:id/scientific-object/za20/so-0002zm4534eppn10_lwd1eppn_rep_101_02arch2020-02-03',\n", + " 'name': '0002/ZM4534/EPPN10_L/WD1/EPPN_Rep_1/01_02/ARCH2020-02-03',\n", + " 'geometry': None,\n", + " 'rdf_type': 'vocabulary:Plant',\n", + " 'rdf_type_name': 'plant',\n", + " 'publication_date': None,\n", + " 'last_updated_date': None,\n", + " 'creation_date': None,\n", + " 'destruction_date': None},\n", + " {'uri': 'm3p:id/scientific-object/za20/so-0002zm4534eppn10_lwd1eppn_rep_101_02arch2020-02-03-1',\n", + " 'name': '0002/ZM4534/EPPN10_L/WD1/EPPN_Rep_1/01_02/ARCH2020-02-03',\n", + " 'geometry': None,\n", + " 'rdf_type': 'vocabulary:Plant',\n", + " 'rdf_type_name': 'plant',\n", + " 'publication_date': None,\n", + " 'last_updated_date': None,\n", + " 'creation_date': None,\n", + " 'destruction_date': None},\n", + " {'uri': 'm3p:id/scientific-object/za20/so-0003zm4532eppn8_lwd1eppn_rep_101_03arch2020-02-03',\n", + " 'name': '0003/ZM4532/EPPN8_L/WD1/EPPN_Rep_1/01_03/ARCH2020-02-03',\n", + " 'geometry': None,\n", + " 'rdf_type': 'vocabulary:Plant',\n", + " 'rdf_type_name': 'plant',\n", + " 'publication_date': None,\n", + " 'last_updated_date': None,\n", + " 'creation_date': None,\n", + " 'destruction_date': None},\n", + " {'uri': 'm3p:id/scientific-object/za20/so-0003zm4532eppn8_lwd1eppn_rep_101_03arch2020-02-03-1',\n", + " 'name': '0003/ZM4532/EPPN8_L/WD1/EPPN_Rep_1/01_03/ARCH2020-02-03',\n", + " 'geometry': None,\n", + " 'rdf_type': 'vocabulary:Plant',\n", + " 'rdf_type_name': 'plant',\n", + " 'publication_date': None,\n", + " 'last_updated_date': None,\n", + " 'creation_date': None,\n", + " 'destruction_date': None},\n", + " {'uri': 'm3p:id/scientific-object/za20/so-0004zm4527eppn3_lwd1eppn_rep_101_04arch2020-02-03',\n", + " 'name': '0004/ZM4527/EPPN3_L/WD1/EPPN_Rep_1/01_04/ARCH2020-02-03',\n", + " 'geometry': None,\n", + " 'rdf_type': 'vocabulary:Plant',\n", + " 'rdf_type_name': 'plant',\n", + " 'publication_date': None,\n", + " 'last_updated_date': None,\n", + " 'creation_date': None,\n", + " 'destruction_date': None},\n", + " {'uri': 'm3p:id/scientific-object/za20/so-0004zm4527eppn3_lwd1eppn_rep_101_04arch2020-02-03-1',\n", + " 'name': '0004/ZM4527/EPPN3_L/WD1/EPPN_Rep_1/01_04/ARCH2020-02-03',\n", + " 'geometry': None,\n", + " 'rdf_type': 'vocabulary:Plant',\n", + " 'rdf_type_name': 'plant',\n", + " 'publication_date': None,\n", + " 'last_updated_date': None,\n", + " 'creation_date': None,\n", + " 'destruction_date': None},\n", + " {'uri': 'm3p:id/scientific-object/za20/so-0005zm4525eppn1_lwd1eppn_rep_101_05arch2020-02-03',\n", + " 'name': '0005/ZM4525/EPPN1_L/WD1/EPPN_Rep_1/01_05/ARCH2020-02-03',\n", + " 'geometry': None,\n", + " 'rdf_type': 'vocabulary:Plant',\n", + " 'rdf_type_name': 'plant',\n", + " 'publication_date': None,\n", + " 'last_updated_date': None,\n", + " 'creation_date': None,\n", + " 'destruction_date': None},\n", + " {'uri': 'm3p:id/scientific-object/za20/so-0005zm4525eppn1_lwd1eppn_rep_101_05arch2020-02-03-1',\n", + " 'name': '0005/ZM4525/EPPN1_L/WD1/EPPN_Rep_1/01_05/ARCH2020-02-03',\n", + " 'geometry': None,\n", + " 'rdf_type': 'vocabulary:Plant',\n", + " 'rdf_type_name': 'plant',\n", + " 'publication_date': None,\n", + " 'last_updated_date': None,\n", + " 'creation_date': None,\n", + " 'destruction_date': None},\n", + " {'uri': 'm3p:id/scientific-object/za20/so-0006zm4526eppn2_lwd1eppn_rep_101_06arch2020-02-03',\n", + " 'name': '0006/ZM4526/EPPN2_L/WD1/EPPN_Rep_1/01_06/ARCH2020-02-03',\n", + " 'geometry': None,\n", + " 'rdf_type': 'vocabulary:Plant',\n", + " 'rdf_type_name': 'plant',\n", + " 'publication_date': None,\n", + " 'last_updated_date': None,\n", + " 'creation_date': None,\n", + " 'destruction_date': None},\n", + " {'uri': 'm3p:id/scientific-object/za20/so-0006zm4526eppn2_lwd1eppn_rep_101_06arch2020-02-03-1',\n", + " 'name': '0006/ZM4526/EPPN2_L/WD1/EPPN_Rep_1/01_06/ARCH2020-02-03',\n", + " 'geometry': None,\n", + " 'rdf_type': 'vocabulary:Plant',\n", + " 'rdf_type_name': 'plant',\n", + " 'publication_date': None,\n", + " 'last_updated_date': None,\n", + " 'creation_date': None,\n", + " 'destruction_date': None},\n", + " {'uri': 'm3p:id/scientific-object/za20/so-0007zm4533eppn9_lwd1eppn_rep_101_07arch2020-02-03',\n", + " 'name': '0007/ZM4533/EPPN9_L/WD1/EPPN_Rep_1/01_07/ARCH2020-02-03',\n", + " 'geometry': None,\n", + " 'rdf_type': 'vocabulary:Plant',\n", + " 'rdf_type_name': 'plant',\n", + " 'publication_date': None,\n", + " 'last_updated_date': None,\n", + " 'creation_date': None,\n", + " 'destruction_date': None},\n", + " {'uri': 'm3p:id/scientific-object/za20/so-0007zm4533eppn9_lwd1eppn_rep_101_07arch2020-02-03-1',\n", + " 'name': '0007/ZM4533/EPPN9_L/WD1/EPPN_Rep_1/01_07/ARCH2020-02-03',\n", + " 'geometry': None,\n", + " 'rdf_type': 'vocabulary:Plant',\n", + " 'rdf_type_name': 'plant',\n", + " 'publication_date': None,\n", + " 'last_updated_date': None,\n", + " 'creation_date': None,\n", + " 'destruction_date': None},\n", + " {'uri': 'm3p:id/scientific-object/za20/so-0008zm4538eppn14_lwd1eppn_rep_101_08arch2020-02-03',\n", + " 'name': '0008/ZM4538/EPPN14_L/WD1/EPPN_Rep_1/01_08/ARCH2020-02-03',\n", + " 'geometry': None,\n", + " 'rdf_type': 'vocabulary:Plant',\n", + " 'rdf_type_name': 'plant',\n", + " 'publication_date': None,\n", + " 'last_updated_date': None,\n", + " 'creation_date': None,\n", + " 'destruction_date': None},\n", + " {'uri': 'm3p:id/scientific-object/za20/so-0008zm4538eppn14_lwd1eppn_rep_101_08arch2020-02-03-1',\n", + " 'name': '0008/ZM4538/EPPN14_L/WD1/EPPN_Rep_1/01_08/ARCH2020-02-03',\n", + " 'geometry': None,\n", + " 'rdf_type': 'vocabulary:Plant',\n", + " 'rdf_type_name': 'plant',\n", + " 'publication_date': None,\n", + " 'last_updated_date': None,\n", + " 'creation_date': None,\n", + " 'destruction_date': None},\n", + " {'uri': 'm3p:id/scientific-object/za20/so-0009zm4528eppn4_lwd1eppn_rep_101_09arch2020-02-03',\n", + " 'name': '0009/ZM4528/EPPN4_L/WD1/EPPN_Rep_1/01_09/ARCH2020-02-03',\n", + " 'geometry': None,\n", + " 'rdf_type': 'vocabulary:Plant',\n", + " 'rdf_type_name': 'plant',\n", + " 'publication_date': None,\n", + " 'last_updated_date': None,\n", + " 'creation_date': None,\n", + " 'destruction_date': None},\n", + " {'uri': 'm3p:id/scientific-object/za20/so-0009zm4528eppn4_lwd1eppn_rep_101_09arch2020-02-03-1',\n", + " 'name': '0009/ZM4528/EPPN4_L/WD1/EPPN_Rep_1/01_09/ARCH2020-02-03',\n", + " 'geometry': None,\n", + " 'rdf_type': 'vocabulary:Plant',\n", + " 'rdf_type_name': 'plant',\n", + " 'publication_date': None,\n", + " 'last_updated_date': None,\n", + " 'creation_date': None,\n", + " 'destruction_date': None},\n", + " {'uri': 'm3p:id/scientific-object/za20/so-0010zm4555eppn20_twd1eppn_rep_101_10arch2020-02-03',\n", + " 'name': '0010/ZM4555/EPPN20_T/WD1/EPPN_Rep_1/01_10/ARCH2020-02-03',\n", + " 'geometry': None,\n", + " 'rdf_type': 'vocabulary:Plant',\n", + " 'rdf_type_name': 'plant',\n", + " 'publication_date': None,\n", + " 'last_updated_date': None,\n", + " 'creation_date': None,\n", + " 'destruction_date': None},\n", + " {'uri': 'm3p:id/scientific-object/za20/so-0010zm4555eppn20_twd1eppn_rep_101_10arch2020-02-03-1',\n", + " 'name': '0010/ZM4555/EPPN20_T/WD1/EPPN_Rep_1/01_10/ARCH2020-02-03',\n", + " 'geometry': None,\n", + " 'rdf_type': 'vocabulary:Plant',\n", + " 'rdf_type_name': 'plant',\n", + " 'publication_date': None,\n", + " 'last_updated_date': None,\n", + " 'creation_date': None,\n", + " 'destruction_date': None},\n", + " {'uri': 'm3p:id/scientific-object/za20/so-0011zm4537eppn13_lwd1eppn_rep_101_11arch2020-02-03',\n", + " 'name': '0011/ZM4537/EPPN13_L/WD1/EPPN_Rep_1/01_11/ARCH2020-02-03',\n", + " 'geometry': None,\n", + " 'rdf_type': 'vocabulary:Plant',\n", + " 'rdf_type_name': 'plant',\n", + " 'publication_date': None,\n", + " 'last_updated_date': None,\n", + " 'creation_date': None,\n", + " 'destruction_date': None},\n", + " {'uri': 'm3p:id/scientific-object/za20/so-0011zm4537eppn13_lwd1eppn_rep_101_11arch2020-02-03-1',\n", + " 'name': '0011/ZM4537/EPPN13_L/WD1/EPPN_Rep_1/01_11/ARCH2020-02-03',\n", + " 'geometry': None,\n", + " 'rdf_type': 'vocabulary:Plant',\n", + " 'rdf_type_name': 'plant',\n", + " 'publication_date': None,\n", + " 'last_updated_date': None,\n", + " 'creation_date': None,\n", + " 'destruction_date': None},\n", + " {'uri': 'm3p:id/scientific-object/za20/so-0012zm4530eppn6_lwd1eppn_rep_101_12arch2020-02-03',\n", + " 'name': '0012/ZM4530/EPPN6_L/WD1/EPPN_Rep_1/01_12/ARCH2020-02-03',\n", + " 'geometry': None,\n", + " 'rdf_type': 'vocabulary:Plant',\n", + " 'rdf_type_name': 'plant',\n", + " 'publication_date': None,\n", + " 'last_updated_date': None,\n", + " 'creation_date': None,\n", + " 'destruction_date': None},\n", + " {'uri': 'm3p:id/scientific-object/za20/so-0012zm4530eppn6_lwd1eppn_rep_101_12arch2020-02-03-1',\n", + " 'name': '0012/ZM4530/EPPN6_L/WD1/EPPN_Rep_1/01_12/ARCH2020-02-03',\n", + " 'geometry': None,\n", + " 'rdf_type': 'vocabulary:Plant',\n", + " 'rdf_type_name': 'plant',\n", + " 'publication_date': None,\n", + " 'last_updated_date': None,\n", + " 'creation_date': None,\n", + " 'destruction_date': None},\n", + " {'uri': 'm3p:id/scientific-object/za20/so-0013zm4535eppn11_lwd1eppn_rep_101_13arch2020-02-03',\n", + " 'name': '0013/ZM4535/EPPN11_L/WD1/EPPN_Rep_1/01_13/ARCH2020-02-03',\n", + " 'geometry': None,\n", + " 'rdf_type': 'vocabulary:Plant',\n", + " 'rdf_type_name': 'plant',\n", + " 'publication_date': None,\n", + " 'last_updated_date': None,\n", + " 'creation_date': None,\n", + " 'destruction_date': None},\n", + " {'uri': 'm3p:id/scientific-object/za20/so-0013zm4535eppn11_lwd1eppn_rep_101_13arch2020-02-03-1',\n", + " 'name': '0013/ZM4535/EPPN11_L/WD1/EPPN_Rep_1/01_13/ARCH2020-02-03',\n", + " 'geometry': None,\n", + " 'rdf_type': 'vocabulary:Plant',\n", + " 'rdf_type_name': 'plant',\n", + " 'publication_date': None,\n", + " 'last_updated_date': None,\n", + " 'creation_date': None,\n", + " 'destruction_date': None},\n", + " {'uri': 'm3p:id/scientific-object/za20/so-0014zm4529eppn5_lwd1eppn_rep_101_14arch2020-02-03',\n", + " 'name': '0014/ZM4529/EPPN5_L/WD1/EPPN_Rep_1/01_14/ARCH2020-02-03',\n", + " 'geometry': None,\n", + " 'rdf_type': 'vocabulary:Plant',\n", + " 'rdf_type_name': 'plant',\n", + " 'publication_date': None,\n", + " 'last_updated_date': None,\n", + " 'creation_date': None,\n", + " 'destruction_date': None},\n", + " {'uri': 'm3p:id/scientific-object/za20/so-0014zm4529eppn5_lwd1eppn_rep_101_14arch2020-02-03-1',\n", + " 'name': '0014/ZM4529/EPPN5_L/WD1/EPPN_Rep_1/01_14/ARCH2020-02-03',\n", + " 'geometry': None,\n", + " 'rdf_type': 'vocabulary:Plant',\n", + " 'rdf_type_name': 'plant',\n", + " 'publication_date': None,\n", + " 'last_updated_date': None,\n", + " 'creation_date': None,\n", + " 'destruction_date': None},\n", + " {'uri': 'm3p:id/scientific-object/za20/so-0015zm4536eppn12_lwd1eppn_rep_101_15arch2020-02-03',\n", + " 'name': '0015/ZM4536/EPPN12_L/WD1/EPPN_Rep_1/01_15/ARCH2020-02-03',\n", + " 'geometry': None,\n", + " 'rdf_type': 'vocabulary:Plant',\n", + " 'rdf_type_name': 'plant',\n", + " 'publication_date': None,\n", + " 'last_updated_date': None,\n", + " 'creation_date': None,\n", + " 'destruction_date': None},\n", + " {'uri': 'm3p:id/scientific-object/za20/so-0015zm4536eppn12_lwd1eppn_rep_101_15arch2020-02-03-1',\n", + " 'name': '0015/ZM4536/EPPN12_L/WD1/EPPN_Rep_1/01_15/ARCH2020-02-03',\n", + " 'geometry': None,\n", + " 'rdf_type': 'vocabulary:Plant',\n", + " 'rdf_type_name': 'plant',\n", + " 'publication_date': None,\n", + " 'last_updated_date': None,\n", + " 'creation_date': None,\n", + " 'destruction_date': None},\n", + " {'uri': 'm3p:id/scientific-object/za20/so-0016zm4541eppn2_hwweppn_rep_201_16arch2020-02-03',\n", + " 'name': '0016/ZM4541/EPPN2_H/WW/EPPN_Rep_2/01_16/ARCH2020-02-03',\n", + " 'geometry': None,\n", + " 'rdf_type': 'vocabulary:Plant',\n", + " 'rdf_type_name': 'plant',\n", + " 'publication_date': None,\n", + " 'last_updated_date': None,\n", + " 'creation_date': None,\n", + " 'destruction_date': None},\n", + " {'uri': 'm3p:id/scientific-object/za20/so-0016zm4541eppn2_hwweppn_rep_201_16arch2020-02-03-1',\n", + " 'name': '0016/ZM4541/EPPN2_H/WW/EPPN_Rep_2/01_16/ARCH2020-02-03',\n", + " 'geometry': None,\n", + " 'rdf_type': 'vocabulary:Plant',\n", + " 'rdf_type_name': 'plant',\n", + " 'publication_date': None,\n", + " 'last_updated_date': None,\n", + " 'creation_date': None,\n", + " 'destruction_date': None},\n", + " {'uri': 'm3p:id/scientific-object/za20/so-0017zm4547eppn8_hwweppn_rep_201_17arch2020-02-03',\n", + " 'name': '0017/ZM4547/EPPN8_H/WW/EPPN_Rep_2/01_17/ARCH2020-02-03',\n", + " 'geometry': None,\n", + " 'rdf_type': 'vocabulary:Plant',\n", + " 'rdf_type_name': 'plant',\n", + " 'publication_date': None,\n", + " 'last_updated_date': None,\n", + " 'creation_date': None,\n", + " 'destruction_date': None},\n", + " {'uri': 'm3p:id/scientific-object/za20/so-0017zm4547eppn8_hwweppn_rep_201_17arch2020-02-03-1',\n", + " 'name': '0017/ZM4547/EPPN8_H/WW/EPPN_Rep_2/01_17/ARCH2020-02-03',\n", + " 'geometry': None,\n", + " 'rdf_type': 'vocabulary:Plant',\n", + " 'rdf_type_name': 'plant',\n", + " 'publication_date': None,\n", + " 'last_updated_date': None,\n", + " 'creation_date': None,\n", + " 'destruction_date': None},\n", + " {'uri': 'm3p:id/scientific-object/za20/so-0018zm4549eppn10_hwweppn_rep_201_18arch2020-02-03',\n", + " 'name': '0018/ZM4549/EPPN10_H/WW/EPPN_Rep_2/01_18/ARCH2020-02-03',\n", + " 'geometry': None,\n", + " 'rdf_type': 'vocabulary:Plant',\n", + " 'rdf_type_name': 'plant',\n", + " 'publication_date': None,\n", + " 'last_updated_date': None,\n", + " 'creation_date': None,\n", + " 'destruction_date': None},\n", + " {'uri': 'm3p:id/scientific-object/za20/so-0018zm4549eppn10_hwweppn_rep_201_18arch2020-02-03-1',\n", + " 'name': '0018/ZM4549/EPPN10_H/WW/EPPN_Rep_2/01_18/ARCH2020-02-03',\n", + " 'geometry': None,\n", + " 'rdf_type': 'vocabulary:Plant',\n", + " 'rdf_type_name': 'plant',\n", + " 'publication_date': None,\n", " 'last_updated_date': None,\n", - " 'identifier': None,\n", - " 'rdf_type': 'vocabulary:ScientificDocument',\n", - " 'rdf_type_name': 'Scientific Document',\n", - " 'title': 'test isa doc post deploy',\n", - " 'date': '2022-04-05',\n", - " 'description': None,\n", - " 'targets': [],\n", - " 'authors': [],\n", - " 'language': None,\n", - " 'format': 'png',\n", - " 'keywords': [],\n", - " 'deprecated': True,\n", - " 'source': None},\n", - " {'uri': 'm3p:id/document/test_isa_doc',\n", - " 'publisher': None,\n", + " 'creation_date': None,\n", + " 'destruction_date': None},\n", + " {'uri': 'm3p:id/scientific-object/za20/so-0019zm4552eppn13_hwweppn_rep_201_19arch2020-02-03',\n", + " 'name': '0019/ZM4552/EPPN13_H/WW/EPPN_Rep_2/01_19/ARCH2020-02-03',\n", + " 'geometry': None,\n", + " 'rdf_type': 'vocabulary:Plant',\n", + " 'rdf_type_name': 'plant',\n", " 'publication_date': None,\n", " 'last_updated_date': None,\n", - " 'identifier': None,\n", - " 'rdf_type': 'vocabulary:ScientificDocument',\n", - " 'rdf_type_name': 'Scientific Document',\n", - " 'title': 'test isa doc ',\n", - " 'date': '2022-04-04',\n", - " 'description': None,\n", - " 'targets': [],\n", - " 'authors': [],\n", - " 'language': None,\n", - " 'format': 'png',\n", - " 'keywords': [],\n", - " 'deprecated': True,\n", - " 'source': None},\n", - " {'uri': 'm3p:id/document/test_dataset',\n", - " 'publisher': None,\n", - " 'publication_date': '2023-08-22T11:46:26.204356+02:00',\n", - " 'last_updated_date': '2023-08-22T11:53:27.395245+02:00',\n", - " 'identifier': 'doi:10.82233/BFHMFT',\n", - " 'rdf_type': 'vocabulary-dataverse:RechercheDataGouvDataset',\n", - " 'rdf_type_name': 'RechercheDataGouv Dataset',\n", - " 'title': 'Test_dataset',\n", - " 'date': '2020-02-20',\n", - " 'description': 'Test et démo connexion IRODS',\n", - " 'targets': ['m3p:id/experiment/expe_test_opensilex_irods'],\n", - " 'authors': ['http://www.phenome.inrae.fr/m3p/users#admin.opensilex/Person'],\n", - " 'language': 'English',\n", - " 'format': None,\n", - " 'keywords': [],\n", - " 'deprecated': True,\n", - " 'source': 'https://data-preproduction.inrae.fr/dataset.xhtml?persistentId=doi%3A10.82233%2FBFHMFT'}]}" - ] - }, - "execution_count": 17, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "phis.get_document(token=token)" - ] - }, - { - "cell_type": "markdown", - "id": "e55cd13a-1889-431e-a9ab-42e39ba939c8", - "metadata": {}, - "source": [ - "#### Get specific document with URI" - ] - }, - { - "cell_type": "code", - "execution_count": 18, - "id": "3069fe3f-cda6-4bca-a1f6-02e53abc85c5", - "metadata": {}, - "outputs": [], - "source": [ - "# phis.get_document(uri='m3p:id/document/test_isa_doc_post_deploy', token=token) # Doesn't work" - ] - }, - { - "cell_type": "markdown", - "id": "d39fcca3-480b-401a-9f6a-6f4d9670aa03", - "metadata": {}, - "source": [ - "#### List available factors" - ] - }, - { - "cell_type": "code", - "execution_count": 19, - "id": "acf07aee-51ad-47f8-adc7-c3d023c98e32", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "{'metadata': {'pagination': {'pageSize': 20,\n", - " 'currentPage': 0,\n", - " 'totalCount': 0,\n", - " 'totalPages': 0,\n", - " 'limitCount': 0,\n", - " 'hasNextPage': False},\n", - " 'status': [],\n", - " 'datafiles': []},\n", - " 'result': []}" - ] - }, - "execution_count": 19, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "phis.get_factor(token=token)" - ] - }, - { - "cell_type": "markdown", - "id": "96566eec-c90b-4ee9-9cad-88bfde988be4", - "metadata": {}, - "source": [ - "#### Get specific factor with URI" - ] - }, - { - "cell_type": "code", - "execution_count": 20, - "id": "10363530-849e-43d0-9376-f87a68e4183f", - "metadata": {}, - "outputs": [], - "source": [ - "# No URIs" - ] - }, - { - "cell_type": "markdown", - "id": "9365cbd0-5fef-40a8-8349-47911ba4ea98", - "metadata": {}, - "source": [ - "#### List available organizations" - ] - }, - { - "cell_type": "code", - "execution_count": 21, - "id": "cce64d6b-4330-4049-a8ba-60d1ed8d59d4", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "{'metadata': {'pagination': {'pageSize': 6,\n", - " 'currentPage': 0,\n", - " 'totalCount': 6,\n", - " 'totalPages': 1,\n", - " 'limitCount': 0,\n", - " 'hasNextPage': True},\n", - " 'status': [],\n", - " 'datafiles': []},\n", - " 'result': [{'uri': 'https://emphasis.plant-phenotyping.eu/',\n", - " 'name': 'EMPHASIS',\n", - " 'parents': [],\n", - " 'children': ['http://www.phenome-fppn.fr'],\n", - " 'rdf_type': 'vocabulary:EuropeanOrganization',\n", - " 'rdf_type_name': 'european organization',\n", + " 'creation_date': None,\n", + " 'destruction_date': None},\n", + " {'uri': 'm3p:id/scientific-object/za20/so-0019zm4552eppn13_hwweppn_rep_201_19arch2020-02-03-1',\n", + " 'name': '0019/ZM4552/EPPN13_H/WW/EPPN_Rep_2/01_19/ARCH2020-02-03',\n", + " 'geometry': None,\n", + " 'rdf_type': 'vocabulary:Plant',\n", + " 'rdf_type_name': 'plant',\n", " 'publication_date': None,\n", - " 'last_updated_date': '2024-02-02T15:44:25.716531+01:00'},\n", - " {'uri': 'm3p:id/organization/phenoarch',\n", - " 'name': 'PHENOARCH',\n", - " 'parents': ['http://phenome.inrae.fr/id/organization/m3p'],\n", - " 'children': [],\n", - " 'rdf_type': 'vocabulary:LocalOrganization',\n", - " 'rdf_type_name': 'local organization',\n", + " 'last_updated_date': None,\n", + " 'creation_date': None,\n", + " 'destruction_date': None},\n", + " {'uri': 'm3p:id/scientific-object/za20/so-0020zm4546eppn7_hwweppn_rep_201_20arch2020-02-03',\n", + " 'name': '0020/ZM4546/EPPN7_H/WW/EPPN_Rep_2/01_20/ARCH2020-02-03',\n", + " 'geometry': None,\n", + " 'rdf_type': 'vocabulary:Plant',\n", + " 'rdf_type_name': 'plant',\n", + " 'publication_date': None,\n", + " 'last_updated_date': None,\n", + " 'creation_date': None,\n", + " 'destruction_date': None},\n", + " {'uri': 'm3p:id/scientific-object/za20/so-0020zm4546eppn7_hwweppn_rep_201_20arch2020-02-03-1',\n", + " 'name': '0020/ZM4546/EPPN7_H/WW/EPPN_Rep_2/01_20/ARCH2020-02-03',\n", + " 'geometry': None,\n", + " 'rdf_type': 'vocabulary:Plant',\n", + " 'rdf_type_name': 'plant',\n", + " 'publication_date': None,\n", + " 'last_updated_date': None,\n", + " 'creation_date': None,\n", + " 'destruction_date': None},\n", + " {'uri': 'm3p:id/scientific-object/za20/so-0021zm4542eppn3_hwweppn_rep_201_21arch2020-02-03',\n", + " 'name': '0021/ZM4542/EPPN3_H/WW/EPPN_Rep_2/01_21/ARCH2020-02-03',\n", + " 'geometry': None,\n", + " 'rdf_type': 'vocabulary:Plant',\n", + " 'rdf_type_name': 'plant',\n", + " 'publication_date': None,\n", + " 'last_updated_date': None,\n", + " 'creation_date': None,\n", + " 'destruction_date': None},\n", + " {'uri': 'm3p:id/scientific-object/za20/so-0021zm4542eppn3_hwweppn_rep_201_21arch2020-02-03-1',\n", + " 'name': '0021/ZM4542/EPPN3_H/WW/EPPN_Rep_2/01_21/ARCH2020-02-03',\n", + " 'geometry': None,\n", + " 'rdf_type': 'vocabulary:Plant',\n", + " 'rdf_type_name': 'plant',\n", + " 'publication_date': None,\n", + " 'last_updated_date': None,\n", + " 'creation_date': None,\n", + " 'destruction_date': None},\n", + " {'uri': 'm3p:id/scientific-object/za20/so-0022zm4543eppn4_hwweppn_rep_201_22arch2020-02-03',\n", + " 'name': '0022/ZM4543/EPPN4_H/WW/EPPN_Rep_2/01_22/ARCH2020-02-03',\n", + " 'geometry': None,\n", + " 'rdf_type': 'vocabulary:Plant',\n", + " 'rdf_type_name': 'plant',\n", + " 'publication_date': None,\n", + " 'last_updated_date': None,\n", + " 'creation_date': None,\n", + " 'destruction_date': None},\n", + " {'uri': 'm3p:id/scientific-object/za20/so-0022zm4543eppn4_hwweppn_rep_201_22arch2020-02-03-1',\n", + " 'name': '0022/ZM4543/EPPN4_H/WW/EPPN_Rep_2/01_22/ARCH2020-02-03',\n", + " 'geometry': None,\n", + " 'rdf_type': 'vocabulary:Plant',\n", + " 'rdf_type_name': 'plant',\n", + " 'publication_date': None,\n", + " 'last_updated_date': None,\n", + " 'creation_date': None,\n", + " 'destruction_date': None},\n", + " {'uri': 'm3p:id/scientific-object/za20/so-0023zm4545eppn6_hwweppn_rep_201_23arch2020-02-03',\n", + " 'name': '0023/ZM4545/EPPN6_H/WW/EPPN_Rep_2/01_23/ARCH2020-02-03',\n", + " 'geometry': None,\n", + " 'rdf_type': 'vocabulary:Plant',\n", + " 'rdf_type_name': 'plant',\n", + " 'publication_date': None,\n", + " 'last_updated_date': None,\n", + " 'creation_date': None,\n", + " 'destruction_date': None},\n", + " {'uri': 'm3p:id/scientific-object/za20/so-0023zm4545eppn6_hwweppn_rep_201_23arch2020-02-03-1',\n", + " 'name': '0023/ZM4545/EPPN6_H/WW/EPPN_Rep_2/01_23/ARCH2020-02-03',\n", + " 'geometry': None,\n", + " 'rdf_type': 'vocabulary:Plant',\n", + " 'rdf_type_name': 'plant',\n", + " 'publication_date': None,\n", + " 'last_updated_date': None,\n", + " 'creation_date': None,\n", + " 'destruction_date': None},\n", + " {'uri': 'm3p:id/scientific-object/za20/so-0024zm4553eppn14_hwweppn_rep_201_24arch2020-02-03',\n", + " 'name': '0024/ZM4553/EPPN14_H/WW/EPPN_Rep_2/01_24/ARCH2020-02-03',\n", + " 'geometry': None,\n", + " 'rdf_type': 'vocabulary:Plant',\n", + " 'rdf_type_name': 'plant',\n", + " 'publication_date': None,\n", + " 'last_updated_date': None,\n", + " 'creation_date': None,\n", + " 'destruction_date': None},\n", + " {'uri': 'm3p:id/scientific-object/za20/so-0024zm4553eppn14_hwweppn_rep_201_24arch2020-02-03-1',\n", + " 'name': '0024/ZM4553/EPPN14_H/WW/EPPN_Rep_2/01_24/ARCH2020-02-03',\n", + " 'geometry': None,\n", + " 'rdf_type': 'vocabulary:Plant',\n", + " 'rdf_type_name': 'plant',\n", + " 'publication_date': None,\n", + " 'last_updated_date': None,\n", + " 'creation_date': None,\n", + " 'destruction_date': None},\n", + " {'uri': 'm3p:id/scientific-object/za20/so-0025zm4540eppn1_hwweppn_rep_201_25arch2020-02-03',\n", + " 'name': '0025/ZM4540/EPPN1_H/WW/EPPN_Rep_2/01_25/ARCH2020-02-03',\n", + " 'geometry': None,\n", + " 'rdf_type': 'vocabulary:Plant',\n", + " 'rdf_type_name': 'plant',\n", + " 'publication_date': None,\n", + " 'last_updated_date': None,\n", + " 'creation_date': None,\n", + " 'destruction_date': None},\n", + " {'uri': 'm3p:id/scientific-object/za20/so-0025zm4540eppn1_hwweppn_rep_201_25arch2020-02-03-1',\n", + " 'name': '0025/ZM4540/EPPN1_H/WW/EPPN_Rep_2/01_25/ARCH2020-02-03',\n", + " 'geometry': None,\n", + " 'rdf_type': 'vocabulary:Plant',\n", + " 'rdf_type_name': 'plant',\n", " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'm3p:id/organization/phenodyn',\n", - " 'name': 'PHENODYN',\n", - " 'parents': ['http://phenome.inrae.fr/id/organization/m3p'],\n", - " 'children': [],\n", - " 'rdf_type': 'vocabulary:LocalOrganization',\n", - " 'rdf_type_name': 'local organization',\n", + " 'last_updated_date': None,\n", + " 'creation_date': None,\n", + " 'destruction_date': None},\n", + " {'uri': 'm3p:id/scientific-object/za20/so-0026zm4550eppn11_hwweppn_rep_201_26arch2020-02-03',\n", + " 'name': '0026/ZM4550/EPPN11_H/WW/EPPN_Rep_2/01_26/ARCH2020-02-03',\n", + " 'geometry': None,\n", + " 'rdf_type': 'vocabulary:Plant',\n", + " 'rdf_type_name': 'plant',\n", " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'http://www.phenome-fppn.fr',\n", - " 'name': 'PHENOME-EMPHASIS',\n", - " 'parents': ['https://emphasis.plant-phenotyping.eu/'],\n", - " 'children': ['http://phenome.inrae.fr/id/organization/m3p'],\n", - " 'rdf_type': 'vocabulary:NationalOrganization',\n", - " 'rdf_type_name': 'national organization',\n", + " 'last_updated_date': None,\n", + " 'creation_date': None,\n", + " 'destruction_date': None},\n", + " {'uri': 'm3p:id/scientific-object/za20/so-0026zm4550eppn11_hwweppn_rep_201_26arch2020-02-03-1',\n", + " 'name': '0026/ZM4550/EPPN11_H/WW/EPPN_Rep_2/01_26/ARCH2020-02-03',\n", + " 'geometry': None,\n", + " 'rdf_type': 'vocabulary:Plant',\n", + " 'rdf_type_name': 'plant',\n", " 'publication_date': None,\n", - " 'last_updated_date': '2024-02-02T15:42:52.481122+01:00'},\n", - " {'uri': 'http://phenome.inrae.fr/id/organization/m3p',\n", - " 'name': 'M3P',\n", - " 'parents': ['http://www.phenome-fppn.fr'],\n", - " 'children': ['m3p:id/organization/phenopsis',\n", - " 'm3p:id/organization/phenoarch',\n", - " 'm3p:id/organization/phenodyn'],\n", - " 'rdf_type': 'vocabulary:LocalOrganization',\n", - " 'rdf_type_name': 'local organization',\n", + " 'last_updated_date': None,\n", + " 'creation_date': None,\n", + " 'destruction_date': None},\n", + " {'uri': 'm3p:id/scientific-object/za20/so-0027zm4554eppn15_hwweppn_rep_201_27arch2020-02-03',\n", + " 'name': '0027/ZM4554/EPPN15_H/WW/EPPN_Rep_2/01_27/ARCH2020-02-03',\n", + " 'geometry': None,\n", + " 'rdf_type': 'vocabulary:Plant',\n", + " 'rdf_type_name': 'plant',\n", " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'm3p:id/organization/phenopsis',\n", - " 'name': 'PHENOPSIS',\n", - " 'parents': ['http://phenome.inrae.fr/id/organization/m3p'],\n", - " 'children': [],\n", - " 'rdf_type': 'vocabulary:LocalOrganization',\n", - " 'rdf_type_name': 'local organization',\n", + " 'last_updated_date': None,\n", + " 'creation_date': None,\n", + " 'destruction_date': None},\n", + " {'uri': 'm3p:id/scientific-object/za20/so-0027zm4554eppn15_hwweppn_rep_201_27arch2020-02-03-1',\n", + " 'name': '0027/ZM4554/EPPN15_H/WW/EPPN_Rep_2/01_27/ARCH2020-02-03',\n", + " 'geometry': None,\n", + " 'rdf_type': 'vocabulary:Plant',\n", + " 'rdf_type_name': 'plant',\n", " 'publication_date': None,\n", - " 'last_updated_date': None}]}" - ] - }, - "execution_count": 21, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "phis.get_organization(token=token)" - ] - }, - { - "cell_type": "markdown", - "id": "327938f2-8cbf-4da2-9805-439ce37782f6", - "metadata": {}, - "source": [ - "#### Get specific organization with URI" - ] - }, - { - "cell_type": "code", - "execution_count": 22, - "id": "4fa69cce-3be1-4730-9f2b-077c8c8e5e18", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "{'metadata': {'pagination': {'pageSize': 0,\n", - " 'currentPage': 0,\n", - " 'totalCount': 0,\n", - " 'totalPages': 0,\n", - " 'limitCount': 0,\n", - " 'hasNextPage': False},\n", - " 'status': [],\n", - " 'datafiles': []},\n", - " 'result': {'uri': 'm3p:id/organization/phenoarch',\n", - " 'rdf_type': 'vocabulary:LocalOrganization',\n", - " 'rdf_type_name': 'local organization',\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None,\n", - " 'name': 'PHENOARCH',\n", - " 'parents': [{'uri': 'http://phenome.inrae.fr/id/organization/m3p',\n", - " 'name': 'M3P',\n", - " 'rdf_type': 'vocabulary:LocalOrganization',\n", - " 'rdf_type_name': 'local organization',\n", - " 'publication_date': None,\n", - " 'last_updated_date': None}],\n", - " 'children': [],\n", - " 'groups': [],\n", - " 'facilities': [],\n", - " 'sites': [],\n", - " 'experiments': [{'uri': 'm3p:id/experiment/dyn2020-05-15',\n", - " 'name': 'G2WAS2020',\n", - " 'rdf_type': 'vocabulary:Experiment',\n", - " 'rdf_type_name': 'experiment',\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'm3p:id/experiment/za20',\n", - " 'name': 'ZA20',\n", - " 'rdf_type': 'vocabulary:Experiment',\n", - " 'rdf_type_name': 'experiment',\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'm3p:id/experiment/ta20',\n", - " 'name': 'TA20',\n", - " 'rdf_type': 'vocabulary:Experiment',\n", - " 'rdf_type_name': 'experiment',\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'm3p:id/experiment/za22',\n", - " 'name': 'ZA22',\n", - " 'rdf_type': 'vocabulary:Experiment',\n", - " 'rdf_type_name': 'experiment',\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'm3p:id/experiment/g2was2022',\n", - " 'name': 'G2WAS2022',\n", - " 'rdf_type': 'vocabulary:Experiment',\n", - " 'rdf_type_name': 'experiment',\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'm3p:id/experiment/archtest_rice2023',\n", - " 'name': 'ARCHTEST_RICE2023',\n", - " 'rdf_type': 'vocabulary:Experiment',\n", - " 'rdf_type_name': 'experiment',\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'm3p:id/experiment/za24',\n", - " 'name': 'ZA24',\n", - " 'rdf_type': 'vocabulary:Experiment',\n", - " 'rdf_type_name': 'experiment',\n", - " 'publication_date': '2024-01-19T15:52:29.026764+01:00',\n", - " 'last_updated_date': '2024-04-08T14:59:16.113409+02:00'},\n", - " {'uri': 'http://www.phenome-fppn.fr/m3p/ARCH2012-01-01',\n", - " 'name': 'ARCH2012-01-01',\n", - " 'rdf_type': 'vocabulary:Experiment',\n", - " 'rdf_type_name': 'experiment',\n", - " 'publication_date': '2024-02-19T16:14:49.51928+01:00',\n", - " 'last_updated_date': '2024-02-20T10:42:40.334917+01:00'}]}}" - ] - }, - "execution_count": 22, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "phis.get_organization(uri='m3p:id/organization/phenoarch', token=token)" - ] - }, - { - "cell_type": "markdown", - "id": "79249735-80cb-41f9-b1f7-5ff4d0fa343a", - "metadata": {}, - "source": [ - "#### List available sites" - ] - }, - { - "cell_type": "code", - "execution_count": 23, - "id": "7df0c881-e1c1-4d54-9ca6-f971410d67d3", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "{'metadata': {'pagination': {'pageSize': 0,\n", - " 'currentPage': 0,\n", - " 'totalCount': 0,\n", - " 'totalPages': 0,\n", - " 'limitCount': 0,\n", - " 'hasNextPage': False},\n", - " 'status': [],\n", - " 'datafiles': []},\n", - " 'result': []}" - ] - }, - "execution_count": 23, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "phis.get_site(token=token)" - ] - }, - { - "cell_type": "markdown", - "id": "723c8495-6fee-417a-9e6e-57fb1e67d10f", - "metadata": {}, - "source": [ - "#### Get specific site with URI" - ] - }, - { - "cell_type": "code", - "execution_count": 24, - "id": "3ecafefc-4d1f-414b-b53c-303d12d70025", - "metadata": {}, - "outputs": [], - "source": [ - "# No URIs" - ] - }, - { - "cell_type": "markdown", - "id": "b8a0434f-9ad1-4a23-a59f-b35f42d6667a", - "metadata": {}, - "source": [ - "#### List available scientific objects" - ] - }, - { - "cell_type": "code", - "execution_count": 25, - "id": "4d7f5802-ca38-4134-a744-46d2e864ff70", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "{'metadata': {'pagination': {'pageSize': 20,\n", - " 'currentPage': 0,\n", - " 'totalCount': 3661,\n", - " 'totalPages': 184,\n", - " 'limitCount': 0,\n", - " 'hasNextPage': True},\n", - " 'status': [],\n", - " 'datafiles': []},\n", - " 'result': [{'uri': 'm3p:id/scientific-object/za20/so-0001zm4531eppn7_lwd1eppn_rep_101_01arch2020-02-03',\n", - " 'name': '0001/ZM4531/EPPN7_L/WD1/EPPN_Rep_1/01_01/ARCH2020-02-03',\n", + " 'last_updated_date': None,\n", + " 'creation_date': None,\n", + " 'destruction_date': None},\n", + " {'uri': 'm3p:id/scientific-object/za20/so-0028zm4544eppn5_hwweppn_rep_201_28arch2020-02-03',\n", + " 'name': '0028/ZM4544/EPPN5_H/WW/EPPN_Rep_2/01_28/ARCH2020-02-03',\n", + " 'geometry': None,\n", + " 'rdf_type': 'vocabulary:Plant',\n", + " 'rdf_type_name': 'plant',\n", + " 'publication_date': None,\n", + " 'last_updated_date': None,\n", + " 'creation_date': None,\n", + " 'destruction_date': None},\n", + " {'uri': 'm3p:id/scientific-object/za20/so-0028zm4544eppn5_hwweppn_rep_201_28arch2020-02-03-1',\n", + " 'name': '0028/ZM4544/EPPN5_H/WW/EPPN_Rep_2/01_28/ARCH2020-02-03',\n", " 'geometry': None,\n", " 'rdf_type': 'vocabulary:Plant',\n", " 'rdf_type_name': 'plant',\n", @@ -2312,8 +4835,8 @@ " 'last_updated_date': None,\n", " 'creation_date': None,\n", " 'destruction_date': None},\n", - " {'uri': 'm3p:id/scientific-object/za20/so-0002zm4534eppn10_lwd1eppn_rep_101_02arch2020-02-03',\n", - " 'name': '0002/ZM4534/EPPN10_L/WD1/EPPN_Rep_1/01_02/ARCH2020-02-03',\n", + " {'uri': 'm3p:id/scientific-object/za20/so-0029zm4548eppn9_hwweppn_rep_201_29arch2020-02-03',\n", + " 'name': '0029/ZM4548/EPPN9_H/WW/EPPN_Rep_2/01_29/ARCH2020-02-03',\n", " 'geometry': None,\n", " 'rdf_type': 'vocabulary:Plant',\n", " 'rdf_type_name': 'plant',\n", @@ -2321,8 +4844,8 @@ " 'last_updated_date': None,\n", " 'creation_date': None,\n", " 'destruction_date': None},\n", - " {'uri': 'm3p:id/scientific-object/za20/so-0002zm4534eppn10_lwd1eppn_rep_101_02arch2020-02-03-1',\n", - " 'name': '0002/ZM4534/EPPN10_L/WD1/EPPN_Rep_1/01_02/ARCH2020-02-03',\n", + " {'uri': 'm3p:id/scientific-object/za20/so-0029zm4548eppn9_hwweppn_rep_201_29arch2020-02-03-1',\n", + " 'name': '0029/ZM4548/EPPN9_H/WW/EPPN_Rep_2/01_29/ARCH2020-02-03',\n", " 'geometry': None,\n", " 'rdf_type': 'vocabulary:Plant',\n", " 'rdf_type_name': 'plant',\n", @@ -2330,8 +4853,8 @@ " 'last_updated_date': None,\n", " 'creation_date': None,\n", " 'destruction_date': None},\n", - " {'uri': 'm3p:id/scientific-object/za20/so-0003zm4532eppn8_lwd1eppn_rep_101_03arch2020-02-03',\n", - " 'name': '0003/ZM4532/EPPN8_L/WD1/EPPN_Rep_1/01_03/ARCH2020-02-03',\n", + " {'uri': 'm3p:id/scientific-object/za20/so-0030zm4551eppn12_hwweppn_rep_201_30arch2020-02-03',\n", + " 'name': '0030/ZM4551/EPPN12_H/WW/EPPN_Rep_2/01_30/ARCH2020-02-03',\n", " 'geometry': None,\n", " 'rdf_type': 'vocabulary:Plant',\n", " 'rdf_type_name': 'plant',\n", @@ -2339,8 +4862,8 @@ " 'last_updated_date': None,\n", " 'creation_date': None,\n", " 'destruction_date': None},\n", - " {'uri': 'm3p:id/scientific-object/za20/so-0003zm4532eppn8_lwd1eppn_rep_101_03arch2020-02-03-1',\n", - " 'name': '0003/ZM4532/EPPN8_L/WD1/EPPN_Rep_1/01_03/ARCH2020-02-03',\n", + " {'uri': 'm3p:id/scientific-object/za20/so-0030zm4551eppn12_hwweppn_rep_201_30arch2020-02-03-1',\n", + " 'name': '0030/ZM4551/EPPN12_H/WW/EPPN_Rep_2/01_30/ARCH2020-02-03',\n", " 'geometry': None,\n", " 'rdf_type': 'vocabulary:Plant',\n", " 'rdf_type_name': 'plant',\n", @@ -2348,8 +4871,8 @@ " 'last_updated_date': None,\n", " 'creation_date': None,\n", " 'destruction_date': None},\n", - " {'uri': 'm3p:id/scientific-object/za20/so-0004zm4527eppn3_lwd1eppn_rep_101_04arch2020-02-03',\n", - " 'name': '0004/ZM4527/EPPN3_L/WD1/EPPN_Rep_1/01_04/ARCH2020-02-03',\n", + " {'uri': 'm3p:id/scientific-object/za20/so-0031zm4555eppn20_twd1eppn_rep_301_31arch2020-02-03',\n", + " 'name': '0031/ZM4555/EPPN20_T/WD1/EPPN_Rep_3/01_31/ARCH2020-02-03',\n", " 'geometry': None,\n", " 'rdf_type': 'vocabulary:Plant',\n", " 'rdf_type_name': 'plant',\n", @@ -2357,8 +4880,8 @@ " 'last_updated_date': None,\n", " 'creation_date': None,\n", " 'destruction_date': None},\n", - " {'uri': 'm3p:id/scientific-object/za20/so-0004zm4527eppn3_lwd1eppn_rep_101_04arch2020-02-03-1',\n", - " 'name': '0004/ZM4527/EPPN3_L/WD1/EPPN_Rep_1/01_04/ARCH2020-02-03',\n", + " {'uri': 'm3p:id/scientific-object/za20/so-0031zm4555eppn20_twd1eppn_rep_301_31arch2020-02-03-1',\n", + " 'name': '0031/ZM4555/EPPN20_T/WD1/EPPN_Rep_3/01_31/ARCH2020-02-03',\n", " 'geometry': None,\n", " 'rdf_type': 'vocabulary:Plant',\n", " 'rdf_type_name': 'plant',\n", @@ -2366,8 +4889,8 @@ " 'last_updated_date': None,\n", " 'creation_date': None,\n", " 'destruction_date': None},\n", - " {'uri': 'm3p:id/scientific-object/za20/so-0005zm4525eppn1_lwd1eppn_rep_101_05arch2020-02-03',\n", - " 'name': '0005/ZM4525/EPPN1_L/WD1/EPPN_Rep_1/01_05/ARCH2020-02-03',\n", + " {'uri': 'm3p:id/scientific-object/za20/so-0032zm4538eppn14_lwd1eppn_rep_301_32arch2020-02-03',\n", + " 'name': '0032/ZM4538/EPPN14_L/WD1/EPPN_Rep_3/01_32/ARCH2020-02-03',\n", " 'geometry': None,\n", " 'rdf_type': 'vocabulary:Plant',\n", " 'rdf_type_name': 'plant',\n", @@ -2375,8 +4898,8 @@ " 'last_updated_date': None,\n", " 'creation_date': None,\n", " 'destruction_date': None},\n", - " {'uri': 'm3p:id/scientific-object/za20/so-0005zm4525eppn1_lwd1eppn_rep_101_05arch2020-02-03-1',\n", - " 'name': '0005/ZM4525/EPPN1_L/WD1/EPPN_Rep_1/01_05/ARCH2020-02-03',\n", + " {'uri': 'm3p:id/scientific-object/za20/so-0032zm4538eppn14_lwd1eppn_rep_301_32arch2020-02-03-1',\n", + " 'name': '0032/ZM4538/EPPN14_L/WD1/EPPN_Rep_3/01_32/ARCH2020-02-03',\n", " 'geometry': None,\n", " 'rdf_type': 'vocabulary:Plant',\n", " 'rdf_type_name': 'plant',\n", @@ -2384,8 +4907,8 @@ " 'last_updated_date': None,\n", " 'creation_date': None,\n", " 'destruction_date': None},\n", - " {'uri': 'm3p:id/scientific-object/za20/so-0006zm4526eppn2_lwd1eppn_rep_101_06arch2020-02-03',\n", - " 'name': '0006/ZM4526/EPPN2_L/WD1/EPPN_Rep_1/01_06/ARCH2020-02-03',\n", + " {'uri': 'm3p:id/scientific-object/za20/so-0033zm4527eppn3_lwd1eppn_rep_301_33arch2020-02-03',\n", + " 'name': '0033/ZM4527/EPPN3_L/WD1/EPPN_Rep_3/01_33/ARCH2020-02-03',\n", " 'geometry': None,\n", " 'rdf_type': 'vocabulary:Plant',\n", " 'rdf_type_name': 'plant',\n", @@ -2393,8 +4916,8 @@ " 'last_updated_date': None,\n", " 'creation_date': None,\n", " 'destruction_date': None},\n", - " {'uri': 'm3p:id/scientific-object/za20/so-0006zm4526eppn2_lwd1eppn_rep_101_06arch2020-02-03-1',\n", - " 'name': '0006/ZM4526/EPPN2_L/WD1/EPPN_Rep_1/01_06/ARCH2020-02-03',\n", + " {'uri': 'm3p:id/scientific-object/za20/so-0033zm4527eppn3_lwd1eppn_rep_301_33arch2020-02-03-1',\n", + " 'name': '0033/ZM4527/EPPN3_L/WD1/EPPN_Rep_3/01_33/ARCH2020-02-03',\n", " 'geometry': None,\n", " 'rdf_type': 'vocabulary:Plant',\n", " 'rdf_type_name': 'plant',\n", @@ -2402,8 +4925,8 @@ " 'last_updated_date': None,\n", " 'creation_date': None,\n", " 'destruction_date': None},\n", - " {'uri': 'm3p:id/scientific-object/za20/so-0007zm4533eppn9_lwd1eppn_rep_101_07arch2020-02-03',\n", - " 'name': '0007/ZM4533/EPPN9_L/WD1/EPPN_Rep_1/01_07/ARCH2020-02-03',\n", + " {'uri': 'm3p:id/scientific-object/za20/so-0034zm4533eppn9_lwd1eppn_rep_301_34arch2020-02-03',\n", + " 'name': '0034/ZM4533/EPPN9_L/WD1/EPPN_Rep_3/01_34/ARCH2020-02-03',\n", " 'geometry': None,\n", " 'rdf_type': 'vocabulary:Plant',\n", " 'rdf_type_name': 'plant',\n", @@ -2411,8 +4934,8 @@ " 'last_updated_date': None,\n", " 'creation_date': None,\n", " 'destruction_date': None},\n", - " {'uri': 'm3p:id/scientific-object/za20/so-0007zm4533eppn9_lwd1eppn_rep_101_07arch2020-02-03-1',\n", - " 'name': '0007/ZM4533/EPPN9_L/WD1/EPPN_Rep_1/01_07/ARCH2020-02-03',\n", + " {'uri': 'm3p:id/scientific-object/za20/so-0034zm4533eppn9_lwd1eppn_rep_301_34arch2020-02-03-1',\n", + " 'name': '0034/ZM4533/EPPN9_L/WD1/EPPN_Rep_3/01_34/ARCH2020-02-03',\n", " 'geometry': None,\n", " 'rdf_type': 'vocabulary:Plant',\n", " 'rdf_type_name': 'plant',\n", @@ -2420,8 +4943,8 @@ " 'last_updated_date': None,\n", " 'creation_date': None,\n", " 'destruction_date': None},\n", - " {'uri': 'm3p:id/scientific-object/za20/so-0008zm4538eppn14_lwd1eppn_rep_101_08arch2020-02-03',\n", - " 'name': '0008/ZM4538/EPPN14_L/WD1/EPPN_Rep_1/01_08/ARCH2020-02-03',\n", + " {'uri': 'm3p:id/scientific-object/za20/so-0035zm4529eppn5_lwd1eppn_rep_301_35arch2020-02-03',\n", + " 'name': '0035/ZM4529/EPPN5_L/WD1/EPPN_Rep_3/01_35/ARCH2020-02-03',\n", " 'geometry': None,\n", " 'rdf_type': 'vocabulary:Plant',\n", " 'rdf_type_name': 'plant',\n", @@ -2429,8 +4952,8 @@ " 'last_updated_date': None,\n", " 'creation_date': None,\n", " 'destruction_date': None},\n", - " {'uri': 'm3p:id/scientific-object/za20/so-0008zm4538eppn14_lwd1eppn_rep_101_08arch2020-02-03-1',\n", - " 'name': '0008/ZM4538/EPPN14_L/WD1/EPPN_Rep_1/01_08/ARCH2020-02-03',\n", + " {'uri': 'm3p:id/scientific-object/za20/so-0035zm4529eppn5_lwd1eppn_rep_301_35arch2020-02-03-1',\n", + " 'name': '0035/ZM4529/EPPN5_L/WD1/EPPN_Rep_3/01_35/ARCH2020-02-03',\n", " 'geometry': None,\n", " 'rdf_type': 'vocabulary:Plant',\n", " 'rdf_type_name': 'plant',\n", @@ -2438,8 +4961,8 @@ " 'last_updated_date': None,\n", " 'creation_date': None,\n", " 'destruction_date': None},\n", - " {'uri': 'm3p:id/scientific-object/za20/so-0009zm4528eppn4_lwd1eppn_rep_101_09arch2020-02-03',\n", - " 'name': '0009/ZM4528/EPPN4_L/WD1/EPPN_Rep_1/01_09/ARCH2020-02-03',\n", + " {'uri': 'm3p:id/scientific-object/za20/so-0036zm4537eppn13_lwd1eppn_rep_301_36arch2020-02-03',\n", + " 'name': '0036/ZM4537/EPPN13_L/WD1/EPPN_Rep_3/01_36/ARCH2020-02-03',\n", " 'geometry': None,\n", " 'rdf_type': 'vocabulary:Plant',\n", " 'rdf_type_name': 'plant',\n", @@ -2447,8 +4970,8 @@ " 'last_updated_date': None,\n", " 'creation_date': None,\n", " 'destruction_date': None},\n", - " {'uri': 'm3p:id/scientific-object/za20/so-0009zm4528eppn4_lwd1eppn_rep_101_09arch2020-02-03-1',\n", - " 'name': '0009/ZM4528/EPPN4_L/WD1/EPPN_Rep_1/01_09/ARCH2020-02-03',\n", + " {'uri': 'm3p:id/scientific-object/za20/so-0036zm4537eppn13_lwd1eppn_rep_301_36arch2020-02-03-1',\n", + " 'name': '0036/ZM4537/EPPN13_L/WD1/EPPN_Rep_3/01_36/ARCH2020-02-03',\n", " 'geometry': None,\n", " 'rdf_type': 'vocabulary:Plant',\n", " 'rdf_type_name': 'plant',\n", @@ -2456,8 +4979,8 @@ " 'last_updated_date': None,\n", " 'creation_date': None,\n", " 'destruction_date': None},\n", - " {'uri': 'm3p:id/scientific-object/za20/so-0010zm4555eppn20_twd1eppn_rep_101_10arch2020-02-03',\n", - " 'name': '0010/ZM4555/EPPN20_T/WD1/EPPN_Rep_1/01_10/ARCH2020-02-03',\n", + " {'uri': 'm3p:id/scientific-object/za20/so-0037zm4525eppn1_lwd1eppn_rep_301_37arch2020-02-03',\n", + " 'name': '0037/ZM4525/EPPN1_L/WD1/EPPN_Rep_3/01_37/ARCH2020-02-03',\n", " 'geometry': None,\n", " 'rdf_type': 'vocabulary:Plant',\n", " 'rdf_type_name': 'plant',\n", @@ -2465,8 +4988,8 @@ " 'last_updated_date': None,\n", " 'creation_date': None,\n", " 'destruction_date': None},\n", - " {'uri': 'm3p:id/scientific-object/za20/so-0010zm4555eppn20_twd1eppn_rep_101_10arch2020-02-03-1',\n", - " 'name': '0010/ZM4555/EPPN20_T/WD1/EPPN_Rep_1/01_10/ARCH2020-02-03',\n", + " {'uri': 'm3p:id/scientific-object/za20/so-0037zm4525eppn1_lwd1eppn_rep_301_37arch2020-02-03-1',\n", + " 'name': '0037/ZM4525/EPPN1_L/WD1/EPPN_Rep_3/01_37/ARCH2020-02-03',\n", " 'geometry': None,\n", " 'rdf_type': 'vocabulary:Plant',\n", " 'rdf_type_name': 'plant',\n", @@ -2474,8 +4997,242 @@ " 'last_updated_date': None,\n", " 'creation_date': None,\n", " 'destruction_date': None},\n", - " {'uri': 'm3p:id/scientific-object/za20/so-0011zm4537eppn13_lwd1eppn_rep_101_11arch2020-02-03',\n", - " 'name': '0011/ZM4537/EPPN13_L/WD1/EPPN_Rep_1/01_11/ARCH2020-02-03',\n", + " {'uri': 'm3p:id/scientific-object/za20/so-0038zm4531eppn7_lwd1eppn_rep_301_38arch2020-02-03',\n", + " 'name': '0038/ZM4531/EPPN7_L/WD1/EPPN_Rep_3/01_38/ARCH2020-02-03',\n", + " 'geometry': None,\n", + " 'rdf_type': 'vocabulary:Plant',\n", + " 'rdf_type_name': 'plant',\n", + " 'publication_date': None,\n", + " 'last_updated_date': None,\n", + " 'creation_date': None,\n", + " 'destruction_date': None},\n", + " {'uri': 'm3p:id/scientific-object/za20/so-0038zm4531eppn7_lwd1eppn_rep_301_38arch2020-02-03-1',\n", + " 'name': '0038/ZM4531/EPPN7_L/WD1/EPPN_Rep_3/01_38/ARCH2020-02-03',\n", + " 'geometry': None,\n", + " 'rdf_type': 'vocabulary:Plant',\n", + " 'rdf_type_name': 'plant',\n", + " 'publication_date': None,\n", + " 'last_updated_date': None,\n", + " 'creation_date': None,\n", + " 'destruction_date': None},\n", + " {'uri': 'm3p:id/scientific-object/za20/so-0039zm4536eppn12_lwd1eppn_rep_301_39arch2020-02-03',\n", + " 'name': '0039/ZM4536/EPPN12_L/WD1/EPPN_Rep_3/01_39/ARCH2020-02-03',\n", + " 'geometry': None,\n", + " 'rdf_type': 'vocabulary:Plant',\n", + " 'rdf_type_name': 'plant',\n", + " 'publication_date': None,\n", + " 'last_updated_date': None,\n", + " 'creation_date': None,\n", + " 'destruction_date': None},\n", + " {'uri': 'm3p:id/scientific-object/za20/so-0039zm4536eppn12_lwd1eppn_rep_301_39arch2020-02-03-1',\n", + " 'name': '0039/ZM4536/EPPN12_L/WD1/EPPN_Rep_3/01_39/ARCH2020-02-03',\n", + " 'geometry': None,\n", + " 'rdf_type': 'vocabulary:Plant',\n", + " 'rdf_type_name': 'plant',\n", + " 'publication_date': None,\n", + " 'last_updated_date': None,\n", + " 'creation_date': None,\n", + " 'destruction_date': None},\n", + " {'uri': 'm3p:id/scientific-object/za20/so-0040zm4535eppn11_lwd1eppn_rep_301_40arch2020-02-03',\n", + " 'name': '0040/ZM4535/EPPN11_L/WD1/EPPN_Rep_3/01_40/ARCH2020-02-03',\n", + " 'geometry': None,\n", + " 'rdf_type': 'vocabulary:Plant',\n", + " 'rdf_type_name': 'plant',\n", + " 'publication_date': None,\n", + " 'last_updated_date': None,\n", + " 'creation_date': None,\n", + " 'destruction_date': None},\n", + " {'uri': 'm3p:id/scientific-object/za20/so-0040zm4535eppn11_lwd1eppn_rep_301_40arch2020-02-03-1',\n", + " 'name': '0040/ZM4535/EPPN11_L/WD1/EPPN_Rep_3/01_40/ARCH2020-02-03',\n", + " 'geometry': None,\n", + " 'rdf_type': 'vocabulary:Plant',\n", + " 'rdf_type_name': 'plant',\n", + " 'publication_date': None,\n", + " 'last_updated_date': None,\n", + " 'creation_date': None,\n", + " 'destruction_date': None},\n", + " {'uri': 'm3p:id/scientific-object/za20/so-0041zm4534eppn10_lwd1eppn_rep_301_41arch2020-02-03',\n", + " 'name': '0041/ZM4534/EPPN10_L/WD1/EPPN_Rep_3/01_41/ARCH2020-02-03',\n", + " 'geometry': None,\n", + " 'rdf_type': 'vocabulary:Plant',\n", + " 'rdf_type_name': 'plant',\n", + " 'publication_date': None,\n", + " 'last_updated_date': None,\n", + " 'creation_date': None,\n", + " 'destruction_date': None},\n", + " {'uri': 'm3p:id/scientific-object/za20/so-0041zm4534eppn10_lwd1eppn_rep_301_41arch2020-02-03-1',\n", + " 'name': '0041/ZM4534/EPPN10_L/WD1/EPPN_Rep_3/01_41/ARCH2020-02-03',\n", + " 'geometry': None,\n", + " 'rdf_type': 'vocabulary:Plant',\n", + " 'rdf_type_name': 'plant',\n", + " 'publication_date': None,\n", + " 'last_updated_date': None,\n", + " 'creation_date': None,\n", + " 'destruction_date': None},\n", + " {'uri': 'm3p:id/scientific-object/za20/so-0042zm4526eppn2_lwd1eppn_rep_301_42arch2020-02-03',\n", + " 'name': '0042/ZM4526/EPPN2_L/WD1/EPPN_Rep_3/01_42/ARCH2020-02-03',\n", + " 'geometry': None,\n", + " 'rdf_type': 'vocabulary:Plant',\n", + " 'rdf_type_name': 'plant',\n", + " 'publication_date': None,\n", + " 'last_updated_date': None,\n", + " 'creation_date': None,\n", + " 'destruction_date': None},\n", + " {'uri': 'm3p:id/scientific-object/za20/so-0042zm4526eppn2_lwd1eppn_rep_301_42arch2020-02-03-1',\n", + " 'name': '0042/ZM4526/EPPN2_L/WD1/EPPN_Rep_3/01_42/ARCH2020-02-03',\n", + " 'geometry': None,\n", + " 'rdf_type': 'vocabulary:Plant',\n", + " 'rdf_type_name': 'plant',\n", + " 'publication_date': None,\n", + " 'last_updated_date': None,\n", + " 'creation_date': None,\n", + " 'destruction_date': None},\n", + " {'uri': 'm3p:id/scientific-object/za20/so-0043zm4528eppn4_lwd1eppn_rep_301_43arch2020-02-03',\n", + " 'name': '0043/ZM4528/EPPN4_L/WD1/EPPN_Rep_3/01_43/ARCH2020-02-03',\n", + " 'geometry': None,\n", + " 'rdf_type': 'vocabulary:Plant',\n", + " 'rdf_type_name': 'plant',\n", + " 'publication_date': None,\n", + " 'last_updated_date': None,\n", + " 'creation_date': None,\n", + " 'destruction_date': None},\n", + " {'uri': 'm3p:id/scientific-object/za20/so-0043zm4528eppn4_lwd1eppn_rep_301_43arch2020-02-03-1',\n", + " 'name': '0043/ZM4528/EPPN4_L/WD1/EPPN_Rep_3/01_43/ARCH2020-02-03',\n", + " 'geometry': None,\n", + " 'rdf_type': 'vocabulary:Plant',\n", + " 'rdf_type_name': 'plant',\n", + " 'publication_date': None,\n", + " 'last_updated_date': None,\n", + " 'creation_date': None,\n", + " 'destruction_date': None},\n", + " {'uri': 'm3p:id/scientific-object/za20/so-0044zm4532eppn8_lwd1eppn_rep_301_44arch2020-02-03',\n", + " 'name': '0044/ZM4532/EPPN8_L/WD1/EPPN_Rep_3/01_44/ARCH2020-02-03',\n", + " 'geometry': None,\n", + " 'rdf_type': 'vocabulary:Plant',\n", + " 'rdf_type_name': 'plant',\n", + " 'publication_date': None,\n", + " 'last_updated_date': None,\n", + " 'creation_date': None,\n", + " 'destruction_date': None},\n", + " {'uri': 'm3p:id/scientific-object/za20/so-0044zm4532eppn8_lwd1eppn_rep_301_44arch2020-02-03-1',\n", + " 'name': '0044/ZM4532/EPPN8_L/WD1/EPPN_Rep_3/01_44/ARCH2020-02-03',\n", + " 'geometry': None,\n", + " 'rdf_type': 'vocabulary:Plant',\n", + " 'rdf_type_name': 'plant',\n", + " 'publication_date': None,\n", + " 'last_updated_date': None,\n", + " 'creation_date': None,\n", + " 'destruction_date': None},\n", + " {'uri': 'm3p:id/scientific-object/za20/so-0045zm4530eppn6_lwd1eppn_rep_301_45arch2020-02-03',\n", + " 'name': '0045/ZM4530/EPPN6_L/WD1/EPPN_Rep_3/01_45/ARCH2020-02-03',\n", + " 'geometry': None,\n", + " 'rdf_type': 'vocabulary:Plant',\n", + " 'rdf_type_name': 'plant',\n", + " 'publication_date': None,\n", + " 'last_updated_date': None,\n", + " 'creation_date': None,\n", + " 'destruction_date': None},\n", + " {'uri': 'm3p:id/scientific-object/za20/so-0045zm4530eppn6_lwd1eppn_rep_301_45arch2020-02-03-1',\n", + " 'name': '0045/ZM4530/EPPN6_L/WD1/EPPN_Rep_3/01_45/ARCH2020-02-03',\n", + " 'geometry': None,\n", + " 'rdf_type': 'vocabulary:Plant',\n", + " 'rdf_type_name': 'plant',\n", + " 'publication_date': None,\n", + " 'last_updated_date': None,\n", + " 'creation_date': None,\n", + " 'destruction_date': None},\n", + " {'uri': 'm3p:id/scientific-object/za20/so-0046zm4554eppn15_hwweppn_rep_401_46arch2020-02-03',\n", + " 'name': '0046/ZM4554/EPPN15_H/WW/EPPN_Rep_4/01_46/ARCH2020-02-03',\n", + " 'geometry': None,\n", + " 'rdf_type': 'vocabulary:Plant',\n", + " 'rdf_type_name': 'plant',\n", + " 'publication_date': None,\n", + " 'last_updated_date': None,\n", + " 'creation_date': None,\n", + " 'destruction_date': None},\n", + " {'uri': 'm3p:id/scientific-object/za20/so-0046zm4554eppn15_hwweppn_rep_401_46arch2020-02-03-1',\n", + " 'name': '0046/ZM4554/EPPN15_H/WW/EPPN_Rep_4/01_46/ARCH2020-02-03',\n", + " 'geometry': None,\n", + " 'rdf_type': 'vocabulary:Plant',\n", + " 'rdf_type_name': 'plant',\n", + " 'publication_date': None,\n", + " 'last_updated_date': None,\n", + " 'creation_date': None,\n", + " 'destruction_date': None},\n", + " {'uri': 'm3p:id/scientific-object/za20/so-0047zm4545eppn6_hwweppn_rep_401_47arch2020-02-03',\n", + " 'name': '0047/ZM4545/EPPN6_H/WW/EPPN_Rep_4/01_47/ARCH2020-02-03',\n", + " 'geometry': None,\n", + " 'rdf_type': 'vocabulary:Plant',\n", + " 'rdf_type_name': 'plant',\n", + " 'publication_date': None,\n", + " 'last_updated_date': None,\n", + " 'creation_date': None,\n", + " 'destruction_date': None},\n", + " {'uri': 'm3p:id/scientific-object/za20/so-0047zm4545eppn6_hwweppn_rep_401_47arch2020-02-03-1',\n", + " 'name': '0047/ZM4545/EPPN6_H/WW/EPPN_Rep_4/01_47/ARCH2020-02-03',\n", + " 'geometry': None,\n", + " 'rdf_type': 'vocabulary:Plant',\n", + " 'rdf_type_name': 'plant',\n", + " 'publication_date': None,\n", + " 'last_updated_date': None,\n", + " 'creation_date': None,\n", + " 'destruction_date': None},\n", + " {'uri': 'm3p:id/scientific-object/za20/so-0048zm4547eppn8_hwweppn_rep_401_48arch2020-02-03',\n", + " 'name': '0048/ZM4547/EPPN8_H/WW/EPPN_Rep_4/01_48/ARCH2020-02-03',\n", + " 'geometry': None,\n", + " 'rdf_type': 'vocabulary:Plant',\n", + " 'rdf_type_name': 'plant',\n", + " 'publication_date': None,\n", + " 'last_updated_date': None,\n", + " 'creation_date': None,\n", + " 'destruction_date': None},\n", + " {'uri': 'm3p:id/scientific-object/za20/so-0048zm4547eppn8_hwweppn_rep_401_48arch2020-02-03-1',\n", + " 'name': '0048/ZM4547/EPPN8_H/WW/EPPN_Rep_4/01_48/ARCH2020-02-03',\n", + " 'geometry': None,\n", + " 'rdf_type': 'vocabulary:Plant',\n", + " 'rdf_type_name': 'plant',\n", + " 'publication_date': None,\n", + " 'last_updated_date': None,\n", + " 'creation_date': None,\n", + " 'destruction_date': None},\n", + " {'uri': 'm3p:id/scientific-object/za20/so-0049zm4551eppn12_hwweppn_rep_401_49arch2020-02-03',\n", + " 'name': '0049/ZM4551/EPPN12_H/WW/EPPN_Rep_4/01_49/ARCH2020-02-03',\n", + " 'geometry': None,\n", + " 'rdf_type': 'vocabulary:Plant',\n", + " 'rdf_type_name': 'plant',\n", + " 'publication_date': None,\n", + " 'last_updated_date': None,\n", + " 'creation_date': None,\n", + " 'destruction_date': None},\n", + " {'uri': 'm3p:id/scientific-object/za20/so-0049zm4551eppn12_hwweppn_rep_401_49arch2020-02-03-1',\n", + " 'name': '0049/ZM4551/EPPN12_H/WW/EPPN_Rep_4/01_49/ARCH2020-02-03',\n", + " 'geometry': None,\n", + " 'rdf_type': 'vocabulary:Plant',\n", + " 'rdf_type_name': 'plant',\n", + " 'publication_date': None,\n", + " 'last_updated_date': None,\n", + " 'creation_date': None,\n", + " 'destruction_date': None},\n", + " {'uri': 'm3p:id/scientific-object/za20/so-0050zm4546eppn7_hwweppn_rep_401_50arch2020-02-03',\n", + " 'name': '0050/ZM4546/EPPN7_H/WW/EPPN_Rep_4/01_50/ARCH2020-02-03',\n", + " 'geometry': None,\n", + " 'rdf_type': 'vocabulary:Plant',\n", + " 'rdf_type_name': 'plant',\n", + " 'publication_date': None,\n", + " 'last_updated_date': None,\n", + " 'creation_date': None,\n", + " 'destruction_date': None},\n", + " {'uri': 'm3p:id/scientific-object/za20/so-0050zm4546eppn7_hwweppn_rep_401_50arch2020-02-03-1',\n", + " 'name': '0050/ZM4546/EPPN7_H/WW/EPPN_Rep_4/01_50/ARCH2020-02-03',\n", + " 'geometry': None,\n", + " 'rdf_type': 'vocabulary:Plant',\n", + " 'rdf_type_name': 'plant',\n", + " 'publication_date': None,\n", + " 'last_updated_date': None,\n", + " 'creation_date': None,\n", + " 'destruction_date': None},\n", + " {'uri': 'm3p:id/scientific-object/za20/so-0051zm4540eppn1_hwweppn_rep_401_51arch2020-02-03',\n", + " 'name': '0051/ZM4540/EPPN1_H/WW/EPPN_Rep_4/01_51/ARCH2020-02-03',\n", " 'geometry': None,\n", " 'rdf_type': 'vocabulary:Plant',\n", " 'rdf_type_name': 'plant',\n", @@ -2485,7 +5242,7 @@ " 'destruction_date': None}]}" ] }, - "execution_count": 25, + "execution_count": 26, "metadata": {}, "output_type": "execute_result" } @@ -2504,7 +5261,7 @@ }, { "cell_type": "code", - "execution_count": 26, + "execution_count": 27, "id": "8779f4e4-2c2f-44c9-b7dc-6a6850d7d4dd", "metadata": {}, "outputs": [ @@ -2533,7 +5290,7 @@ " 'geometry': None}}" ] }, - "execution_count": 26, + "execution_count": 27, "metadata": {}, "output_type": "execute_result" } @@ -2553,19 +5310,19 @@ }, { "cell_type": "code", - "execution_count": 27, + "execution_count": 28, "id": "efe065de-1b7a-4c35-9efe-73f97a2c2c5d", "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "{'metadata': {'pagination': {'pageSize': 0,\n", + "{'metadata': {'pagination': {'pageSize': 100,\n", " 'currentPage': 0,\n", " 'totalCount': 8,\n", - " 'totalPages': 0,\n", + " 'totalPages': 1,\n", " 'limitCount': 0,\n", - " 'hasNextPage': False},\n", + " 'hasNextPage': True},\n", " 'status': [],\n", " 'datafiles': []},\n", " 'result': [{'uri': 'http://phenome.inrae.fr/m3p/id/variable/characteristic..co2',\n", @@ -2586,7 +5343,7 @@ " 'name': 'Temperature'}]}" ] }, - "execution_count": 27, + "execution_count": 28, "metadata": {}, "output_type": "execute_result" } @@ -2605,7 +5362,7 @@ }, { "cell_type": "code", - "execution_count": 28, + "execution_count": 29, "id": "49f96e29-61c4-49c5-8105-f706de3991ab", "metadata": {}, "outputs": [ @@ -2633,7 +5390,7 @@ " 'from_shared_resource_instance': None}}" ] }, - "execution_count": 28, + "execution_count": 29, "metadata": {}, "output_type": "execute_result" } @@ -2652,19 +5409,19 @@ }, { "cell_type": "code", - "execution_count": 29, + "execution_count": 30, "id": "c98396dc-3cc9-4613-a697-6e961ff80220", "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "{'metadata': {'pagination': {'pageSize': 0,\n", + "{'metadata': {'pagination': {'pageSize': 100,\n", " 'currentPage': 0,\n", " 'totalCount': 6,\n", - " 'totalPages': 0,\n", + " 'totalPages': 1,\n", " 'limitCount': 0,\n", - " 'hasNextPage': False},\n", + " 'hasNextPage': True},\n", " 'status': [],\n", " 'datafiles': []},\n", " 'result': [{'uri': 'http://phenome.inrae.fr/m3p/id/variable/entity.air',\n", @@ -2680,7 +5437,7 @@ " 'name': 'Water'}]}" ] }, - "execution_count": 29, + "execution_count": 30, "metadata": {}, "output_type": "execute_result" } @@ -2699,7 +5456,7 @@ }, { "cell_type": "code", - "execution_count": 30, + "execution_count": 31, "id": "9a115d99-4e40-4c64-9477-220c6378e189", "metadata": {}, "outputs": [ @@ -2727,7 +5484,7 @@ " 'from_shared_resource_instance': None}}" ] }, - "execution_count": 30, + "execution_count": 31, "metadata": {}, "output_type": "execute_result" } @@ -2746,14 +5503,14 @@ }, { "cell_type": "code", - "execution_count": 31, + "execution_count": 32, "id": "12aa6de7-c1d0-4648-b636-a7c4dc83bf77", "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "{'metadata': {'pagination': {'pageSize': 0,\n", + "{'metadata': {'pagination': {'pageSize': 100,\n", " 'currentPage': 0,\n", " 'totalCount': 0,\n", " 'totalPages': 0,\n", @@ -2764,7 +5521,7 @@ " 'result': []}" ] }, - "execution_count": 31, + "execution_count": 32, "metadata": {}, "output_type": "execute_result" } @@ -2783,7 +5540,7 @@ }, { "cell_type": "code", - "execution_count": 32, + "execution_count": 33, "id": "357329e0-4c17-49ba-a585-c57eefe61602", "metadata": {}, "outputs": [], @@ -2801,19 +5558,19 @@ }, { "cell_type": "code", - "execution_count": 33, + "execution_count": 34, "id": "e89debc4-50a9-4e57-9532-654a463a320a", "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "{'metadata': {'pagination': {'pageSize': 0,\n", + "{'metadata': {'pagination': {'pageSize': 100,\n", " 'currentPage': 0,\n", " 'totalCount': 11,\n", - " 'totalPages': 0,\n", + " 'totalPages': 1,\n", " 'limitCount': 0,\n", - " 'hasNextPage': False},\n", + " 'hasNextPage': True},\n", " 'status': [],\n", " 'datafiles': []},\n", " 'result': [{'uri': 'http://phenome.inrae.fr/m3p/id/variable/method.computation',\n", @@ -2839,7 +5596,7 @@ " 'name': 'Upper near-surface'}]}" ] }, - "execution_count": 33, + "execution_count": 34, "metadata": {}, "output_type": "execute_result" } @@ -2858,7 +5615,7 @@ }, { "cell_type": "code", - "execution_count": 34, + "execution_count": 35, "id": "17c00ccd-0b06-4d53-925d-fc7716bc35ba", "metadata": {}, "outputs": [ @@ -2886,7 +5643,7 @@ " 'from_shared_resource_instance': None}}" ] }, - "execution_count": 34, + "execution_count": 35, "metadata": {}, "output_type": "execute_result" } @@ -2905,19 +5662,19 @@ }, { "cell_type": "code", - "execution_count": 35, + "execution_count": 36, "id": "a5a14d0f-a53d-453c-95db-fc0e6f898c66", "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "{'metadata': {'pagination': {'pageSize': 0,\n", + "{'metadata': {'pagination': {'pageSize': 100,\n", " 'currentPage': 0,\n", " 'totalCount': 12,\n", - " 'totalPages': 0,\n", + " 'totalPages': 1,\n", " 'limitCount': 0,\n", - " 'hasNextPage': False},\n", + " 'hasNextPage': True},\n", " 'status': [],\n", " 'datafiles': []},\n", " 'result': [{'uri': 'http://phenome.inrae.fr/m3p/id/variable/unit.boolean',\n", @@ -2940,7 +5697,7 @@ " 'name': 'watt per square meter'}]}" ] }, - "execution_count": 35, + "execution_count": 36, "metadata": {}, "output_type": "execute_result" } @@ -2959,7 +5716,7 @@ }, { "cell_type": "code", - "execution_count": 36, + "execution_count": 37, "id": "86d4a3d3-3800-4134-a555-689461cac2d6", "metadata": {}, "outputs": [ @@ -2997,7 +5754,7 @@ " 'from_shared_resource_instance': None}}" ] }, - "execution_count": 36, + "execution_count": 37, "metadata": {}, "output_type": "execute_result" } @@ -3006,6 +5763,1663 @@ "phis.get_unit(uri='http://qudt.org/vocab/unit/J', token=token)" ] }, + { + "cell_type": "markdown", + "id": "7ba37047-8fce-4dcf-9b92-6110b80e26f3", + "metadata": {}, + "source": [ + "#### List available provenances" + ] + }, + { + "cell_type": "code", + "execution_count": 38, + "id": "d9bbf18f-a044-4800-998a-b8e16e8a03d0", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'metadata': {'pagination': {'pageSize': 100,\n", + " 'currentPage': 0,\n", + " 'totalCount': 149,\n", + " 'totalPages': 2,\n", + " 'limitCount': 0,\n", + " 'hasNextPage': True},\n", + " 'status': [],\n", + " 'datafiles': []},\n", + " 'result': [{'uri': 'm3p:provenance/standard_provenance',\n", + " 'name': 'standard_provenance',\n", + " 'description': 'This provenance is used when there is no need to describe a specific provenance',\n", + " 'prov_activity': None,\n", + " 'prov_agent': [],\n", + " 'publisher': None,\n", + " 'issued': None,\n", + " 'modified': None},\n", + " {'uri': 'm3p:Prov_air_humidity_weather_station_percentage_hr01_p',\n", + " 'name': 'Prov_air humidity_weather station_percentage_hr01_p',\n", + " 'description': 'acquisition of air humidity_weather station_percentage and hr01_p',\n", + " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", + " 'uri': None,\n", + " 'start_date': None,\n", + " 'end_date': None,\n", + " 'settings': None}],\n", + " 'prov_agent': [{'uri': 'm3p:id/deviceAttribut/arch/2011/sa110001',\n", + " 'rdf_type': 'vocabulary:CapacitiveThinFilmPolymer',\n", + " 'settings': {'site': 'p'}}],\n", + " 'publisher': None,\n", + " 'issued': None,\n", + " 'modified': None},\n", + " {'uri': 'm3p:Prov_air_humidity_weather_station_percentage_hr02_p',\n", + " 'name': 'Prov_air humidity_weather station_percentage_hr02_p',\n", + " 'description': 'acquisition of air humidity_weather station_percentage and hr02_p',\n", + " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", + " 'uri': None,\n", + " 'start_date': None,\n", + " 'end_date': None,\n", + " 'settings': None}],\n", + " 'prov_agent': [{'uri': 'm3p:id/deviceAttribut/arch/2011/sa110002',\n", + " 'rdf_type': 'vocabulary:CapacitiveThinFilmPolymer',\n", + " 'settings': {'site': 'p'}}],\n", + " 'publisher': None,\n", + " 'issued': None,\n", + " 'modified': None},\n", + " {'uri': 'm3p:Prov_air_humidity_weather_station_percentage_hr03_p',\n", + " 'name': 'Prov_air humidity_weather station_percentage_hr03_p',\n", + " 'description': 'acquisition of air humidity_weather station_percentage and hr03_p',\n", + " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", + " 'uri': None,\n", + " 'start_date': None,\n", + " 'end_date': None,\n", + " 'settings': None}],\n", + " 'prov_agent': [{'uri': 'm3p:id/deviceAttribut/arch/2011/sa110003',\n", + " 'rdf_type': 'vocabulary:CapacitiveThinFilmPolymer',\n", + " 'settings': {'site': 'p'}}],\n", + " 'publisher': None,\n", + " 'issued': None,\n", + " 'modified': None},\n", + " {'uri': 'm3p:Prov_air_humidity_weather_station_percentage_hr04_p',\n", + " 'name': 'Prov_air humidity_weather station_percentage_hr04_p',\n", + " 'description': 'acquisition of air humidity_weather station_percentage and hr04_p',\n", + " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", + " 'uri': None,\n", + " 'start_date': None,\n", + " 'end_date': None,\n", + " 'settings': None}],\n", + " 'prov_agent': [{'uri': 'm3p:id/deviceAttribut/arch/2011/sa110004',\n", + " 'rdf_type': 'vocabulary:CapacitiveThinFilmPolymer',\n", + " 'settings': {'site': 'p'}}],\n", + " 'publisher': None,\n", + " 'issued': None,\n", + " 'modified': None},\n", + " {'uri': 'm3p:Prov_air_humidity_weather_station_percentage_hr05_p',\n", + " 'name': 'Prov_air humidity_weather station_percentage_hr05_p',\n", + " 'description': 'acquisition of air humidity_weather station_percentage and hr05_p',\n", + " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", + " 'uri': None,\n", + " 'start_date': None,\n", + " 'end_date': None,\n", + " 'settings': None}],\n", + " 'prov_agent': [{'uri': 'm3p:id/deviceAttribut/arch/2011/sa110005',\n", + " 'rdf_type': 'vocabulary:CapacitiveThinFilmPolymer',\n", + " 'settings': {'site': 'p'}}],\n", + " 'publisher': None,\n", + " 'issued': None,\n", + " 'modified': None},\n", + " {'uri': 'm3p:Prov_air_humidity_weather_station_percentage_hr06_p',\n", + " 'name': 'Prov_air humidity_weather station_percentage_hr06_p',\n", + " 'description': 'acquisition of air humidity_weather station_percentage and hr06_p',\n", + " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", + " 'uri': None,\n", + " 'start_date': None,\n", + " 'end_date': None,\n", + " 'settings': None}],\n", + " 'prov_agent': [{'uri': 'm3p:id/deviceAttribut/arch/2011/sa110006',\n", + " 'rdf_type': 'vocabulary:CapacitiveThinFilmPolymer',\n", + " 'settings': {'site': 'p'}}],\n", + " 'publisher': None,\n", + " 'issued': None,\n", + " 'modified': None},\n", + " {'uri': 'm3p:Prov_air_humidity_weather_station_percentage_hr07_p',\n", + " 'name': 'Prov_air humidity_weather station_percentage_hr07_p',\n", + " 'description': 'acquisition of air humidity_weather station_percentage and hr07_p',\n", + " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", + " 'uri': None,\n", + " 'start_date': None,\n", + " 'end_date': None,\n", + " 'settings': None}],\n", + " 'prov_agent': [{'uri': 'm3p:id/deviceAttribut/arch/2013/sa130001',\n", + " 'rdf_type': 'vocabulary:CapacitiveThinFilmPolymer',\n", + " 'settings': {'site': 'p'}}],\n", + " 'publisher': None,\n", + " 'issued': None,\n", + " 'modified': None},\n", + " {'uri': 'm3p:Prov_air_humidity_weather_station_percentage_hr08_p',\n", + " 'name': 'Prov_air humidity_weather station_percentage_hr08_p',\n", + " 'description': 'acquisition of air humidity_weather station_percentage and hr08_p',\n", + " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", + " 'uri': None,\n", + " 'start_date': None,\n", + " 'end_date': None,\n", + " 'settings': None}],\n", + " 'prov_agent': [{'uri': 'm3p:id/deviceAttribut/arch/2013/sa130002',\n", + " 'rdf_type': 'vocabulary:CapacitiveThinFilmPolymer',\n", + " 'settings': {'site': 'p'}}],\n", + " 'publisher': None,\n", + " 'issued': None,\n", + " 'modified': None},\n", + " {'uri': 'm3p:Prov_air_humidity_weather_station_percentage_hr09_p',\n", + " 'name': 'Prov_air humidity_weather station_percentage_hr09_p',\n", + " 'description': 'acquisition of air humidity_weather station_percentage and hr09_p',\n", + " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", + " 'uri': None,\n", + " 'start_date': None,\n", + " 'end_date': None,\n", + " 'settings': None}],\n", + " 'prov_agent': [{'uri': 'm3p:id/deviceAttribut/2019/s19008',\n", + " 'rdf_type': 'vocabulary:CapacitiveThinFilmPolymer',\n", + " 'settings': {'site': 'p'}}],\n", + " 'publisher': None,\n", + " 'issued': None,\n", + " 'modified': None},\n", + " {'uri': 'm3p:Prov_air_humidity_weather_station_percentage_hr10_p',\n", + " 'name': 'Prov_air humidity_weather station_percentage_hr10_p',\n", + " 'description': 'acquisition of air humidity_weather station_percentage and hr10_p',\n", + " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", + " 'uri': None,\n", + " 'start_date': None,\n", + " 'end_date': None,\n", + " 'settings': None}],\n", + " 'prov_agent': [{'uri': 'm3p:id/deviceAttribut/2019/s19009',\n", + " 'rdf_type': 'vocabulary:CapacitiveThinFilmPolymer',\n", + " 'settings': {'site': 'p'}}],\n", + " 'publisher': None,\n", + " 'issued': None,\n", + " 'modified': None},\n", + " {'uri': 'm3p:Prov_PAR_Light_weather_station_micromole.m-2.s-1_par01_p',\n", + " 'name': 'Prov_PAR Light_weather station_micromole.m-2.s-1_par01_p',\n", + " 'description': 'acquisition of PAR Light_weather station_micromole.m-2.s-1 and par01_p',\n", + " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", + " 'uri': None,\n", + " 'start_date': None,\n", + " 'end_date': None,\n", + " 'settings': None}],\n", + " 'prov_agent': [{'uri': 'm3p:id/deviceAttribut/arch/2011/sa110007',\n", + " 'rdf_type': 'vocabulary:QuantumSensor',\n", + " 'settings': {'site': 'p'}}],\n", + " 'publisher': None,\n", + " 'issued': None,\n", + " 'modified': None},\n", + " {'uri': 'm3p:Prov_PAR_Light_weather_station_micromole.m-2.s-1_par02_p',\n", + " 'name': 'Prov_PAR Light_weather station_micromole.m-2.s-1_par02_p',\n", + " 'description': 'acquisition of PAR Light_weather station_micromole.m-2.s-1 and par02_p',\n", + " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", + " 'uri': None,\n", + " 'start_date': None,\n", + " 'end_date': None,\n", + " 'settings': None}],\n", + " 'prov_agent': [{'uri': 'm3p:id/deviceAttribut/arch/2011/sa110008',\n", + " 'rdf_type': 'vocabulary:QuantumSensor',\n", + " 'settings': {'site': 'p'}}],\n", + " 'publisher': None,\n", + " 'issued': None,\n", + " 'modified': None},\n", + " {'uri': 'm3p:Prov_PAR_Light_weather_station_micromole.m-2.s-1_par03_p',\n", + " 'name': 'Prov_PAR Light_weather station_micromole.m-2.s-1_par03_p',\n", + " 'description': 'acquisition of PAR Light_weather station_micromole.m-2.s-1 and par03_p',\n", + " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", + " 'uri': None,\n", + " 'start_date': None,\n", + " 'end_date': None,\n", + " 'settings': None}],\n", + " 'prov_agent': [{'uri': 'm3p:id/deviceAttribut/arch/2011/sa110009',\n", + " 'rdf_type': 'vocabulary:QuantumSensor',\n", + " 'settings': {'site': 'p'}}],\n", + " 'publisher': None,\n", + " 'issued': None,\n", + " 'modified': None},\n", + " {'uri': 'm3p:Prov_PAR_Light_weather_station_micromole.m-2.s-1_par04_p',\n", + " 'name': 'Prov_PAR Light_weather station_micromole.m-2.s-1_par04_p',\n", + " 'description': 'acquisition of PAR Light_weather station_micromole.m-2.s-1 and par04_p',\n", + " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", + " 'uri': None,\n", + " 'start_date': None,\n", + " 'end_date': None,\n", + " 'settings': None}],\n", + " 'prov_agent': [{'uri': 'm3p:id/deviceAttribut/arch/2011/sa110010',\n", + " 'rdf_type': 'vocabulary:QuantumSensor',\n", + " 'settings': {'site': 'p'}}],\n", + " 'publisher': None,\n", + " 'issued': None,\n", + " 'modified': None},\n", + " {'uri': 'm3p:Prov_PAR_Light_weather_station_micromole.m-2.s-1_par05_p',\n", + " 'name': 'Prov_PAR Light_weather station_micromole.m-2.s-1_par05_p',\n", + " 'description': 'acquisition of PAR Light_weather station_micromole.m-2.s-1 and par05_p',\n", + " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", + " 'uri': None,\n", + " 'start_date': None,\n", + " 'end_date': None,\n", + " 'settings': None}],\n", + " 'prov_agent': [{'uri': 'm3p:id/deviceAttribut/arch/2011/sa110011',\n", + " 'rdf_type': 'vocabulary:QuantumSensor',\n", + " 'settings': {'site': 'p'}}],\n", + " 'publisher': None,\n", + " 'issued': None,\n", + " 'modified': None},\n", + " {'uri': 'm3p:Prov_PAR_Light_weather_station_micromole.m-2.s-1_par06_p',\n", + " 'name': 'Prov_PAR Light_weather station_micromole.m-2.s-1_par06_p',\n", + " 'description': 'acquisition of PAR Light_weather station_micromole.m-2.s-1 and par06_p',\n", + " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", + " 'uri': None,\n", + " 'start_date': None,\n", + " 'end_date': None,\n", + " 'settings': None}],\n", + " 'prov_agent': [{'uri': 'm3p:id/deviceAttribut/arch/2011/sa110012',\n", + " 'rdf_type': 'vocabulary:QuantumSensor',\n", + " 'settings': {'site': 'p'}}],\n", + " 'publisher': None,\n", + " 'issued': None,\n", + " 'modified': None},\n", + " {'uri': 'm3p:Prov_PAR_Light_weather_station_micromole.m-2.s-1_par07_p',\n", + " 'name': 'Prov_PAR Light_weather station_micromole.m-2.s-1_par07_p',\n", + " 'description': 'acquisition of PAR Light_weather station_micromole.m-2.s-1 and par07_p',\n", + " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", + " 'uri': None,\n", + " 'start_date': None,\n", + " 'end_date': None,\n", + " 'settings': None}],\n", + " 'prov_agent': [{'uri': 'm3p:id/deviceAttribut/arch/2013/sa130003',\n", + " 'rdf_type': 'vocabulary:QuantumSensor',\n", + " 'settings': {'site': 'p'}}],\n", + " 'publisher': None,\n", + " 'issued': None,\n", + " 'modified': None},\n", + " {'uri': 'm3p:Prov_PAR_Light_weather_station_micromole.m-2.s-1_par08_p',\n", + " 'name': 'Prov_PAR Light_weather station_micromole.m-2.s-1_par08_p',\n", + " 'description': 'acquisition of PAR Light_weather station_micromole.m-2.s-1 and par08_p',\n", + " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", + " 'uri': None,\n", + " 'start_date': None,\n", + " 'end_date': None,\n", + " 'settings': None}],\n", + " 'prov_agent': [{'uri': 'm3p:id/deviceAttribut/arch/2013/sa130004',\n", + " 'rdf_type': 'vocabulary:QuantumSensor',\n", + " 'settings': {'site': 'p'}}],\n", + " 'publisher': None,\n", + " 'issued': None,\n", + " 'modified': None},\n", + " {'uri': 'm3p:Prov_PAR_Light_weather_station_micromole.m-2.s-1_par09_p',\n", + " 'name': 'Prov_PAR Light_weather station_micromole.m-2.s-1_par09_p',\n", + " 'description': 'acquisition of PAR Light_weather station_micromole.m-2.s-1 and par09_p',\n", + " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", + " 'uri': None,\n", + " 'start_date': None,\n", + " 'end_date': None,\n", + " 'settings': None}],\n", + " 'prov_agent': [{'uri': 'm3p:id/deviceAttribut/2019/s19006',\n", + " 'rdf_type': 'vocabulary:QuantumSensor',\n", + " 'settings': {'site': 'p'}}],\n", + " 'publisher': None,\n", + " 'issued': None,\n", + " 'modified': None},\n", + " {'uri': 'm3p:Prov_PAR_Light_weather_station_micromole.m-2.s-1_par10_p',\n", + " 'name': 'Prov_PAR Light_weather station_micromole.m-2.s-1_par10_p',\n", + " 'description': 'acquisition of PAR Light_weather station_micromole.m-2.s-1 and par10_p',\n", + " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", + " 'uri': None,\n", + " 'start_date': None,\n", + " 'end_date': None,\n", + " 'settings': None}],\n", + " 'prov_agent': [{'uri': 'm3p:id/deviceAttribut/2019/s19007',\n", + " 'rdf_type': 'vocabulary:QuantumSensor',\n", + " 'settings': {'site': 'p'}}],\n", + " 'publisher': None,\n", + " 'issued': None,\n", + " 'modified': None},\n", + " {'uri': 'm3p:Prov_air_temperature_weather_station_degree_celsius_tair01_p',\n", + " 'name': 'Prov_air temperature_weather station_degree celsius_tair01_p',\n", + " 'description': 'acquisition of air temperature_weather station_degree celsius and tair01_p',\n", + " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", + " 'uri': None,\n", + " 'start_date': None,\n", + " 'end_date': None,\n", + " 'settings': None}],\n", + " 'prov_agent': [{'uri': 'm3p:id/deviceAttribut/arch/2011/sa110013',\n", + " 'rdf_type': 'vocabulary:ElectricalResistanceThermometer',\n", + " 'settings': {'site': 'p'}}],\n", + " 'publisher': None,\n", + " 'issued': None,\n", + " 'modified': None},\n", + " {'uri': 'm3p:Prov_air_temperature_weather_station_degree_celsius_tair02_p',\n", + " 'name': 'Prov_air temperature_weather station_degree celsius_tair02_p',\n", + " 'description': 'acquisition of air temperature_weather station_degree celsius and tair02_p',\n", + " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", + " 'uri': None,\n", + " 'start_date': None,\n", + " 'end_date': None,\n", + " 'settings': None}],\n", + " 'prov_agent': [{'uri': 'm3p:id/deviceAttribut/arch/2011/sa110014',\n", + " 'rdf_type': 'vocabulary:ElectricalResistanceThermometer',\n", + " 'settings': {'site': 'p'}}],\n", + " 'publisher': None,\n", + " 'issued': None,\n", + " 'modified': None},\n", + " {'uri': 'm3p:Prov_diffuse_PAR_light_sensor_micromole.m-2.s-1_BF5',\n", + " 'name': 'Prov_diffuse PAR light_sensor_micromole.m-2.s-1_BF5',\n", + " 'description': 'acquisition of diffuse PAR light_sensor_micromole.m-2.s-1 and BF5',\n", + " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", + " 'uri': None,\n", + " 'start_date': None,\n", + " 'end_date': None,\n", + " 'settings': None}],\n", + " 'prov_agent': [{'uri': 'm3p:id/deviceAttribut/eo/2016/sa1600009',\n", + " 'rdf_type': 'vocabulary:PyranometerWithShadeRing',\n", + " 'settings': {'site': 'p'}}],\n", + " 'publisher': None,\n", + " 'issued': None,\n", + " 'modified': None},\n", + " {'uri': 'm3p:Prov_direct_PAR_light_sensor_micromole.m-2.s-1_BF5',\n", + " 'name': 'Prov_direct PAR light_sensor_micromole.m-2.s-1_BF5',\n", + " 'description': 'acquisition of direct PAR light_sensor_micromole.m-2.s-1 and BF5',\n", + " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", + " 'uri': None,\n", + " 'start_date': None,\n", + " 'end_date': None,\n", + " 'settings': None}],\n", + " 'prov_agent': [{'uri': 'm3p:id/deviceAttribut/eo/2016/sa1600009',\n", + " 'rdf_type': 'vocabulary:PyranometerWithShadeRing',\n", + " 'settings': {'site': 'p'}}],\n", + " 'publisher': None,\n", + " 'issued': None,\n", + " 'modified': None},\n", + " {'uri': 'm3p:Prov_air_temperature_weather_station_degree_celsius_tair03_p',\n", + " 'name': 'Prov_air temperature_weather station_degree celsius_tair03_p',\n", + " 'description': 'acquisition of air temperature_weather station_degree celsius and tair03_p',\n", + " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", + " 'uri': None,\n", + " 'start_date': None,\n", + " 'end_date': None,\n", + " 'settings': None}],\n", + " 'prov_agent': [{'uri': 'm3p:id/deviceAttribut/arch/2011/sa110015',\n", + " 'rdf_type': 'vocabulary:ElectricalResistanceThermometer',\n", + " 'settings': {'site': 'p'}}],\n", + " 'publisher': None,\n", + " 'issued': None,\n", + " 'modified': None},\n", + " {'uri': 'm3p:Prov_air_temperature_weather_station_degree_celsius_tair04_p',\n", + " 'name': 'Prov_air temperature_weather station_degree celsius_tair04_p',\n", + " 'description': 'acquisition of air temperature_weather station_degree celsius and tair04_p',\n", + " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", + " 'uri': None,\n", + " 'start_date': None,\n", + " 'end_date': None,\n", + " 'settings': None}],\n", + " 'prov_agent': [{'uri': 'm3p:id/deviceAttribut/arch/2011/sa110016',\n", + " 'rdf_type': 'vocabulary:ElectricalResistanceThermometer',\n", + " 'settings': {'site': 'p'}}],\n", + " 'publisher': None,\n", + " 'issued': None,\n", + " 'modified': None},\n", + " {'uri': 'm3p:Prov_air_temperature_weather_station_degree_celsius_tair05_p',\n", + " 'name': 'Prov_air temperature_weather station_degree celsius_tair05_p',\n", + " 'description': 'acquisition of air temperature_weather station_degree celsius and tair05_p',\n", + " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", + " 'uri': None,\n", + " 'start_date': None,\n", + " 'end_date': None,\n", + " 'settings': None}],\n", + " 'prov_agent': [{'uri': 'm3p:id/deviceAttribut/arch/2011/sa110017',\n", + " 'rdf_type': 'vocabulary:ElectricalResistanceThermometer',\n", + " 'settings': {'site': 'p'}}],\n", + " 'publisher': None,\n", + " 'issued': None,\n", + " 'modified': None},\n", + " {'uri': 'm3p:Prov_air_temperature_weather_station_degree_celsius_tair06_p',\n", + " 'name': 'Prov_air temperature_weather station_degree celsius_tair06_p',\n", + " 'description': 'acquisition of air temperature_weather station_degree celsius and tair06_p',\n", + " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", + " 'uri': None,\n", + " 'start_date': None,\n", + " 'end_date': None,\n", + " 'settings': None}],\n", + " 'prov_agent': [{'uri': 'm3p:id/deviceAttribut/arch/2011/sa110018',\n", + " 'rdf_type': 'vocabulary:ElectricalResistanceThermometer',\n", + " 'settings': {'site': 'p'}}],\n", + " 'publisher': None,\n", + " 'issued': None,\n", + " 'modified': None},\n", + " {'uri': 'm3p:Prov_air_temperature_weather_station_degree_celsius_tair07_p',\n", + " 'name': 'Prov_air temperature_weather station_degree celsius_tair07_p',\n", + " 'description': 'acquisition of air temperature_weather station_degree celsius and tair07_p',\n", + " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", + " 'uri': None,\n", + " 'start_date': None,\n", + " 'end_date': None,\n", + " 'settings': None}],\n", + " 'prov_agent': [{'uri': 'm3p:id/deviceAttribut/arch/2013/sa130005',\n", + " 'rdf_type': 'vocabulary:ElectricalResistanceThermometer',\n", + " 'settings': {'site': 'p'}}],\n", + " 'publisher': None,\n", + " 'issued': None,\n", + " 'modified': None},\n", + " {'uri': 'm3p:Prov_air_temperature_weather_station_degree_celsius_tair08_p',\n", + " 'name': 'Prov_air temperature_weather station_degree celsius_tair08_p',\n", + " 'description': 'acquisition of air temperature_weather station_degree celsius and tair08_p',\n", + " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", + " 'uri': None,\n", + " 'start_date': None,\n", + " 'end_date': None,\n", + " 'settings': None}],\n", + " 'prov_agent': [{'uri': 'm3p:id/deviceAttribut/arch/2013/sa130006',\n", + " 'rdf_type': 'vocabulary:ElectricalResistanceThermometer',\n", + " 'settings': {'site': 'p'}}],\n", + " 'publisher': None,\n", + " 'issued': None,\n", + " 'modified': None},\n", + " {'uri': 'm3p:Prov_air_temperature_weather_station_degree_celsius_tair09_p',\n", + " 'name': 'Prov_air temperature_weather station_degree celsius_tair09_p',\n", + " 'description': 'acquisition of air temperature_weather station_degree celsius and tair09_p',\n", + " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", + " 'uri': None,\n", + " 'start_date': None,\n", + " 'end_date': None,\n", + " 'settings': None}],\n", + " 'prov_agent': [{'uri': 'm3p:id/deviceAttribut/2019/s19010',\n", + " 'rdf_type': 'vocabulary:ElectricalResistanceThermometer',\n", + " 'settings': {'site': 'p'}}],\n", + " 'publisher': None,\n", + " 'issued': None,\n", + " 'modified': None},\n", + " {'uri': 'm3p:Prov_air_temperature_weather_station_degree_celsius_tair10_p',\n", + " 'name': 'Prov_air temperature_weather station_degree celsius_tair10_p',\n", + " 'description': 'acquisition of air temperature_weather station_degree celsius and tair10_p',\n", + " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", + " 'uri': None,\n", + " 'start_date': None,\n", + " 'end_date': None,\n", + " 'settings': None}],\n", + " 'prov_agent': [{'uri': 'm3p:id/deviceAttribut/2019/s19011',\n", + " 'rdf_type': 'vocabulary:ElectricalResistanceThermometer',\n", + " 'settings': {'site': 'p'}}],\n", + " 'publisher': None,\n", + " 'issued': None,\n", + " 'modified': None},\n", + " {'uri': 'http://www.phenome-fppn.fr/m3p/Prov_watering_WateringStation02_water',\n", + " 'name': 'Prov_watering_WateringStation02_water',\n", + " 'description': 'acquisition of WateringStation02 and water [2021-11-16__11-04-51]',\n", + " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", + " 'uri': None,\n", + " 'start_date': '2020-01-01T00:00:00Z',\n", + " 'end_date': None,\n", + " 'settings': None}],\n", + " 'prov_agent': [{'uri': 'http://www.phenome-fppn.fr/m3p/2019/v1908',\n", + " 'rdf_type': 'vocabulary:Station',\n", + " 'settings': None},\n", + " {'uri': 'http://www.phenome-fppn.fr/m3p/2020/a20002',\n", + " 'rdf_type': 'vocabulary:WateringPump',\n", + " 'settings': None},\n", + " {'uri': 'http://www.phenome-fppn.fr/m3p/2019/s19002',\n", + " 'rdf_type': 'vocabulary:WeighingScale',\n", + " 'settings': None}],\n", + " 'publisher': None,\n", + " 'issued': None,\n", + " 'modified': None},\n", + " {'uri': 'http://www.phenome-fppn.fr/m3p/Prov_watering_WateringStation04_water',\n", + " 'name': 'Prov_watering_WateringStation04_water',\n", + " 'description': 'acquisition of WateringStation04 and water [2021-11-16__11-04-51]',\n", + " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", + " 'uri': None,\n", + " 'start_date': '2020-01-01T00:00:00Z',\n", + " 'end_date': None,\n", + " 'settings': None}],\n", + " 'prov_agent': [{'uri': 'http://www.phenome-fppn.fr/m3p/2020/a20004',\n", + " 'rdf_type': 'vocabulary:WateringPump',\n", + " 'settings': None},\n", + " {'uri': 'http://www.phenome-fppn.fr/m3p/2019/s19004',\n", + " 'rdf_type': 'vocabulary:WeighingScale',\n", + " 'settings': None},\n", + " {'uri': 'http://www.phenome-fppn.fr/m3p/2019/v1910',\n", + " 'rdf_type': 'vocabulary:Station',\n", + " 'settings': None}],\n", + " 'publisher': None,\n", + " 'issued': None,\n", + " 'modified': None},\n", + " {'uri': 'http://www.phenome-fppn.fr/m3p/Prov_watering_WateringStation04_watermaize',\n", + " 'name': 'Prov_watering_WateringStation04_watermaize',\n", + " 'description': 'acquisition of WateringStation04 and watermaize [2021-11-16__11-04-51]',\n", + " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", + " 'uri': None,\n", + " 'start_date': '2020-01-01T00:00:00Z',\n", + " 'end_date': None,\n", + " 'settings': None}],\n", + " 'prov_agent': [{'uri': 'http://www.phenome-fppn.fr/m3p/2020/a20004',\n", + " 'rdf_type': 'vocabulary:WateringPump',\n", + " 'settings': None},\n", + " {'uri': 'http://www.phenome-fppn.fr/m3p/2019/s19004',\n", + " 'rdf_type': 'vocabulary:WeighingScale',\n", + " 'settings': None},\n", + " {'uri': 'http://www.phenome-fppn.fr/m3p/2019/v1910',\n", + " 'rdf_type': 'vocabulary:Station',\n", + " 'settings': None}],\n", + " 'publisher': None,\n", + " 'issued': None,\n", + " 'modified': None},\n", + " {'uri': 'http://www.phenome-fppn.fr/m3p/Prov_watering_WateringStation02_watermaize',\n", + " 'name': 'Prov_watering_WateringStation02_watermaize',\n", + " 'description': 'acquisition of WateringStation02 and watermaize [2021-11-16__11-04-51]',\n", + " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", + " 'uri': None,\n", + " 'start_date': '2020-01-01T00:00:00Z',\n", + " 'end_date': None,\n", + " 'settings': None}],\n", + " 'prov_agent': [{'uri': 'http://www.phenome-fppn.fr/m3p/2019/v1908',\n", + " 'rdf_type': 'vocabulary:Station',\n", + " 'settings': None},\n", + " {'uri': 'http://www.phenome-fppn.fr/m3p/2020/a20002',\n", + " 'rdf_type': 'vocabulary:WateringPump',\n", + " 'settings': None},\n", + " {'uri': 'http://www.phenome-fppn.fr/m3p/2019/s19002',\n", + " 'rdf_type': 'vocabulary:WeighingScale',\n", + " 'settings': None}],\n", + " 'publisher': None,\n", + " 'issued': None,\n", + " 'modified': None},\n", + " {'uri': 'http://www.phenome-fppn.fr/m3p/Prov_watering_WateringStation03_waterwheat',\n", + " 'name': 'Prov_watering_WateringStation03_waterwheat',\n", + " 'description': 'acquisition of WateringStation03 and waterwheat [2021-11-16__11-04-51]',\n", + " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", + " 'uri': None,\n", + " 'start_date': '2020-01-01T00:00:00Z',\n", + " 'end_date': None,\n", + " 'settings': None}],\n", + " 'prov_agent': [{'uri': 'http://www.phenome-fppn.fr/m3p/2019/v1909',\n", + " 'rdf_type': 'vocabulary:Station',\n", + " 'settings': None},\n", + " {'uri': 'http://www.phenome-fppn.fr/m3p/2019/s19003',\n", + " 'rdf_type': 'vocabulary:WeighingScale',\n", + " 'settings': None},\n", + " {'uri': 'http://www.phenome-fppn.fr/m3p/2020/a20003',\n", + " 'rdf_type': 'vocabulary:WateringPump',\n", + " 'settings': None}],\n", + " 'publisher': None,\n", + " 'issued': None,\n", + " 'modified': None},\n", + " {'uri': 'http://www.phenome-fppn.fr/m3p/Prov_watering_WateringStation05_waterwheat',\n", + " 'name': 'Prov_watering_WateringStation05_waterwheat',\n", + " 'description': 'acquisition of WateringStation05 and waterwheat [2021-11-16__11-04-51]',\n", + " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", + " 'uri': None,\n", + " 'start_date': '2020-01-01T00:00:00Z',\n", + " 'end_date': None,\n", + " 'settings': None}],\n", + " 'prov_agent': [{'uri': 'http://www.phenome-fppn.fr/m3p/2019/s19005',\n", + " 'rdf_type': 'vocabulary:WeighingScale',\n", + " 'settings': None},\n", + " {'uri': 'http://www.phenome-fppn.fr/m3p/2019/v1911',\n", + " 'rdf_type': 'vocabulary:Station',\n", + " 'settings': None},\n", + " {'uri': 'http://www.phenome-fppn.fr/m3p/2020/a20005',\n", + " 'rdf_type': 'vocabulary:WateringPump',\n", + " 'settings': None}],\n", + " 'publisher': None,\n", + " 'issued': None,\n", + " 'modified': None},\n", + " {'uri': 'http://www.phenome-fppn.fr/m3p/Prov_watering_WateringStation01_waterwheat',\n", + " 'name': 'Prov_watering_WateringStation01_waterwheat',\n", + " 'description': 'acquisition of WateringStation01 and waterwheat [2021-11-16__11-04-51]',\n", + " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", + " 'uri': None,\n", + " 'start_date': '2020-01-01T00:00:00Z',\n", + " 'end_date': None,\n", + " 'settings': None}],\n", + " 'prov_agent': [{'uri': 'http://www.phenome-fppn.fr/m3p/2019/s19001',\n", + " 'rdf_type': 'vocabulary:WeighingScale',\n", + " 'settings': None},\n", + " {'uri': 'http://www.phenome-fppn.fr/m3p/2020/a20001',\n", + " 'rdf_type': 'vocabulary:WateringPump',\n", + " 'settings': None},\n", + " {'uri': 'http://www.phenome-fppn.fr/m3p/2019/v1907',\n", + " 'rdf_type': 'vocabulary:Station',\n", + " 'settings': None}],\n", + " 'publisher': None,\n", + " 'issued': None,\n", + " 'modified': None},\n", + " {'uri': 'http://www.phenome-fppn.fr/m3p/Prov_weighing_WateringStation05_ARCH2020-01-20',\n", + " 'name': 'Prov_weighing_WateringStation05_ARCH2020-01-20',\n", + " 'description': 'acquisition of WateringStation05 and ARCH2020-01-20 [2021-11-17__11-51-46]',\n", + " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", + " 'uri': None,\n", + " 'start_date': '2020-01-01T00:00:00Z',\n", + " 'end_date': None,\n", + " 'settings': None}],\n", + " 'prov_agent': [{'uri': 'http://www.phenome-fppn.fr/m3p/2019/s19005',\n", + " 'rdf_type': 'vocabulary:WeighingScale',\n", + " 'settings': None},\n", + " {'uri': 'http://www.phenome-fppn.fr/m3p/2019/v1911',\n", + " 'rdf_type': 'vocabulary:Station',\n", + " 'settings': None}],\n", + " 'publisher': None,\n", + " 'issued': None,\n", + " 'modified': None},\n", + " {'uri': 'http://www.phenome-fppn.fr/m3p/Prov_weighing_WateringStation03_ARCH2020-01-20',\n", + " 'name': 'Prov_weighing_WateringStation03_ARCH2020-01-20',\n", + " 'description': 'acquisition of WateringStation03 and ARCH2020-01-20 [2021-11-17__11-51-46]',\n", + " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", + " 'uri': None,\n", + " 'start_date': '2020-01-01T00:00:00Z',\n", + " 'end_date': None,\n", + " 'settings': None}],\n", + " 'prov_agent': [{'uri': 'http://www.phenome-fppn.fr/m3p/2019/v1909',\n", + " 'rdf_type': 'vocabulary:Station',\n", + " 'settings': None},\n", + " {'uri': 'http://www.phenome-fppn.fr/m3p/2019/s19003',\n", + " 'rdf_type': 'vocabulary:WeighingScale',\n", + " 'settings': None}],\n", + " 'publisher': None,\n", + " 'issued': None,\n", + " 'modified': None},\n", + " {'uri': 'http://www.phenome-fppn.fr/m3p/Prov_weighing_WateringStation04_ARCH2020-01-20',\n", + " 'name': 'Prov_weighing_WateringStation04_ARCH2020-01-20',\n", + " 'description': 'acquisition of WateringStation04 and ARCH2020-01-20 [2021-11-17__11-51-46]',\n", + " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", + " 'uri': None,\n", + " 'start_date': '2020-01-01T00:00:00Z',\n", + " 'end_date': None,\n", + " 'settings': None}],\n", + " 'prov_agent': [{'uri': 'http://www.phenome-fppn.fr/m3p/2019/s19004',\n", + " 'rdf_type': 'vocabulary:WeighingScale',\n", + " 'settings': None},\n", + " {'uri': 'http://www.phenome-fppn.fr/m3p/2019/v1910',\n", + " 'rdf_type': 'vocabulary:Station',\n", + " 'settings': None}],\n", + " 'publisher': None,\n", + " 'issued': None,\n", + " 'modified': None},\n", + " {'uri': 'http://www.phenome-fppn.fr/m3p/Prov_weighing_WateringStation02_ARCH2020-01-20',\n", + " 'name': 'Prov_weighing_WateringStation02_ARCH2020-01-20',\n", + " 'description': 'acquisition of WateringStation02 and ARCH2020-01-20 [2021-11-17__11-51-46]',\n", + " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", + " 'uri': None,\n", + " 'start_date': '2020-01-01T00:00:00Z',\n", + " 'end_date': None,\n", + " 'settings': None}],\n", + " 'prov_agent': [{'uri': 'http://www.phenome-fppn.fr/m3p/2019/v1908',\n", + " 'rdf_type': 'vocabulary:Station',\n", + " 'settings': None},\n", + " {'uri': 'http://www.phenome-fppn.fr/m3p/2019/s19002',\n", + " 'rdf_type': 'vocabulary:WeighingScale',\n", + " 'settings': None}],\n", + " 'publisher': None,\n", + " 'issued': None,\n", + " 'modified': None},\n", + " {'uri': 'http://www.phenome-fppn.fr/m3p/Prov_weighing_WateringStation01_ARCH2020-01-20',\n", + " 'name': 'Prov_weighing_WateringStation01_ARCH2020-01-20',\n", + " 'description': 'acquisition of WateringStation01 and ARCH2020-01-20 [2021-11-17__11-51-46]',\n", + " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", + " 'uri': None,\n", + " 'start_date': '2020-01-01T00:00:00Z',\n", + " 'end_date': None,\n", + " 'settings': None}],\n", + " 'prov_agent': [{'uri': 'http://www.phenome-fppn.fr/m3p/2019/s19001',\n", + " 'rdf_type': 'vocabulary:WeighingScale',\n", + " 'settings': None},\n", + " {'uri': 'http://www.phenome-fppn.fr/m3p/2019/v1907',\n", + " 'rdf_type': 'vocabulary:Station',\n", + " 'settings': None}],\n", + " 'publisher': None,\n", + " 'issued': None,\n", + " 'modified': None},\n", + " {'uri': 'http://www.phenome-fppn.fr/m3p/Prov_weighing_OperatorStation01_ARCH2020-01-20',\n", + " 'name': 'Prov_weighing_OperatorStation01_ARCH2020-01-20',\n", + " 'description': 'acquisition of OperatorStation01 and ARCH2020-01-20 [2021-11-17__11-51-46]',\n", + " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", + " 'uri': None,\n", + " 'start_date': '2020-01-01T00:00:00Z',\n", + " 'end_date': None,\n", + " 'settings': None}],\n", + " 'prov_agent': [{'uri': 'http://www.phenome-fppn.fr/m3p/2019/s19001',\n", + " 'rdf_type': 'vocabulary:WeighingScale',\n", + " 'settings': None},\n", + " {'uri': 'http://www.phenome-fppn.fr/set/devices/station-operatorstation01',\n", + " 'rdf_type': 'vocabulary:Station',\n", + " 'settings': None}],\n", + " 'publisher': None,\n", + " 'issued': None,\n", + " 'modified': None},\n", + " {'uri': 'http://www.phenome-fppn.fr/m3p/Prov_weighing_WateringStation01_DYN2020-05-15',\n", + " 'name': 'Prov_weighing_WateringStation01_DYN2020-05-15',\n", + " 'description': 'acquisition of WateringStation01 and DYN2020-05-15 [2021-11-17__11-51-46]',\n", + " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", + " 'uri': None,\n", + " 'start_date': '2020-05-01T00:00:00Z',\n", + " 'end_date': None,\n", + " 'settings': None}],\n", + " 'prov_agent': [{'uri': 'http://www.phenome-fppn.fr/m3p/2019/s19001',\n", + " 'rdf_type': 'vocabulary:WeighingScale',\n", + " 'settings': None},\n", + " {'uri': 'http://www.phenome-fppn.fr/m3p/2019/v1907',\n", + " 'rdf_type': 'vocabulary:Station',\n", + " 'settings': None}],\n", + " 'publisher': None,\n", + " 'issued': None,\n", + " 'modified': None},\n", + " {'uri': 'http://www.phenome-fppn.fr/m3p/Prov_watering_WateringStation01_water',\n", + " 'name': 'Prov_watering_WateringStation01_water',\n", + " 'description': 'acquisition of WateringStation01 and water [2021-11-17__10-55-32]',\n", + " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", + " 'uri': None,\n", + " 'start_date': '2020-01-01T00:00:00Z',\n", + " 'end_date': None,\n", + " 'settings': None}],\n", + " 'prov_agent': [{'uri': 'http://www.phenome-fppn.fr/m3p/2019/s19001',\n", + " 'rdf_type': 'vocabulary:WeighingScale',\n", + " 'settings': None},\n", + " {'uri': 'http://www.phenome-fppn.fr/m3p/2020/a20001',\n", + " 'rdf_type': 'vocabulary:WateringPump',\n", + " 'settings': None},\n", + " {'uri': 'http://www.phenome-fppn.fr/m3p/2019/v1907',\n", + " 'rdf_type': 'vocabulary:Station',\n", + " 'settings': None}],\n", + " 'publisher': None,\n", + " 'issued': None,\n", + " 'modified': None},\n", + " {'uri': 'http://www.phenome-fppn.fr/m3p/Prov_leaf_temperature_thermocouple_sensor_degree_celsius_thc_emb_02',\n", + " 'name': 'Prov_leaf temperature_thermocouple sensor_degree celsius_thc_emb_02',\n", + " 'description': 'acquisition of leaf temperature_thermocouple sensor_degree celsius and thc_emb_02',\n", + " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", + " 'uri': None,\n", + " 'start_date': None,\n", + " 'end_date': None,\n", + " 'settings': None}],\n", + " 'prov_agent': [{'uri': 'm3p:id/deviceAttribut/eo/2017/sa1700002',\n", + " 'rdf_type': 'vocabulary:Thermocouple',\n", + " 'settings': {'site': 'p'}}],\n", + " 'publisher': None,\n", + " 'issued': None,\n", + " 'modified': None},\n", + " {'uri': 'http://www.phenome-fppn.fr/m3p/Prov_leaf_temperature_thermocouple_sensor_degree_celsius_thc_emb_03',\n", + " 'name': 'Prov_leaf temperature_thermocouple sensor_degree celsius_thc_emb_03',\n", + " 'description': 'acquisition of leaf temperature_thermocouple sensor_degree celsius and thc_emb_03',\n", + " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", + " 'uri': None,\n", + " 'start_date': None,\n", + " 'end_date': None,\n", + " 'settings': None}],\n", + " 'prov_agent': [{'uri': 'm3p:id/deviceAttribut/eo/2017/sa1700003',\n", + " 'rdf_type': 'vocabulary:Thermocouple',\n", + " 'settings': {'site': 'p'}}],\n", + " 'publisher': None,\n", + " 'issued': None,\n", + " 'modified': None},\n", + " {'uri': 'http://www.phenome-fppn.fr/m3p/Prov_leaf_temperature_thermocouple_sensor_degree_celsius_thc_emb_04',\n", + " 'name': 'Prov_leaf temperature_thermocouple sensor_degree celsius_thc_emb_04',\n", + " 'description': 'acquisition of leaf temperature_thermocouple sensor_degree celsius and thc_emb_04',\n", + " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", + " 'uri': None,\n", + " 'start_date': None,\n", + " 'end_date': None,\n", + " 'settings': None}],\n", + " 'prov_agent': [{'uri': 'm3p:id/deviceAttribut/eo/2017/sa1700004',\n", + " 'rdf_type': 'vocabulary:Thermocouple',\n", + " 'settings': {'site': 'p'}}],\n", + " 'publisher': None,\n", + " 'issued': None,\n", + " 'modified': None},\n", + " {'uri': 'http://www.phenome-fppn.fr/m3p/Prov_leaf_temperature_thermocouple_sensor_degree_celsius_thc_emb_05',\n", + " 'name': 'Prov_leaf temperature_thermocouple sensor_degree celsius_thc_emb_05',\n", + " 'description': 'acquisition of leaf temperature_thermocouple sensor_degree celsius and thc_emb_05',\n", + " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", + " 'uri': None,\n", + " 'start_date': None,\n", + " 'end_date': None,\n", + " 'settings': None}],\n", + " 'prov_agent': [{'uri': 'm3p:id/deviceAttribut/eo/2017/sa1700005',\n", + " 'rdf_type': 'vocabulary:Thermocouple',\n", + " 'settings': {'site': 'p'}}],\n", + " 'publisher': None,\n", + " 'issued': None,\n", + " 'modified': None},\n", + " {'uri': 'http://www.phenome-fppn.fr/m3p/Prov_leaf_temperature_thermocouple_sensor_degree_celsius_thc_emb_06',\n", + " 'name': 'Prov_leaf temperature_thermocouple sensor_degree celsius_thc_emb_06',\n", + " 'description': 'acquisition of leaf temperature_thermocouple sensor_degree celsius and thc_emb_06',\n", + " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", + " 'uri': None,\n", + " 'start_date': None,\n", + " 'end_date': None,\n", + " 'settings': None}],\n", + " 'prov_agent': [{'uri': 'm3p:id/deviceAttribut/eo/2017/sa1700006',\n", + " 'rdf_type': 'vocabulary:Thermocouple',\n", + " 'settings': {'site': 'p'}}],\n", + " 'publisher': None,\n", + " 'issued': None,\n", + " 'modified': None},\n", + " {'uri': 'http://www.phenome-fppn.fr/m3p/Prov_leaf_temperature_thermocouple_sensor_degree_celsius_thc_emb_07',\n", + " 'name': 'Prov_leaf temperature_thermocouple sensor_degree celsius_thc_emb_07',\n", + " 'description': 'acquisition of leaf temperature_thermocouple sensor_degree celsius and thc_emb_07',\n", + " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", + " 'uri': None,\n", + " 'start_date': None,\n", + " 'end_date': None,\n", + " 'settings': None}],\n", + " 'prov_agent': [{'uri': 'm3p:id/deviceAttribut/eo/2017/sa1700007',\n", + " 'rdf_type': 'vocabulary:Thermocouple',\n", + " 'settings': {'site': 'p'}}],\n", + " 'publisher': None,\n", + " 'issued': None,\n", + " 'modified': None},\n", + " {'uri': 'http://www.phenome-fppn.fr/m3p/Prov_leaf_temperature_thermocouple_sensor_degree_celsius_thc_emb_08',\n", + " 'name': 'Prov_leaf temperature_thermocouple sensor_degree celsius_thc_emb_08',\n", + " 'description': 'acquisition of leaf temperature_thermocouple sensor_degree celsius and thc_emb_08',\n", + " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", + " 'uri': None,\n", + " 'start_date': None,\n", + " 'end_date': None,\n", + " 'settings': None}],\n", + " 'prov_agent': [{'uri': 'm3p:id/deviceAttribut/eo/2017/sa1700008',\n", + " 'rdf_type': 'vocabulary:Thermocouple',\n", + " 'settings': {'site': 'p'}}],\n", + " 'publisher': None,\n", + " 'issued': None,\n", + " 'modified': None},\n", + " {'uri': 'http://www.phenome-fppn.fr/m3p/Prov_leaf_temperature_thermocouple_sensor_degree_celsius_thc_emb_09',\n", + " 'name': 'Prov_leaf temperature_thermocouple sensor_degree celsius_thc_emb_09',\n", + " 'description': 'acquisition of leaf temperature_thermocouple sensor_degree celsius and thc_emb_09',\n", + " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", + " 'uri': None,\n", + " 'start_date': None,\n", + " 'end_date': None,\n", + " 'settings': None}],\n", + " 'prov_agent': [{'uri': 'm3p:id/deviceAttribut/eo/2017/sa1700009',\n", + " 'rdf_type': 'vocabulary:Thermocouple',\n", + " 'settings': {'site': 'p'}}],\n", + " 'publisher': None,\n", + " 'issued': None,\n", + " 'modified': None},\n", + " {'uri': 'http://www.phenome-fppn.fr/m3p/Prov_leaf_temperature_thermocouple_sensor_degree_celsius_thc_emb_10',\n", + " 'name': 'Prov_leaf temperature_thermocouple sensor_degree celsius_thc_emb_10',\n", + " 'description': 'acquisition of leaf temperature_thermocouple sensor_degree celsius and thc_emb_10',\n", + " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", + " 'uri': None,\n", + " 'start_date': None,\n", + " 'end_date': None,\n", + " 'settings': None}],\n", + " 'prov_agent': [{'uri': 'm3p:id/deviceAttribut/eo/2017/sa1700010',\n", + " 'rdf_type': 'vocabulary:Thermocouple',\n", + " 'settings': {'site': 'p'}}],\n", + " 'publisher': None,\n", + " 'issued': None,\n", + " 'modified': None},\n", + " {'uri': 'http://www.phenome-fppn.fr/m3p/Prov_leaf_temperature_thermocouple_sensor_degree_celsius_thc_emb_11',\n", + " 'name': 'Prov_leaf temperature_thermocouple sensor_degree celsius_thc_emb_11',\n", + " 'description': 'acquisition of leaf temperature_thermocouple sensor_degree celsius and thc_emb_11',\n", + " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", + " 'uri': None,\n", + " 'start_date': None,\n", + " 'end_date': None,\n", + " 'settings': None}],\n", + " 'prov_agent': [{'uri': 'm3p:id/deviceAttribut/eo/2017/sa1700011',\n", + " 'rdf_type': 'vocabulary:Thermocouple',\n", + " 'settings': {'site': 'p'}}],\n", + " 'publisher': None,\n", + " 'issued': None,\n", + " 'modified': None},\n", + " {'uri': 'http://www.phenome-fppn.fr/m3p/Prov_leaf_temperature_thermocouple_sensor_degree_celsius_thc_emb_12',\n", + " 'name': 'Prov_leaf temperature_thermocouple sensor_degree celsius_thc_emb_12',\n", + " 'description': 'acquisition of leaf temperature_thermocouple sensor_degree celsius and thc_emb_12',\n", + " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", + " 'uri': None,\n", + " 'start_date': None,\n", + " 'end_date': None,\n", + " 'settings': None}],\n", + " 'prov_agent': [{'uri': 'm3p:id/deviceAttribut/eo/2017/sa1700012',\n", + " 'rdf_type': 'vocabulary:Thermocouple',\n", + " 'settings': {'site': 'p'}}],\n", + " 'publisher': None,\n", + " 'issued': None,\n", + " 'modified': None},\n", + " {'uri': 'http://www.phenome-fppn.fr/m3p/Prov_leaf_temperature_thermocouple_sensor_degree_celsius_thc_emb_13',\n", + " 'name': 'Prov_leaf temperature_thermocouple sensor_degree celsius_thc_emb_13',\n", + " 'description': 'acquisition of leaf temperature_thermocouple sensor_degree celsius and thc_emb_13',\n", + " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", + " 'uri': None,\n", + " 'start_date': None,\n", + " 'end_date': None,\n", + " 'settings': None}],\n", + " 'prov_agent': [{'uri': 'm3p:id/deviceAttribut/eo/2017/sa1700013',\n", + " 'rdf_type': 'vocabulary:Thermocouple',\n", + " 'settings': {'site': 'p'}}],\n", + " 'publisher': None,\n", + " 'issued': None,\n", + " 'modified': None},\n", + " {'uri': 'http://www.phenome-fppn.fr/m3p/Prov_leaf_temperature_thermocouple_sensor_degree_celsius_thc_emb_14',\n", + " 'name': 'Prov_leaf temperature_thermocouple sensor_degree celsius_thc_emb_14',\n", + " 'description': 'acquisition of leaf temperature_thermocouple sensor_degree celsius and thc_emb_14',\n", + " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", + " 'uri': None,\n", + " 'start_date': None,\n", + " 'end_date': None,\n", + " 'settings': None}],\n", + " 'prov_agent': [{'uri': 'm3p:id/deviceAttribut/eo/2017/sa1700014',\n", + " 'rdf_type': 'vocabulary:Thermocouple',\n", + " 'settings': {'site': 'p'}}],\n", + " 'publisher': None,\n", + " 'issued': None,\n", + " 'modified': None},\n", + " {'uri': 'http://www.phenome-fppn.fr/m3p/Prov_leaf_temperature_thermocouple_sensor_degree_celsius_thc_emb_15',\n", + " 'name': 'Prov_leaf temperature_thermocouple sensor_degree celsius_thc_emb_15',\n", + " 'description': 'acquisition of leaf temperature_thermocouple sensor_degree celsius and thc_emb_15',\n", + " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", + " 'uri': None,\n", + " 'start_date': None,\n", + " 'end_date': None,\n", + " 'settings': None}],\n", + " 'prov_agent': [{'uri': 'm3p:id/deviceAttribut/eo/2017/sa1700015',\n", + " 'rdf_type': 'vocabulary:Thermocouple',\n", + " 'settings': {'site': 'p'}}],\n", + " 'publisher': None,\n", + " 'issued': None,\n", + " 'modified': None},\n", + " {'uri': 'http://www.phenome-fppn.fr/m3p/Prov_leaf_temperature_thermocouple_sensor_degree_celsius_thc_emb_16',\n", + " 'name': 'Prov_leaf temperature_thermocouple sensor_degree celsius_thc_emb_16',\n", + " 'description': 'acquisition of leaf temperature_thermocouple sensor_degree celsius and thc_emb_16',\n", + " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", + " 'uri': None,\n", + " 'start_date': None,\n", + " 'end_date': None,\n", + " 'settings': None}],\n", + " 'prov_agent': [{'uri': 'm3p:id/deviceAttribut/eo/2017/sa1700016',\n", + " 'rdf_type': 'vocabulary:Thermocouple',\n", + " 'settings': {'site': 'p'}}],\n", + " 'publisher': None,\n", + " 'issued': None,\n", + " 'modified': None},\n", + " {'uri': 'http://www.phenome-fppn.fr/m3p/Prov_leaf_temperature_thermocouple_sensor_degree_celsius_thc_emb_17',\n", + " 'name': 'Prov_leaf temperature_thermocouple sensor_degree celsius_thc_emb_17',\n", + " 'description': 'acquisition of leaf temperature_thermocouple sensor_degree celsius and thc_emb_17',\n", + " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", + " 'uri': None,\n", + " 'start_date': None,\n", + " 'end_date': None,\n", + " 'settings': None}],\n", + " 'prov_agent': [{'uri': 'm3p:id/deviceAttribut/eo/2017/sa1700017',\n", + " 'rdf_type': 'vocabulary:Thermocouple',\n", + " 'settings': {'site': 'p'}}],\n", + " 'publisher': None,\n", + " 'issued': None,\n", + " 'modified': None},\n", + " {'uri': 'http://www.phenome-fppn.fr/m3p/Prov_leaf_temperature_thermocouple_sensor_degree_celsius_thc_emb_18',\n", + " 'name': 'Prov_leaf temperature_thermocouple sensor_degree celsius_thc_emb_18',\n", + " 'description': 'acquisition of leaf temperature_thermocouple sensor_degree celsius and thc_emb_18',\n", + " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", + " 'uri': None,\n", + " 'start_date': None,\n", + " 'end_date': None,\n", + " 'settings': None}],\n", + " 'prov_agent': [{'uri': 'm3p:id/deviceAttribut/eo/2017/sa1700018',\n", + " 'rdf_type': 'vocabulary:Thermocouple',\n", + " 'settings': {'site': 'p'}}],\n", + " 'publisher': None,\n", + " 'issued': None,\n", + " 'modified': None},\n", + " {'uri': 'http://www.phenome-fppn.fr/m3p/Prov_leaf_temperature_thermocouple_sensor_degree_celsius_thc_emb_19',\n", + " 'name': 'Prov_leaf temperature_thermocouple sensor_degree celsius_thc_emb_19',\n", + " 'description': 'acquisition of leaf temperature_thermocouple sensor_degree celsius and thc_emb_19',\n", + " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", + " 'uri': None,\n", + " 'start_date': None,\n", + " 'end_date': None,\n", + " 'settings': None}],\n", + " 'prov_agent': [{'uri': 'm3p:id/deviceAttribut/eo/2017/sa1700019',\n", + " 'rdf_type': 'vocabulary:Thermocouple',\n", + " 'settings': {'site': 'p'}}],\n", + " 'publisher': None,\n", + " 'issued': None,\n", + " 'modified': None},\n", + " {'uri': 'http://www.phenome-fppn.fr/m3p/Prov_leaf_temperature_thermocouple_sensor_degree_celsius_thc_emb_20',\n", + " 'name': 'Prov_leaf temperature_thermocouple sensor_degree celsius_thc_emb_20',\n", + " 'description': 'acquisition of leaf temperature_thermocouple sensor_degree celsius and thc_emb_20',\n", + " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", + " 'uri': None,\n", + " 'start_date': None,\n", + " 'end_date': None,\n", + " 'settings': None}],\n", + " 'prov_agent': [{'uri': 'm3p:id/deviceAttribut/eo/2017/sa1700020',\n", + " 'rdf_type': 'vocabulary:Thermocouple',\n", + " 'settings': {'site': 'p'}}],\n", + " 'publisher': None,\n", + " 'issued': None,\n", + " 'modified': None},\n", + " {'uri': 'http://www.phenome-fppn.fr/m3p/Prov_leaf_temperature_thermocouple_sensor_degree_celsius_thc_emb_21',\n", + " 'name': 'Prov_leaf temperature_thermocouple sensor_degree celsius_thc_emb_21',\n", + " 'description': 'acquisition of leaf temperature_thermocouple sensor_degree celsius and thc_emb_21',\n", + " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", + " 'uri': None,\n", + " 'start_date': None,\n", + " 'end_date': None,\n", + " 'settings': None}],\n", + " 'prov_agent': [{'uri': 'm3p:id/deviceAttribut/eo/2017/sa1700021',\n", + " 'rdf_type': 'vocabulary:Thermocouple',\n", + " 'settings': {'site': 'p'}}],\n", + " 'publisher': None,\n", + " 'issued': None,\n", + " 'modified': None},\n", + " {'uri': 'http://www.phenome-fppn.fr/m3p/Prov_leaf_temperature_thermocouple_sensor_degree_celsius_thc_emb_22',\n", + " 'name': 'Prov_leaf temperature_thermocouple sensor_degree celsius_thc_emb_22',\n", + " 'description': 'acquisition of leaf temperature_thermocouple sensor_degree celsius and thc_emb_22',\n", + " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", + " 'uri': None,\n", + " 'start_date': None,\n", + " 'end_date': None,\n", + " 'settings': None}],\n", + " 'prov_agent': [{'uri': 'm3p:id/deviceAttribut/eo/2017/sa1700022',\n", + " 'rdf_type': 'vocabulary:Thermocouple',\n", + " 'settings': {'site': 'p'}}],\n", + " 'publisher': None,\n", + " 'issued': None,\n", + " 'modified': None},\n", + " {'uri': 'http://www.phenome-fppn.fr/m3p/Prov_leaf_temperature_thermocouple_sensor_degree_celsius_thc_emb_23',\n", + " 'name': 'Prov_leaf temperature_thermocouple sensor_degree celsius_thc_emb_23',\n", + " 'description': 'acquisition of leaf temperature_thermocouple sensor_degree celsius and thc_emb_23',\n", + " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", + " 'uri': None,\n", + " 'start_date': None,\n", + " 'end_date': None,\n", + " 'settings': None}],\n", + " 'prov_agent': [{'uri': 'm3p:id/deviceAttribut/eo/2017/sa1700023',\n", + " 'rdf_type': 'vocabulary:Thermocouple',\n", + " 'settings': {'site': 'p'}}],\n", + " 'publisher': None,\n", + " 'issued': None,\n", + " 'modified': None},\n", + " {'uri': 'http://www.phenome-fppn.fr/m3p/Prov_leaf_temperature_thermocouple_sensor_degree_celsius_thc_emb_24',\n", + " 'name': 'Prov_leaf temperature_thermocouple sensor_degree celsius_thc_emb_24',\n", + " 'description': 'acquisition of leaf temperature_thermocouple sensor_degree celsius and thc_emb_24',\n", + " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", + " 'uri': None,\n", + " 'start_date': None,\n", + " 'end_date': None,\n", + " 'settings': None}],\n", + " 'prov_agent': [{'uri': 'm3p:id/deviceAttribut/eo/2017/sa1700024',\n", + " 'rdf_type': 'vocabulary:Thermocouple',\n", + " 'settings': {'site': 'p'}}],\n", + " 'publisher': None,\n", + " 'issued': None,\n", + " 'modified': None},\n", + " {'uri': 'http://www.phenome-fppn.fr/m3p/Prov_leaf_temperature_thermocouple_sensor_degree_celsius_thc_emb_25',\n", + " 'name': 'Prov_leaf temperature_thermocouple sensor_degree celsius_thc_emb_25',\n", + " 'description': 'acquisition of leaf temperature_thermocouple sensor_degree celsius and thc_emb_25',\n", + " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", + " 'uri': None,\n", + " 'start_date': None,\n", + " 'end_date': None,\n", + " 'settings': None}],\n", + " 'prov_agent': [{'uri': 'm3p:id/deviceAttribut/eo/2017/sa1700025',\n", + " 'rdf_type': 'vocabulary:Thermocouple',\n", + " 'settings': {'site': 'p'}}],\n", + " 'publisher': None,\n", + " 'issued': None,\n", + " 'modified': None},\n", + " {'uri': 'http://www.phenome-fppn.fr/m3p/Prov_leaf_temperature_thermocouple_sensor_degree_celsius_thc_emb_26',\n", + " 'name': 'Prov_leaf temperature_thermocouple sensor_degree celsius_thc_emb_26',\n", + " 'description': 'acquisition of leaf temperature_thermocouple sensor_degree celsius and thc_emb_26',\n", + " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", + " 'uri': None,\n", + " 'start_date': None,\n", + " 'end_date': None,\n", + " 'settings': None}],\n", + " 'prov_agent': [{'uri': 'm3p:id/deviceAttribut/eo/2017/sa1700026',\n", + " 'rdf_type': 'vocabulary:Thermocouple',\n", + " 'settings': {'site': 'p'}}],\n", + " 'publisher': None,\n", + " 'issued': None,\n", + " 'modified': None},\n", + " {'uri': 'http://www.phenome-fppn.fr/m3p/Prov_leaf_temperature_thermocouple_sensor_degree_celsius_thc_emb_28',\n", + " 'name': 'Prov_leaf temperature_thermocouple sensor_degree celsius_thc_emb_28',\n", + " 'description': 'acquisition of leaf temperature_thermocouple sensor_degree celsius and thc_emb_28',\n", + " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", + " 'uri': None,\n", + " 'start_date': None,\n", + " 'end_date': None,\n", + " 'settings': None}],\n", + " 'prov_agent': [{'uri': 'm3p:id/deviceAttribut/eo/2017/sa1700028',\n", + " 'rdf_type': 'vocabulary:Thermocouple',\n", + " 'settings': {'site': 'p'}}],\n", + " 'publisher': None,\n", + " 'issued': None,\n", + " 'modified': None},\n", + " {'uri': 'http://www.phenome-fppn.fr/m3p/Prov_leaf_temperature_thermocouple_sensor_degree_celsius_thc_emb_29',\n", + " 'name': 'Prov_leaf temperature_thermocouple sensor_degree celsius_thc_emb_29',\n", + " 'description': 'acquisition of leaf temperature_thermocouple sensor_degree celsius and thc_emb_29',\n", + " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", + " 'uri': None,\n", + " 'start_date': None,\n", + " 'end_date': None,\n", + " 'settings': None}],\n", + " 'prov_agent': [{'uri': 'm3p:id/deviceAttribut/eo/2017/sa1700029',\n", + " 'rdf_type': 'vocabulary:Thermocouple',\n", + " 'settings': {'site': 'p'}}],\n", + " 'publisher': None,\n", + " 'issued': None,\n", + " 'modified': None},\n", + " {'uri': 'http://www.phenome-fppn.fr/m3p/Prov_leaf_temperature_thermocouple_sensor_degree_celsius_thc_emb_30',\n", + " 'name': 'Prov_leaf temperature_thermocouple sensor_degree celsius_thc_emb_30',\n", + " 'description': 'acquisition of leaf temperature_thermocouple sensor_degree celsius and thc_emb_30',\n", + " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", + " 'uri': None,\n", + " 'start_date': None,\n", + " 'end_date': None,\n", + " 'settings': None}],\n", + " 'prov_agent': [{'uri': 'm3p:id/deviceAttribut/eo/2017/sa1700030',\n", + " 'rdf_type': 'vocabulary:Thermocouple',\n", + " 'settings': {'site': 'p'}}],\n", + " 'publisher': None,\n", + " 'issued': None,\n", + " 'modified': None},\n", + " {'uri': 'http://www.phenome-fppn.fr/m3p/Prov_leaf_temperature_thermocouple_sensor_degree_celsius_thc_emb_31',\n", + " 'name': 'Prov_leaf temperature_thermocouple sensor_degree celsius_thc_emb_31',\n", + " 'description': 'acquisition of leaf temperature_thermocouple sensor_degree celsius and thc_emb_31',\n", + " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", + " 'uri': None,\n", + " 'start_date': None,\n", + " 'end_date': None,\n", + " 'settings': None}],\n", + " 'prov_agent': [{'uri': 'm3p:id/deviceAttribut/eo/2017/sa1700031',\n", + " 'rdf_type': 'vocabulary:Thermocouple',\n", + " 'settings': {'site': 'p'}}],\n", + " 'publisher': None,\n", + " 'issued': None,\n", + " 'modified': None},\n", + " {'uri': 'http://www.phenome-fppn.fr/m3p/Prov_leaf_temperature_thermocouple_sensor_degree_celsius_thc_emb_32',\n", + " 'name': 'Prov_leaf temperature_thermocouple sensor_degree celsius_thc_emb_32',\n", + " 'description': 'acquisition of leaf temperature_thermocouple sensor_degree celsius and thc_emb_32',\n", + " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", + " 'uri': None,\n", + " 'start_date': None,\n", + " 'end_date': None,\n", + " 'settings': None}],\n", + " 'prov_agent': [{'uri': 'm3p:id/deviceAttribut/eo/2017/sa1700032',\n", + " 'rdf_type': 'vocabulary:Thermocouple',\n", + " 'settings': {'site': 'p'}}],\n", + " 'publisher': None,\n", + " 'issued': None,\n", + " 'modified': None},\n", + " {'uri': 'http://www.phenome-fppn.fr/m3p/Prov_leaf_temperature_thermocouple_sensor_degree_celsius_thc_emb_33',\n", + " 'name': 'Prov_leaf temperature_thermocouple sensor_degree celsius_thc_emb_33',\n", + " 'description': 'acquisition of leaf temperature_thermocouple sensor_degree celsius and thc_emb_33',\n", + " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", + " 'uri': None,\n", + " 'start_date': None,\n", + " 'end_date': None,\n", + " 'settings': None}],\n", + " 'prov_agent': [{'uri': 'm3p:id/deviceAttribut/eo/2017/sa1700033',\n", + " 'rdf_type': 'vocabulary:Thermocouple',\n", + " 'settings': {'site': 'p'}}],\n", + " 'publisher': None,\n", + " 'issued': None,\n", + " 'modified': None},\n", + " {'uri': 'http://www.phenome-fppn.fr/m3p/Prov_leaf_temperature_thermocouple_sensor_degree_celsius_thc_emb_34',\n", + " 'name': 'Prov_leaf temperature_thermocouple sensor_degree celsius_thc_emb_34',\n", + " 'description': 'acquisition of leaf temperature_thermocouple sensor_degree celsius and thc_emb_34',\n", + " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", + " 'uri': None,\n", + " 'start_date': None,\n", + " 'end_date': None,\n", + " 'settings': None}],\n", + " 'prov_agent': [{'uri': 'm3p:id/deviceAttribut/eo/2017/sa1700034',\n", + " 'rdf_type': 'vocabulary:Thermocouple',\n", + " 'settings': {'site': 'p'}}],\n", + " 'publisher': None,\n", + " 'issued': None,\n", + " 'modified': None},\n", + " {'uri': 'http://www.phenome-fppn.fr/m3p/Prov_leaf_temperature_thermocouple_sensor_degree_celsius_thc_emb_35',\n", + " 'name': 'Prov_leaf temperature_thermocouple sensor_degree celsius_thc_emb_35',\n", + " 'description': 'acquisition of leaf temperature_thermocouple sensor_degree celsius and thc_emb_35',\n", + " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", + " 'uri': None,\n", + " 'start_date': None,\n", + " 'end_date': None,\n", + " 'settings': None}],\n", + " 'prov_agent': [{'uri': 'm3p:id/deviceAttribut/eo/2017/sa1700035',\n", + " 'rdf_type': 'vocabulary:Thermocouple',\n", + " 'settings': {'site': 'p'}}],\n", + " 'publisher': None,\n", + " 'issued': None,\n", + " 'modified': None},\n", + " {'uri': 'http://www.phenome-fppn.fr/m3p/Prov_leaf_temperature_thermocouple_sensor_degree_celsius_thc_emb_36',\n", + " 'name': 'Prov_leaf temperature_thermocouple sensor_degree celsius_thc_emb_36',\n", + " 'description': 'acquisition of leaf temperature_thermocouple sensor_degree celsius and thc_emb_36',\n", + " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", + " 'uri': None,\n", + " 'start_date': None,\n", + " 'end_date': None,\n", + " 'settings': None}],\n", + " 'prov_agent': [{'uri': 'm3p:id/deviceAttribut/eo/2017/sa1700036',\n", + " 'rdf_type': 'vocabulary:Thermocouple',\n", + " 'settings': {'site': 'p'}}],\n", + " 'publisher': None,\n", + " 'issued': None,\n", + " 'modified': None},\n", + " {'uri': 'http://www.phenome-fppn.fr/m3p/Prov_leaf_temperature_thermocouple_sensor_degree_celsius_thc_emb_37',\n", + " 'name': 'Prov_leaf temperature_thermocouple sensor_degree celsius_thc_emb_37',\n", + " 'description': 'acquisition of leaf temperature_thermocouple sensor_degree celsius and thc_emb_37',\n", + " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", + " 'uri': None,\n", + " 'start_date': None,\n", + " 'end_date': None,\n", + " 'settings': None}],\n", + " 'prov_agent': [{'uri': 'm3p:id/deviceAttribut/eo/2017/sa1700037',\n", + " 'rdf_type': 'vocabulary:Thermocouple',\n", + " 'settings': {'site': 'p'}}],\n", + " 'publisher': None,\n", + " 'issued': None,\n", + " 'modified': None},\n", + " {'uri': 'http://www.phenome-fppn.fr/m3p/Prov_leaf_temperature_thermocouple_sensor_degree_celsius_thc_emb_38',\n", + " 'name': 'Prov_leaf temperature_thermocouple sensor_degree celsius_thc_emb_38',\n", + " 'description': 'acquisition of leaf temperature_thermocouple sensor_degree celsius and thc_emb_38',\n", + " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", + " 'uri': None,\n", + " 'start_date': None,\n", + " 'end_date': None,\n", + " 'settings': None}],\n", + " 'prov_agent': [{'uri': 'm3p:id/deviceAttribut/eo/2017/sa1700038',\n", + " 'rdf_type': 'vocabulary:Thermocouple',\n", + " 'settings': {'site': 'p'}}],\n", + " 'publisher': None,\n", + " 'issued': None,\n", + " 'modified': None},\n", + " {'uri': 'http://www.phenome-fppn.fr/m3p/Prov_leaf_temperature_thermocouple_sensor_degree_celsius_thc_emb_39',\n", + " 'name': 'Prov_leaf temperature_thermocouple sensor_degree celsius_thc_emb_39',\n", + " 'description': 'acquisition of leaf temperature_thermocouple sensor_degree celsius and thc_emb_39',\n", + " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", + " 'uri': None,\n", + " 'start_date': None,\n", + " 'end_date': None,\n", + " 'settings': None}],\n", + " 'prov_agent': [{'uri': 'm3p:id/deviceAttribut/eo/2017/sa1700039',\n", + " 'rdf_type': 'vocabulary:Thermocouple',\n", + " 'settings': {'site': 'p'}}],\n", + " 'publisher': None,\n", + " 'issued': None,\n", + " 'modified': None},\n", + " {'uri': 'http://www.phenome-fppn.fr/m3p/Prov_leaf_temperature_thermocouple_sensor_degree_celsius_thc_emb_40',\n", + " 'name': 'Prov_leaf temperature_thermocouple sensor_degree celsius_thc_emb_40',\n", + " 'description': 'acquisition of leaf temperature_thermocouple sensor_degree celsius and thc_emb_40',\n", + " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", + " 'uri': None,\n", + " 'start_date': None,\n", + " 'end_date': None,\n", + " 'settings': None}],\n", + " 'prov_agent': [{'uri': 'm3p:id/deviceAttribut/eo/2017/sa1700040',\n", + " 'rdf_type': 'vocabulary:Thermocouple',\n", + " 'settings': {'site': 'p'}}],\n", + " 'publisher': None,\n", + " 'issued': None,\n", + " 'modified': None},\n", + " {'uri': 'http://www.phenome-fppn.fr/m3p/Prov_leaf_temperature_thermocouple_sensor_degree_celsius_thc_emb_41',\n", + " 'name': 'Prov_leaf temperature_thermocouple sensor_degree celsius_thc_emb_41',\n", + " 'description': 'acquisition of leaf temperature_thermocouple sensor_degree celsius and thc_emb_41',\n", + " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", + " 'uri': None,\n", + " 'start_date': None,\n", + " 'end_date': None,\n", + " 'settings': None}],\n", + " 'prov_agent': [{'uri': 'm3p:id/deviceAttribut/eo/2017/sa1700041',\n", + " 'rdf_type': 'vocabulary:Thermocouple',\n", + " 'settings': {'site': 'p'}}],\n", + " 'publisher': None,\n", + " 'issued': None,\n", + " 'modified': None},\n", + " {'uri': 'http://www.phenome-fppn.fr/m3p/Prov_leaf_temperature_thermocouple_sensor_degree_celsius_thc_emb_42',\n", + " 'name': 'Prov_leaf temperature_thermocouple sensor_degree celsius_thc_emb_42',\n", + " 'description': 'acquisition of leaf temperature_thermocouple sensor_degree celsius and thc_emb_42',\n", + " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", + " 'uri': None,\n", + " 'start_date': None,\n", + " 'end_date': None,\n", + " 'settings': None}],\n", + " 'prov_agent': [{'uri': 'm3p:id/deviceAttribut/eo/2017/sa1700042',\n", + " 'rdf_type': 'vocabulary:Thermocouple',\n", + " 'settings': {'site': 'p'}}],\n", + " 'publisher': None,\n", + " 'issued': None,\n", + " 'modified': None},\n", + " {'uri': 'http://www.phenome-fppn.fr/m3p/Prov_leaf_temperature_thermocouple_sensor_degree_celsius_thc_emb_43',\n", + " 'name': 'Prov_leaf temperature_thermocouple sensor_degree celsius_thc_emb_43',\n", + " 'description': 'acquisition of leaf temperature_thermocouple sensor_degree celsius and thc_emb_43',\n", + " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", + " 'uri': None,\n", + " 'start_date': None,\n", + " 'end_date': None,\n", + " 'settings': None}],\n", + " 'prov_agent': [{'uri': 'm3p:id/deviceAttribut/eo/2017/sa1700043',\n", + " 'rdf_type': 'vocabulary:Thermocouple',\n", + " 'settings': {'site': 'p'}}],\n", + " 'publisher': None,\n", + " 'issued': None,\n", + " 'modified': None},\n", + " {'uri': 'http://www.phenome-fppn.fr/m3p/Prov_leaf_temperature_thermocouple_sensor_degree_celsius_thc_emb_44',\n", + " 'name': 'Prov_leaf temperature_thermocouple sensor_degree celsius_thc_emb_44',\n", + " 'description': 'acquisition of leaf temperature_thermocouple sensor_degree celsius and thc_emb_44',\n", + " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", + " 'uri': None,\n", + " 'start_date': None,\n", + " 'end_date': None,\n", + " 'settings': None}],\n", + " 'prov_agent': [{'uri': 'm3p:id/deviceAttribut/eo/2017/sa1700044',\n", + " 'rdf_type': 'vocabulary:Thermocouple',\n", + " 'settings': {'site': 'p'}}],\n", + " 'publisher': None,\n", + " 'issued': None,\n", + " 'modified': None},\n", + " {'uri': 'http://www.phenome-fppn.fr/m3p/Prov_leaf_temperature_thermocouple_sensor_degree_celsius_thc_emb_45',\n", + " 'name': 'Prov_leaf temperature_thermocouple sensor_degree celsius_thc_emb_45',\n", + " 'description': 'acquisition of leaf temperature_thermocouple sensor_degree celsius and thc_emb_45',\n", + " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", + " 'uri': None,\n", + " 'start_date': None,\n", + " 'end_date': None,\n", + " 'settings': None}],\n", + " 'prov_agent': [{'uri': 'm3p:id/deviceAttribut/eo/2017/sa1700045',\n", + " 'rdf_type': 'vocabulary:Thermocouple',\n", + " 'settings': {'site': 'p'}}],\n", + " 'publisher': None,\n", + " 'issued': None,\n", + " 'modified': None},\n", + " {'uri': 'http://www.phenome-fppn.fr/m3p/Prov_leaf_temperature_thermocouple_sensor_degree_celsius_thc_emb_46',\n", + " 'name': 'Prov_leaf temperature_thermocouple sensor_degree celsius_thc_emb_46',\n", + " 'description': 'acquisition of leaf temperature_thermocouple sensor_degree celsius and thc_emb_46',\n", + " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", + " 'uri': None,\n", + " 'start_date': None,\n", + " 'end_date': None,\n", + " 'settings': None}],\n", + " 'prov_agent': [{'uri': 'm3p:id/deviceAttribut/eo/2017/sa1700046',\n", + " 'rdf_type': 'vocabulary:Thermocouple',\n", + " 'settings': {'site': 'p'}}],\n", + " 'publisher': None,\n", + " 'issued': None,\n", + " 'modified': None},\n", + " {'uri': 'http://www.phenome-fppn.fr/m3p/Prov_leaf_temperature_thermocouple_sensor_degree_celsius_thc_emb_47',\n", + " 'name': 'Prov_leaf temperature_thermocouple sensor_degree celsius_thc_emb_47',\n", + " 'description': 'acquisition of leaf temperature_thermocouple sensor_degree celsius and thc_emb_47',\n", + " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", + " 'uri': None,\n", + " 'start_date': None,\n", + " 'end_date': None,\n", + " 'settings': None}],\n", + " 'prov_agent': [{'uri': 'm3p:id/deviceAttribut/eo/2017/sa1700047',\n", + " 'rdf_type': 'vocabulary:Thermocouple',\n", + " 'settings': {'site': 'p'}}],\n", + " 'publisher': None,\n", + " 'issued': None,\n", + " 'modified': None},\n", + " {'uri': 'http://www.phenome-fppn.fr/m3p/Prov_leaf_temperature_thermocouple_sensor_degree_celsius_thc_emb_48',\n", + " 'name': 'Prov_leaf temperature_thermocouple sensor_degree celsius_thc_emb_48',\n", + " 'description': 'acquisition of leaf temperature_thermocouple sensor_degree celsius and thc_emb_48',\n", + " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", + " 'uri': None,\n", + " 'start_date': None,\n", + " 'end_date': None,\n", + " 'settings': None}],\n", + " 'prov_agent': [{'uri': 'm3p:id/deviceAttribut/eo/2017/sa1700048',\n", + " 'rdf_type': 'vocabulary:Thermocouple',\n", + " 'settings': {'site': 'p'}}],\n", + " 'publisher': None,\n", + " 'issued': None,\n", + " 'modified': None},\n", + " {'uri': 'http://www.phenome-fppn.fr/m3p/Prov_leaf_temperature_thermocouple_sensor_degree_celsius_thc_emb_50',\n", + " 'name': 'Prov_leaf temperature_thermocouple sensor_degree celsius_thc_emb_50',\n", + " 'description': 'acquisition of leaf temperature_thermocouple sensor_degree celsius and thc_emb_50',\n", + " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", + " 'uri': None,\n", + " 'start_date': None,\n", + " 'end_date': None,\n", + " 'settings': None}],\n", + " 'prov_agent': [{'uri': 'm3p:id/deviceAttribut/eo/2017/sa1700050',\n", + " 'rdf_type': 'vocabulary:Thermocouple',\n", + " 'settings': {'site': 'p'}}],\n", + " 'publisher': None,\n", + " 'issued': None,\n", + " 'modified': None},\n", + " {'uri': 'http://www.phenome-fppn.fr/m3p/Prov_leaf_temperature_thermocouple_sensor_degree_celsius_thc_emb_51',\n", + " 'name': 'Prov_leaf temperature_thermocouple sensor_degree celsius_thc_emb_51',\n", + " 'description': 'acquisition of leaf temperature_thermocouple sensor_degree celsius and thc_emb_51',\n", + " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", + " 'uri': None,\n", + " 'start_date': None,\n", + " 'end_date': None,\n", + " 'settings': None}],\n", + " 'prov_agent': [{'uri': 'm3p:id/deviceAttribut/eo/2017/sa1700051',\n", + " 'rdf_type': 'vocabulary:Thermocouple',\n", + " 'settings': {'site': 'p'}}],\n", + " 'publisher': None,\n", + " 'issued': None,\n", + " 'modified': None},\n", + " {'uri': 'http://www.phenome-fppn.fr/m3p/Prov_leaf_temperature_thermocouple_sensor_degree_celsius_thc_emb_52',\n", + " 'name': 'Prov_leaf temperature_thermocouple sensor_degree celsius_thc_emb_52',\n", + " 'description': 'acquisition of leaf temperature_thermocouple sensor_degree celsius and thc_emb_52',\n", + " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", + " 'uri': None,\n", + " 'start_date': None,\n", + " 'end_date': None,\n", + " 'settings': None}],\n", + " 'prov_agent': [{'uri': 'm3p:id/deviceAttribut/eo/2017/sa1700052',\n", + " 'rdf_type': 'vocabulary:Thermocouple',\n", + " 'settings': {'site': 'p'}}],\n", + " 'publisher': None,\n", + " 'issued': None,\n", + " 'modified': None},\n", + " {'uri': 'http://www.phenome-fppn.fr/m3p/Prov_leaf_temperature_thermocouple_sensor_degree_celsius_thc_emb_53',\n", + " 'name': 'Prov_leaf temperature_thermocouple sensor_degree celsius_thc_emb_53',\n", + " 'description': 'acquisition of leaf temperature_thermocouple sensor_degree celsius and thc_emb_53',\n", + " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", + " 'uri': None,\n", + " 'start_date': None,\n", + " 'end_date': None,\n", + " 'settings': None}],\n", + " 'prov_agent': [{'uri': 'm3p:id/deviceAttribut/eo/2017/sa1700053',\n", + " 'rdf_type': 'vocabulary:Thermocouple',\n", + " 'settings': {'site': 'p'}}],\n", + " 'publisher': None,\n", + " 'issued': None,\n", + " 'modified': None},\n", + " {'uri': 'http://www.phenome-fppn.fr/m3p/Prov_leaf_temperature_thermocouple_sensor_degree_celsius_thc_emb_54',\n", + " 'name': 'Prov_leaf temperature_thermocouple sensor_degree celsius_thc_emb_54',\n", + " 'description': 'acquisition of leaf temperature_thermocouple sensor_degree celsius and thc_emb_54',\n", + " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", + " 'uri': None,\n", + " 'start_date': None,\n", + " 'end_date': None,\n", + " 'settings': None}],\n", + " 'prov_agent': [{'uri': 'm3p:id/deviceAttribut/eo/2017/sa1700054',\n", + " 'rdf_type': 'vocabulary:Thermocouple',\n", + " 'settings': {'site': 'p'}}],\n", + " 'publisher': None,\n", + " 'issued': None,\n", + " 'modified': None},\n", + " {'uri': 'http://www.phenome-fppn.fr/m3p/Prov_leaf_temperature_thermocouple_sensor_degree_celsius_thc_emb_55',\n", + " 'name': 'Prov_leaf temperature_thermocouple sensor_degree celsius_thc_emb_55',\n", + " 'description': 'acquisition of leaf temperature_thermocouple sensor_degree celsius and thc_emb_55',\n", + " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", + " 'uri': None,\n", + " 'start_date': None,\n", + " 'end_date': None,\n", + " 'settings': None}],\n", + " 'prov_agent': [{'uri': 'm3p:id/deviceAttribut/eo/2017/sa1700055',\n", + " 'rdf_type': 'vocabulary:Thermocouple',\n", + " 'settings': {'site': 'p'}}],\n", + " 'publisher': None,\n", + " 'issued': None,\n", + " 'modified': None}]}" + ] + }, + "execution_count": 38, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "phis.get_provenance(token=token)" + ] + }, + { + "cell_type": "markdown", + "id": "cc1bb3ab-c43b-4712-8296-6cfa9a702450", + "metadata": {}, + "source": [ + "#### Get specific provenance with URI" + ] + }, + { + "cell_type": "code", + "execution_count": 39, + "id": "17dd3c58-4736-4078-8430-1ee607cb6b96", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'metadata': {'pagination': {'pageSize': 0,\n", + " 'currentPage': 0,\n", + " 'totalCount': 0,\n", + " 'totalPages': 0,\n", + " 'limitCount': 0,\n", + " 'hasNextPage': False},\n", + " 'status': [],\n", + " 'datafiles': []},\n", + " 'result': {'uri': 'http://www.phenome-fppn.fr/m3p/Prov_watering_WateringStation05_6l',\n", + " 'name': 'Prov_watering_WateringStation05_6l',\n", + " 'description': 'acquisition of WateringStation05 and 6l [2023-05-17__13-37-01]',\n", + " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", + " 'uri': None,\n", + " 'start_date': '2023-03-01T00:00:00Z',\n", + " 'end_date': None,\n", + " 'settings': None}],\n", + " 'prov_agent': [{'uri': 'http://www.phenome-fppn.fr/m3p/2019/s19005',\n", + " 'rdf_type': 'vocabulary:WeighingScale',\n", + " 'settings': None},\n", + " {'uri': 'http://www.phenome-fppn.fr/m3p/2019/v1911',\n", + " 'rdf_type': 'vocabulary:Station',\n", + " 'settings': None},\n", + " {'uri': 'http://www.phenome-fppn.fr/m3p/2020/a20005',\n", + " 'rdf_type': 'vocabulary:WateringPump',\n", + " 'settings': None}],\n", + " 'publisher': None,\n", + " 'issued': None,\n", + " 'modified': None}}" + ] + }, + "execution_count": 39, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "phis.get_provenance(uri='http://www.phenome-fppn.fr/m3p/Prov_watering_WateringStation05_6l', token=token)" + ] + }, + { + "cell_type": "markdown", + "id": "9ab70428-5ed3-4427-bf39-8e46d7d74187", + "metadata": {}, + "source": [ + "#### List available datafiles" + ] + }, + { + "cell_type": "code", + "execution_count": 40, + "id": "13fd53b9-2138-4b36-b48f-21a5f91f54dc", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'metadata': {'pagination': {'pageSize': 100,\n", + " 'currentPage': 0,\n", + " 'totalCount': 1,\n", + " 'totalPages': 1,\n", + " 'limitCount': 0,\n", + " 'hasNextPage': True},\n", + " 'status': [],\n", + " 'datafiles': []},\n", + " 'result': [{'uri': 'm3p:id/file/1597964400.af46ac07f735ced228cf181aa85ebced',\n", + " 'rdf_type': 'vocabulary:Image',\n", + " 'date': '2020-08-21T00:00:00.000+0100',\n", + " 'timezone': None,\n", + " 'target': 'm3p:id/scientific-object/za20/so-0001zm4531eppn7_lwd1eppn_rep_101_01arch2020-02-03',\n", + " 'provenance': {'uri': 'm3p:provenance/standard_provenance',\n", + " 'prov_used': None,\n", + " 'prov_was_associated_with': None,\n", + " 'settings': None,\n", + " 'experiments': None},\n", + " 'metadata': None,\n", + " 'archive': None,\n", + " 'filename': '7018.tar',\n", + " 'publisher': None,\n", + " 'issued': None}]}" + ] + }, + "execution_count": 40, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "phis.get_datafile(token=token)" + ] + }, + { + "cell_type": "markdown", + "id": "f7b8ce86-be16-4cac-862d-79bba08ecff8", + "metadata": {}, + "source": [ + "#### Get specific datafile with URI" + ] + }, + { + "cell_type": "code", + "execution_count": 41, + "id": "149d8501-413d-4d15-bcd1-ea2c9eb182b8", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'metadata': {'pagination': {'pageSize': 0,\n", + " 'currentPage': 0,\n", + " 'totalCount': 0,\n", + " 'totalPages': 0,\n", + " 'limitCount': 0,\n", + " 'hasNextPage': False},\n", + " 'status': [],\n", + " 'datafiles': []},\n", + " 'result': {'uri': 'm3p:id/file/1597964400.af46ac07f735ced228cf181aa85ebced',\n", + " 'rdf_type': 'vocabulary:Image',\n", + " 'date': '2020-08-21T00:00:00.000+0100',\n", + " 'timezone': None,\n", + " 'target': 'm3p:id/scientific-object/za20/so-0001zm4531eppn7_lwd1eppn_rep_101_01arch2020-02-03',\n", + " 'provenance': {'uri': 'm3p:provenance/standard_provenance',\n", + " 'prov_used': None,\n", + " 'prov_was_associated_with': None,\n", + " 'settings': None,\n", + " 'experiments': None},\n", + " 'metadata': None,\n", + " 'archive': None,\n", + " 'filename': '7018.tar',\n", + " 'publisher': None,\n", + " 'issued': None}}" + ] + }, + "execution_count": 41, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "phis.get_datafile(uri='m3p:id/file/1597964400.af46ac07f735ced228cf181aa85ebced', token=token)" + ] + }, { "cell_type": "markdown", "id": "a4e43648-30b1-413a-950f-84060ecc94ac", @@ -3016,7 +7430,7 @@ }, { "cell_type": "code", - "execution_count": 37, + "execution_count": 42, "id": "7ee85624-495d-4a36-860b-1fe407ab5491", "metadata": {}, "outputs": [ @@ -3048,7 +7462,7 @@ " {'uri': 'http://aims.fao.org/aos/agrovoc/c_3339', 'name': 'upland cotton'}]}" ] }, - "execution_count": 37, + "execution_count": 42, "metadata": {}, "output_type": "execute_result" } @@ -3067,7 +7481,7 @@ }, { "cell_type": "code", - "execution_count": 38, + "execution_count": 43, "id": "4876c969-c954-417c-875f-7c6fe72a7fe2", "metadata": {}, "outputs": [ @@ -3083,7 +7497,7 @@ " 'status': [],\n", " 'datafiles': []},\n", " 'result': {'title': 'OpenSILEX',\n", - " 'version': '1.2.4-rdg',\n", + " 'version': '1.2.7-rdg',\n", " 'description': 'OpenSILEX is an ontology-driven Information System designed for life science data.',\n", " 'contact': {'name': 'OpenSILEX Team',\n", " 'email': 'opensilex-help@groupes.renater.fr',\n", @@ -3091,28 +7505,28 @@ " 'license': {'name': 'GNU Affero General Public License v3',\n", " 'url': 'https://www.gnu.org/licenses/agpl-3.0.fr.html'},\n", " 'modules_version': [{'name': 'org.opensilex.server.ServerModule',\n", - " 'version': '1.2.4-rdg'},\n", - " {'name': 'org.opensilex.fs.FileStorageModule', 'version': '1.2.4-rdg'},\n", - " {'name': 'org.opensilex.nosql.NoSQLModule', 'version': '1.2.4-rdg'},\n", - " {'name': 'org.opensilex.sparql.SPARQLModule', 'version': '1.2.4-rdg'},\n", - " {'name': 'org.opensilex.security.SecurityModule', 'version': '1.2.4-rdg'},\n", - " {'name': 'org.opensilex.core.CoreModule', 'version': '1.2.4-rdg'},\n", - " {'name': 'org.opensilex.front.FrontModule', 'version': '1.2.4-rdg'},\n", - " {'name': 'org.opensilex.phis.PhisWsModule', 'version': '1.2.4-rdg'},\n", - " {'name': 'org.opensilex.graphql.GraphQLModule', 'version': '1.2.4-rdg'},\n", - " {'name': 'org.opensilex.dataverse.DataverseModule', 'version': '1.2.4-rdg'},\n", - " {'name': 'org.opensilex.migration.MigrationModule', 'version': '1.2.4-rdg'},\n", - " {'name': 'org.opensilex.brapi.BrapiModule', 'version': '1.2.4-rdg'}],\n", + " 'version': '1.2.7-rdg'},\n", + " {'name': 'org.opensilex.fs.FileStorageModule', 'version': '1.2.7-rdg'},\n", + " {'name': 'org.opensilex.nosql.NoSQLModule', 'version': '1.2.7-rdg'},\n", + " {'name': 'org.opensilex.sparql.SPARQLModule', 'version': '1.2.7-rdg'},\n", + " {'name': 'org.opensilex.security.SecurityModule', 'version': '1.2.7-rdg'},\n", + " {'name': 'org.opensilex.core.CoreModule', 'version': '1.2.7-rdg'},\n", + " {'name': 'org.opensilex.front.FrontModule', 'version': '1.2.7-rdg'},\n", + " {'name': 'org.opensilex.phis.PhisWsModule', 'version': '1.2.7-rdg'},\n", + " {'name': 'org.opensilex.graphql.GraphQLModule', 'version': '1.2.7-rdg'},\n", + " {'name': 'org.opensilex.dataverse.DataverseModule', 'version': '1.2.7-rdg'},\n", + " {'name': 'org.opensilex.migration.MigrationModule', 'version': '1.2.7-rdg'},\n", + " {'name': 'org.opensilex.brapi.BrapiModule', 'version': '1.2.7-rdg'}],\n", " 'external_docs': {'description': 'Opensilex dev documentation',\n", " 'url': 'https://github.com/OpenSILEX/opensilex/blob/master/opensilex-doc/src/main/resources/index.md'},\n", " 'api_docs': {'description': 'Opensilex API documentation',\n", " 'url': 'http://147.100.202.17/m3p/api-docs'},\n", - " 'git_commit': {'commit_id': 'a519a2f2ee03809dc2dca56732ddff5153842c89',\n", + " 'git_commit': {'commit_id': '595cec2c7d62dddb274ded3810dd6c9fab91f552',\n", " 'commit_message': 'Enable dataverse'},\n", " 'github_page': 'https://github.com/OpenSILEX/opensilex'}}" ] }, - "execution_count": 38, + "execution_count": 43, "metadata": {}, "output_type": "execute_result" } diff --git a/src/agroservices/phis/phis.py b/src/agroservices/phis/phis.py index b82faa0..e29efe1 100644 --- a/src/agroservices/phis/phis.py +++ b/src/agroservices/phis/phis.py @@ -18,6 +18,7 @@ # ============================================================================== __all__ = ["phis"] +DEFAULT_PAGE_SIZE=100 class Phis(REST): @@ -264,6 +265,8 @@ def get_variable(self, token, uri=None, name=None, entity=None, entity_of_intere query['page'] = str(page) if page_size is not None: query['page_size'] = str(page_size) + else: + query['page_size'] = str(DEFAULT_PAGE_SIZE) if sharedResourceInstance: query['sharedResourceInstance'] = sharedResourceInstance @@ -295,6 +298,13 @@ def get_project(self, token, uri=None, name=None, year=None, keyword=None, finan url = self.url + 'core/projects' query = {} + if page is not None: + query['page'] = str(page) + if page_size is not None: + query['page_size'] = str(page_size) + else: + query['page_size'] = str(DEFAULT_PAGE_SIZE) + if query: query_string = '&'.join(f'{key}={quote_plus(value)}' for key, value in query.items()) url += '?' + query_string @@ -308,7 +318,7 @@ def get_project(self, token, uri=None, name=None, year=None, keyword=None, finan return str(e) - def get_facility(self, token, uri=None): + def get_facility(self, token, uri=None, page=None, page_size=None): # Get specific facility information by uri if uri: result = self.http_get(self.url + 'core/facilities/' @@ -321,6 +331,13 @@ def get_facility(self, token, uri=None): url = self.url + 'core/facilities' query = {} + if page is not None: + query['page'] = str(page) + if page_size is not None: + query['page_size'] = str(page_size) + else: + query['page_size'] = str(DEFAULT_PAGE_SIZE) + if query: query_string = '&'.join(f'{key}={quote_plus(value)}' for key, value in query.items()) url += '?' + query_string @@ -334,7 +351,7 @@ def get_facility(self, token, uri=None): return str(e) - def get_germplasm(self, token, uri=None): + def get_germplasm(self, token, uri=None, page=None, page_size=None): # Get specific germplasm information by uri if uri: result = self.http_get(self.url + 'core/germplasm/' @@ -347,6 +364,13 @@ def get_germplasm(self, token, uri=None): url = self.url + 'core/germplasm' query = {} + if page is not None: + query['page'] = str(page) + if page_size is not None: + query['page_size'] = str(page_size) + else: + query['page_size'] = str(DEFAULT_PAGE_SIZE) + if query: query_string = '&'.join(f'{key}={quote_plus(value)}' for key, value in query.items()) url += '?' + query_string @@ -360,7 +384,7 @@ def get_germplasm(self, token, uri=None): return str(e) - def get_device(self, token, uri=None): + def get_device(self, token, uri=None, page=None, page_size=None): # Get specific device information by uri if uri: result = self.http_get(self.url + 'core/devices/' @@ -373,6 +397,13 @@ def get_device(self, token, uri=None): url = self.url + 'core/devices' query = {} + if page is not None: + query['page'] = str(page) + if page_size is not None: + query['page_size'] = str(page_size) + else: + query['page_size'] = str(DEFAULT_PAGE_SIZE) + if query: query_string = '&'.join(f'{key}={quote_plus(value)}' for key, value in query.items()) url += '?' + query_string @@ -386,7 +417,7 @@ def get_device(self, token, uri=None): return str(e) - def get_annotation(self, token, uri=None): + def get_annotation(self, token, uri=None, page=None, page_size=None): # Get specific annotation information by uri if uri: result = self.http_get(self.url + 'core/annotations/' @@ -399,6 +430,13 @@ def get_annotation(self, token, uri=None): url = self.url + 'core/annotations' query = {} + if page is not None: + query['page'] = str(page) + if page_size is not None: + query['page_size'] = str(page_size) + else: + query['page_size'] = str(DEFAULT_PAGE_SIZE) + if query: query_string = '&'.join(f'{key}={quote_plus(value)}' for key, value in query.items()) url += '?' + query_string @@ -412,11 +450,19 @@ def get_annotation(self, token, uri=None): return str(e) - def get_document(self, token, uri=None): + def get_document(self, token, uri=None, page=None, page_size=None): # Get specific document information by uri + # Doesn't work + # if uri: + # result = self.http_get(self.url + 'core/documents/' + # + quote_plus(uri), headers={'Authorization':token}) + # if result == 404: + # raise Exception("Document not found") + # return result + if uri: result = self.http_get(self.url + 'core/documents/' - + quote_plus(uri), headers={'Authorization':token}) + + quote_plus(uri) + '/description', headers={'Authorization':token}) if result == 404: raise Exception("Document not found") return result @@ -425,6 +471,13 @@ def get_document(self, token, uri=None): url = self.url + 'core/documents' query = {} + if page is not None: + query['page'] = str(page) + if page_size is not None: + query['page_size'] = str(page_size) + else: + query['page_size'] = str(DEFAULT_PAGE_SIZE) + if query: query_string = '&'.join(f'{key}={quote_plus(value)}' for key, value in query.items()) url += '?' + query_string @@ -438,7 +491,7 @@ def get_document(self, token, uri=None): return str(e) - def get_factor(self, token, uri=None): + def get_factor(self, token, uri=None, page=None, page_size=None): # Get specific factor information by uri if uri: result = self.http_get(self.url + 'core/experiments/factors/' @@ -451,6 +504,13 @@ def get_factor(self, token, uri=None): url = self.url + 'core/experiments/factors' query = {} + if page is not None: + query['page'] = str(page) + if page_size is not None: + query['page_size'] = str(page_size) + else: + query['page_size'] = str(DEFAULT_PAGE_SIZE) + if query: query_string = '&'.join(f'{key}={quote_plus(value)}' for key, value in query.items()) url += '?' + query_string @@ -464,7 +524,7 @@ def get_factor(self, token, uri=None): return str(e) - def get_organization(self, token, uri=None): + def get_organization(self, token, uri=None, page=None, page_size=None): # Get specific organization information by uri if uri: result = self.http_get(self.url + 'core/organisations/' @@ -477,6 +537,13 @@ def get_organization(self, token, uri=None): url = self.url + 'core/organisations' query = {} + if page is not None: + query['page'] = str(page) + if page_size is not None: + query['page_size'] = str(page_size) + else: + query['page_size'] = str(DEFAULT_PAGE_SIZE) + if query: query_string = '&'.join(f'{key}={quote_plus(value)}' for key, value in query.items()) url += '?' + query_string @@ -490,7 +557,7 @@ def get_organization(self, token, uri=None): return str(e) - def get_site(self, token, uri=None): + def get_site(self, token, uri=None, page=None, page_size=None): # Get specific site information by uri if uri: result = self.http_get(self.url + 'core/sites/' @@ -503,6 +570,13 @@ def get_site(self, token, uri=None): url = self.url + 'core/sites' query = {} + if page is not None: + query['page'] = str(page) + if page_size is not None: + query['page_size'] = str(page_size) + else: + query['page_size'] = str(DEFAULT_PAGE_SIZE) + if query: query_string = '&'.join(f'{key}={quote_plus(value)}' for key, value in query.items()) url += '?' + query_string @@ -516,7 +590,7 @@ def get_site(self, token, uri=None): return str(e) - def get_scientific_object(self, token, uri=None): + def get_scientific_object(self, token, uri=None, page=None, page_size=None): # Get specific scientific object information by uri if uri: result = self.http_get(self.url + 'core/scientific_objects/' @@ -529,6 +603,13 @@ def get_scientific_object(self, token, uri=None): url = self.url + 'core/scientific_objects' query = {} + if page is not None: + query['page'] = str(page) + if page_size is not None: + query['page_size'] = str(page_size) + else: + query['page_size'] = str(DEFAULT_PAGE_SIZE) + if query: query_string = '&'.join(f'{key}={quote_plus(value)}' for key, value in query.items()) url += '?' + query_string @@ -568,7 +649,7 @@ def get_system_info(self, token): return str(e) - def get_characteristic(self, token, uri=None): + def get_characteristic(self, token, uri=None, page=None, page_size=None): # Get specific characteristic information by uri if uri: result = self.http_get(self.url + 'core/characteristics/' @@ -581,6 +662,13 @@ def get_characteristic(self, token, uri=None): url = self.url + 'core/characteristics' query = {} + if page is not None: + query['page'] = str(page) + if page_size is not None: + query['page_size'] = str(page_size) + else: + query['page_size'] = str(DEFAULT_PAGE_SIZE) + if query: query_string = '&'.join(f'{key}={quote_plus(value)}' for key, value in query.items()) url += '?' + query_string @@ -594,7 +682,7 @@ def get_characteristic(self, token, uri=None): return str(e) - def get_entity(self, token, uri=None): + def get_entity(self, token, uri=None, page=None, page_size=None): # Get specific entity information by uri if uri: result = self.http_get(self.url + 'core/entities/' @@ -607,6 +695,13 @@ def get_entity(self, token, uri=None): url = self.url + 'core/entities' query = {} + if page is not None: + query['page'] = str(page) + if page_size is not None: + query['page_size'] = str(page_size) + else: + query['page_size'] = str(DEFAULT_PAGE_SIZE) + if query: query_string = '&'.join(f'{key}={quote_plus(value)}' for key, value in query.items()) url += '?' + query_string @@ -620,7 +715,7 @@ def get_entity(self, token, uri=None): return str(e) - def get_entity_of_interest(self, token, uri=None): + def get_entity_of_interest(self, token, uri=None, page=None, page_size=None): # Get specific entity of interest information by uri if uri: result = self.http_get(self.url + 'core/entities_of_interest/' @@ -633,6 +728,13 @@ def get_entity_of_interest(self, token, uri=None): url = self.url + 'core/entities_of_interest' query = {} + if page is not None: + query['page'] = str(page) + if page_size is not None: + query['page_size'] = str(page_size) + else: + query['page_size'] = str(DEFAULT_PAGE_SIZE) + if query: query_string = '&'.join(f'{key}={quote_plus(value)}' for key, value in query.items()) url += '?' + query_string @@ -646,7 +748,7 @@ def get_entity_of_interest(self, token, uri=None): return str(e) - def get_method(self, token, uri=None): + def get_method(self, token, uri=None, page=None, page_size=None): # Get specific method information by uri if uri: result = self.http_get(self.url + 'core/methods/' @@ -659,6 +761,13 @@ def get_method(self, token, uri=None): url = self.url + 'core/methods' query = {} + if page is not None: + query['page'] = str(page) + if page_size is not None: + query['page_size'] = str(page_size) + else: + query['page_size'] = str(DEFAULT_PAGE_SIZE) + if query: query_string = '&'.join(f'{key}={quote_plus(value)}' for key, value in query.items()) url += '?' + query_string @@ -672,7 +781,7 @@ def get_method(self, token, uri=None): return str(e) - def get_unit(self, token, uri=None): + def get_unit(self, token, uri=None, page=None, page_size=None): # Get specific unit information by uri if uri: result = self.http_get(self.url + 'core/units/' @@ -685,6 +794,13 @@ def get_unit(self, token, uri=None): url = self.url + 'core/units' query = {} + if page is not None: + query['page'] = str(page) + if page_size is not None: + query['page_size'] = str(page_size) + else: + query['page_size'] = str(DEFAULT_PAGE_SIZE) + if query: query_string = '&'.join(f'{key}={quote_plus(value)}' for key, value in query.items()) url += '?' + query_string @@ -696,258 +812,78 @@ def get_unit(self, token, uri=None): return response except Exception as e: return str(e) + + def get_provenance(self, token, uri=None, page=None, page_size=None): + # Get specific provenance information by uri + if uri: + result = self.http_get(self.url + 'core/provenances/' + + quote_plus(uri), headers={'Authorization':token}) + if result == 404: + raise Exception("Provenance not found") + return result + + # Get list of provenances based on filtering criteria + url = self.url + 'core/provenances' + query = {} - def ws_germplasms(self, session_id, experiment_uri=None, species_uri=None, - project_name=None, germplasm_uri=None): - """ Get information about genotypes in experiments - See http://147.100.202.17/m3p/api-docs/ for exact documentation - - :param session_id: (str) token got from ws_token() - :param experiment_uri: (str or list of str) experiment URI - :param species_uri: (str) specie URI - :param project_name: (str) not available - :param germplasm_uri: (str) if specified then experiment_uri, species_uri and project_name parameters are useless - :return: - (list of dict) genotypic information of genotypes used in specific experiments, or for specific specie - """ - if experiment_uri is None and species_uri is None and germplasm_uri is None: - raise Exception( - "You must specify one of experiment_uri, species_uri or germplasms_uri") - if isinstance(germplasm_uri, six.string_types): - return self.get_all_data('germplasms/' + quote( - germplasm_uri), sessionId=session_id) - else: - if isinstance(experiment_uri, list): - experiment_uri = ','.join(experiment_uri) - return self.get_all_data('germplasms', - sessionId=session_id, - experimentURI=experiment_uri, - speciesURI=species_uri, - projectName=project_name) - - def ws_environment(self, session_id, experiment_uri=None, - variable_category=None, - variables=None, facility=None, - start_date=None, end_date=None, plant_uri=None): - """ Get environment sensors values from PHIS web service - See http://147.100.202.17/m3p/api-docs/ for exact documentation - - :param session_id: (str) token got from ws_token() - :param experiment_uri: (str) An experiment URI - :param variable_category: (str) Categories available in environment - must one of the list : ["setpoint", "meteorological", "micrometeo", "setting"] - :param variables: (str or list of str) variables types - :param facility: (str) Environment location - :param start_date: (str) Date of the first data (superior or equal) ( Format: YYYY-MM-DD or YYYY-MM-DD HH:MM:SS or - YYYY-MM-DD HH:MM:SSZZ (ZZ = +01:00) ) - :param end_date: (str) Date of the last data (inferior or equal)( Format: YYYY-MM-DD or YYYY-MM-DD HH:MM:SS or - YYYY-MM-DD HH:MM:SSZZ (ZZ = +01:00) ) - :param plant_uri: (str) plant URI to get only values of concerned sensors - :return: - (list of dict) environmental data in respect to parameters - """ - if isinstance(variables, list): - variables = ','.join(variables) - if isinstance(plant_uri, six.string_types): - return self.get_all_data('plants/' + quote( - plant_uri) + '/environment', timeout=20., - sessionId=session_id, - experimentURI=experiment_uri, - variableCategory=variable_category, - variables=variables, facility=facility, - startDate=start_date, endDate=end_date) + if page is not None: + query['page'] = str(page) + if page_size is not None: + query['page_size'] = str(page_size) else: - return self.get_all_data('environment', timeout=20., - sessionId=session_id, - experimentURI=experiment_uri, - variableCategory=variable_category, - variables=variables, facility=facility, - startDate=start_date, endDate=end_date) - - def ws_variables(self, session_id, experiment_uri, category='environment', - provider='lepse'): - """ Get variables information according to category specified - See http://147.100.202.17/m3p/api-docs/ for exact documentation - - :param session_id: (str) token got from ws_token() - :param experiment_uri: (str) an experiment URI - :param category: (str) variable categories available, - must be one of ['environment', 'imagery', 'watering', 'weighing', 'phenotyping'] - :param provider: (str) provider of imagery processing (only used for 'imagery' category), - might be 'lemnatec' before 2015, and then 'elcom or 'lepse' - :return: - (list of dict) available variables for an experiment - """ - return self.get_all_data('variables/category/' + category, - sessionId=session_id, - experimentURI=experiment_uri, - imageryProvider=provider) - - - def ws_label_views(self, session_id, experiment_uri, camera_angle=None, - view_type=None, provider=None): - """ Get existing label views for a specific experiment - See http://147.100.202.17/m3p/api-docs/ for exact documentation - - :param session_id: (str) token got from ws_token() - :param experiment_uri: (str) an experiment URI - :param camera_angle: (int) angle of the camera (between 0 and 360°, usually each 30°) - :param view_type: (str) usually one of ['top', 'side'] - :param provider: (str) usually lemnatec or elcom (useful ??) - :return: - (list of dict) label views - """ - return self.get_all_data('experiments/' + quote( - experiment_uri) + '/labelViews', timeout=30., - sessionId=session_id, cameraAngle=camera_angle, - viewType=view_type, provider=provider) + query['page_size'] = str(DEFAULT_PAGE_SIZE) - def ws_observation_variables(self, session_id, experiment_uri): - """ Get existing observation variables for a specific experiment - See http://147.100.202.17/m3p/api-docs/ for exact documentation + if query: + query_string = '&'.join(f'{key}={quote_plus(value)}' for key, value in query.items()) + url += '?' + query_string - :param session_id: (str) token got from ws_token() - :param experiment_uri: (str) an experiment URI - :return: - (list of dict) observation variables - """ - return self.get_all_data('experiments/' + quote( - experiment_uri) + '/observationVariables', - sessionId=session_id) - - def ws_weighing(self, session_id, experiment_uri, date=None, - variables_name=None): - """ Get weighing data for a specific experiment - See http://147.100.202.17/m3p/api-docs/ for exact documentation - - :param session_id: (str) token got from ws_token() - :param experiment_uri: (str) an experiment URI - :param date: (str) Retrieve weighing data which been produced a particular day. Format :yyyy-MM-dd - :param variables_name: (str or list of str) name of one or several weighing variables - might be one of ['weightBefore', 'weightAfter', 'weight'] - :return: - (list of dict) weighing data for a specific experiment - """ - if isinstance(variables_name, list): - variables_name = ','.join(variables_name) - return self.get_all_data('weighing', sessionId=session_id, - experimentURI=experiment_uri, date=date, - variablesName=variables_name) - - def ws_plants(self, session_id, experiment_uri, plant_alias=None, - germplasms_uri=None, plant_uri=None): - """ Get plants information for an experiment - See http://147.100.202.17/m3p/api-docs/ for exact documentation - - :param session_id: (str) token got from ws_token() - :param experiment_uri: (str) an experiment URI - :param plant_alias: (str) alias of plant, usually the name used in experimentation - :param germplasms_uri: (str) URI of a germplasm - :param plant_uri: (str) specify a plant URI to get detailed information - :return: - (list of dict) plants information - """ - if isinstance(plant_uri, six.string_types): - return self.get_all_data('plants/' + quote(plant_uri), - sessionId=session_id, - experimentURI=experiment_uri) - else: - return self.get_all_data('plants', timeout=60., - sessionId=session_id, - experimentURI=experiment_uri, - plantAlias=plant_alias, - germplasmsURI=germplasms_uri) - - def ws_plant_moves(self, session_id, experiment_uri, plant_uri, - start_date=None, - end_date=None): - """ Get plant moves data during an experimentation - See http://147.100.202.17/m3p/api-docs/ for exact documentation - - :param session_id: (str) token got from ws_token() - :param experiment_uri: (str) an experiment URI - :param plant_uri: (str) plant URI to get moves data - :param start_date: (str) retrieve move(s) which begin after or equals to this date - ( Format: YYYY-MM-DD or YYYY-MM-DD HH:MM:SS or YYYY-MM-DD HH:MM:SSZZ (ZZ = +01:00) ) - :param end_date: (str) retrieve move(s) which end before to this date - ( Format: YYYY-MM-DD or YYYY-MM-DD HH:MM:SS or YYYY-MM-DD HH:MM:SSZZ (ZZ = +01:00) ) - :return: - (list of dict) plant moves data - """ - return self.get_all_data('plants/' + quote( - plant_uri) + '/moves', - timeout=20., - sessionId=session_id, - experimentURI=experiment_uri, - startDate=start_date, endDate=end_date) - - def ws_watering(self, session_id, experiment_uri, date=None, provider=None, - variables_name=None, plant_uri=None): - """ Get watering data for a specific experiment - See http://147.100.202.17/m3p/api-docs/ for exact documentation - - :param session_id: (str) token got from ws_token() - :param experiment_uri: (str) an experiment URI - :param date: (str) retrieve watering data which been produced a particular day. Format :yyyy-MM-dd - :param provider: (str) origin of the data (useful ??) - :param variables_name: (str or list of str) name of one or several watering variables - might be one of ['weightBefore', 'weightAfter', 'weightAmount'] - :param plant_uri: (str) plant URI to get only values specified plant - :return: - (list of dict) watering data for a specific experiment - """ - if isinstance(variables_name, list): - variables_name = ','.join(variables_name) - if isinstance(plant_uri, six.string_types): - return self.get_all_data('plants/' + quote( - plant_uri) + '/watering', timeout=30., - sessionId=session_id, - experimentURI=experiment_uri, date=date, - provider=provider, - variablesName=variables_name) - else: - return self.get_all_data('watering', sessionId=session_id, - experimentURI=experiment_uri, date=date, - provider=provider, - variablesName=variables_name) - - def ws_images_analysis(self, session_id, experiment_uri, date=None, - provider=None, - label_view=None, variables_name=None, - plant_uri=None): - """ Get images analysis data for a specific experiment - See http://147.100.202.17/m3p/api-docs/ for exact documentation - - :param session_id: (str) token got from ws_token() - :param experiment_uri: (str) an experiment URI - :param date: (str) retrieve phenotypes data from images which have been took at a specific day . Format :yyyy-MM-dd - :param provider: (str) origin of the data - :param label_view: (str) label view, something like side0, side30, ..., side330, top0 - :param variables_name: (str or list of str) name of one or several weighing variables - See ws_variables(session_id, experiment_uri, category='imagery') for exact list - :param plant_uri: (str) plant URI to get only values specified plant - :return: - (list of dict) images analysis data for a specific experiment - """ - if isinstance(variables_name, list): - variables_name = ','.join(variables_name) - if isinstance(plant_uri, six.string_types): - return self.get_all_data('plants/' + quote( - plant_uri) + '/phenotypes', timeout=30., - sessionId=session_id, - experimentURI=experiment_uri, date=date, - provider=provider, - labelView=label_view, - variablesName=variables_name) - else: - return self.get_all_data('imagesAnalysis', timeout=30., - sessionId=session_id, - experimentURI=experiment_uri, - date=date, provider=provider, - labelView=label_view, - variablesName=variables_name) + try: + response = self.http_get(url, headers={'Authorization':token}) + if response == 404: + raise Exception("Empty result") + return response + except Exception as e: + return str(e) + + + def get_datafile(self, token, uri=None, page=None, page_size=None): + # Get specific datafile information by uri + # Doesn't work + # if uri: + # result = self.http_get(self.url + 'core/datafiles/' + # + quote_plus(uri), headers={'Authorization':token}) + # if result == 404: + # raise Exception("Datafile not found") + # return result + + if uri: + result = self.http_get(self.url + 'core/datafiles/' + + quote_plus(uri) + '/description', headers={'Authorization':token}) + if result == 404: + raise Exception("Datafile not found") + return result + # Get list of datafiles based on filtering criteria + url = self.url + 'core/datafiles' + query = {} + + if page is not None: + query['page'] = str(page) + if page_size is not None: + query['page_size'] = str(page_size) + else: + query['page_size'] = str(DEFAULT_PAGE_SIZE) + if query: + query_string = '&'.join(f'{key}={quote_plus(value)}' for key, value in query.items()) + url += '?' + query_string + try: + response = self.http_get(url, headers={'Authorization':token}) + if response == 404: + raise Exception("Empty result") + return response + except Exception as e: + return str(e) diff --git a/test/test_phis.py b/test/test_phis.py index 4442f6f..7602b2f 100644 --- a/test/test_phis.py +++ b/test/test_phis.py @@ -1,6 +1,5 @@ import requests from agroservices.phis.phis import Phis -from urllib.parse import quote_plus def test_url(): @@ -212,10 +211,10 @@ def test_get_document(): assert data['result'] != [], "Request failed" # Test with a valid URI - # try: - # data = phis.get_document(uri='m3p:id/document/test_isa_doc_post_deploy', token=token) - # except Exception as err: - # assert False, "Unexpected error: " + str(err) + try: + data = phis.get_document(uri='m3p:id/document/test_dataset', token=token) + except Exception as err: + assert False, "Unexpected error: " + str(err) def test_get_factor(): @@ -382,5 +381,37 @@ def test_get_unit(): # Test with a valid URI try: data = phis.get_unit(uri='http://qudt.org/vocab/unit/J', token=token) + except Exception as err: + assert False, "Unexpected error: " + str(err) + + +def test_get_provenance(): + phis = Phis() + token, _ = phis.authenticate() + + # Search test + data = phis.get_provenance(token=token) + if data['metadata']['pagination']['totalCount'] != 0: + assert data['result'] != [], "Request failed" + + # Test with a valid URI + try: + data = phis.get_provenance(uri='http://www.phenome-fppn.fr/m3p/Prov_watering_WateringStation05_6l', token=token) + except Exception as err: + assert False, "Unexpected error: " + str(err) + + +def test_get_datafile(): + phis = Phis() + token, _ = phis.authenticate() + + # Search test + data = phis.get_datafile(token=token) + if data['metadata']['pagination']['totalCount'] != 0: + assert data['result'] != [], "Request failed" + + # Test with a valid URI + try: + data = phis.get_datafile(uri='m3p:id/file/1597964400.af46ac07f735ced228cf181aa85ebced', token=token) except Exception as err: assert False, "Unexpected error: " + str(err) \ No newline at end of file From 998d7e352e63ddb7d18e71f54c4179f02fa1d7e2 Mon Sep 17 00:00:00 2001 From: fedur8 Date: Tue, 18 Jun 2024 16:02:49 +0200 Subject: [PATCH 06/12] Authentication now within Phis class --- src/agroservices/phis/phis.py | 123 +++++++++++++++++----------------- test/test_phis.py | 118 +++++++++++++------------------- 2 files changed, 110 insertions(+), 131 deletions(-) diff --git a/src/agroservices/phis/phis.py b/src/agroservices/phis/phis.py index e29efe1..2ba8d63 100644 --- a/src/agroservices/phis/phis.py +++ b/src/agroservices/phis/phis.py @@ -32,6 +32,7 @@ def __init__(self, name='Phis', *args, **kwargs) self.callback = callback # use in all methods) + self.token, _ = self.authenticate() def post_json(self, web_service, json_txt, timeout=10., overwriting=False, **kwargs): @@ -136,7 +137,7 @@ def authenticate(self, identifier='phenoarch@lepse.inra.fr', return token, status_code - def get_experiment(self, token, uri=None, name=None, year=None, is_ended=None, species=None, factors=None, + def get_experiment(self, uri=None, name=None, year=None, is_ended=None, species=None, factors=None, projects=None, is_public=None, facilities=None, order_by=None, page=None, page_size=None): """ Retrieve experiment information based on various parameters or a specific URI. @@ -167,7 +168,7 @@ def get_experiment(self, token, uri=None, name=None, year=None, is_ended=None, s # Get specific experiment information by uri if uri: - result = self.http_get(self.url + 'core/experiments/' + quote_plus(uri), headers={'Authorization':token}) + result = self.http_get(self.url + 'core/experiments/' + quote_plus(uri), headers={'Authorization':self.token}) if result == 404: raise Exception("Experiment not found") return result @@ -204,7 +205,7 @@ def get_experiment(self, token, uri=None, name=None, year=None, is_ended=None, s url += '?' + query_string try: - response = self.http_get(url, headers={'Authorization':token}) + response = self.http_get(url, headers={'Authorization':self.token}) if response == 404: raise Exception("Empty result") return response @@ -212,7 +213,7 @@ def get_experiment(self, token, uri=None, name=None, year=None, is_ended=None, s return str(e) - def get_variable(self, token, uri=None, name=None, entity=None, entity_of_interest=None, characteristic=None, + def get_variable(self,uri=None, name=None, entity=None, entity_of_interest=None, characteristic=None, method=None, unit=None, group_of_variables=None, not_included_in_group_of_variables=None, data_type=None, time_interval=None, species=None, withAssociatedData=None, experiments=None, scientific_objects=None, devices=None, order_by=None, page=None, page_size=None, sharedResourceInstance=None): @@ -220,7 +221,7 @@ def get_variable(self, token, uri=None, name=None, entity=None, entity_of_intere # Get specific variable information by uri if uri: result = self.http_get(self.url + 'core/variables/' - + quote_plus(uri), headers={'Authorization':token}) + + quote_plus(uri), headers={'Authorization':self.token}) if result == 404: raise Exception("Variable not found") return result @@ -276,7 +277,7 @@ def get_variable(self, token, uri=None, name=None, entity=None, entity_of_intere url += '?' + query_string try: - response = self.http_get(url, headers={'Authorization':token}) + response = self.http_get(url, headers={'Authorization':self.token}) if response == 404: raise Exception("Empty result") return response @@ -284,12 +285,12 @@ def get_variable(self, token, uri=None, name=None, entity=None, entity_of_intere return str(e) - def get_project(self, token, uri=None, name=None, year=None, keyword=None, financial_funding=None, order_by=None, + def get_project(self, uri=None, name=None, year=None, keyword=None, financial_funding=None, order_by=None, page=None, page_size=None): # Get specific project information by uri if uri: result = self.http_get(self.url + 'core/projects/' - + quote_plus(uri), headers={'Authorization':token}) + + quote_plus(uri), headers={'Authorization':self.token}) if (result == 404 or result == 500): raise Exception("Project not found") return result @@ -310,7 +311,7 @@ def get_project(self, token, uri=None, name=None, year=None, keyword=None, finan url += '?' + query_string try: - response = self.http_get(url, headers={'Authorization':token}) + response = self.http_get(url, headers={'Authorization':self.token}) if response == 404: raise Exception("Empty result") return response @@ -318,11 +319,11 @@ def get_project(self, token, uri=None, name=None, year=None, keyword=None, finan return str(e) - def get_facility(self, token, uri=None, page=None, page_size=None): + def get_facility(self, uri=None, page=None, page_size=None): # Get specific facility information by uri if uri: result = self.http_get(self.url + 'core/facilities/' - + quote_plus(uri), headers={'Authorization':token}) + + quote_plus(uri), headers={'Authorization':self.token}) if (result == 404): raise Exception("Facility not found") return result @@ -343,7 +344,7 @@ def get_facility(self, token, uri=None, page=None, page_size=None): url += '?' + query_string try: - response = self.http_get(url, headers={'Authorization':token}) + response = self.http_get(url, headers={'Authorization':self.token}) if response == 404: raise Exception("Empty result") return response @@ -351,11 +352,11 @@ def get_facility(self, token, uri=None, page=None, page_size=None): return str(e) - def get_germplasm(self, token, uri=None, page=None, page_size=None): + def get_germplasm(self, uri=None, page=None, page_size=None): # Get specific germplasm information by uri if uri: result = self.http_get(self.url + 'core/germplasm/' - + quote_plus(uri), headers={'Authorization':token}) + + quote_plus(uri), headers={'Authorization':self.token}) if result == 404: raise Exception("Germplasm not found") return result @@ -376,7 +377,7 @@ def get_germplasm(self, token, uri=None, page=None, page_size=None): url += '?' + query_string try: - response = self.http_get(url, headers={'Authorization':token}) + response = self.http_get(url, headers={'Authorization':self.token}) if response == 404: raise Exception("Empty result") return response @@ -384,11 +385,11 @@ def get_germplasm(self, token, uri=None, page=None, page_size=None): return str(e) - def get_device(self, token, uri=None, page=None, page_size=None): + def get_device(self, uri=None, page=None, page_size=None): # Get specific device information by uri if uri: result = self.http_get(self.url + 'core/devices/' - + quote_plus(uri), headers={'Authorization':token}) + + quote_plus(uri), headers={'Authorization':self.token}) if result == 404: raise Exception("Device not found") return result @@ -409,7 +410,7 @@ def get_device(self, token, uri=None, page=None, page_size=None): url += '?' + query_string try: - response = self.http_get(url, headers={'Authorization':token}) + response = self.http_get(url, headers={'Authorization':self.token}) if response == 404: raise Exception("Empty result") return response @@ -417,11 +418,11 @@ def get_device(self, token, uri=None, page=None, page_size=None): return str(e) - def get_annotation(self, token, uri=None, page=None, page_size=None): + def get_annotation(self, uri=None, page=None, page_size=None): # Get specific annotation information by uri if uri: result = self.http_get(self.url + 'core/annotations/' - + quote_plus(uri), headers={'Authorization':token}) + + quote_plus(uri), headers={'Authorization':self.token}) if result == 404: raise Exception("Annotation not found") return result @@ -442,7 +443,7 @@ def get_annotation(self, token, uri=None, page=None, page_size=None): url += '?' + query_string try: - response = self.http_get(url, headers={'Authorization':token}) + response = self.http_get(url, headers={'Authorization':self.token}) if response == 404: raise Exception("Empty result") return response @@ -450,7 +451,7 @@ def get_annotation(self, token, uri=None, page=None, page_size=None): return str(e) - def get_document(self, token, uri=None, page=None, page_size=None): + def get_document(self, uri=None, page=None, page_size=None): # Get specific document information by uri # Doesn't work # if uri: @@ -462,7 +463,7 @@ def get_document(self, token, uri=None, page=None, page_size=None): if uri: result = self.http_get(self.url + 'core/documents/' - + quote_plus(uri) + '/description', headers={'Authorization':token}) + + quote_plus(uri) + '/description', headers={'Authorization':self.token}) if result == 404: raise Exception("Document not found") return result @@ -483,7 +484,7 @@ def get_document(self, token, uri=None, page=None, page_size=None): url += '?' + query_string try: - response = self.http_get(url, headers={'Authorization':token}) + response = self.http_get(url, headers={'Authorization':self.token}) if response == 404: raise Exception("Empty result") return response @@ -491,11 +492,11 @@ def get_document(self, token, uri=None, page=None, page_size=None): return str(e) - def get_factor(self, token, uri=None, page=None, page_size=None): + def get_factor(self, uri=None, page=None, page_size=None): # Get specific factor information by uri if uri: result = self.http_get(self.url + 'core/experiments/factors/' - + quote_plus(uri), headers={'Authorization':token}) + + quote_plus(uri), headers={'Authorization':self.token}) if result == 404: raise Exception("Factor not found") return result @@ -516,7 +517,7 @@ def get_factor(self, token, uri=None, page=None, page_size=None): url += '?' + query_string try: - response = self.http_get(url, headers={'Authorization':token}) + response = self.http_get(url, headers={'Authorization':self.token}) if response == 404: raise Exception("Empty result") return response @@ -524,11 +525,11 @@ def get_factor(self, token, uri=None, page=None, page_size=None): return str(e) - def get_organization(self, token, uri=None, page=None, page_size=None): + def get_organization(self, uri=None, page=None, page_size=None): # Get specific organization information by uri if uri: result = self.http_get(self.url + 'core/organisations/' - + quote_plus(uri), headers={'Authorization':token}) + + quote_plus(uri), headers={'Authorization':self.token}) if result == 404: raise Exception("Organization not found") return result @@ -549,7 +550,7 @@ def get_organization(self, token, uri=None, page=None, page_size=None): url += '?' + query_string try: - response = self.http_get(url, headers={'Authorization':token}) + response = self.http_get(url, headers={'Authorization':self.token}) if response == 404: raise Exception("Empty result") return response @@ -557,11 +558,11 @@ def get_organization(self, token, uri=None, page=None, page_size=None): return str(e) - def get_site(self, token, uri=None, page=None, page_size=None): + def get_site(self, uri=None, page=None, page_size=None): # Get specific site information by uri if uri: result = self.http_get(self.url + 'core/sites/' - + quote_plus(uri), headers={'Authorization':token}) + + quote_plus(uri), headers={'Authorization':self.token}) if result == 404: raise Exception("Site not found") return result @@ -582,7 +583,7 @@ def get_site(self, token, uri=None, page=None, page_size=None): url += '?' + query_string try: - response = self.http_get(url, headers={'Authorization':token}) + response = self.http_get(url, headers={'Authorization':self.token}) if response == 404: raise Exception("Empty result") return response @@ -590,11 +591,11 @@ def get_site(self, token, uri=None, page=None, page_size=None): return str(e) - def get_scientific_object(self, token, uri=None, page=None, page_size=None): + def get_scientific_object(self, uri=None, page=None, page_size=None): # Get specific scientific object information by uri if uri: result = self.http_get(self.url + 'core/scientific_objects/' - + quote_plus(uri), headers={'Authorization':token}) + + quote_plus(uri), headers={'Authorization':self.token}) if result == 404: raise Exception("Scientific object not found") return result @@ -615,7 +616,7 @@ def get_scientific_object(self, token, uri=None, page=None, page_size=None): url += '?' + query_string try: - response = self.http_get(url, headers={'Authorization':token}) + response = self.http_get(url, headers={'Authorization':self.token}) if response == 404: raise Exception("Empty result") return response @@ -623,12 +624,12 @@ def get_scientific_object(self, token, uri=None, page=None, page_size=None): return str(e) - def get_species(self, token): + def get_species(self): # Get list of species url = self.url + 'core/species' try: - response = self.http_get(url, headers={'Authorization':token}) + response = self.http_get(url, headers={'Authorization':self.token}) if response == 404: raise Exception("Empty result") return response @@ -636,12 +637,12 @@ def get_species(self, token): return str(e) - def get_system_info(self, token): + def get_system_info(self): # Get system informations url = self.url + 'core/system/info' try: - response = self.http_get(url, headers={'Authorization':token}) + response = self.http_get(url, headers={'Authorization':self.token}) if response == 404: raise Exception("Empty result") return response @@ -649,11 +650,11 @@ def get_system_info(self, token): return str(e) - def get_characteristic(self, token, uri=None, page=None, page_size=None): + def get_characteristic(self, uri=None, page=None, page_size=None): # Get specific characteristic information by uri if uri: result = self.http_get(self.url + 'core/characteristics/' - + quote_plus(uri), headers={'Authorization':token}) + + quote_plus(uri), headers={'Authorization':self.token}) if result == 404: raise Exception("Characteristic not found") return result @@ -674,7 +675,7 @@ def get_characteristic(self, token, uri=None, page=None, page_size=None): url += '?' + query_string try: - response = self.http_get(url, headers={'Authorization':token}) + response = self.http_get(url, headers={'Authorization':self.token}) if response == 404: raise Exception("Empty result") return response @@ -682,11 +683,11 @@ def get_characteristic(self, token, uri=None, page=None, page_size=None): return str(e) - def get_entity(self, token, uri=None, page=None, page_size=None): + def get_entity(self, uri=None, page=None, page_size=None): # Get specific entity information by uri if uri: result = self.http_get(self.url + 'core/entities/' - + quote_plus(uri), headers={'Authorization':token}) + + quote_plus(uri), headers={'Authorization':self.token}) if result == 404: raise Exception("Entity not found") return result @@ -707,7 +708,7 @@ def get_entity(self, token, uri=None, page=None, page_size=None): url += '?' + query_string try: - response = self.http_get(url, headers={'Authorization':token}) + response = self.http_get(url, headers={'Authorization':self.token}) if response == 404: raise Exception("Empty result") return response @@ -715,11 +716,11 @@ def get_entity(self, token, uri=None, page=None, page_size=None): return str(e) - def get_entity_of_interest(self, token, uri=None, page=None, page_size=None): + def get_entity_of_interest(self, uri=None, page=None, page_size=None): # Get specific entity of interest information by uri if uri: result = self.http_get(self.url + 'core/entities_of_interest/' - + quote_plus(uri), headers={'Authorization':token}) + + quote_plus(uri), headers={'Authorization':self.token}) if result == 404: raise Exception("Entity of interest not found") return result @@ -740,7 +741,7 @@ def get_entity_of_interest(self, token, uri=None, page=None, page_size=None): url += '?' + query_string try: - response = self.http_get(url, headers={'Authorization':token}) + response = self.http_get(url, headers={'Authorization':self.token}) if response == 404: raise Exception("Empty result") return response @@ -748,11 +749,11 @@ def get_entity_of_interest(self, token, uri=None, page=None, page_size=None): return str(e) - def get_method(self, token, uri=None, page=None, page_size=None): + def get_method(self, uri=None, page=None, page_size=None): # Get specific method information by uri if uri: result = self.http_get(self.url + 'core/methods/' - + quote_plus(uri), headers={'Authorization':token}) + + quote_plus(uri), headers={'Authorization':self.token}) if result == 404: raise Exception("Method not found") return result @@ -773,7 +774,7 @@ def get_method(self, token, uri=None, page=None, page_size=None): url += '?' + query_string try: - response = self.http_get(url, headers={'Authorization':token}) + response = self.http_get(url, headers={'Authorization':self.token}) if response == 404: raise Exception("Empty result") return response @@ -781,11 +782,11 @@ def get_method(self, token, uri=None, page=None, page_size=None): return str(e) - def get_unit(self, token, uri=None, page=None, page_size=None): + def get_unit(self, uri=None, page=None, page_size=None): # Get specific unit information by uri if uri: result = self.http_get(self.url + 'core/units/' - + quote_plus(uri), headers={'Authorization':token}) + + quote_plus(uri), headers={'Authorization':self.token}) if result == 404: raise Exception("Unit not found") return result @@ -806,7 +807,7 @@ def get_unit(self, token, uri=None, page=None, page_size=None): url += '?' + query_string try: - response = self.http_get(url, headers={'Authorization':token}) + response = self.http_get(url, headers={'Authorization':self.token}) if response == 404: raise Exception("Empty result") return response @@ -814,11 +815,11 @@ def get_unit(self, token, uri=None, page=None, page_size=None): return str(e) - def get_provenance(self, token, uri=None, page=None, page_size=None): + def get_provenance(self, uri=None, page=None, page_size=None): # Get specific provenance information by uri if uri: result = self.http_get(self.url + 'core/provenances/' - + quote_plus(uri), headers={'Authorization':token}) + + quote_plus(uri), headers={'Authorization':self.token}) if result == 404: raise Exception("Provenance not found") return result @@ -839,7 +840,7 @@ def get_provenance(self, token, uri=None, page=None, page_size=None): url += '?' + query_string try: - response = self.http_get(url, headers={'Authorization':token}) + response = self.http_get(url, headers={'Authorization':self.token}) if response == 404: raise Exception("Empty result") return response @@ -847,7 +848,7 @@ def get_provenance(self, token, uri=None, page=None, page_size=None): return str(e) - def get_datafile(self, token, uri=None, page=None, page_size=None): + def get_datafile(self, uri=None, page=None, page_size=None): # Get specific datafile information by uri # Doesn't work # if uri: @@ -859,7 +860,7 @@ def get_datafile(self, token, uri=None, page=None, page_size=None): if uri: result = self.http_get(self.url + 'core/datafiles/' - + quote_plus(uri) + '/description', headers={'Authorization':token}) + + quote_plus(uri) + '/description', headers={'Authorization':self.token}) if result == 404: raise Exception("Datafile not found") return result @@ -880,7 +881,7 @@ def get_datafile(self, token, uri=None, page=None, page_size=None): url += '?' + query_string try: - response = self.http_get(url, headers={'Authorization':token}) + response = self.http_get(url, headers={'Authorization':self.token}) if response == 404: raise Exception("Empty result") return response diff --git a/test/test_phis.py b/test/test_phis.py index 7602b2f..62b6b31 100644 --- a/test/test_phis.py +++ b/test/test_phis.py @@ -35,29 +35,28 @@ def test_authenticate(): def test_get_experiment(): phis = Phis() - token, _ = phis.authenticate() # Search test - data = phis.get_experiment(token=token) + data = phis.get_experiment() assert data['result'] != [], "Request failed" # Filtered search test - data = phis.get_experiment(token=token, year=2022, is_ended=True, is_public=True) + data = phis.get_experiment(year=2022, is_ended=True, is_public=True) assert data['result'] != [], "Request failed" # Filtered search test without results - data = phis.get_experiment(token=token, year=200) + data = phis.get_experiment(year=200) assert data['result'] == [], "Expected no results, got data: " + data['result'] # Test with a valid URI try: - data = phis.get_experiment(uri='m3p:id/experiment/g2was2022', token=token) + data = phis.get_experiment(uri='m3p:id/experiment/g2was2022') except Exception as err: assert False, "Unexpected error: " + str(err) # Test with an invalid URI try: - data = phis.get_experiment(uri='m3p:id/experiment/wrong', token=token) + data = phis.get_experiment(uri='m3p:id/experiment/wrong') except Exception as err: assert True # Exception is expected else: @@ -66,22 +65,21 @@ def test_get_experiment(): def test_get_variable(): phis = Phis() - token, _ = phis.authenticate() # Search test - data = phis.get_variable(token=token) + data = phis.get_variable() if data['metadata']['pagination']['totalCount'] != 0: assert data['result'] != [], "Request failed" # Test with a valid URI try: - data = phis.get_variable(uri='http://phenome.inrae.fr/m3p/id/variable/ev000020', token=token) + data = phis.get_variable(uri='http://phenome.inrae.fr/m3p/id/variable/ev000020') except Exception as err: assert False, "Unexpected error: " + str(err) # Test with an invalid URI try: - data = phis.get_variable(uri='http://phenome.inrae.fr/m3p/id/variable/wrong', token=token) + data = phis.get_variable(uri='http://phenome.inrae.fr/m3p/id/variable/wrong') except Exception as err: assert True # Exception is expected else: @@ -90,22 +88,21 @@ def test_get_variable(): def test_get_project(): phis = Phis() - token, _ = phis.authenticate() # Search test - data = phis.get_project(token=token) + data = phis.get_project() if data['metadata']['pagination']['totalCount'] != 0: assert data['result'] != [], "Request failed" # Test with a valid URI try: - data = phis.get_project(uri='m3p:id/project/vitsec', token=token) + data = phis.get_project(uri='m3p:id/project/vitsec') except Exception as err: assert False, "Unexpected error: " + str(err) # Test with an invalid URI try: - data = phis.get_project(uri='m3p:id/project/wrong', token=token) + data = phis.get_project(uri='m3p:id/project/wrong') except Exception as err: assert True # Exception is expected else: @@ -114,22 +111,21 @@ def test_get_project(): def test_get_facility(): phis = Phis() - token, _ = phis.authenticate() # Search test - data = phis.get_facility(token=token) + data = phis.get_facility() if data['metadata']['pagination']['totalCount'] != 0: assert data['result'] != [], "Request failed" # Test with a valid URI try: - data = phis.get_facility(uri='m3p:id/organization/facility.phenoarch', token=token) + data = phis.get_facility(uri='m3p:id/organization/facility.phenoarch') except Exception as err: assert False, "Unexpected error: " + str(err) # Test with an invalid URI try: - data = phis.get_facility(uri='m3p:id/organization/wrong', token=token) + data = phis.get_facility(uri='m3p:id/organization/wrong') except Exception as err: assert True # Exception is expected else: @@ -138,22 +134,21 @@ def test_get_facility(): def test_get_germplasm(): phis = Phis() - token, _ = phis.authenticate() # Search test - data = phis.get_germplasm(token=token) + data = phis.get_germplasm() if data['metadata']['pagination']['totalCount'] != 0: assert data['result'] != [], "Request failed" # Test with a valid URI try: - data = phis.get_germplasm(uri='http://aims.fao.org/aos/agrovoc/c_1066', token=token) + data = phis.get_germplasm(uri='http://aims.fao.org/aos/agrovoc/c_1066') except Exception as err: assert False, "Unexpected error: " + str(err) # Test with an invalid URI try: - data = phis.get_germplasm(uri='http://aims.fao.org/aos/agrovoc/wrong', token=token) + data = phis.get_germplasm(uri='http://aims.fao.org/aos/agrovoc/wrong') except Exception as err: assert True # Exception is expected else: @@ -162,22 +157,21 @@ def test_get_germplasm(): def test_get_device(): phis = Phis() - token, _ = phis.authenticate() # Search test - data = phis.get_device(token=token) + data = phis.get_device() if data['metadata']['pagination']['totalCount'] != 0: assert data['result'] != [], "Request failed" # Test with a valid URI try: - data = phis.get_device(uri='http://www.phenome-fppn.fr/m3p/ec1/2016/sa1600064', token=token) + data = phis.get_device(uri='http://www.phenome-fppn.fr/m3p/ec1/2016/sa1600064') except Exception as err: assert False, "Unexpected error: " + str(err) # Test with an invalid URI try: - data = phis.get_device(uri='http://www.phenome-fppn.fr/m3p/ec1/2016/wrong', token=token) + data = phis.get_device(uri='http://www.phenome-fppn.fr/m3p/ec1/2016/wrong') except Exception as err: assert True # Exception is expected else: @@ -186,232 +180,216 @@ def test_get_device(): def test_get_annotation(): phis = Phis() - token, _ = phis.authenticate() # Search test - data = phis.get_annotation(token=token) + data = phis.get_annotation() if data['metadata']['pagination']['totalCount'] != 0: assert data['result'] != [], "Request failed" # Test with a valid URI # No URIs # try: - # data = phis.get_annotation(uri='', token=token) + # data = phis.get_annotation(uri='') # except Exception as err: # assert False, "Unexpected error: " + str(err) def test_get_document(): phis = Phis() - token, _ = phis.authenticate() # Search test - data = phis.get_document(token=token) + data = phis.get_document() if data['metadata']['pagination']['totalCount'] != 0: assert data['result'] != [], "Request failed" # Test with a valid URI try: - data = phis.get_document(uri='m3p:id/document/test_dataset', token=token) + data = phis.get_document(uri='m3p:id/document/test_dataset') except Exception as err: assert False, "Unexpected error: " + str(err) def test_get_factor(): phis = Phis() - token, _ = phis.authenticate() # Search test - data = phis.get_factor(token=token) + data = phis.get_factor() if data['metadata']['pagination']['totalCount'] != 0: assert data['result'] != [], "Request failed" # Test with a valid URI # No URIs # try: - # data = phis.get_factor(uri='', token=token) + # data = phis.get_factor(uri='') # except Exception as err: # assert False, "Unexpected error: " + str(err) def test_get_organization(): phis = Phis() - token, _ = phis.authenticate() # Search test - data = phis.get_organization(token=token) + data = phis.get_organization() if data['metadata']['pagination']['totalCount'] != 0: assert data['result'] != [], "Request failed" # Test with a valid URI try: - data = phis.get_organization(uri='m3p:id/organization/phenoarch', token=token) + data = phis.get_organization(uri='m3p:id/organization/phenoarch') except Exception as err: assert False, "Unexpected error: " + str(err) def test_get_site(): phis = Phis() - token, _ = phis.authenticate() # Search test - data = phis.get_site(token=token) + data = phis.get_site() if data['metadata']['pagination']['totalCount'] != 0: assert data['result'] != [], "Request failed" # Test with a valid URI # No URIs # try: - # data = phis.get_site(uri='', token=token) + # data = phis.get_site(uri='') # except Exception as err: # assert False, "Unexpected error: " + str(err) def test_get_scientific_object(): phis = Phis() - token, _ = phis.authenticate() # Search test - data = phis.get_scientific_object(token=token) + data = phis.get_scientific_object() if data['metadata']['pagination']['totalCount'] != 0: assert data['result'] != [], "Request failed" # Test with a valid URI try: - data = phis.get_scientific_object(uri='m3p:id/scientific-object/za20/so-0001zm4531eppn7_lwd1eppn_rep_101_01arch2020-02-03', - token=token) + data = phis.get_scientific_object(uri='m3p:id/scientific-object/za20/so-0001zm4531eppn7_lwd1eppn_rep_101_01arch2020-02-03') except Exception as err: assert False, "Unexpected error: " + str(err) def test_get_species(): phis = Phis() - token, _ = phis.authenticate() # Search test - data = phis.get_species(token=token) + data = phis.get_species() if data['metadata']['pagination']['totalCount'] != 0: assert data['result'] != [], "Request failed" def test_get_system_info(): phis = Phis() - token, _ = phis.authenticate() # Search test - data = phis.get_system_info(token=token) + data = phis.get_system_info() if data['metadata']['pagination']['totalCount'] != 0: assert data['result'] != [], "Request failed" def test_get_characteristic(): phis = Phis() - token, _ = phis.authenticate() # Search test - data = phis.get_characteristic(token=token) + data = phis.get_characteristic() if data['metadata']['pagination']['totalCount'] != 0: assert data['result'] != [], "Request failed" # Test with a valid URI try: - data = phis.get_characteristic(uri='http://phenome.inrae.fr/m3p/id/variable/characteristic.humidity', token=token) + data = phis.get_characteristic(uri='http://phenome.inrae.fr/m3p/id/variable/characteristic.humidity') except Exception as err: assert False, "Unexpected error: " + str(err) def test_get_entity(): phis = Phis() - token, _ = phis.authenticate() # Search test - data = phis.get_entity(token=token) + data = phis.get_entity() if data['metadata']['pagination']['totalCount'] != 0: assert data['result'] != [], "Request failed" # Test with a valid URI try: - data = phis.get_entity(uri='http://phenome.inrae.fr/m3p/id/variable/entity.solar', token=token) + data = phis.get_entity(uri='http://phenome.inrae.fr/m3p/id/variable/entity.solar') except Exception as err: assert False, "Unexpected error: " + str(err) def test_get_entity_of_interest(): phis = Phis() - token, _ = phis.authenticate() # Search test - data = phis.get_entity_of_interest(token=token) + data = phis.get_entity_of_interest() if data['metadata']['pagination']['totalCount'] != 0: assert data['result'] != [], "Request failed" # Test with a valid URI # No URIs # try: - # data = phis.get_entity_of_interest(uri='', token=token) + # data = phis.get_entity_of_interest(uri='') # except Exception as err: # assert False, "Unexpected error: " + err def test_get_method(): phis = Phis() - token, _ = phis.authenticate() # Search test - data = phis.get_method(token=token) + data = phis.get_method() if data['metadata']['pagination']['totalCount'] != 0: assert data['result'] != [], "Request failed" # Test with a valid URI try: - data = phis.get_method(uri='http://phenome.inrae.fr/m3p/id/variable/method.measurement', token=token) + data = phis.get_method(uri='http://phenome.inrae.fr/m3p/id/variable/method.measurement') except Exception as err: assert False, "Unexpected error: " + str(err) def test_get_unit(): phis = Phis() - token, _ = phis.authenticate() # Search test - data = phis.get_unit(token=token) + data = phis.get_unit() if data['metadata']['pagination']['totalCount'] != 0: assert data['result'] != [], "Request failed" # Test with a valid URI try: - data = phis.get_unit(uri='http://qudt.org/vocab/unit/J', token=token) + data = phis.get_unit(uri='http://qudt.org/vocab/unit/J') except Exception as err: assert False, "Unexpected error: " + str(err) def test_get_provenance(): phis = Phis() - token, _ = phis.authenticate() # Search test - data = phis.get_provenance(token=token) + data = phis.get_provenance() if data['metadata']['pagination']['totalCount'] != 0: assert data['result'] != [], "Request failed" # Test with a valid URI try: - data = phis.get_provenance(uri='http://www.phenome-fppn.fr/m3p/Prov_watering_WateringStation05_6l', token=token) + data = phis.get_provenance(uri='http://www.phenome-fppn.fr/m3p/Prov_watering_WateringStation05_6l') except Exception as err: assert False, "Unexpected error: " + str(err) def test_get_datafile(): phis = Phis() - token, _ = phis.authenticate() # Search test - data = phis.get_datafile(token=token) + data = phis.get_datafile() if data['metadata']['pagination']['totalCount'] != 0: assert data['result'] != [], "Request failed" # Test with a valid URI try: - data = phis.get_datafile(uri='m3p:id/file/1597964400.af46ac07f735ced228cf181aa85ebced', token=token) + data = phis.get_datafile(uri='m3p:id/file/1597964400.af46ac07f735ced228cf181aa85ebced') except Exception as err: assert False, "Unexpected error: " + str(err) \ No newline at end of file From da0f0bfa3e1c4415dfe6168f0cf8f92a0010e4a9 Mon Sep 17 00:00:00 2001 From: fedur8 Date: Tue, 18 Jun 2024 16:14:48 +0200 Subject: [PATCH 07/12] Phis quickstart update --- example/phis/quickstart.ipynb | 248 ++++++++++++++-------------------- 1 file changed, 105 insertions(+), 143 deletions(-) diff --git a/example/phis/quickstart.ipynb b/example/phis/quickstart.ipynb index d7f158c..1d18600 100644 --- a/example/phis/quickstart.ipynb +++ b/example/phis/quickstart.ipynb @@ -47,7 +47,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "eyJhbGciOiJSUzUxMiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJvcGVuc2lsZXgiLCJzdWIiOiJtM3A6aWQvdXNlci9hY2NvdW50LnBoZW5vYXJjaGxlcHNlaW5yYWZyIiwiaWF0IjoxNzE4NjMyNDYwLCJleHAiOjE3MTg2MzUxNjAsImdpdmVuX25hbWUiOiJwaGVub2FyY2giLCJmYW1pbHlfbmFtZSI6ImxlcHNlIiwiZW1haWwiOiJwaGVub2FyY2hAbGVwc2UuaW5yYS5mciIsIm5hbWUiOiJwaGVub2FyY2hAbGVwc2UuaW5yYS5mciIsImxvY2FsZSI6ImVuIiwiaXNfYWRtaW4iOmZhbHNlLCJjcmVkZW50aWFsc19saXN0IjpbImFjY291bnQtYWNjZXNzIiwiZGF0YS1hY2Nlc3MiLCJkZXZpY2UtYWNjZXNzIiwiZG9jdW1lbnQtYWNjZXNzIiwiZXZlbnQtYWNjZXNzIiwiZXhwZXJpbWVudC1hY2Nlc3MiLCJmYWNpbGl0eS1hY2Nlc3MiLCJnZXJtcGxhc20tYWNjZXNzIiwiZ3JvdXAtYWNjZXNzIiwib3JnYW5pemF0aW9uLWFjY2VzcyIsInByb2plY3QtYWNjZXNzIiwicHJvdmVuYW5jZS1hY2Nlc3MiLCJzY2llbnRpZmljLW9iamVjdHMtYWNjZXNzIiwidmFyaWFibGUtYWNjZXNzIiwidm9jYWJ1bGFyeS1hY2Nlc3MiXX0.C4ro-2HodcctvrahqpQ3DNZY1GnfrhWw-GnCPuAURzLVnbPlD02311Kr6e2hlNALcioFZoA6COwkahj8GFRZHB4KxoRVqSeapJMELLth0XI0X2461HtgcJkbfY5_TrYPuaTmFni7X6XkvyYnyusOAoONkZFORBAH3iH2hAXF1I-_rHosSXFzN9byxICQl3zWpAYkZgzBRul_Mepfj-U_vlIWXgXBnQ2iInwuEaca3kwO9WFimrjLEF0YzSR1deWuV9HJSQ0p_3YgqJKYWiN5-tRJvR6xnAVLj3ojamqto7UCJm7zoeAN7N8CY4QowgtxYUXx2a5M-7DkqqtcLHlXjw\n", + "eyJhbGciOiJSUzUxMiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJvcGVuc2lsZXgiLCJzdWIiOiJtM3A6aWQvdXNlci9hY2NvdW50LnBoZW5vYXJjaGxlcHNlaW5yYWZyIiwiaWF0IjoxNzE4NzE5OTc4LCJleHAiOjE3MTg3MjI2NzgsImdpdmVuX25hbWUiOiJwaGVub2FyY2giLCJmYW1pbHlfbmFtZSI6ImxlcHNlIiwiZW1haWwiOiJwaGVub2FyY2hAbGVwc2UuaW5yYS5mciIsIm5hbWUiOiJwaGVub2FyY2hAbGVwc2UuaW5yYS5mciIsImxvY2FsZSI6ImVuIiwiaXNfYWRtaW4iOmZhbHNlLCJjcmVkZW50aWFsc19saXN0IjpbImFjY291bnQtYWNjZXNzIiwiZGF0YS1hY2Nlc3MiLCJkZXZpY2UtYWNjZXNzIiwiZG9jdW1lbnQtYWNjZXNzIiwiZXZlbnQtYWNjZXNzIiwiZXhwZXJpbWVudC1hY2Nlc3MiLCJmYWNpbGl0eS1hY2Nlc3MiLCJnZXJtcGxhc20tYWNjZXNzIiwiZ3JvdXAtYWNjZXNzIiwib3JnYW5pemF0aW9uLWFjY2VzcyIsInByb2plY3QtYWNjZXNzIiwicHJvdmVuYW5jZS1hY2Nlc3MiLCJzY2llbnRpZmljLW9iamVjdHMtYWNjZXNzIiwidmFyaWFibGUtYWNjZXNzIiwidm9jYWJ1bGFyeS1hY2Nlc3MiXX0.nbMnE5chzpWwwwXMP-Ls8mSU1qNvFOzo1kK9PXAJoArt2rDIa0-VmVww_J4iqV4YQVqJFh1d3DwsMVnqV0_iezOOuQFk4X4v6hC2uTFs_nT6dipCrWoF-IneK1WF6Bg782BzkN6-yGykglgdi2RqTEMIjC3Qe38EF17U8dMO604pRQvt9LOeD-iys_OiXv8pluHRIXJoRgmzHS_sxYTZgF_bTPTpayH2jeVXV8eUs-rxkydX8CwmpX3BHJXLjgYk9xlla1Hh5LsgTnWW3vGS7M_gzCfBeCB7YqdMcIU6nAO-HumfQimVSKpcDatblboBVtMVCo6Zw82-GskmkKkR5Q\n", "-\n", "200\n" ] @@ -112,7 +112,7 @@ } ], "source": [ - "phis.get_experiment(token)" + "phis.get_experiment()" ] }, { @@ -194,7 +194,7 @@ } ], "source": [ - "phis.get_experiment(uri='m3p:id/experiment/g2was2022', token=token)" + "phis.get_experiment(uri='m3p:id/experiment/g2was2022')" ] }, { @@ -455,7 +455,7 @@ } ], "source": [ - "phis.get_variable(token=token)" + "phis.get_variable()" ] }, { @@ -528,7 +528,7 @@ } ], "source": [ - "phis.get_variable(uri='http://phenome.inrae.fr/m3p/id/variable/ev000020', token=token)" + "phis.get_variable(uri='http://phenome.inrae.fr/m3p/id/variable/ev000020')" ] }, { @@ -904,7 +904,7 @@ } ], "source": [ - "phis.get_project(token=token)" + "phis.get_project()" ] }, { @@ -965,7 +965,7 @@ } ], "source": [ - "phis.get_project(uri='m3p:id/project/vitsec', token=token)" + "phis.get_project(uri='m3p:id/project/vitsec')" ] }, { @@ -1066,7 +1066,7 @@ } ], "source": [ - "phis.get_facility(token=token)" + "phis.get_facility()" ] }, { @@ -1115,52 +1115,7 @@ } ], "source": [ - "phis.get_facility(uri='m3p:id/organization/facility.phenoarch', token=token)" - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "id": "20704042-b0fb-4423-a16d-b880aa9d80d1", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "({'uri': 'm3p:id/organization/facility.phenoarch',\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None,\n", - " 'rdf_type': 'vocabulary:Greenhouse',\n", - " 'rdf_type_name': 'greenhouse',\n", - " 'name': 'phenoarch',\n", - " 'organizations': [],\n", - " 'sites': [],\n", - " 'address': None,\n", - " 'variableGroups': [],\n", - " 'geometry': None,\n", - " 'relations': []},)" - ] - }, - "execution_count": 11, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - " {'uri': 'm3p:id/organization/facility.phenoarch',\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None,\n", - " 'rdf_type': 'vocabulary:Greenhouse',\n", - " 'rdf_type_name': 'greenhouse',\n", - " 'name': 'phenoarch',\n", - " 'organizations': [],\n", - " 'sites': [],\n", - " 'address': None,\n", - " 'variableGroups': [],\n", - " 'geometry': None,\n", - " 'relations': []}," + "phis.get_facility(uri='m3p:id/organization/facility.phenoarch')" ] }, { @@ -1173,7 +1128,7 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 11, "id": "04fe01d1-8cf8-406f-8760-ce13b9ad971d", "metadata": {}, "outputs": [ @@ -2090,13 +2045,13 @@ " 'last_updated_date': None}]}" ] }, - "execution_count": 12, + "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "phis.get_germplasm(token=token)" + "phis.get_germplasm()" ] }, { @@ -2109,7 +2064,7 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 12, "id": "f41c781e-6f93-427b-96bc-e273fa939d72", "metadata": {}, "outputs": [ @@ -2149,13 +2104,13 @@ " 'metadata': None}}" ] }, - "execution_count": 13, + "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "phis.get_germplasm(uri='http://aims.fao.org/aos/agrovoc/c_1066', token=token)" + "phis.get_germplasm(uri='http://aims.fao.org/aos/agrovoc/c_1066')" ] }, { @@ -2168,7 +2123,7 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 13, "id": "3bc8180f-a5f0-4d91-a927-61dcfdf834d5", "metadata": {}, "outputs": [ @@ -3760,13 +3715,13 @@ " 'last_updated_date': None}]}" ] }, - "execution_count": 14, + "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "phis.get_device(token=token)" + "phis.get_device()" ] }, { @@ -3779,7 +3734,7 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": 14, "id": "e8193235-e5ac-4186-906f-b0d3f3a7808b", "metadata": {}, "outputs": [ @@ -3814,13 +3769,13 @@ " 'last_updated_date': None}}" ] }, - "execution_count": 15, + "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "phis.get_device(uri='http://www.phenome-fppn.fr/m3p/ec1/2016/sa1600064', token=token)" + "phis.get_device(uri='http://www.phenome-fppn.fr/m3p/ec1/2016/sa1600064')" ] }, { @@ -3833,7 +3788,7 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": 15, "id": "6c4fbe53-45ef-4679-ace1-9c7d21733552", "metadata": {}, "outputs": [ @@ -3851,13 +3806,13 @@ " 'result': []}" ] }, - "execution_count": 16, + "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "phis.get_annotation(token=token)" + "phis.get_annotation()" ] }, { @@ -3870,7 +3825,7 @@ }, { "cell_type": "code", - "execution_count": 17, + "execution_count": 16, "id": "ec7ab620-d520-49fe-9646-eecea5ca84fe", "metadata": {}, "outputs": [], @@ -3888,7 +3843,7 @@ }, { "cell_type": "code", - "execution_count": 18, + "execution_count": 17, "id": "26b13101-bad6-4767-8cc5-2df08ec12399", "metadata": {}, "outputs": [ @@ -3956,13 +3911,13 @@ " 'source': 'https://data-preproduction.inrae.fr/dataset.xhtml?persistentId=doi%3A10.82233%2FBFHMFT'}]}" ] }, - "execution_count": 18, + "execution_count": 17, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "phis.get_document(token=token)" + "phis.get_document()" ] }, { @@ -3975,7 +3930,7 @@ }, { "cell_type": "code", - "execution_count": 19, + "execution_count": 18, "id": "3069fe3f-cda6-4bca-a1f6-02e53abc85c5", "metadata": {}, "outputs": [ @@ -4009,13 +3964,13 @@ " 'source': 'https://data-preproduction.inrae.fr/dataset.xhtml?persistentId=doi%3A10.82233%2FBFHMFT'}}" ] }, - "execution_count": 19, + "execution_count": 18, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "phis.get_document(uri='m3p:id/document/test_dataset', token=token)" + "phis.get_document(uri='m3p:id/document/test_dataset')" ] }, { @@ -4028,7 +3983,7 @@ }, { "cell_type": "code", - "execution_count": 20, + "execution_count": 19, "id": "acf07aee-51ad-47f8-adc7-c3d023c98e32", "metadata": {}, "outputs": [ @@ -4046,13 +4001,13 @@ " 'result': []}" ] }, - "execution_count": 20, + "execution_count": 19, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "phis.get_factor(token=token)" + "phis.get_factor()" ] }, { @@ -4065,7 +4020,7 @@ }, { "cell_type": "code", - "execution_count": 21, + "execution_count": 20, "id": "10363530-849e-43d0-9376-f87a68e4183f", "metadata": {}, "outputs": [], @@ -4083,7 +4038,7 @@ }, { "cell_type": "code", - "execution_count": 22, + "execution_count": 21, "id": "cce64d6b-4330-4049-a8ba-60d1ed8d59d4", "metadata": {}, "outputs": [ @@ -4150,13 +4105,13 @@ " 'last_updated_date': None}]}" ] }, - "execution_count": 22, + "execution_count": 21, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "phis.get_organization(token=token)" + "phis.get_organization()" ] }, { @@ -4169,7 +4124,7 @@ }, { "cell_type": "code", - "execution_count": 23, + "execution_count": 22, "id": "4fa69cce-3be1-4730-9f2b-077c8c8e5e18", "metadata": {}, "outputs": [ @@ -4251,13 +4206,13 @@ " 'last_updated_date': '2024-02-20T10:42:40.334917+01:00'}]}}" ] }, - "execution_count": 23, + "execution_count": 22, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "phis.get_organization(uri='m3p:id/organization/phenoarch', token=token)" + "phis.get_organization(uri='m3p:id/organization/phenoarch')" ] }, { @@ -4270,7 +4225,7 @@ }, { "cell_type": "code", - "execution_count": 24, + "execution_count": 23, "id": "7df0c881-e1c1-4d54-9ca6-f971410d67d3", "metadata": {}, "outputs": [ @@ -4288,13 +4243,13 @@ " 'result': []}" ] }, - "execution_count": 24, + "execution_count": 23, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "phis.get_site(token=token)" + "phis.get_site()" ] }, { @@ -4307,7 +4262,7 @@ }, { "cell_type": "code", - "execution_count": 25, + "execution_count": 24, "id": "3ecafefc-4d1f-414b-b53c-303d12d70025", "metadata": {}, "outputs": [], @@ -4325,7 +4280,7 @@ }, { "cell_type": "code", - "execution_count": 26, + "execution_count": 25, "id": "4d7f5802-ca38-4134-a744-46d2e864ff70", "metadata": {}, "outputs": [ @@ -5242,13 +5197,13 @@ " 'destruction_date': None}]}" ] }, - "execution_count": 26, + "execution_count": 25, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "phis.get_scientific_object(token=token)" + "phis.get_scientific_object()" ] }, { @@ -5261,7 +5216,7 @@ }, { "cell_type": "code", - "execution_count": 27, + "execution_count": 26, "id": "8779f4e4-2c2f-44c9-b7dc-6a6850d7d4dd", "metadata": {}, "outputs": [ @@ -5290,14 +5245,13 @@ " 'geometry': None}}" ] }, - "execution_count": 27, + "execution_count": 26, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "phis.get_scientific_object(uri='m3p:id/scientific-object/za20/so-0001zm4531eppn7_lwd1eppn_rep_101_01arch2020-02-03',\n", - " token=token)" + "phis.get_scientific_object(uri='m3p:id/scientific-object/za20/so-0001zm4531eppn7_lwd1eppn_rep_101_01arch2020-02-03')" ] }, { @@ -5310,7 +5264,7 @@ }, { "cell_type": "code", - "execution_count": 28, + "execution_count": 27, "id": "efe065de-1b7a-4c35-9efe-73f97a2c2c5d", "metadata": {}, "outputs": [ @@ -5343,13 +5297,13 @@ " 'name': 'Temperature'}]}" ] }, - "execution_count": 28, + "execution_count": 27, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "phis.get_characteristic(token=token)" + "phis.get_characteristic()" ] }, { @@ -5362,7 +5316,7 @@ }, { "cell_type": "code", - "execution_count": 29, + "execution_count": 28, "id": "49f96e29-61c4-49c5-8105-f706de3991ab", "metadata": {}, "outputs": [ @@ -5390,13 +5344,13 @@ " 'from_shared_resource_instance': None}}" ] }, - "execution_count": 29, + "execution_count": 28, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "phis.get_characteristic(uri='http://phenome.inrae.fr/m3p/id/variable/characteristic.humidity', token=token)" + "phis.get_characteristic(uri='http://phenome.inrae.fr/m3p/id/variable/characteristic.humidity')" ] }, { @@ -5409,7 +5363,7 @@ }, { "cell_type": "code", - "execution_count": 30, + "execution_count": 29, "id": "c98396dc-3cc9-4613-a697-6e961ff80220", "metadata": {}, "outputs": [ @@ -5437,13 +5391,13 @@ " 'name': 'Water'}]}" ] }, - "execution_count": 30, + "execution_count": 29, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "phis.get_entity(token=token)" + "phis.get_entity()" ] }, { @@ -5456,7 +5410,7 @@ }, { "cell_type": "code", - "execution_count": 31, + "execution_count": 30, "id": "9a115d99-4e40-4c64-9477-220c6378e189", "metadata": {}, "outputs": [ @@ -5484,13 +5438,13 @@ " 'from_shared_resource_instance': None}}" ] }, - "execution_count": 31, + "execution_count": 30, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "phis.get_entity(uri='http://phenome.inrae.fr/m3p/id/variable/entity.solar', token=token)" + "phis.get_entity(uri='http://phenome.inrae.fr/m3p/id/variable/entity.solar')" ] }, { @@ -5503,7 +5457,7 @@ }, { "cell_type": "code", - "execution_count": 32, + "execution_count": 31, "id": "12aa6de7-c1d0-4648-b636-a7c4dc83bf77", "metadata": {}, "outputs": [ @@ -5521,13 +5475,13 @@ " 'result': []}" ] }, - "execution_count": 32, + "execution_count": 31, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "phis.get_entity_of_interest(token=token)" + "phis.get_entity_of_interest()" ] }, { @@ -5540,7 +5494,7 @@ }, { "cell_type": "code", - "execution_count": 33, + "execution_count": 32, "id": "357329e0-4c17-49ba-a585-c57eefe61602", "metadata": {}, "outputs": [], @@ -5558,7 +5512,7 @@ }, { "cell_type": "code", - "execution_count": 34, + "execution_count": 33, "id": "e89debc4-50a9-4e57-9532-654a463a320a", "metadata": {}, "outputs": [ @@ -5596,13 +5550,13 @@ " 'name': 'Upper near-surface'}]}" ] }, - "execution_count": 34, + "execution_count": 33, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "phis.get_method(token=token)" + "phis.get_method()" ] }, { @@ -5615,7 +5569,7 @@ }, { "cell_type": "code", - "execution_count": 35, + "execution_count": 34, "id": "17c00ccd-0b06-4d53-925d-fc7716bc35ba", "metadata": {}, "outputs": [ @@ -5643,13 +5597,13 @@ " 'from_shared_resource_instance': None}}" ] }, - "execution_count": 35, + "execution_count": 34, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "phis.get_method(uri='http://phenome.inrae.fr/m3p/id/variable/method.measurement', token=token)" + "phis.get_method(uri='http://phenome.inrae.fr/m3p/id/variable/method.measurement')" ] }, { @@ -5662,7 +5616,7 @@ }, { "cell_type": "code", - "execution_count": 36, + "execution_count": 35, "id": "a5a14d0f-a53d-453c-95db-fc0e6f898c66", "metadata": {}, "outputs": [ @@ -5697,13 +5651,13 @@ " 'name': 'watt per square meter'}]}" ] }, - "execution_count": 36, + "execution_count": 35, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "phis.get_unit(token=token)" + "phis.get_unit()" ] }, { @@ -5716,7 +5670,7 @@ }, { "cell_type": "code", - "execution_count": 37, + "execution_count": 36, "id": "86d4a3d3-3800-4134-a555-689461cac2d6", "metadata": {}, "outputs": [ @@ -5754,13 +5708,13 @@ " 'from_shared_resource_instance': None}}" ] }, - "execution_count": 37, + "execution_count": 36, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "phis.get_unit(uri='http://qudt.org/vocab/unit/J', token=token)" + "phis.get_unit(uri='http://qudt.org/vocab/unit/J')" ] }, { @@ -5773,7 +5727,7 @@ }, { "cell_type": "code", - "execution_count": 38, + "execution_count": 37, "id": "d9bbf18f-a044-4800-998a-b8e16e8a03d0", "metadata": {}, "outputs": [ @@ -7253,13 +7207,13 @@ " 'modified': None}]}" ] }, - "execution_count": 38, + "execution_count": 37, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "phis.get_provenance(token=token)" + "phis.get_provenance()" ] }, { @@ -7272,7 +7226,7 @@ }, { "cell_type": "code", - "execution_count": 39, + "execution_count": 38, "id": "17dd3c58-4736-4078-8430-1ee607cb6b96", "metadata": {}, "outputs": [ @@ -7309,13 +7263,13 @@ " 'modified': None}}" ] }, - "execution_count": 39, + "execution_count": 38, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "phis.get_provenance(uri='http://www.phenome-fppn.fr/m3p/Prov_watering_WateringStation05_6l', token=token)" + "phis.get_provenance(uri='http://www.phenome-fppn.fr/m3p/Prov_watering_WateringStation05_6l')" ] }, { @@ -7328,7 +7282,7 @@ }, { "cell_type": "code", - "execution_count": 40, + "execution_count": 39, "id": "13fd53b9-2138-4b36-b48f-21a5f91f54dc", "metadata": {}, "outputs": [ @@ -7360,13 +7314,13 @@ " 'issued': None}]}" ] }, - "execution_count": 40, + "execution_count": 39, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "phis.get_datafile(token=token)" + "phis.get_datafile()" ] }, { @@ -7379,7 +7333,7 @@ }, { "cell_type": "code", - "execution_count": 41, + "execution_count": 40, "id": "149d8501-413d-4d15-bcd1-ea2c9eb182b8", "metadata": {}, "outputs": [ @@ -7411,13 +7365,13 @@ " 'issued': None}}" ] }, - "execution_count": 41, + "execution_count": 40, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "phis.get_datafile(uri='m3p:id/file/1597964400.af46ac07f735ced228cf181aa85ebced', token=token)" + "phis.get_datafile(uri='m3p:id/file/1597964400.af46ac07f735ced228cf181aa85ebced')" ] }, { @@ -7430,7 +7384,7 @@ }, { "cell_type": "code", - "execution_count": 42, + "execution_count": 41, "id": "7ee85624-495d-4a36-860b-1fe407ab5491", "metadata": {}, "outputs": [ @@ -7462,13 +7416,13 @@ " {'uri': 'http://aims.fao.org/aos/agrovoc/c_3339', 'name': 'upland cotton'}]}" ] }, - "execution_count": 42, + "execution_count": 41, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "phis.get_species(token=token)" + "phis.get_species()" ] }, { @@ -7481,7 +7435,7 @@ }, { "cell_type": "code", - "execution_count": 43, + "execution_count": 42, "id": "4876c969-c954-417c-875f-7c6fe72a7fe2", "metadata": {}, "outputs": [ @@ -7526,14 +7480,22 @@ " 'github_page': 'https://github.com/OpenSILEX/opensilex'}}" ] }, - "execution_count": 43, + "execution_count": 42, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "phis.get_system_info(token=token)" + "phis.get_system_info()" ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "10c3272a-2c8b-4bcc-802c-d88679afbe63", + "metadata": {}, + "outputs": [], + "source": [] } ], "metadata": { From b52f711fb0235901fd40803080a2338c49caf770 Mon Sep 17 00:00:00 2001 From: fedur8 Date: Tue, 18 Jun 2024 16:31:18 +0200 Subject: [PATCH 08/12] Adding Phis user interface --- src/agroservices/phis/phis_interface.py | 33 +++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 src/agroservices/phis/phis_interface.py diff --git a/src/agroservices/phis/phis_interface.py b/src/agroservices/phis/phis_interface.py new file mode 100644 index 0000000..4816655 --- /dev/null +++ b/src/agroservices/phis/phis_interface.py @@ -0,0 +1,33 @@ + + + +from agroservices.phis.phis import Phis +PAGE_SIZE_ALL = 10000 + +class Phis_UI(Phis): + def __init__(self): + super().__init__() + self.token, _ =self.authenticate() + self.devices_all = None + + + def get_device_details(self, device_name): + if self.devices_all == None: + self.devices_all = phis_ui.get_device(page_size=PAGE_SIZE_ALL) + for item in self.devices_all['result']: + if item['name'] == device_name: + return item + return None + + +phis_ui = Phis_UI() + +#get all devices and print names +phis_ui.devices_all = phis_ui.get_device(page_size=PAGE_SIZE_ALL) +for item in phis_ui.devices_all['result']: + print(item['name']) +print() + +#show device details by name +emb7_details = phis_ui.get_device_details('Emb_7') +print(emb7_details) \ No newline at end of file From 4b503a5056049b27240e4059ef6fe14a04eb7e7c Mon Sep 17 00:00:00 2001 From: fedur8 Date: Wed, 19 Jun 2024 16:11:07 +0200 Subject: [PATCH 09/12] Adding a Phis function --- example/phis/quickstart.ipynb | 433 +++++++++++++++++++++++++++++++++- src/agroservices/phis/phis.py | 41 +++- test/test_phis.py | 15 ++ 3 files changed, 474 insertions(+), 15 deletions(-) diff --git a/example/phis/quickstart.ipynb b/example/phis/quickstart.ipynb index 1d18600..b7e3948 100644 --- a/example/phis/quickstart.ipynb +++ b/example/phis/quickstart.ipynb @@ -47,7 +47,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "eyJhbGciOiJSUzUxMiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJvcGVuc2lsZXgiLCJzdWIiOiJtM3A6aWQvdXNlci9hY2NvdW50LnBoZW5vYXJjaGxlcHNlaW5yYWZyIiwiaWF0IjoxNzE4NzE5OTc4LCJleHAiOjE3MTg3MjI2NzgsImdpdmVuX25hbWUiOiJwaGVub2FyY2giLCJmYW1pbHlfbmFtZSI6ImxlcHNlIiwiZW1haWwiOiJwaGVub2FyY2hAbGVwc2UuaW5yYS5mciIsIm5hbWUiOiJwaGVub2FyY2hAbGVwc2UuaW5yYS5mciIsImxvY2FsZSI6ImVuIiwiaXNfYWRtaW4iOmZhbHNlLCJjcmVkZW50aWFsc19saXN0IjpbImFjY291bnQtYWNjZXNzIiwiZGF0YS1hY2Nlc3MiLCJkZXZpY2UtYWNjZXNzIiwiZG9jdW1lbnQtYWNjZXNzIiwiZXZlbnQtYWNjZXNzIiwiZXhwZXJpbWVudC1hY2Nlc3MiLCJmYWNpbGl0eS1hY2Nlc3MiLCJnZXJtcGxhc20tYWNjZXNzIiwiZ3JvdXAtYWNjZXNzIiwib3JnYW5pemF0aW9uLWFjY2VzcyIsInByb2plY3QtYWNjZXNzIiwicHJvdmVuYW5jZS1hY2Nlc3MiLCJzY2llbnRpZmljLW9iamVjdHMtYWNjZXNzIiwidmFyaWFibGUtYWNjZXNzIiwidm9jYWJ1bGFyeS1hY2Nlc3MiXX0.nbMnE5chzpWwwwXMP-Ls8mSU1qNvFOzo1kK9PXAJoArt2rDIa0-VmVww_J4iqV4YQVqJFh1d3DwsMVnqV0_iezOOuQFk4X4v6hC2uTFs_nT6dipCrWoF-IneK1WF6Bg782BzkN6-yGykglgdi2RqTEMIjC3Qe38EF17U8dMO604pRQvt9LOeD-iys_OiXv8pluHRIXJoRgmzHS_sxYTZgF_bTPTpayH2jeVXV8eUs-rxkydX8CwmpX3BHJXLjgYk9xlla1Hh5LsgTnWW3vGS7M_gzCfBeCB7YqdMcIU6nAO-HumfQimVSKpcDatblboBVtMVCo6Zw82-GskmkKkR5Q\n", + "eyJhbGciOiJSUzUxMiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJvcGVuc2lsZXgiLCJzdWIiOiJtM3A6aWQvdXNlci9hY2NvdW50LnBoZW5vYXJjaGxlcHNlaW5yYWZyIiwiaWF0IjoxNzE4ODAzNzc3LCJleHAiOjE3MTg4MDY0NzcsImdpdmVuX25hbWUiOiJwaGVub2FyY2giLCJmYW1pbHlfbmFtZSI6ImxlcHNlIiwiZW1haWwiOiJwaGVub2FyY2hAbGVwc2UuaW5yYS5mciIsIm5hbWUiOiJwaGVub2FyY2hAbGVwc2UuaW5yYS5mciIsImxvY2FsZSI6ImVuIiwiaXNfYWRtaW4iOmZhbHNlLCJjcmVkZW50aWFsc19saXN0IjpbImFjY291bnQtYWNjZXNzIiwiZGF0YS1hY2Nlc3MiLCJkZXZpY2UtYWNjZXNzIiwiZG9jdW1lbnQtYWNjZXNzIiwiZXZlbnQtYWNjZXNzIiwiZXhwZXJpbWVudC1hY2Nlc3MiLCJmYWNpbGl0eS1hY2Nlc3MiLCJnZXJtcGxhc20tYWNjZXNzIiwiZ3JvdXAtYWNjZXNzIiwib3JnYW5pemF0aW9uLWFjY2VzcyIsInByb2plY3QtYWNjZXNzIiwicHJvdmVuYW5jZS1hY2Nlc3MiLCJzY2llbnRpZmljLW9iamVjdHMtYWNjZXNzIiwidmFyaWFibGUtYWNjZXNzIiwidm9jYWJ1bGFyeS1hY2Nlc3MiXX0.CdPE6VgDwLCjjWO-oMPUjAe3Q4iQCveRpn4EeOpCV3obVzEUmy6OdE9iar1RhzF64v5Q4sNeHZl5IBmxJYn3tVpyNcYj8yYMp7d4A5LIaS3x3mD1L-2l_NNWWQl1qGS9p1fVCBfe8sZP_0Qxh0KF3Xd0nsTGDLS-H75EBUSSlzNpJnq3fVLy4RrsnuAycp8oSnEifmxAlX8Qk-dqQ0_bxZZqswDuz-h3CvfOejEVyc-VUOjgBIbkZpo-SAB4oa-xEEvc3RiMte5_PoUMAnXf44a5tfXgwhQqIdZWRYqXvnKkyVKxxobaxCfF3j3P_LYkAvXdjjSijkWiXPUdRentdQ\n", "-\n", "200\n" ] @@ -7374,6 +7374,421 @@ "phis.get_datafile(uri='m3p:id/file/1597964400.af46ac07f735ced228cf181aa85ebced')" ] }, + { + "cell_type": "markdown", + "id": "e2be1dbd-929f-4c29-8815-4e0cb4793e30", + "metadata": {}, + "source": [ + "#### List available events" + ] + }, + { + "cell_type": "code", + "execution_count": 41, + "id": "7725a021-8e76-4e2d-9320-bfb24df22125", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'metadata': {'pagination': {'pageSize': 100,\n", + " 'currentPage': 0,\n", + " 'totalCount': 30,\n", + " 'totalPages': 1,\n", + " 'limitCount': 0,\n", + " 'hasNextPage': True},\n", + " 'status': [],\n", + " 'datafiles': []},\n", + " 'result': [{'uri': 'm3p:id/event/cb8b96ea-4d0b-4bc6-804f-e3cf2b56092e',\n", + " 'publisher': None,\n", + " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeev#ManualCalibration',\n", + " 'rdf_type_name': 'Manual calibration',\n", + " 'start': None,\n", + " 'end': '2024-05-02T15:02Z',\n", + " 'is_instant': True,\n", + " 'description': 'New settings for ZB24 experiment',\n", + " 'targets': ['m3p:id/device/imagingstation02'],\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'm3p:id/event/690cf5fd-965d-49d7-a251-b290f5cc35f1',\n", + " 'publisher': None,\n", + " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeev#ManualCalibration',\n", + " 'rdf_type_name': 'Manual calibration',\n", + " 'start': None,\n", + " 'end': '2024-05-02T15:00Z',\n", + " 'is_instant': True,\n", + " 'description': 'New settings for ZB24 experiment',\n", + " 'targets': ['m3p:id/device/imagingstation01'],\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'm3p:id/event/aa5f7ea9-de27-4921-b080-570593fc7284',\n", + " 'publisher': None,\n", + " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeev#ManualCalibration',\n", + " 'rdf_type_name': 'Manual calibration',\n", + " 'start': None,\n", + " 'end': '2024-02-26T12:00Z',\n", + " 'is_instant': True,\n", + " 'description': 'New settings for ZA24 experiment (zoom out)',\n", + " 'targets': ['m3p:id/device/imagingstation01',\n", + " 'm3p:id/device/imagingstation03',\n", + " 'm3p:id/device/imagingstation02'],\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'm3p:id/event/4a69aa52-c041-4fbb-bbc0-f86a4916e1da',\n", + " 'publisher': None,\n", + " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeev#AssociationWithSensingDevice',\n", + " 'rdf_type_name': 'Association with a sensing device',\n", + " 'start': None,\n", + " 'end': '2015-01-01T15:22:56.337Z',\n", + " 'is_instant': True,\n", + " 'description': None,\n", + " 'targets': ['m3p:id/device/imagingstation02'],\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'm3p:id/event/ffcb426f-b605-4c7e-945a-c0237f14d1e5',\n", + " 'publisher': None,\n", + " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeev#AssociationWithSensingDevice',\n", + " 'rdf_type_name': 'Association with a sensing device',\n", + " 'start': None,\n", + " 'end': '2015-01-01T15:21:24.658Z',\n", + " 'is_instant': True,\n", + " 'description': None,\n", + " 'targets': ['m3p:id/device/imagingstation03'],\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'm3p:id/event/fa52d4e5-a364-4244-95f9-11c754008e76',\n", + " 'publisher': None,\n", + " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeev#AssociationWithSensingDevice',\n", + " 'rdf_type_name': 'Association with a sensing device',\n", + " 'start': None,\n", + " 'end': '2015-01-01T15:20:49.466Z',\n", + " 'is_instant': True,\n", + " 'description': None,\n", + " 'targets': ['m3p:id/device/imagingstation02'],\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'm3p:id/event/0829e9b7-ce77-4131-b8f0-d5158029b1df',\n", + " 'publisher': None,\n", + " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeev#AssociationWithSensingDevice',\n", + " 'rdf_type_name': 'Association with a sensing device',\n", + " 'start': None,\n", + " 'end': '2015-01-01T15:15:50.553Z',\n", + " 'is_instant': True,\n", + " 'description': None,\n", + " 'targets': ['m3p:id/device/imagingstation01'],\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'm3p:set/event/01a64e71-c4b7-4d82-8334-ebd8cc1e2f69',\n", + " 'publisher': None,\n", + " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeev#Move',\n", + " 'rdf_type_name': 'Move',\n", + " 'start': None,\n", + " 'end': '2011-05-01T00:00Z',\n", + " 'is_instant': True,\n", + " 'description': None,\n", + " 'targets': ['http://www.phenome-fppn.fr/m3p/arch/2016/sa1600032'],\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'm3p:set/event/0d9bc611-7959-4a4c-944e-17ccc60b413a',\n", + " 'publisher': None,\n", + " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeev#Move',\n", + " 'rdf_type_name': 'Move',\n", + " 'start': None,\n", + " 'end': '2011-05-01T00:00Z',\n", + " 'is_instant': True,\n", + " 'description': None,\n", + " 'targets': ['http://www.phenome-fppn.fr/m3p/arch/2016/sa1600035'],\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'm3p:set/event/0eaf87d7-5570-4537-b9f4-68b07949a6b7',\n", + " 'publisher': None,\n", + " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeev#Move',\n", + " 'rdf_type_name': 'Move',\n", + " 'start': None,\n", + " 'end': '2011-05-01T00:00Z',\n", + " 'is_instant': True,\n", + " 'description': None,\n", + " 'targets': ['http://www.phenome-fppn.fr/m3p/arch/2016/sa1600036'],\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'm3p:set/event/10f1634a-9058-4f43-a724-335d77cdba02',\n", + " 'publisher': None,\n", + " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeev#Move',\n", + " 'rdf_type_name': 'Move',\n", + " 'start': None,\n", + " 'end': '2011-05-01T00:00Z',\n", + " 'is_instant': True,\n", + " 'description': None,\n", + " 'targets': ['http://www.phenome-fppn.fr/m3p/ec1/2016/sa1600059'],\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'm3p:set/event/13d3b76d-d94d-43f7-9e5f-5970f81b6db1',\n", + " 'publisher': None,\n", + " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeev#Move',\n", + " 'rdf_type_name': 'Move',\n", + " 'start': None,\n", + " 'end': '2011-05-01T00:00Z',\n", + " 'is_instant': True,\n", + " 'description': None,\n", + " 'targets': ['http://www.phenome-fppn.fr/m3p/eo/2016/sa1600003'],\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'm3p:set/event/2342104b-21a3-433c-987d-578106cc9cf8',\n", + " 'publisher': None,\n", + " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeev#Move',\n", + " 'rdf_type_name': 'Move',\n", + " 'start': None,\n", + " 'end': '2011-05-01T00:00Z',\n", + " 'is_instant': True,\n", + " 'description': None,\n", + " 'targets': ['http://www.phenome-fppn.fr/m3p/eo/2016/sa1600006'],\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'm3p:set/event/25c545d3-b602-4f3a-bf5a-a3db01ae94e3',\n", + " 'publisher': None,\n", + " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeev#Move',\n", + " 'rdf_type_name': 'Move',\n", + " 'start': None,\n", + " 'end': '2011-05-01T00:00Z',\n", + " 'is_instant': True,\n", + " 'description': None,\n", + " 'targets': ['http://www.phenome-fppn.fr/m3p/eo/2016/sa1600004'],\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'm3p:set/event/283c1acf-d784-46b5-8a44-b8900030b42f',\n", + " 'publisher': None,\n", + " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeev#Move',\n", + " 'rdf_type_name': 'Move',\n", + " 'start': None,\n", + " 'end': '2011-05-01T00:00Z',\n", + " 'is_instant': True,\n", + " 'description': None,\n", + " 'targets': ['http://www.phenome-fppn.fr/m3p/ec1/2016/sa1600060'],\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'm3p:set/event/2d3dc380-3eb2-419c-9987-d6bd68e0fc1a',\n", + " 'publisher': None,\n", + " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeev#Move',\n", + " 'rdf_type_name': 'Move',\n", + " 'start': None,\n", + " 'end': '2011-05-01T00:00Z',\n", + " 'is_instant': True,\n", + " 'description': None,\n", + " 'targets': ['http://www.phenome-fppn.fr/m3p/ec1/2016/sa1600064'],\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'm3p:set/event/3d0355f6-04c0-4f56-84cf-6843a7015579',\n", + " 'publisher': None,\n", + " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeev#Move',\n", + " 'rdf_type_name': 'Move',\n", + " 'start': None,\n", + " 'end': '2011-05-01T00:00Z',\n", + " 'is_instant': True,\n", + " 'description': None,\n", + " 'targets': ['http://www.phenome-fppn.fr/m3p/ec2/2016/sa1600069'],\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'm3p:set/event/3e8d0b14-8312-40ac-b3c2-c4bc6362bd6a',\n", + " 'publisher': None,\n", + " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeev#Move',\n", + " 'rdf_type_name': 'Move',\n", + " 'start': None,\n", + " 'end': '2011-05-01T00:00Z',\n", + " 'is_instant': True,\n", + " 'description': None,\n", + " 'targets': ['http://www.phenome-fppn.fr/m3p/arch/2016/sa1600034'],\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'm3p:set/event/43a2f55f-83a2-4efc-a9c9-5fd35ea597a3',\n", + " 'publisher': None,\n", + " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeev#Move',\n", + " 'rdf_type_name': 'Move',\n", + " 'start': None,\n", + " 'end': '2011-05-01T00:00Z',\n", + " 'is_instant': True,\n", + " 'description': None,\n", + " 'targets': ['http://www.phenome-fppn.fr/m3p/ec2/2016/sa1600068'],\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'm3p:set/event/451c1cdc-e130-462e-9af4-74664e1d05b3',\n", + " 'publisher': None,\n", + " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeev#Move',\n", + " 'rdf_type_name': 'Move',\n", + " 'start': None,\n", + " 'end': '2011-05-01T00:00Z',\n", + " 'is_instant': True,\n", + " 'description': None,\n", + " 'targets': ['http://www.phenome-fppn.fr/m3p/dyn/2016/sa1600009'],\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'm3p:set/event/47d5e5aa-eb59-4b9d-846a-4a79f0a6dec1',\n", + " 'publisher': None,\n", + " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeev#Move',\n", + " 'rdf_type_name': 'Move',\n", + " 'start': None,\n", + " 'end': '2011-05-01T00:00Z',\n", + " 'is_instant': True,\n", + " 'description': None,\n", + " 'targets': ['http://www.phenome-fppn.fr/m3p/arch/2016/sa1600057'],\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'm3p:set/event/77e18d54-d0f2-4ab4-8b94-765b86181396',\n", + " 'publisher': None,\n", + " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeev#Move',\n", + " 'rdf_type_name': 'Move',\n", + " 'start': None,\n", + " 'end': '2011-05-01T00:00Z',\n", + " 'is_instant': True,\n", + " 'description': None,\n", + " 'targets': ['http://www.phenome-fppn.fr/m3p/dyn/2016/sa1600013'],\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'm3p:set/event/89344f84-56dc-42ff-9509-ef654eb3aaa1',\n", + " 'publisher': None,\n", + " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeev#Move',\n", + " 'rdf_type_name': 'Move',\n", + " 'start': None,\n", + " 'end': '2011-05-01T00:00Z',\n", + " 'is_instant': True,\n", + " 'description': None,\n", + " 'targets': ['http://www.phenome-fppn.fr/m3p/ec2/2016/sa1600073'],\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'm3p:set/event/9b1b41ca-805c-420b-a7ad-3d5ea5965eca',\n", + " 'publisher': None,\n", + " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeev#Move',\n", + " 'rdf_type_name': 'Move',\n", + " 'start': None,\n", + " 'end': '2011-05-01T00:00Z',\n", + " 'is_instant': True,\n", + " 'description': None,\n", + " 'targets': ['http://www.phenome-fppn.fr/m3p/eo/2016/sa1600002'],\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'm3p:set/event/a0dc542a-b7ec-48e4-a7a0-1d67aa59f151',\n", + " 'publisher': None,\n", + " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeev#Move',\n", + " 'rdf_type_name': 'Move',\n", + " 'start': None,\n", + " 'end': '2011-05-01T00:00Z',\n", + " 'is_instant': True,\n", + " 'description': None,\n", + " 'targets': ['http://www.phenome-fppn.fr/m3p/eo/2016/sa1600001'],\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'm3p:set/event/a7077d63-c24b-4ad0-a566-5e803a4c7cfb',\n", + " 'publisher': None,\n", + " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeev#Move',\n", + " 'rdf_type_name': 'Move',\n", + " 'start': None,\n", + " 'end': '2011-05-01T00:00Z',\n", + " 'is_instant': True,\n", + " 'description': None,\n", + " 'targets': ['http://www.phenome-fppn.fr/m3p/arch/2016/sa1600037'],\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'm3p:set/event/aa79b006-6afe-47f6-ac73-67b33d77c032',\n", + " 'publisher': None,\n", + " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeev#Move',\n", + " 'rdf_type_name': 'Move',\n", + " 'start': None,\n", + " 'end': '2011-05-01T00:00Z',\n", + " 'is_instant': True,\n", + " 'description': None,\n", + " 'targets': ['http://www.phenome-fppn.fr/m3p/eo/2016/sa1600005'],\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'm3p:set/event/acaad3b9-6d5d-478e-b8ea-29bc66df8692',\n", + " 'publisher': None,\n", + " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeev#Move',\n", + " 'rdf_type_name': 'Move',\n", + " 'start': None,\n", + " 'end': '2011-05-01T00:00Z',\n", + " 'is_instant': True,\n", + " 'description': None,\n", + " 'targets': ['http://www.phenome-fppn.fr/m3p/dyn/2016/sa1600014'],\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'm3p:set/event/d031c196-4ef7-439c-9fb9-6b3f1226b3c0',\n", + " 'publisher': None,\n", + " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeev#Move',\n", + " 'rdf_type_name': 'Move',\n", + " 'start': None,\n", + " 'end': '2011-05-01T00:00Z',\n", + " 'is_instant': True,\n", + " 'description': None,\n", + " 'targets': ['http://www.phenome-fppn.fr/m3p/dyn/2016/sa1600010'],\n", + " 'publication_date': None,\n", + " 'last_updated_date': None},\n", + " {'uri': 'm3p:set/event/e27b1321-c442-44d4-a705-2ee71f40c77b',\n", + " 'publisher': None,\n", + " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeev#Move',\n", + " 'rdf_type_name': 'Move',\n", + " 'start': None,\n", + " 'end': '2011-05-01T00:00Z',\n", + " 'is_instant': True,\n", + " 'description': None,\n", + " 'targets': ['http://www.phenome-fppn.fr/m3p/arch/2016/sa1600033'],\n", + " 'publication_date': None,\n", + " 'last_updated_date': None}]}" + ] + }, + "execution_count": 41, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "phis.get_event()" + ] + }, + { + "cell_type": "markdown", + "id": "9288a120-c65e-449a-b184-00445e17ae32", + "metadata": {}, + "source": [ + "#### Get specific event with URI" + ] + }, + { + "cell_type": "code", + "execution_count": 42, + "id": "e7691135-9933-4528-9ba1-eda10db27c19", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'metadata': {'pagination': {'pageSize': 0,\n", + " 'currentPage': 0,\n", + " 'totalCount': 0,\n", + " 'totalPages': 0,\n", + " 'limitCount': 0,\n", + " 'hasNextPage': False},\n", + " 'status': [],\n", + " 'datafiles': []},\n", + " 'result': {'uri': 'm3p:id/event/cb8b96ea-4d0b-4bc6-804f-e3cf2b56092e',\n", + " 'publisher': None,\n", + " 'rdf_type': 'oeev:ManualCalibration',\n", + " 'rdf_type_name': 'Manual calibration',\n", + " 'start': None,\n", + " 'end': '2024-05-02T15:02Z',\n", + " 'is_instant': True,\n", + " 'description': 'New settings for ZB24 experiment',\n", + " 'targets': ['m3p:id/device/imagingstation02'],\n", + " 'publication_date': '2024-05-28T17:19:08.252541+02:00',\n", + " 'last_updated_date': None}}" + ] + }, + "execution_count": 42, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "phis.get_event(uri='m3p:id/event/cb8b96ea-4d0b-4bc6-804f-e3cf2b56092e')" + ] + }, { "cell_type": "markdown", "id": "a4e43648-30b1-413a-950f-84060ecc94ac", @@ -7384,7 +7799,7 @@ }, { "cell_type": "code", - "execution_count": 41, + "execution_count": 43, "id": "7ee85624-495d-4a36-860b-1fe407ab5491", "metadata": {}, "outputs": [ @@ -7416,7 +7831,7 @@ " {'uri': 'http://aims.fao.org/aos/agrovoc/c_3339', 'name': 'upland cotton'}]}" ] }, - "execution_count": 41, + "execution_count": 43, "metadata": {}, "output_type": "execute_result" } @@ -7435,7 +7850,7 @@ }, { "cell_type": "code", - "execution_count": 42, + "execution_count": 44, "id": "4876c969-c954-417c-875f-7c6fe72a7fe2", "metadata": {}, "outputs": [ @@ -7480,7 +7895,7 @@ " 'github_page': 'https://github.com/OpenSILEX/opensilex'}}" ] }, - "execution_count": 42, + "execution_count": 44, "metadata": {}, "output_type": "execute_result" } @@ -7488,14 +7903,6 @@ "source": [ "phis.get_system_info()" ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "10c3272a-2c8b-4bcc-802c-d88679afbe63", - "metadata": {}, - "outputs": [], - "source": [] } ], "metadata": { diff --git a/src/agroservices/phis/phis.py b/src/agroservices/phis/phis.py index 2ba8d63..bfc1677 100644 --- a/src/agroservices/phis/phis.py +++ b/src/agroservices/phis/phis.py @@ -213,7 +213,7 @@ def get_experiment(self, uri=None, name=None, year=None, is_ended=None, species= return str(e) - def get_variable(self,uri=None, name=None, entity=None, entity_of_interest=None, characteristic=None, + def get_variable(self, uri=None, name=None, entity=None, entity_of_interest=None, characteristic=None, method=None, unit=None, group_of_variables=None, not_included_in_group_of_variables=None, data_type=None, time_interval=None, species=None, withAssociatedData=None, experiments=None, scientific_objects=None, devices=None, order_by=None, page=None, page_size=None, sharedResourceInstance=None): @@ -853,7 +853,7 @@ def get_datafile(self, uri=None, page=None, page_size=None): # Doesn't work # if uri: # result = self.http_get(self.url + 'core/datafiles/' - # + quote_plus(uri), headers={'Authorization':token}) + # + quote_plus(uri), headers={'Authorization':self.token}) # if result == 404: # raise Exception("Datafile not found") # return result @@ -887,4 +887,41 @@ def get_datafile(self, uri=None, page=None, page_size=None): return response except Exception as e: return str(e) + + + def get_event(self, uri=None, details=False, page=None, page_size=None): + # Get specific event information by uri + if uri: + if details == True: + result = self.http_get(self.url + 'core/events/' + + quote_plus(uri) + '/details', headers={'Authorization':self.token}) + else: + result = self.http_get(self.url + 'core/events/' + + quote_plus(uri), headers={'Authorization':self.token}) + if result == 404: + raise Exception("Event not found") + return result + + # Get list of events based on filtering criteria + url = self.url + 'core/events' + query = {} + + if page is not None: + query['page'] = str(page) + if page_size is not None: + query['page_size'] = str(page_size) + else: + query['page_size'] = str(DEFAULT_PAGE_SIZE) + + if query: + query_string = '&'.join(f'{key}={quote_plus(value)}' for key, value in query.items()) + url += '?' + query_string + + try: + response = self.http_get(url, headers={'Authorization':self.token}) + if response == 404: + raise Exception("Empty result") + return response + except Exception as e: + return str(e) diff --git a/test/test_phis.py b/test/test_phis.py index 62b6b31..ef3897f 100644 --- a/test/test_phis.py +++ b/test/test_phis.py @@ -391,5 +391,20 @@ def test_get_datafile(): # Test with a valid URI try: data = phis.get_datafile(uri='m3p:id/file/1597964400.af46ac07f735ced228cf181aa85ebced') + except Exception as err: + assert False, "Unexpected error: " + str(err) + + +def test_get_event(): + phis = Phis() + + # Search test + data = phis.get_event() + if data['metadata']['pagination']['totalCount'] != 0: + assert data['result'] != [], "Request failed" + + # Test with a valid URI + try: + data = phis.get_event(uri='m3p:id/event/cb8b96ea-4d0b-4bc6-804f-e3cf2b56092e') except Exception as err: assert False, "Unexpected error: " + str(err) \ No newline at end of file From 974d2ea02186573034ae3451ec2887100eba5e75 Mon Sep 17 00:00:00 2001 From: fedur8 Date: Wed, 19 Jun 2024 16:11:41 +0200 Subject: [PATCH 10/12] Phis interface update --- src/agroservices/phis/phis_interface.py | 207 ++++++++++++++++++++++-- 1 file changed, 193 insertions(+), 14 deletions(-) diff --git a/src/agroservices/phis/phis_interface.py b/src/agroservices/phis/phis_interface.py index 4816655..a053b20 100644 --- a/src/agroservices/phis/phis_interface.py +++ b/src/agroservices/phis/phis_interface.py @@ -7,27 +7,206 @@ class Phis_UI(Phis): def __init__(self): super().__init__() - self.token, _ =self.authenticate() - self.devices_all = None + self.device_all = None + self.scientific_object_all = None + self.experiment_all = None + self.variable_all = None + self.project_all = None + self.facility_all = None + self.germplasm_all = None + self.annotation_all = None + self.document_all = None + self.factor_all = None - def get_device_details(self, device_name): - if self.devices_all == None: - self.devices_all = phis_ui.get_device(page_size=PAGE_SIZE_ALL) - for item in self.devices_all['result']: - if item['name'] == device_name: - return item + def get_device_user(self, device_name=None): + if self.device_all == None: + self.device_all = self.get_device(page_size=PAGE_SIZE_ALL) + + if device_name == None: + list = [] + for item in self.device_all['result']: + list.append(item['name']) + return list + + else: + for item in self.device_all['result']: + if item['name'] == device_name: + return item return None + + def get_scientific_object_user(self, scientific_object_name=None): + if self.scientific_object_all == None: + self.scientific_object_all = self.get_scientific_object(page_size=PAGE_SIZE_ALL) + + if scientific_object_name == None: + list = [] + for item in self.scientific_object_all['result']: + list.append(item['name']) + return list + + else: + for item in self.scientific_object_all['result']: + if item['name'] == scientific_object_name: + return item + return None + + + def get_experiment_user(self, experiment_name=None): + if self.experiment_all == None: + self.experiment_all = self.get_experiment(page_size=PAGE_SIZE_ALL) + + if experiment_name == None: + list = [] + for item in self.experiment_all['result']: + list.append(item['name']) + return list + + else: + for item in self.experiment_all['result']: + if item['name'] == experiment_name: + return item + return None + + + def get_variable_user(self, variable_name=None): + if self.variable_all == None: + self.variable_all = self.get_variable(page_size=PAGE_SIZE_ALL) + + if variable_name == None: + list = [] + for item in self.variable_all['result']: + list.append(item['name']) + return list + + else: + for item in self.variable_all['result']: + if item['name'] == variable_name: + return item + return None + + + def get_project_user(self, project_name=None): + if self.project_all == None: + self.project_all = self.get_project(page_size=PAGE_SIZE_ALL) + + if project_name == None: + list = [] + for item in self.project_all['result']: + list.append(item['name']) + return list + + else: + for item in self.project_all['result']: + if item['name'] == project_name: + return item + return None + + + def get_facility_user(self, facility_name=None): + if self.facility_all == None: + self.facility_all = self.get_facility(page_size=PAGE_SIZE_ALL) + + if facility_name == None: + list = [] + for item in self.facility_all['result']: + list.append(item['name']) + return list + + else: + for item in self.facility_all['result']: + if item['name'] == facility_name: + return item + return None + + + def get_germplasm_user(self, germplasm_name=None): + if self.germplasm_all == None: + self.germplasm_all = self.get_germplasm(page_size=PAGE_SIZE_ALL) + + if germplasm_name == None: + list = [] + for item in self.germplasm_all['result']: + list.append(item['name']) + return list + + else: + for item in self.germplasm_all['result']: + if item['name'] == germplasm_name: + return item + return None + + + def get_annotation_user(self, annotation_name=None): + if self.annotation_all == None: + self.annotation_all = self.get_annotation(page_size=PAGE_SIZE_ALL) + + if annotation_name == None: + list = [] + for item in self.annotation_all['result']: + list.append(item['name']) + return list + + else: + for item in self.annotation_all['result']: + if item['name'] == annotation_name: + return item + return None + + + def get_document_user(self, document_name=None): + if self.document_all == None: + self.document_all = self.get_document(page_size=PAGE_SIZE_ALL) + + if document_name == None: + list = [] + for item in self.document_all['result']: + list.append(item['name']) + return list + + else: + for item in self.document_all['result']: + if item['name'] == document_name: + return item + return None + + + def get_factor_user(self, factor_name=None): + if self.factor_all == None: + self.factor_all = self.get_factor(page_size=PAGE_SIZE_ALL) + + if factor_name == None: + list = [] + for item in self.factor_all['result']: + list.append(item['name']) + return list + + else: + for item in self.factor_all['result']: + if item['name'] == factor_name: + return item + return None + + phis_ui = Phis_UI() #get all devices and print names -phis_ui.devices_all = phis_ui.get_device(page_size=PAGE_SIZE_ALL) -for item in phis_ui.devices_all['result']: - print(item['name']) -print() +for item in phis_ui.get_device_user(): + print(item) +print() #show device details by name -emb7_details = phis_ui.get_device_details('Emb_7') -print(emb7_details) \ No newline at end of file +emb7_details = phis_ui.get_device_user('Emb_7') +print(emb7_details) + +print() +#get all scientific objects and print names +for item in phis_ui.get_scientific_object_user(): + print(item) + +print() +#show scientific object details by name +object_details = phis_ui.get_scientific_object_user('0587/ZM4523/DZ_PG_74/WW/PGe_Rep_2/10_47/ARCH2020-02-03') +print(object_details) \ No newline at end of file From 924d5fcaef38563b77c9862278bcb23f9e372856 Mon Sep 17 00:00:00 2001 From: fedur8 Date: Fri, 21 Jun 2024 16:41:40 +0200 Subject: [PATCH 11/12] Adding phis parameters and documentation --- src/agroservices/phis/phis.py | 653 ++++++++++++++++++++++++++++++++-- 1 file changed, 619 insertions(+), 34 deletions(-) diff --git a/src/agroservices/phis/phis.py b/src/agroservices/phis/phis.py index bfc1677..f5b8ae6 100644 --- a/src/agroservices/phis/phis.py +++ b/src/agroservices/phis/phis.py @@ -140,28 +140,23 @@ def authenticate(self, identifier='phenoarch@lepse.inra.fr', def get_experiment(self, uri=None, name=None, year=None, is_ended=None, species=None, factors=None, projects=None, is_public=None, facilities=None, order_by=None, page=None, page_size=None): """ - Retrieve experiment information based on various parameters or a specific URI. - - This function can either get detailed information about a specific experiment by its URI or list + This function can either retrieve detailed information about a specific experiment by its URI or list experiments based on various filtering criteria. - :param token: (str) Token received from authenticate() :param uri: (str) Specify an experiment URI to get detailed information about that specific experiment :param name: (str) Filter experiments by name - :param year: (int or str) Filter experiments by year (e.g., 2012, 2013...) + :param year: (int) Filter experiments by year (e.g., 2012, 2013...) :param is_ended: (bool) Filter experiments by their ended status - :param species: (str) Filter experiments by species - :param factors: (str) Filter experiments by factors - :param projects: (str) Filter experiments by projects + :param species: (array[str]) Filter experiments by species + :param factors: (array[str]) Filter experiments by factors + :param projects: (array[str]) Filter experiments by projects :param is_public: (bool) Filter experiments by their public status - :param facilities: (str) Filter experiments by facilities - :param order_by: (str) Order the experiments by a specific field - :param page: (int or str) Specify the page number for pagination - :param page_size: (int or str) Specify the page size for pagination + :param facilities: (array[str]) Filter experiments by facilities + :param order_by: (array[str]) Order the experiments by a specific field + :param page: (int) Specify the page number for pagination + :param page_size: (int) Specify the page size for pagination :return: - (tuple) A tuple containing: - - (dict or str) The experiment information or an error message - - (bool) True if the request was successful, False otherwise + (dict or str) The experiment information or an error message :raises: Exception: if the experiment is not found (HTTP 404) or if the result is empty """ @@ -217,7 +212,35 @@ def get_variable(self, uri=None, name=None, entity=None, entity_of_interest=None method=None, unit=None, group_of_variables=None, not_included_in_group_of_variables=None, data_type=None, time_interval=None, species=None, withAssociatedData=None, experiments=None, scientific_objects=None, devices=None, order_by=None, page=None, page_size=None, sharedResourceInstance=None): - + """ + This function can either retrieve detailed information about a specific variable by its URI or list + variables based on various filtering criteria. + + :param uri: (str) Specify a variable URI to get detailed information about that specific variable + :param name: (str) Filter variables by name + :param entity: (str) Filter variables by entity + :param entity_of_interest: (str) Filter variables by entity of interest + :param characteristic: (str) Filter variables by characteristic + :param method: (str) Filter variables by method + :param unit: (str) Filter variables by unit + :param group_of_variables: (str) Filter variables by group of variables + :param not_included_in_group_of_variables: (str) Exclude variables that are in a specific group + :param data_type: (str) Filter variables by data type + :param time_interval: (str) Filter variables by time interval + :param species: (array[str]) Filter variables by species + :param withAssociatedData: (bool) Filter variables that have associated data + :param experiments: (array[str]) Filter variables by experiments + :param scientific_objects: (array[str]) Filter variables by scientific objects + :param devices: (array[str]) Filter variables by devices + :param order_by: (array[str]) Order the variables by a specific field + :param page: (int) Specify the page number for pagination + :param page_size: (int) Specify the page size for pagination + :param sharedResourceInstance: (str) Filter variables by shared resource instance + :return: + (dict or str) The variable information or an error message + :raises: + Exception: if the variable is not found (HTTP 404) or if the result is empty + """ # Get specific variable information by uri if uri: result = self.http_get(self.url + 'core/variables/' @@ -287,6 +310,23 @@ def get_variable(self, uri=None, name=None, entity=None, entity_of_interest=None def get_project(self, uri=None, name=None, year=None, keyword=None, financial_funding=None, order_by=None, page=None, page_size=None): + """ + This function can either retrieve detailed information about a specific project by its URI or list + projects based on various filtering criteria. + + :param uri: (str) Specify a project URI to get detailed information about that specific project + :param name: (str) Filter projects by name + :param year: (int) Filter projects by year (e.g., 2012, 2013...) + :param keyword: (str) Filter projects by keyword + :param financial_funding: (str) Filter projects by financial funding source + :param order_by: (array[str]) Order the projects by a specific field + :param page: (int) Specify the page number for pagination + :param page_size: (int) Specify the page size for pagination + :return: + (dict or str) The project information or an error message + :raises: + Exception: if the project is not found (HTTP 404 or 500) or if the result is empty + """ # Get specific project information by uri if uri: result = self.http_get(self.url + 'core/projects/' @@ -299,6 +339,16 @@ def get_project(self, uri=None, name=None, year=None, keyword=None, financial_fu url = self.url + 'core/projects' query = {} + if name is not None: + query['name'] = name + if year is not None: + query['year'] = str(year) + if keyword is not None: + query['keyword'] = keyword + if financial_funding is not None: + query['financial_funding'] = financial_funding + if order_by is not None: + query['order_by'] = order_by if page is not None: query['page'] = str(page) if page_size is not None: @@ -319,7 +369,22 @@ def get_project(self, uri=None, name=None, year=None, keyword=None, financial_fu return str(e) - def get_facility(self, uri=None, page=None, page_size=None): + def get_facility(self, uri=None, pattern=None, organizations=None, order_by=None, page=None, page_size=None): + """ + This function can either retrieve detailed information about a specific facility by its URI or list + facilities based on various filtering criteria. + + :param uri: (str) Specify a facility URI to get detailed information about that specific facility + :param pattern: (str) Filter facilities by pattern + :param organizations: (array[str]) Filter facilities by organizations + :param order_by: (array[str]) Order the facilities by a specific field + :param page: (int) Specify the page number for pagination + :param page_size: (int) Specify the page size for pagination + :return: + (dict or str) The facility information or an error message + :raises: + Exception: if the facility is not found (HTTP 404) or if the result is empty + """ # Get specific facility information by uri if uri: result = self.http_get(self.url + 'core/facilities/' @@ -332,6 +397,12 @@ def get_facility(self, uri=None, page=None, page_size=None): url = self.url + 'core/facilities' query = {} + if pattern is not None: + query['pattern'] = pattern + if organizations is not None: + query['organizations'] = organizations + if order_by is not None: + query['order_by'] = order_by if page is not None: query['page'] = str(page) if page_size is not None: @@ -352,7 +423,36 @@ def get_facility(self, uri=None, page=None, page_size=None): return str(e) - def get_germplasm(self, uri=None, page=None, page_size=None): + def get_germplasm(self, uri=None, rdf_type=None, name=None, code=None, production_year=None, species=None, variety=None, + accession=None, group_of_germplasm=None, institute=None, experiment=None, parent_germplasms=None, + parent_germplasms_m=None, parent_germplasms_f=None, metadata=None, order_by=None, page=None, page_size=None): + """ + This function can either retrieve detailed information about a specific germplasm by its URI or list + germplasms based on various filtering criteria. + + :param uri: (str) Specify a germplasm URI to get detailed information about that specific germplasm + :param rdf_type: (str) Filter germplasms by RDF type + :param name: (str) Filter germplasms by name + :param code: (str) Filter germplasms by code + :param production_year: (int) Filter germplasms by production year + :param species: (str) Filter germplasms by species + :param variety: (str) Filter germplasms by variety + :param accession: (str) Filter germplasms by accession + :param group_of_germplasm: (str) Filter germplasms by group of germplasm + :param institute: (str) Filter germplasms by institute + :param experiment: (str) Filter germplasms by experiment + :param parent_germplasms: (array[str]) Filter germplasms by parent germplasms + :param parent_germplasms_m: (array[str]) Filter germplasms by male parent germplasms + :param parent_germplasms_f: (array[str]) Filter germplasms by female parent germplasms + :param metadata: (dict) Filter germplasms by metadata + :param order_by: (array[str]) Order the germplasms by a specific field + :param page: (int) Specify the page number for pagination + :param page_size: (int) Specify the page size for pagination + :return: + (dict or str) The germplasm information or an error message + :raises: + Exception: if the germplasm is not found (HTTP 404) or if the result is empty + """ # Get specific germplasm information by uri if uri: result = self.http_get(self.url + 'core/germplasm/' @@ -365,6 +465,36 @@ def get_germplasm(self, uri=None, page=None, page_size=None): url = self.url + 'core/germplasm' query = {} + if rdf_type is not None: + query['rdf_type'] = rdf_type + if name is not None: + query['name'] = name + if code is not None: + query['code'] = code + if production_year is not None: + query['production_year'] = str(production_year) + if species is not None: + query['species'] = species + if variety is not None: + query['variety'] = variety + if accession is not None: + query['accession'] = accession + if group_of_germplasm is not None: + query['group_of_germplasm'] = group_of_germplasm + if institute is not None: + query['institute'] = institute + if experiment is not None: + query['experiment'] = experiment + if parent_germplasms is not None: + query['parent_germplasms'] = parent_germplasms + if parent_germplasms_m is not None: + query['parent_germplasms_m'] = parent_germplasms_m + if parent_germplasms_f is not None: + query['parent_germplasms_f'] = parent_germplasms_f + if metadata is not None: + query['metadata'] = metadata + if order_by is not None: + query['order_by'] = order_by if page is not None: query['page'] = str(page) if page_size is not None: @@ -385,7 +515,33 @@ def get_germplasm(self, uri=None, page=None, page_size=None): return str(e) - def get_device(self, uri=None, page=None, page_size=None): + def get_device(self, uri=None, rdf_type=None, include_subtypes=None, name=None, variable=None, year=None, existence_date=None, + facility=None, brand=None, model=None, serial_number=None, metadata=None, order_by=None, page=None, + page_size=None): + """ + This function can either retrieve detailed information about a specific device by its URI or list + devices based on various filtering criteria. + + :param uri: (str) Specify a device URI to get detailed information about that specific device + :param rdf_type: (str) Filter devices by RDF type + :param include_subtypes: (bool) Include subtypes in the filtering + :param name: (str) Filter devices by name + :param variable: (str) Filter devices by variable + :param year: (int) Filter devices by year + :param existence_date: (datetime.date) Filter devices by existence date (format: YYYY-MM-DD) + :param facility: (str) Filter devices by facility + :param brand: (str) Filter devices by brand + :param model: (str) Filter devices by model + :param serial_number: (str) Filter devices by serial number + :param metadata: (str) Filter devices by metadata + :param order_by: (array[str]) Order the devices by a specific field + :param page: (int) Specify the page number for pagination + :param page_size: (int) Specify the page size for pagination + :return: + (dict or str) The device information or an error message + :raises: + Exception: if the device is not found (HTTP 404) or if the result is empty + """ # Get specific device information by uri if uri: result = self.http_get(self.url + 'core/devices/' @@ -398,6 +554,30 @@ def get_device(self, uri=None, page=None, page_size=None): url = self.url + 'core/devices' query = {} + if rdf_type is not None: + query['rdf_type'] = rdf_type + if include_subtypes is not None: + query['include_subtypes'] = str(include_subtypes).lower() + if name is not None: + query['name'] = name + if variable is not None: + query['variable'] = variable + if year is not None: + query['year'] = str(year) + if existence_date is not None: + query['existence_date'] = existence_date.strftime('%Y-%m-%d') + if facility is not None: + query['facility'] = facility + if brand is not None: + query['brand'] = brand + if model is not None: + query['model'] = model + if serial_number is not None: + query['serial_number'] = serial_number + if metadata is not None: + query['metadata'] = metadata + if order_by is not None: + query['order_by'] = order_by if page is not None: query['page'] = str(page) if page_size is not None: @@ -418,7 +598,25 @@ def get_device(self, uri=None, page=None, page_size=None): return str(e) - def get_annotation(self, uri=None, page=None, page_size=None): + def get_annotation(self, uri=None, description=None, target=None, motivation=None, author=None, order_by=None, + page=None, page_size=None): + """ + This function can either retrieve detailed information about a specific annotation by its URI or list + annotations based on various filtering criteria. + + :param uri: (str) Specify an annotation URI to get detailed information about that specific annotation + :param description: (str) Filter annotations by description + :param target: (str) Filter annotations by target + :param motivation: (str) Filter annotations by motivation + :param author: (str) Filter annotations by author + :param order_by: (array[str]) Order the annotations by a specific field + :param page: (int) Specify the page number for pagination + :param page_size: (int) Specify the page size for pagination + :return: + (dict or str) The annotation information or an error message + :raises: + Exception: if the annotation is not found (HTTP 404) or if the result is empty + """ # Get specific annotation information by uri if uri: result = self.http_get(self.url + 'core/annotations/' @@ -431,6 +629,16 @@ def get_annotation(self, uri=None, page=None, page_size=None): url = self.url + 'core/annotations' query = {} + if description is not None: + query['description'] = description + if target is not None: + query['target'] = target + if motivation is not None: + query['motivation'] = motivation + if author is not None: + query['author'] = author + if order_by is not None: + query['order_by'] = order_by if page is not None: query['page'] = str(page) if page_size is not None: @@ -451,7 +659,29 @@ def get_annotation(self, uri=None, page=None, page_size=None): return str(e) - def get_document(self, uri=None, page=None, page_size=None): + def get_document(self, uri=None, rdf_type=None, title=None, date=None, targets=None, authors=None, keyword=None, multiple=None, + deprecated=None, order_by=None, page=None, page_size=None): + """ + This function can either retrieve detailed information about a specific document by its URI or list + documents based on various filtering criteria. + + :param uri: (str) Specify a document URI to get detailed information about that specific document + :param rdf_type: (str) Filter documents by RDF type + :param title: (str) Filter documents by title + :param date: (str) Filter documents by date (format: YYYY-MM-DD) + :param targets: (str) Filter documents by targets + :param authors: (str) Filter documents by authors + :param keyword: (str) Filter documents by keyword + :param multiple: (str) Filter documents by their multiple status + :param deprecated: (str) Filter documents by their deprecated status + :param order_by: (array[str]) Order the documents by a specific field + :param page: (int) Specify the page number for pagination + :param page_size: (int) Specify the page size for pagination + :return: + (dict or str) The document information or an error message + :raises: + Exception: if the document is not found (HTTP 404) or if the result is empty + """ # Get specific document information by uri # Doesn't work # if uri: @@ -472,6 +702,24 @@ def get_document(self, uri=None, page=None, page_size=None): url = self.url + 'core/documents' query = {} + if rdf_type is not None: + query['rdf_type'] = rdf_type + if title is not None: + query['title'] = title + if date is not None: + query['date'] = date + if targets is not None: + query['targets'] = targets + if authors is not None: + query['authors'] = authors + if keyword is not None: + query['keyword'] = keyword + if multiple is not None: + query['multiple'] = multiple + if deprecated is not None: + query['deprecated'] = deprecated + if order_by is not None: + query['order_by'] = order_by if page is not None: query['page'] = str(page) if page_size is not None: @@ -492,7 +740,25 @@ def get_document(self, uri=None, page=None, page_size=None): return str(e) - def get_factor(self, uri=None, page=None, page_size=None): + def get_factor(self, uri=None, name=None, description=None, category=None, experiment=None, order_by=None, page=None, + page_size=None): + """ + This function can either retrieve detailed information about a specific factor by its URI or list + factors based on various filtering criteria. + + :param uri: (str) Specify a factor URI to get detailed information about that specific factor + :param name: (str) Filter factors by name + :param description: (str) Filter factors by description + :param category: (str) Filter factors by category + :param experiment: (str) Filter factors by experiment + :param order_by: (array[str]) Order the factors by a specific field + :param page: (int) Specify the page number for pagination + :param page_size: (int) Specify the page size for pagination + :return: + (dict or str) The factor information or an error message + :raises: + Exception: if the factor is not found (HTTP 404) or if the result is empty + """ # Get specific factor information by uri if uri: result = self.http_get(self.url + 'core/experiments/factors/' @@ -505,6 +771,16 @@ def get_factor(self, uri=None, page=None, page_size=None): url = self.url + 'core/experiments/factors' query = {} + if name is not None: + query['name'] = name + if description is not None: + query['description'] = description + if category is not None: + query['category'] = category + if experiment is not None: + query['experiment'] = experiment + if order_by is not None: + query['order_by'] = order_by if page is not None: query['page'] = str(page) if page_size is not None: @@ -525,7 +801,21 @@ def get_factor(self, uri=None, page=None, page_size=None): return str(e) - def get_organization(self, uri=None, page=None, page_size=None): + def get_organization(self, uri=None, pattern=None, organisation_uris=None, page=None, page_size=None): + """ + This function can either retrieve detailed information about a specific organization by its URI or list + organizations based on various filtering criteria. + + :param uri: (str) Specify an organization URI to get detailed information about that specific organization + :param pattern: (str) Filter organizations by pattern + :param organisation_uris: (array[str]) Filter organizations by URIs + :param page: (int) Specify the page number for pagination + :param page_size: (int) Specify the page size for pagination + :return: + (dict or str) The organization information or an error message + :raises: + Exception: if the organization is not found (HTTP 404) or if the result is empty + """ # Get specific organization information by uri if uri: result = self.http_get(self.url + 'core/organisations/' @@ -538,6 +828,10 @@ def get_organization(self, uri=None, page=None, page_size=None): url = self.url + 'core/organisations' query = {} + if pattern is not None: + query['pattern'] = pattern + if organisation_uris is not None: + query['organisation_uris'] = organisation_uris if page is not None: query['page'] = str(page) if page_size is not None: @@ -558,7 +852,22 @@ def get_organization(self, uri=None, page=None, page_size=None): return str(e) - def get_site(self, uri=None, page=None, page_size=None): + def get_site(self, uri=None, pattern=None, organizations=None, order_by=None, page=None, page_size=None): + """ + This function can either retrieve detailed information about a specific site by its URI or list + sites based on various filtering criteria. + + :param uri: (str) Specify a site URI to get detailed information about that specific site + :param pattern: (str) Filter sites by pattern + :param organizations: (array[str]) Filter sites by organizations + :param order_by: (array[str]) Order the sites by a specific field + :param page: (int) Specify the page number for pagination + :param page_size: (int) Specify the page size for pagination + :return: + (dict or str) The site information or an error message + :raises: + Exception: if the site is not found (HTTP 404) or if the result is empty + """ # Get specific site information by uri if uri: result = self.http_get(self.url + 'core/sites/' @@ -571,6 +880,12 @@ def get_site(self, uri=None, page=None, page_size=None): url = self.url + 'core/sites' query = {} + if pattern is not None: + query['pattern'] = pattern + if organizations is not None: + query['organizations'] = organizations + if order_by is not None: + query['order_by'] = order_by if page is not None: query['page'] = str(page) if page_size is not None: @@ -591,7 +906,34 @@ def get_site(self, uri=None, page=None, page_size=None): return str(e) - def get_scientific_object(self, uri=None, page=None, page_size=None): + def get_scientific_object(self, uri=None, experiment=None, rdf_types=None, name=None, parent=None, germplasms=None, + factor_levels=None, facility=None, variables=None, devices=None, existence_date=None, + creation_date=None, criteria_on_data=None, order_by=None, page=None, page_size=None): + """ + This function can either retrieve detailed information about a specific scientific object by its URI or list + scientific objects based on various filtering criteria. + + :param uri: (str) Specify a scientific object URI to get detailed information about that specific object + :param experiment: (str) Filter scientific objects by experiment + :param rdf_types: (array[str]) Filter scientific objects by RDF types + :param name: (str) Filter scientific objects by name + :param parent: (str) Filter scientific objects by parent + :param germplasms: (array[str]) Filter scientific objects by germplasms + :param factor_levels: (array[str]) Filter scientific objects by factor levels + :param facility: (str) Filter scientific objects by facility + :param variables: (array[str]) Filter scientific objects by variables + :param devices: (array[str]) Filter scientific objects by devices + :param existence_date: (datetime.date) Filter scientific objects by existence date + :param creation_date: (datetime.date) Filter scientific objects by creation date + :param criteria_on_data: (str) Filter scientific objects by criteria on data + :param order_by: (array[str]) Order the scientific objects by a specific field + :param page: (int) Specify the page number for pagination + :param page_size: (int) Specify the page size for pagination + :return: + (dict or str) The scientific object information or an error message + :raises: + Exception: if the scientific object is not found (HTTP 404) or if the result is empty + """ # Get specific scientific object information by uri if uri: result = self.http_get(self.url + 'core/scientific_objects/' @@ -604,6 +946,32 @@ def get_scientific_object(self, uri=None, page=None, page_size=None): url = self.url + 'core/scientific_objects' query = {} + if experiment is not None: + query['experiment'] = experiment + if rdf_types is not None: + query['rdf_types'] = rdf_types + if name is not None: + query['name'] = name + if parent is not None: + query['parent'] = parent + if germplasms is not None: + query['germplasms'] = germplasms + if factor_levels is not None: + query['factor_levels'] = factor_levels + if facility is not None: + query['facility'] = facility + if variables is not None: + query['variables'] = variables + if devices is not None: + query['devices'] = devices + if existence_date is not None: + query['existence_date'] = existence_date.strftime('%Y-%m-%d') + if creation_date is not None: + query['creation_date'] = creation_date.strftime('%Y-%m-%d') + if criteria_on_data is not None: + query['criteria_on_data'] = criteria_on_data + if order_by is not None: + query['order_by'] = order_by if page is not None: query['page'] = str(page) if page_size is not None: @@ -624,9 +992,26 @@ def get_scientific_object(self, uri=None, page=None, page_size=None): return str(e) - def get_species(self): + def get_species(self, sharedResourceInstance=None): + """ + Retrieve a list of species based on optional filtering criteria. + + :param sharedResourceInstance: (str) Filter species by shared resource instance + :return: + (dict or str) The list of species or an error message + :raises: + Exception: if the result is empty (HTTP 404) or if there's an error during retrieval + """ # Get list of species url = self.url + 'core/species' + query = {} + + if sharedResourceInstance is not None: + query['sharedResourceInstance'] = sharedResourceInstance + + if query: + query_string = '&'.join(f'{key}={quote_plus(value)}' for key, value in query.items()) + url += '?' + query_string try: response = self.http_get(url, headers={'Authorization':self.token}) @@ -638,6 +1023,14 @@ def get_species(self): def get_system_info(self): + """ + Retrieve system information. + + :return: + (dict or str) System information or an error message + :raises: + Exception: if the result is empty (HTTP 404) or if there's an error during retrieval + """ # Get system informations url = self.url + 'core/system/info' @@ -650,7 +1043,21 @@ def get_system_info(self): return str(e) - def get_characteristic(self, uri=None, page=None, page_size=None): + def get_characteristic(self, uri=None, name=None, order_by=None, page=None, page_size=None, sharedResourceInstance=None): + """ + Retrieve specific characteristic information by URI or list characteristics based on filtering criteria. + + :param uri: (str) URI of the specific characteristic to retrieve + :param name: (str) Filter characteristics by name + :param order_by: (array[str]) Order the characteristics by a specific field + :param page: (int) Page number for pagination + :param page_size: (int) Page size for pagination + :param sharedResourceInstance: (str) Filter characteristics by shared resource instance + :return: + (dict or str) Characteristic information or an error message + :raises: + Exception: if the characteristic is not found (HTTP 404) or if the result is empty + """ # Get specific characteristic information by uri if uri: result = self.http_get(self.url + 'core/characteristics/' @@ -663,12 +1070,18 @@ def get_characteristic(self, uri=None, page=None, page_size=None): url = self.url + 'core/characteristics' query = {} + if name is not None: + query['name'] = name + if order_by is not None: + query['order_by'] = order_by if page is not None: query['page'] = str(page) if page_size is not None: query['page_size'] = str(page_size) else: query['page_size'] = str(DEFAULT_PAGE_SIZE) + if sharedResourceInstance is not None: + query['sharedResourceInstance'] = sharedResourceInstance if query: query_string = '&'.join(f'{key}={quote_plus(value)}' for key, value in query.items()) @@ -683,7 +1096,21 @@ def get_characteristic(self, uri=None, page=None, page_size=None): return str(e) - def get_entity(self, uri=None, page=None, page_size=None): + def get_entity(self, uri=None, name=None, order_by=None, page=None, page_size=None, sharedResourceInstance=None): + """ + Retrieve specific entity information by URI or list entities based on filtering criteria. + + :param uri: (str) URI of the specific entity to retrieve + :param name: (str) Filter entities by name + :param order_by: (array[str]) Order the entities by a specific field + :param page: (int) Page number for pagination + :param page_size: (int) Page size for pagination + :param sharedResourceInstance: (str) Filter entities by shared resource instance + :return: + (dict or str) Entity information or an error message + :raises: + Exception: if the entity is not found (HTTP 404) or if the result is empty + """ # Get specific entity information by uri if uri: result = self.http_get(self.url + 'core/entities/' @@ -696,12 +1123,18 @@ def get_entity(self, uri=None, page=None, page_size=None): url = self.url + 'core/entities' query = {} + if name is not None: + query['name'] = name + if order_by is not None: + query['order_by'] = order_by if page is not None: query['page'] = str(page) if page_size is not None: query['page_size'] = str(page_size) else: query['page_size'] = str(DEFAULT_PAGE_SIZE) + if sharedResourceInstance is not None: + query['sharedResourceInstance'] = sharedResourceInstance if query: query_string = '&'.join(f'{key}={quote_plus(value)}' for key, value in query.items()) @@ -716,7 +1149,21 @@ def get_entity(self, uri=None, page=None, page_size=None): return str(e) - def get_entity_of_interest(self, uri=None, page=None, page_size=None): + def get_entity_of_interest(self, uri=None, name=None, order_by=None, page=None, page_size=None, sharedResourceInstance=None): + """ + Retrieve specific entity of interest information by URI or list entities of interest based on filtering criteria. + + :param uri: (str) URI of the specific entity ofinterest to retrieve + :param name: (str) Filter entities of interest by name + :param order_by: (array[str]) Order the entities of interest by a specific field + :param page: (int) Page number for pagination + :param page_size: (int) Page size for pagination + :param sharedResourceInstance: (str) Filter entities of interest by shared resource instance + :return: + (dict or str) entity of interest information or an error message + :raises: + Exception: if the entity of interest is not found (HTTP 404) or if the result is empty + """ # Get specific entity of interest information by uri if uri: result = self.http_get(self.url + 'core/entities_of_interest/' @@ -729,12 +1176,18 @@ def get_entity_of_interest(self, uri=None, page=None, page_size=None): url = self.url + 'core/entities_of_interest' query = {} + if name is not None: + query['name'] = name + if order_by is not None: + query['order_by'] = order_by if page is not None: query['page'] = str(page) if page_size is not None: query['page_size'] = str(page_size) else: query['page_size'] = str(DEFAULT_PAGE_SIZE) + if sharedResourceInstance is not None: + query['sharedResourceInstance'] = sharedResourceInstance if query: query_string = '&'.join(f'{key}={quote_plus(value)}' for key, value in query.items()) @@ -749,7 +1202,21 @@ def get_entity_of_interest(self, uri=None, page=None, page_size=None): return str(e) - def get_method(self, uri=None, page=None, page_size=None): + def get_method(self, uri=None, name=None, order_by=None, page=None, page_size=None, sharedResourceInstance=None): + """ + Retrieve specific method information by URI or list methods based on filtering criteria. + + :param uri: (str) URI of the specific method to retrieve + :param name: (str) Filter methods by name + :param order_by: (array[str]) Order the methods by a specific field + :param page: (int) Page number for pagination + :param page_size: (int) Page size for pagination + :param sharedResourceInstance: (str) Filter methods by shared resource instance + :return: + (dict or str) method information or an error message + :raises: + Exception: if the method is not found (HTTP 404) or if the result is empty + """ # Get specific method information by uri if uri: result = self.http_get(self.url + 'core/methods/' @@ -762,12 +1229,18 @@ def get_method(self, uri=None, page=None, page_size=None): url = self.url + 'core/methods' query = {} + if name is not None: + query['name'] = name + if order_by is not None: + query['order_by'] = order_by if page is not None: query['page'] = str(page) if page_size is not None: query['page_size'] = str(page_size) else: query['page_size'] = str(DEFAULT_PAGE_SIZE) + if sharedResourceInstance is not None: + query['sharedResourceInstance'] = sharedResourceInstance if query: query_string = '&'.join(f'{key}={quote_plus(value)}' for key, value in query.items()) @@ -782,7 +1255,7 @@ def get_method(self, uri=None, page=None, page_size=None): return str(e) - def get_unit(self, uri=None, page=None, page_size=None): + def get_unit(self, uri=None, name=None, order_by=None, page=None, page_size=None, sharedResourceInstance=None): # Get specific unit information by uri if uri: result = self.http_get(self.url + 'core/units/' @@ -795,12 +1268,18 @@ def get_unit(self, uri=None, page=None, page_size=None): url = self.url + 'core/units' query = {} + if name is not None: + query['name'] = name + if order_by is not None: + query['order_by'] = order_by if page is not None: query['page'] = str(page) if page_size is not None: query['page_size'] = str(page_size) else: query['page_size'] = str(DEFAULT_PAGE_SIZE) + if sharedResourceInstance is not None: + query['sharedResourceInstance'] = sharedResourceInstance if query: query_string = '&'.join(f'{key}={quote_plus(value)}' for key, value in query.items()) @@ -815,7 +1294,26 @@ def get_unit(self, uri=None, page=None, page_size=None): return str(e) - def get_provenance(self, uri=None, page=None, page_size=None): + def get_provenance(self, uri=None, name=None, description=None, activity=None, activity_type=None, agent=None, + agent_type=None, order_by=None, page=None, page_size=None): + """ + Retrieve specific provenance information by URI or list provenances based on filtering criteria. + + :param uri: (str) URI of the specific provenance to retrieve + :param name: (str) Filter provenances by name + :param description: (str) Filter provenances by description + :param activity: (str) Filter provenances by activity + :param activity_type: (str) Filter provenances by activity type + :param agent: (str) Filter provenances by agent + :param agent_type: (str) Filter provenances by agent type + :param order_by: (array[str]) Order the provenances by a specific field + :param page: (int) Page number for pagination + :param page_size: (int) Page size for pagination + :return: + (dict or str) Provenance information or an error message + :raises: + Exception: if the provenance is not found (HTTP 404) or if the result is empty + """ # Get specific provenance information by uri if uri: result = self.http_get(self.url + 'core/provenances/' @@ -828,6 +1326,20 @@ def get_provenance(self, uri=None, page=None, page_size=None): url = self.url + 'core/provenances' query = {} + if name is not None: + query['name'] = name + if description is not None: + query['description'] = description + if activity is not None: + query['activity'] = activity + if activity_type is not None: + query['activity_type'] = activity_type + if agent is not None: + query['agent'] = agent + if agent_type is not None: + query['agent_type'] = agent_type + if order_by is not None: + query['order_by'] = order_by if page is not None: query['page'] = str(page) if page_size is not None: @@ -848,7 +1360,29 @@ def get_provenance(self, uri=None, page=None, page_size=None): return str(e) - def get_datafile(self, uri=None, page=None, page_size=None): + def get_datafile(self, uri=None, rdf_type=None, start_date=None, end_date=None, timezone=None, experiments=None, + targets=None, devices=None, provenances=None, metadata=None, order_by=None, page=None, page_size=None): + """ + Retrieve specific datafile information by URI or list datafiles based on filtering criteria. + + :param uri: (str) URI of the specific datafile to retrieve + :param rdf_type: (str) Filter datafiles by RDF type + :param start_date: (str) Filter datafiles by start date + :param end_date: (str) Filter datafiles by end date + :param timezone: (str) Filter datafiles by timezone + :param experiments: (array[str]) Filter datafiles by experiments + :param targets: (array[str]) Filter datafiles by targets + :param devices: (array[str]) Filter datafiles by devices + :param provenances: (array[str]) Filter datafiles by provenances + :param metadata: (str) Filter datafiles by metadata + :param order_by: (array[str]) Order the datafiles by a specific field + :param page: (int) Page number for pagination + :param page_size: (int) Page size for pagination + :return: + (dict or str) Datafile information or an error message + :raises: + Exception: if the datafile is not found (HTTP 404) or if the result is empty + """ # Get specific datafile information by uri # Doesn't work # if uri: @@ -869,6 +1403,26 @@ def get_datafile(self, uri=None, page=None, page_size=None): url = self.url + 'core/datafiles' query = {} + if rdf_type is not None: + query['rdf_type'] = rdf_type + if start_date is not None: + query['start_date'] = start_date + if end_date is not None: + query['end_date'] = end_date + if timezone is not None: + query['timezone'] = timezone + if experiments is not None: + query['experiments'] = experiments + if targets is not None: + query['targets'] = targets + if devices is not None: + query['devices'] = devices + if provenances is not None: + query['provenances'] = provenances + if metadata is not None: + query['metadata'] = metadata + if order_by is not None: + query['order_by'] = order_by if page is not None: query['page'] = str(page) if page_size is not None: @@ -889,7 +1443,26 @@ def get_datafile(self, uri=None, page=None, page_size=None): return str(e) - def get_event(self, uri=None, details=False, page=None, page_size=None): + def get_event(self, uri=None, details=False, rdf_type=None, start=None, end=None, target=None, description=None, + order_by=None, page=None, page_size=None): + """ + Retrieve specific event information by URI or list events based on filtering criteria. + + :param uri: (str) URI of the specific event to retrieve + :param details: (bool) Flag indicating whether to retrieve detailed information for the event + :param rdf_type: (str) Filter events by RDF type + :param start: (str) Filter events by start date/time + :param end: (str) Filter events by end date/time + :param target: (str) Filter events by target + :param description: (str) Filter events by description + :param order_by: (str) Order the events by a specific field + :param page: (int) Page number for pagination + :param page_size: (int) Page size for pagination + :return: + (dict or str) Event information or an error message + :raises: + Exception: if the event is not found (HTTP 404) or if the result is empty + """ # Get specific event information by uri if uri: if details == True: @@ -906,6 +1479,18 @@ def get_event(self, uri=None, details=False, page=None, page_size=None): url = self.url + 'core/events' query = {} + if rdf_type is not None: + query['rdf_type'] = rdf_type + if start is not None: + query['start'] = start + if end is not None: + query['end'] = end + if target is not None: + query['target'] = target + if description is not None: + query['description'] = description + if order_by is not None: + query['order_by'] = order_by if page is not None: query['page'] = str(page) if page_size is not None: From c350850565adf8b67da60e608508cbdd4abfcf1e Mon Sep 17 00:00:00 2001 From: fedur8 Date: Fri, 28 Jun 2024 15:56:35 +0200 Subject: [PATCH 12/12] Phis update --- example/phis/quickstart.ipynb | 7876 +++-------------------- src/agroservices/phis/phis.py | 128 +- src/agroservices/phis/phis_interface.py | 600 +- 3 files changed, 1613 insertions(+), 6991 deletions(-) diff --git a/example/phis/quickstart.ipynb b/example/phis/quickstart.ipynb index b7e3948..d1387e7 100644 --- a/example/phis/quickstart.ipynb +++ b/example/phis/quickstart.ipynb @@ -23,8 +23,8 @@ } ], "source": [ - "from agroservices.phis.phis import Phis\n", - "phis = Phis()" + "from agroservices.phis.phis_interface import Phis_UI\n", + "phis = Phis_UI()" ] }, { @@ -32,7 +32,7 @@ "id": "ab23cc99-4a04-4b32-81bd-41452a56d0e2", "metadata": {}, "source": [ - "## Authentification" + "## Get Token" ] }, { @@ -47,18 +47,12 @@ "name": "stdout", "output_type": "stream", "text": [ - "eyJhbGciOiJSUzUxMiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJvcGVuc2lsZXgiLCJzdWIiOiJtM3A6aWQvdXNlci9hY2NvdW50LnBoZW5vYXJjaGxlcHNlaW5yYWZyIiwiaWF0IjoxNzE4ODAzNzc3LCJleHAiOjE3MTg4MDY0NzcsImdpdmVuX25hbWUiOiJwaGVub2FyY2giLCJmYW1pbHlfbmFtZSI6ImxlcHNlIiwiZW1haWwiOiJwaGVub2FyY2hAbGVwc2UuaW5yYS5mciIsIm5hbWUiOiJwaGVub2FyY2hAbGVwc2UuaW5yYS5mciIsImxvY2FsZSI6ImVuIiwiaXNfYWRtaW4iOmZhbHNlLCJjcmVkZW50aWFsc19saXN0IjpbImFjY291bnQtYWNjZXNzIiwiZGF0YS1hY2Nlc3MiLCJkZXZpY2UtYWNjZXNzIiwiZG9jdW1lbnQtYWNjZXNzIiwiZXZlbnQtYWNjZXNzIiwiZXhwZXJpbWVudC1hY2Nlc3MiLCJmYWNpbGl0eS1hY2Nlc3MiLCJnZXJtcGxhc20tYWNjZXNzIiwiZ3JvdXAtYWNjZXNzIiwib3JnYW5pemF0aW9uLWFjY2VzcyIsInByb2plY3QtYWNjZXNzIiwicHJvdmVuYW5jZS1hY2Nlc3MiLCJzY2llbnRpZmljLW9iamVjdHMtYWNjZXNzIiwidmFyaWFibGUtYWNjZXNzIiwidm9jYWJ1bGFyeS1hY2Nlc3MiXX0.CdPE6VgDwLCjjWO-oMPUjAe3Q4iQCveRpn4EeOpCV3obVzEUmy6OdE9iar1RhzF64v5Q4sNeHZl5IBmxJYn3tVpyNcYj8yYMp7d4A5LIaS3x3mD1L-2l_NNWWQl1qGS9p1fVCBfe8sZP_0Qxh0KF3Xd0nsTGDLS-H75EBUSSlzNpJnq3fVLy4RrsnuAycp8oSnEifmxAlX8Qk-dqQ0_bxZZqswDuz-h3CvfOejEVyc-VUOjgBIbkZpo-SAB4oa-xEEvc3RiMte5_PoUMAnXf44a5tfXgwhQqIdZWRYqXvnKkyVKxxobaxCfF3j3P_LYkAvXdjjSijkWiXPUdRentdQ\n", - "-\n", - "200\n" + "eyJhbGciOiJSUzUxMiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJvcGVuc2lsZXgiLCJzdWIiOiJtM3A6aWQvdXNlci9hY2NvdW50LnBoZW5vYXJjaGxlcHNlaW5yYWZyIiwiaWF0IjoxNzE5NTgyODg5LCJleHAiOjE3MTk1ODU1ODksImdpdmVuX25hbWUiOiJwaGVub2FyY2giLCJmYW1pbHlfbmFtZSI6ImxlcHNlIiwiZW1haWwiOiJwaGVub2FyY2hAbGVwc2UuaW5yYS5mciIsIm5hbWUiOiJwaGVub2FyY2hAbGVwc2UuaW5yYS5mciIsImxvY2FsZSI6ImVuIiwiaXNfYWRtaW4iOmZhbHNlLCJjcmVkZW50aWFsc19saXN0IjpbImFjY291bnQtYWNjZXNzIiwiZGF0YS1hY2Nlc3MiLCJkZXZpY2UtYWNjZXNzIiwiZG9jdW1lbnQtYWNjZXNzIiwiZXZlbnQtYWNjZXNzIiwiZXhwZXJpbWVudC1hY2Nlc3MiLCJmYWNpbGl0eS1hY2Nlc3MiLCJnZXJtcGxhc20tYWNjZXNzIiwiZ3JvdXAtYWNjZXNzIiwib3JnYW5pemF0aW9uLWFjY2VzcyIsInByb2plY3QtYWNjZXNzIiwicHJvdmVuYW5jZS1hY2Nlc3MiLCJzY2llbnRpZmljLW9iamVjdHMtYWNjZXNzIiwidmFyaWFibGUtYWNjZXNzIiwidm9jYWJ1bGFyeS1hY2Nlc3MiXX0.OlhdcSoLqAPO72PNIpD_lQMsN97Ep7e0c2SATARqiosJQ8N5-y1SgEOzn2DmElVusKxKzFFbLysxeUQlGwczKedeSEZGZ4TY81SFEJVNhF6pkr4VYJ6qV9dzV5PFhUM5CdvEFSBXQWqiOpeV2lNUnaEN4oHM3DJ1Nq8kQBpnLUqvVW0wisgzdcJbL5GzjzqSsGlnJsn71D37e1uAwmGZsBWBYYDfu0aApZfSpl8VW9x73vrw4fZlpjkS3f4HLibfwmjA805JLXojcbvK2ihbFV8SMSU_BhwG7IUoMhCTXWnjJ5-WK9CgqdYawmbnvs5NRPhWEMbO3OzoaQm74z0fjw\n" ] } ], "source": [ - "token, status_code = phis.authenticate()\n", - "\n", - "print(token)\n", - "print('-')\n", - "print(status_code)" + "print(phis.token)" ] }, { @@ -86,24 +80,7 @@ { "data": { "text/plain": [ - "{'metadata': {'pagination': {'pageSize': 20,\n", - " 'currentPage': 0,\n", - " 'totalCount': 1,\n", - " 'totalPages': 1,\n", - " 'limitCount': 0,\n", - " 'hasNextPage': True},\n", - " 'status': [],\n", - " 'datafiles': []},\n", - " 'result': [{'uri': 'm3p:id/experiment/g2was2022',\n", - " 'name': 'G2WAS2022',\n", - " 'start_date': '2022-05-15',\n", - " 'end_date': '2022-07-31',\n", - " 'description': '',\n", - " 'objective': 'G2WAS project',\n", - " 'species': [],\n", - " 'is_public': True,\n", - " 'facilities': ['m3p:id/organization/facility.phenoarch',\n", - " 'm3p:id/organization/facility.phenodyn']}]}" + "['G2WAS2022', 'ZA24']" ] }, "execution_count": 3, @@ -120,7 +97,7 @@ "id": "df52a98c-e9fc-4329-b29e-682a0dde8dcb", "metadata": {}, "source": [ - "#### Get specific experiment with URI" + "#### Get specific experiment details" ] }, { @@ -132,60 +109,16 @@ { "data": { "text/plain": [ - "{'metadata': {'pagination': {'pageSize': 0,\n", - " 'currentPage': 0,\n", - " 'totalCount': 0,\n", - " 'totalPages': 0,\n", - " 'limitCount': 0,\n", - " 'hasNextPage': False},\n", - " 'status': [],\n", - " 'datafiles': []},\n", - " 'result': {'uri': 'm3p:id/experiment/g2was2022',\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None,\n", - " 'name': 'G2WAS2022',\n", - " 'start_date': '2022-05-15',\n", - " 'end_date': '2022-07-31',\n", - " 'description': '',\n", - " 'objective': 'G2WAS project',\n", - " 'species': [],\n", - " 'factors': [],\n", - " 'organisations': [{'uri': 'http://phenome.inrae.fr/id/organization/m3p',\n", - " 'name': 'M3P',\n", - " 'rdf_type': 'vocabulary:LocalOrganization',\n", - " 'rdf_type_name': 'local organization',\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'm3p:id/organization/phenoarch',\n", - " 'name': 'PHENOARCH',\n", - " 'rdf_type': 'vocabulary:LocalOrganization',\n", - " 'rdf_type_name': 'local organization',\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'm3p:id/organization/phenodyn',\n", - " 'name': 'PHENODYN',\n", - " 'rdf_type': 'vocabulary:LocalOrganization',\n", - " 'rdf_type_name': 'local organization',\n", - " 'publication_date': None,\n", - " 'last_updated_date': None}],\n", - " 'facilities': [{'uri': 'm3p:id/organization/facility.phenoarch',\n", - " 'name': 'phenoarch',\n", - " 'rdf_type': 'vocabulary:Greenhouse',\n", - " 'rdf_type_name': 'greenhouse',\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'm3p:id/organization/facility.phenodyn',\n", - " 'name': 'phenodyn',\n", - " 'rdf_type': 'vocabulary:Greenhouse',\n", - " 'rdf_type_name': 'greenhouse',\n", - " 'publication_date': None,\n", - " 'last_updated_date': None}],\n", - " 'projects': [],\n", - " 'scientific_supervisors': ['https://orcid.org/0000-0002-2147-2846/Person'],\n", - " 'technical_supervisors': [],\n", - " 'groups': ['m3p:id/group/m3p-dev'],\n", - " 'is_public': True}}" + "{'uri': 'm3p:id/experiment/g2was2022',\n", + " 'name': 'G2WAS2022',\n", + " 'start_date': '2022-05-15',\n", + " 'end_date': '2022-07-31',\n", + " 'description': '',\n", + " 'objective': 'G2WAS project',\n", + " 'species': [],\n", + " 'is_public': True,\n", + " 'facilities': ['m3p:id/organization/facility.phenoarch',\n", + " 'm3p:id/organization/facility.phenodyn']}" ] }, "execution_count": 4, @@ -194,259 +127,128 @@ } ], "source": [ - "phis.get_experiment(uri='m3p:id/experiment/g2was2022')" + "phis.get_experiment(experiment_name='G2WAS2022')" ] }, { "cell_type": "markdown", - "id": "55819c69-cc9b-40df-a357-85dae9182360", + "id": "a86ce348-2f3c-4c5d-b0ca-ee6b838674b3", "metadata": {}, "source": [ - "#### List available variables" + "#### List available data" ] }, { "cell_type": "code", "execution_count": 5, - "id": "5f272de0-ee56-496a-9b14-b1be6b280d89", - "metadata": {}, + "id": "5638b123-4b9f-4635-9774-ef5648b91792", + "metadata": { + "scrolled": true + }, "outputs": [ { "data": { "text/plain": [ - "{'metadata': {'pagination': {'pageSize': 100,\n", - " 'currentPage': 0,\n", - " 'totalCount': 18,\n", - " 'totalPages': 1,\n", - " 'limitCount': 0,\n", - " 'hasNextPage': True},\n", - " 'status': [],\n", - " 'datafiles': []},\n", - " 'result': [{'uri': 'http://phenome.inrae.fr/m3p/id/variable/ev000020',\n", - " 'name': 'air humidity_weather station_percentage',\n", - " 'entity': {'uri': 'm3p:id/variable/entity.air', 'name': 'Air'},\n", - " 'entity_of_interest': None,\n", - " 'characteristic': {'uri': 'm3p:id/variable/characteristic.humidity',\n", - " 'name': 'humidity'},\n", - " 'method': {'uri': 'm3p:id/variable/method.shelter_instant',\n", - " 'name': 'Shelter_Instant_Measurement'},\n", - " 'unit': {'uri': 'm3p:id/variable/unit.percentage', 'name': 'percent'},\n", - " 'onLocal': False,\n", - " 'sharedResourceInstance': None,\n", - " 'alternative_name': None},\n", - " {'uri': 'http://phenome.inrae.fr/m3p/id/variable/ev000001',\n", - " 'name': 'air temperature_weather station_degree celsius',\n", - " 'entity': {'uri': 'm3p:id/variable/entity.air', 'name': 'Air'},\n", - " 'entity_of_interest': None,\n", - " 'characteristic': {'uri': 'm3p:id/variable/characteristic.temperature',\n", - " 'name': 'Temperature'},\n", - " 'method': {'uri': 'm3p:id/variable/method.shelter_instant',\n", - " 'name': 'Shelter_Instant_Measurement'},\n", - " 'unit': {'uri': 'm3p:id/variable/unit.celsius', 'name': 'degree celsius'},\n", - " 'onLocal': False,\n", - " 'sharedResourceInstance': None,\n", - " 'alternative_name': None},\n", - " {'uri': 'http://phenome.inrae.fr/m3p/id/variable/ev000024',\n", - " 'name': 'CarbonDioxide_sensor_part per million',\n", - " 'entity': {'uri': 'm3p:id/variable/entity.air', 'name': 'Air'},\n", - " 'entity_of_interest': None,\n", - " 'characteristic': {'uri': 'm3p:id/variable/characteristic..co2',\n", - " 'name': 'CO2'},\n", - " 'method': {'uri': 'm3p:id/variable/method.measurement',\n", - " 'name': 'Measurement'},\n", - " 'unit': {'uri': 'http://purl.obolibrary.org/obo/UO_0000169', 'name': 'ppm'},\n", - " 'onLocal': False,\n", - " 'sharedResourceInstance': None,\n", - " 'alternative_name': None},\n", - " {'uri': 'http://phenome.inrae.fr/m3p/id/variable/ev000035',\n", - " 'name': 'diffuse PAR light_sensor_micromole.m-2.s-1',\n", - " 'entity': {'uri': 'm3p:id/variable/entity.solar', 'name': 'Solar'},\n", - " 'entity_of_interest': None,\n", - " 'characteristic': {'uri': 'http://www.ontology-of-units-of-measure.org/resource/om-2/Irradiance',\n", - " 'name': 'Irradiance'},\n", - " 'method': {'uri': 'm3p:id/variable/method.par_diffuse',\n", - " 'name': 'PAR_Diffuse'},\n", - " 'unit': {'uri': 'http://qudt.org/vocab/unit/MicroMOL-PER-M2-SEC',\n", - " 'name': 'MicroMOL-PER-M2-SEC'},\n", - " 'onLocal': False,\n", - " 'sharedResourceInstance': None,\n", - " 'alternative_name': None},\n", - " {'uri': 'http://phenome.inrae.fr/m3p/id/variable/ev000034',\n", - " 'name': 'direct PAR light_sensor_micromole.m-2.s-1',\n", - " 'entity': {'uri': 'm3p:id/variable/entity.solar', 'name': 'Solar'},\n", - " 'entity_of_interest': None,\n", - " 'characteristic': {'uri': 'http://www.ontology-of-units-of-measure.org/resource/om-2/Irradiance',\n", - " 'name': 'Irradiance'},\n", - " 'method': {'uri': 'm3p:id/variable/method.par_direct',\n", - " 'name': 'PAR_Direct'},\n", - " 'unit': {'uri': 'http://qudt.org/vocab/unit/MicroMOL-PER-M2-SEC',\n", - " 'name': 'MicroMOL-PER-M2-SEC'},\n", - " 'onLocal': False,\n", - " 'sharedResourceInstance': None,\n", - " 'alternative_name': None},\n", - " {'uri': 'http://phenome.inrae.fr/m3p/id/variable/greenhouse_lightning_setpoint_boolean',\n", - " 'name': 'Greenhouse_Lightning_Setpoint_Boolean',\n", - " 'entity': {'uri': 'm3p:id/variable/entity.greenhouse',\n", - " 'name': 'Greenhouse'},\n", - " 'entity_of_interest': None,\n", - " 'characteristic': {'uri': 'm3p:id/variable/characteristic.lightning',\n", - " 'name': 'Lightning'},\n", - " 'method': {'uri': 'm3p:id/variable/method.setpoint', 'name': 'Setpoint'},\n", - " 'unit': {'uri': 'm3p:id/variable/unit.boolean', 'name': 'Boolean'},\n", - " 'onLocal': False,\n", - " 'sharedResourceInstance': None,\n", - " 'alternative_name': 'Greenhouse_Lightning'},\n", - " {'uri': 'http://phenome.inrae.fr/m3p/id/variable/greenhouse_shading_setpoint_boolean',\n", - " 'name': 'Greenhouse_Shading_Setpoint_Boolean',\n", - " 'entity': {'uri': 'm3p:id/variable/entity.greenhouse',\n", - " 'name': 'Greenhouse'},\n", - " 'entity_of_interest': None,\n", - " 'characteristic': {'uri': 'm3p:id/variable/characteristic.shading',\n", - " 'name': 'Shading'},\n", - " 'method': {'uri': 'm3p:id/variable/method.setpoint', 'name': 'Setpoint'},\n", - " 'unit': {'uri': 'm3p:id/variable/unit.boolean', 'name': 'Boolean'},\n", - " 'onLocal': False,\n", - " 'sharedResourceInstance': None,\n", - " 'alternative_name': 'Greenhouse_Shading'},\n", - " {'uri': 'http://phenome.inrae.fr/m3p/id/variable/ev000021',\n", - " 'name': 'leaf temperature_thermocouple sensor_degree celsius',\n", - " 'entity': {'uri': 'm3p:id/variable/entity.leaf', 'name': 'Leaf'},\n", - " 'entity_of_interest': None,\n", - " 'characteristic': {'uri': 'm3p:id/variable/characteristic.temperature',\n", - " 'name': 'Temperature'},\n", - " 'method': {'uri': 'm3p:id/variable/method.thermocouple',\n", - " 'name': 'thermocouple'},\n", - " 'unit': {'uri': 'm3p:id/variable/unit.celsius', 'name': 'degree celsius'},\n", - " 'onLocal': False,\n", - " 'sharedResourceInstance': None,\n", - " 'alternative_name': None},\n", - " {'uri': 'http://phenome.inrae.fr/m3p/id/variable/ev000040',\n", - " 'name': 'lower near-surface infra-red radiation spectrum_wheater station_watt.m2',\n", - " 'entity': {'uri': 'm3p:id/variable/entity.solar', 'name': 'Solar'},\n", - " 'entity_of_interest': None,\n", - " 'characteristic': {'uri': 'm3p:id/variable/characteristic..infra-red-radiation',\n", - " 'name': 'Infra-red radiation'},\n", - " 'method': {'uri': 'm3p:id/variable/method.lower-near-surface',\n", - " 'name': 'Lower near-surface'},\n", - " 'unit': {'uri': 'http://purl.obolibrary.org/obo/UO_0000155',\n", - " 'name': 'watt per square meter'},\n", - " 'onLocal': False,\n", - " 'sharedResourceInstance': None,\n", - " 'alternative_name': None},\n", - " {'uri': 'http://phenome.inrae.fr/m3p/id/variable/ev000038',\n", - " 'name': 'lower solar radiation flux density_wheater station_watt.m2',\n", - " 'entity': {'uri': 'm3p:id/variable/entity.solar', 'name': 'Solar'},\n", - " 'entity_of_interest': None,\n", - " 'characteristic': {'uri': 'http://www.ontology-of-units-of-measure.org/resource/om-2/Irradiance',\n", - " 'name': 'Irradiance'},\n", - " 'method': {'uri': 'm3p:id/variable/method.lower-near-surface',\n", - " 'name': 'Lower near-surface'},\n", - " 'unit': {'uri': 'http://purl.obolibrary.org/obo/UO_0000155',\n", - " 'name': 'watt per square meter'},\n", - " 'onLocal': False,\n", - " 'sharedResourceInstance': None,\n", - " 'alternative_name': None},\n", - " {'uri': 'http://phenome.inrae.fr/m3p/id/variable/ev000036',\n", - " 'name': 'net irradiance_calculated variable_watt.m2',\n", - " 'entity': {'uri': 'm3p:id/variable/entity.solar', 'name': 'Solar'},\n", - " 'entity_of_interest': None,\n", - " 'characteristic': {'uri': 'http://www.ontology-of-units-of-measure.org/resource/om-2/Irradiance',\n", - " 'name': 'Irradiance'},\n", - " 'method': {'uri': 'm3p:id/variable/method.radiation_global',\n", - " 'name': 'Radiation_Global'},\n", - " 'unit': {'uri': 'http://purl.obolibrary.org/obo/UO_0000155',\n", - " 'name': 'watt per square meter'},\n", - " 'onLocal': False,\n", - " 'sharedResourceInstance': None,\n", - " 'alternative_name': None},\n", - " {'uri': 'http://phenome.inrae.fr/m3p/id/variable/ev000023',\n", - " 'name': 'PAR Light_weather station_micromole.m-2.s-1',\n", - " 'entity': {'uri': 'm3p:id/variable/entity.solar', 'name': 'Solar'},\n", - " 'entity_of_interest': None,\n", - " 'characteristic': {'uri': 'http://www.ontology-of-units-of-measure.org/resource/om-2/Irradiance',\n", - " 'name': 'Irradiance'},\n", - " 'method': {'uri': 'm3p:id/variable/method.par', 'name': 'PAR'},\n", - " 'unit': {'uri': 'http://qudt.org/vocab/unit/MicroMOL-PER-M2-SEC',\n", - " 'name': 'MicroMOL-PER-M2-SEC'},\n", - " 'onLocal': False,\n", - " 'sharedResourceInstance': None,\n", - " 'alternative_name': None},\n", - " {'uri': 'http://phenome.inrae.fr/m3p/id/variable/test_renaud_on_m3p_instance',\n", - " 'name': 'test_renaud_on_m3p_instance',\n", - " 'entity': {'uri': 'm3p:id/variable/entity.air', 'name': 'Air'},\n", - " 'entity_of_interest': None,\n", - " 'characteristic': {'uri': 'm3p:id/variable/characteristic..co2',\n", - " 'name': 'CO2'},\n", - " 'method': {'uri': 'm3p:id/variable/method.computation',\n", - " 'name': 'Computation'},\n", - " 'unit': {'uri': 'm3p:id/variable/unit.percentage', 'name': 'percent'},\n", - " 'onLocal': False,\n", - " 'sharedResourceInstance': None,\n", - " 'alternative_name': 'test_renaud_on_m3p_instance'},\n", - " {'uri': 'http://phenome.inrae.fr/m3p/id/variable/ev000039',\n", - " 'name': 'upper near-surface infra-red radiation spectrum_wheater station_watt.m2',\n", - " 'entity': {'uri': 'm3p:id/variable/entity.solar', 'name': 'Solar'},\n", - " 'entity_of_interest': None,\n", - " 'characteristic': {'uri': 'm3p:id/variable/characteristic..infra-red-radiation',\n", - " 'name': 'Infra-red radiation'},\n", - " 'method': {'uri': 'm3p:id/variable/method.upper-near-surface',\n", - " 'name': 'Upper near-surface'},\n", - " 'unit': {'uri': 'http://purl.obolibrary.org/obo/UO_0000155',\n", - " 'name': 'watt per square meter'},\n", - " 'onLocal': False,\n", - " 'sharedResourceInstance': None,\n", - " 'alternative_name': None},\n", - " {'uri': 'http://phenome.inrae.fr/m3p/id/variable/ev000037',\n", - " 'name': 'upper solar radiation flux density_wheater station_watt.m2',\n", - " 'entity': {'uri': 'm3p:id/variable/entity.solar', 'name': 'Solar'},\n", - " 'entity_of_interest': None,\n", - " 'characteristic': {'uri': 'http://www.ontology-of-units-of-measure.org/resource/om-2/Irradiance',\n", - " 'name': 'Irradiance'},\n", - " 'method': {'uri': 'm3p:id/variable/method.upper-near-surface',\n", - " 'name': 'Upper near-surface'},\n", - " 'unit': {'uri': 'http://purl.obolibrary.org/obo/UO_0000155',\n", - " 'name': 'watt per square meter'},\n", - " 'onLocal': False,\n", - " 'sharedResourceInstance': None,\n", - " 'alternative_name': None},\n", - " {'uri': 'http://phenome.inrae.fr/m3p/id/variable/v003',\n", - " 'name': 'weightAfter_unspecified_g',\n", - " 'entity': {'uri': 'http://purl.obolibrary.org/obo/PO_0000003',\n", - " 'name': 'Plant'},\n", - " 'entity_of_interest': None,\n", - " 'characteristic': {'uri': 'm3p:id/variable/characteristic.fresh_weight',\n", - " 'name': 'fresh_weight'},\n", - " 'method': {'uri': 'm3p:id/variable/method.computation',\n", - " 'name': 'Computation'},\n", - " 'unit': {'uri': 'm3p:id/variable/unit.gram', 'name': 'gram'},\n", - " 'onLocal': False,\n", - " 'sharedResourceInstance': None,\n", - " 'alternative_name': None},\n", - " {'uri': 'http://phenome.inrae.fr/m3p/id/variable/v004',\n", - " 'name': 'weightAmount_unspecified_g',\n", - " 'entity': {'uri': 'm3p:id/variable/entity.water', 'name': 'Water'},\n", - " 'entity_of_interest': None,\n", - " 'characteristic': {'uri': 'm3p:id/variable/characteristic.fresh_weight',\n", - " 'name': 'fresh_weight'},\n", - " 'method': {'uri': 'm3p:id/variable/method.computation',\n", - " 'name': 'Computation'},\n", - " 'unit': {'uri': 'm3p:id/variable/unit.gram', 'name': 'gram'},\n", - " 'onLocal': False,\n", - " 'sharedResourceInstance': None,\n", - " 'alternative_name': None},\n", - " {'uri': 'http://phenome.inrae.fr/m3p/id/variable/v002',\n", - " 'name': 'weightBefore_unspecified_g',\n", - " 'entity': {'uri': 'http://purl.obolibrary.org/obo/PO_0000003',\n", - " 'name': 'Plant'},\n", - " 'entity_of_interest': None,\n", - " 'characteristic': {'uri': 'm3p:id/variable/characteristic.fresh_weight',\n", - " 'name': 'fresh_weight'},\n", - " 'method': {'uri': 'm3p:id/variable/method.computation',\n", - " 'name': 'Computation'},\n", - " 'unit': {'uri': 'm3p:id/variable/unit.gram', 'name': 'gram'},\n", - " 'onLocal': False,\n", - " 'sharedResourceInstance': None,\n", - " 'alternative_name': None}]}" + "[59.0,\n", + " 1524.0,\n", + " 392.0,\n", + " 61.1,\n", + " 63.5,\n", + " 65.6,\n", + " 62.0,\n", + " 58.4,\n", + " 60.5,\n", + " 68.4,\n", + " 63.0,\n", + " 63.1,\n", + " 703.4,\n", + " 1014.9,\n", + " 983.8,\n", + " 229.7,\n", + " 779.7,\n", + " 277.0,\n", + " 481.7,\n", + " 263.2,\n", + " 214.5,\n", + " 292.8,\n", + " 26.6,\n", + " 26.6,\n", + " 26.2,\n", + " 25.3,\n", + " 26.3,\n", + " 26.6,\n", + " 26.6,\n", + " 25.0,\n", + " 26.0,\n", + " 25.8,\n", + " 59.3,\n", + " 1536.0,\n", + " 411.0,\n", + " 61.3,\n", + " 63.9,\n", + " 65.2,\n", + " 62.4,\n", + " 58.7,\n", + " 60.3,\n", + " 68.8,\n", + " 63.0,\n", + " 62.9,\n", + " 1095.8,\n", + " 1085.8,\n", + " 1002.7,\n", + " 668.2,\n", + " 1039.1,\n", + " 887.7,\n", + " 548.1,\n", + " 758.4,\n", + " 451.2,\n", + " 730.5,\n", + " 26.5,\n", + " 26.5,\n", + " 26.0,\n", + " 25.4,\n", + " 26.5,\n", + " 26.6,\n", + " 26.7,\n", + " 24.8,\n", + " 25.9,\n", + " 25.8,\n", + " 59.8,\n", + " 1492.0,\n", + " 448.0,\n", + " 61.3,\n", + " 63.9,\n", + " 64.9,\n", + " 62.9,\n", + " 58.9,\n", + " 60.2,\n", + " 68.8,\n", + " 63.2,\n", + " 62.9,\n", + " 1015.9,\n", + " 814.3,\n", + " 903.4,\n", + " 913.0,\n", + " 717.1,\n", + " 272.1,\n", + " 1051.0,\n", + " 556.8,\n", + " 997.2,\n", + " 1085.3,\n", + " 26.4,\n", + " 26.5,\n", + " 26.0,\n", + " 25.5,\n", + " 26.3,\n", + " 26.5,\n", + " 26.7,\n", + " 24.8,\n", + " 25.9,\n", + " 25.8,\n", + " 57.9,\n", + " 1449.0,\n", + " 452.0,\n", + " 59.1]" ] }, "execution_count": 5, @@ -455,71 +257,44 @@ } ], "source": [ - "phis.get_variable()" + "phis.get_data(page_size=100)" ] }, { "cell_type": "markdown", - "id": "8032a524-1e86-41bc-b85d-1fd3621fe3ea", + "id": "55819c69-cc9b-40df-a357-85dae9182360", "metadata": {}, "source": [ - "#### Get specific variable with URI" + "#### List available variables" ] }, { "cell_type": "code", "execution_count": 6, - "id": "fab949ac-7544-4ede-ac5b-2696778c0aa2", + "id": "5f272de0-ee56-496a-9b14-b1be6b280d89", "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "{'metadata': {'pagination': {'pageSize': 0,\n", - " 'currentPage': 0,\n", - " 'totalCount': 0,\n", - " 'totalPages': 0,\n", - " 'limitCount': 0,\n", - " 'hasNextPage': False},\n", - " 'status': [],\n", - " 'datafiles': []},\n", - " 'result': {'uri': 'http://phenome.inrae.fr/m3p/id/variable/ev000020',\n", - " 'name': 'air humidity_weather station_percentage',\n", - " 'alternative_name': None,\n", - " 'description': None,\n", - " 'entity': {'uri': 'm3p:id/variable/entity.air', 'name': 'Air'},\n", - " 'entity_of_interest': None,\n", - " 'characteristic': {'uri': 'm3p:id/variable/characteristic.humidity',\n", - " 'name': 'humidity'},\n", - " 'trait': None,\n", - " 'trait_name': None,\n", - " 'method': {'uri': 'm3p:id/variable/method.shelter_instant',\n", - " 'name': 'Shelter_Instant_Measurement'},\n", - " 'unit': {'uri': 'm3p:id/variable/unit.percentage',\n", - " 'name': 'percent',\n", - " 'description': '\"Percent\" is a unit for \\'Dimensionless Ratio\\' expressed as %',\n", - " 'symbol': '%',\n", - " 'alternative_symbol': None,\n", - " 'exact_match': ['http://qudt.org/vocab/unit/PERCENT'],\n", - " 'close_match': [],\n", - " 'broad_match': [],\n", - " 'narrow_match': [],\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': '2024-03-29T10:11:40.121535+01:00',\n", - " 'from_shared_resource_instance': None},\n", - " 'species': [],\n", - " 'time_interval': None,\n", - " 'sampling_interval': None,\n", - " 'datatype': 'http://www.w3.org/2001/XMLSchema#decimal',\n", - " 'exact_match': [],\n", - " 'close_match': [],\n", - " 'broad_match': [],\n", - " 'narrow_match': [],\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None,\n", - " 'from_shared_resource_instance': None}}" + "['air humidity_weather station_percentage',\n", + " 'air temperature_weather station_degree celsius',\n", + " 'CarbonDioxide_sensor_part per million',\n", + " 'diffuse PAR light_sensor_micromole.m-2.s-1',\n", + " 'direct PAR light_sensor_micromole.m-2.s-1',\n", + " 'Greenhouse_Lightning_Setpoint_Boolean',\n", + " 'Greenhouse_Shading_Setpoint_Boolean',\n", + " 'leaf temperature_thermocouple sensor_degree celsius',\n", + " 'lower near-surface infra-red radiation spectrum_wheater station_watt.m2',\n", + " 'lower solar radiation flux density_wheater station_watt.m2',\n", + " 'net irradiance_calculated variable_watt.m2',\n", + " 'PAR Light_weather station_micromole.m-2.s-1',\n", + " 'test_renaud_on_m3p_instance',\n", + " 'upper near-surface infra-red radiation spectrum_wheater station_watt.m2',\n", + " 'upper solar radiation flux density_wheater station_watt.m2',\n", + " 'weightAfter_unspecified_g',\n", + " 'weightAmount_unspecified_g',\n", + " 'weightBefore_unspecified_g']" ] }, "execution_count": 6, @@ -528,374 +303,39 @@ } ], "source": [ - "phis.get_variable(uri='http://phenome.inrae.fr/m3p/id/variable/ev000020')" + "phis.get_variable()" ] }, { "cell_type": "markdown", - "id": "9cf51b5d-6d54-409f-8cdf-0739e6260b5a", + "id": "8032a524-1e86-41bc-b85d-1fd3621fe3ea", "metadata": {}, "source": [ - "#### List available projects" + "#### Get specific variable details" ] }, { "cell_type": "code", "execution_count": 7, - "id": "d24bf742-f2da-4ab6-8345-1a8dd5a5077e", + "id": "fab949ac-7544-4ede-ac5b-2696778c0aa2", "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "{'metadata': {'pagination': {'pageSize': 100,\n", - " 'currentPage': 0,\n", - " 'totalCount': 20,\n", - " 'totalPages': 1,\n", - " 'limitCount': 0,\n", - " 'hasNextPage': True},\n", - " 'status': [],\n", - " 'datafiles': []},\n", - " 'result': [{'uri': 'm3p:id/project/amaizing',\n", - " 'publisher': None,\n", - " 'publication_date': '2024-02-19T14:59:50.71845+01:00',\n", - " 'last_updated_date': None,\n", - " 'name': 'Amaizing',\n", - " 'shortname': None,\n", - " 'start_date': '2011-01-10',\n", - " 'end_date': '2011-01-10',\n", - " 'description': 'http://www.amaizing.fr/⏎> Responsable scientifiqu…',\n", - " 'objective': None,\n", - " 'financial_funding': 'Agence Nationale de la Recherche (ANR)',\n", - " 'website': None,\n", - " 'related_projects': [],\n", - " 'coordinators': ['m3p:id/user/person.franois.tardieu'],\n", - " 'scientific_contacts': [],\n", - " 'administrative_contacts': [],\n", - " 'experiments': []},\n", - " {'uri': 'm3p:id/project/cawas',\n", - " 'publisher': None,\n", - " 'publication_date': '2024-02-19T15:02:03.738864+01:00',\n", - " 'last_updated_date': None,\n", - " 'name': 'CAWaS',\n", - " 'shortname': None,\n", - " 'start_date': '2015-01-01',\n", - " 'end_date': '2017-12-31',\n", - " 'description': 'Cotton adaptation to water stress: genetic and mo…',\n", - " 'objective': None,\n", - " 'financial_funding': 'Agropolis Fondation',\n", - " 'website': None,\n", - " 'related_projects': [],\n", - " 'coordinators': ['m3p:id/user/person.marc.giband'],\n", - " 'scientific_contacts': [],\n", - " 'administrative_contacts': [],\n", - " 'experiments': []},\n", - " {'uri': 'm3p:id/project/crops',\n", - " 'publisher': None,\n", - " 'publication_date': '2024-02-19T15:04:12.971969+01:00',\n", - " 'last_updated_date': None,\n", - " 'name': 'CROPS',\n", - " 'shortname': None,\n", - " 'start_date': '2014-07-01',\n", - " 'end_date': '2014-07-08',\n", - " 'description': None,\n", - " 'objective': None,\n", - " 'financial_funding': None,\n", - " 'website': None,\n", - " 'related_projects': [],\n", - " 'coordinators': [],\n", - " 'scientific_contacts': ['m3p:id/user/person.franois.tardieu'],\n", - " 'administrative_contacts': [],\n", - " 'experiments': []},\n", - " {'uri': 'm3p:id/project/drops',\n", - " 'publisher': None,\n", - " 'publication_date': '2024-02-19T15:07:06.744774+01:00',\n", - " 'last_updated_date': None,\n", - " 'name': 'DROPS',\n", - " 'shortname': None,\n", - " 'start_date': '2010-07-01',\n", - " 'end_date': '2015-07-01',\n", - " 'description': 'DROPS aims at developing novel methods and strate…',\n", - " 'objective': 'DROPS aims at developing novel methods and strate…',\n", - " 'financial_funding': 'European Union',\n", - " 'website': None,\n", - " 'related_projects': [],\n", - " 'coordinators': ['m3p:id/user/person.franois.tardieu'],\n", - " 'scientific_contacts': [],\n", - " 'administrative_contacts': [],\n", - " 'experiments': []},\n", - " {'uri': 'm3p:id/project/eppn',\n", - " 'publisher': None,\n", - " 'publication_date': '2024-02-19T15:09:36.544874+01:00',\n", - " 'last_updated_date': None,\n", - " 'name': 'EPPN',\n", - " 'shortname': None,\n", - " 'start_date': '2012-01-01',\n", - " 'end_date': '2015-12-31',\n", - " 'description': None,\n", - " 'objective': None,\n", - " 'financial_funding': 'European Union',\n", - " 'website': None,\n", - " 'related_projects': [],\n", - " 'coordinators': ['m3p:id/user/person.franois.tardieu'],\n", - " 'scientific_contacts': [],\n", - " 'administrative_contacts': [],\n", - " 'experiments': []},\n", - " {'uri': 'https://eppn2020.plant-phenotyping.eu/',\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None,\n", - " 'name': 'EPPN2020',\n", - " 'shortname': 'EPPN2020',\n", - " 'start_date': '2017-01-03',\n", - " 'end_date': '2021-10-31',\n", - " 'description': None,\n", - " 'objective': None,\n", - " 'financial_funding': None,\n", - " 'website': 'https://eppn2020.plant-phenotyping.eu/',\n", - " 'related_projects': [],\n", - " 'coordinators': [],\n", - " 'scientific_contacts': [],\n", - " 'administrative_contacts': [],\n", - " 'experiments': []},\n", - " {'uri': 'm3p:id/project/expose',\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None,\n", - " 'name': 'EXPOSE',\n", - " 'shortname': None,\n", - " 'start_date': '2021-01-01',\n", - " 'end_date': None,\n", - " 'description': None,\n", - " 'objective': None,\n", - " 'financial_funding': None,\n", - " 'website': None,\n", - " 'related_projects': [],\n", - " 'coordinators': [],\n", - " 'scientific_contacts': [],\n", - " 'administrative_contacts': [],\n", - " 'experiments': []},\n", - " {'uri': 'm3p:id/project/florimaize',\n", - " 'publisher': None,\n", - " 'publication_date': '2024-02-19T15:12:18.831087+01:00',\n", - " 'last_updated_date': None,\n", - " 'name': 'Florimaize',\n", - " 'shortname': None,\n", - " 'start_date': '2013-09-01',\n", - " 'end_date': None,\n", - " 'description': 'Rôle des protéines florigènes dans la reprogramma…',\n", - " 'objective': None,\n", - " 'financial_funding': 'Agropolis Fondation',\n", - " 'website': None,\n", - " 'related_projects': [],\n", - " 'coordinators': ['m3p:id/user/person.franois.tardieu'],\n", - " 'scientific_contacts': [],\n", - " 'administrative_contacts': [],\n", - " 'experiments': []},\n", - " {'uri': 'm3p:id/project/g2was',\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None,\n", - " 'name': 'G2WAS',\n", - " 'shortname': 'G2WAS',\n", - " 'start_date': '2021-01-01',\n", - " 'end_date': '2025-12-31',\n", - " 'description': None,\n", - " 'objective': None,\n", - " 'financial_funding': 'ANR',\n", - " 'website': None,\n", - " 'related_projects': [],\n", - " 'coordinators': [],\n", - " 'scientific_contacts': [],\n", - " 'administrative_contacts': [],\n", - " 'experiments': []},\n", - " {'uri': 'm3p:id/project/lines_vs_hyb',\n", - " 'publisher': None,\n", - " 'publication_date': '2024-02-19T15:14:22.419076+01:00',\n", - " 'last_updated_date': None,\n", - " 'name': 'Lines_VS_Hyb',\n", - " 'shortname': None,\n", - " 'start_date': '2014-07-01',\n", - " 'end_date': '2014-07-08',\n", - " 'description': None,\n", - " 'objective': None,\n", - " 'financial_funding': None,\n", - " 'website': None,\n", - " 'related_projects': [],\n", - " 'coordinators': ['m3p:id/user/person.franois.tardieu'],\n", - " 'scientific_contacts': [],\n", - " 'administrative_contacts': [],\n", - " 'experiments': []},\n", - " {'uri': 'm3p:id/project/myb',\n", - " 'publisher': None,\n", - " 'publication_date': '2024-02-19T15:16:49.113458+01:00',\n", - " 'last_updated_date': None,\n", - " 'name': 'MYB',\n", - " 'shortname': None,\n", - " 'start_date': '2014-07-01',\n", - " 'end_date': '2014-07-08',\n", - " 'description': None,\n", - " 'objective': None,\n", - " 'financial_funding': None,\n", - " 'website': None,\n", - " 'related_projects': [],\n", - " 'coordinators': ['m3p:id/user/person.franois.tardieu'],\n", - " 'scientific_contacts': [],\n", - " 'administrative_contacts': [],\n", - " 'experiments': []},\n", - " {'uri': 'm3p:id/project/phenome',\n", - " 'publisher': None,\n", - " 'publication_date': '2024-02-19T15:18:51.382343+01:00',\n", - " 'last_updated_date': None,\n", - " 'name': 'PHENOME',\n", - " 'shortname': None,\n", - " 'start_date': '2012-01-01',\n", - " 'end_date': '2019-12-31',\n", - " 'description': 'PHENOME, the French plant phenomic network (FPPN)…',\n", - " 'objective': None,\n", - " 'financial_funding': 'Agence Nationale de la Recherche (ANR)',\n", - " 'website': None,\n", - " 'related_projects': [],\n", - " 'coordinators': ['m3p:id/user/person.franois.tardieu'],\n", - " 'scientific_contacts': [],\n", - " 'administrative_contacts': [],\n", - " 'experiments': []},\n", - " {'uri': 'm3p:id/project/phis_publi',\n", - " 'publisher': None,\n", - " 'publication_date': '2024-02-19T15:20:35.05958+01:00',\n", - " 'last_updated_date': None,\n", - " 'name': 'PHIS_Publi',\n", - " 'shortname': None,\n", - " 'start_date': '2016-03-01',\n", - " 'end_date': None,\n", - " 'description': None,\n", - " 'objective': None,\n", - " 'financial_funding': None,\n", - " 'website': None,\n", - " 'related_projects': [],\n", - " 'coordinators': ['m3p:id/user/person.pascal.neveu'],\n", - " 'scientific_contacts': [],\n", - " 'administrative_contacts': [],\n", - " 'experiments': []},\n", - " {'uri': 'm3p:id/project/progress_genetique',\n", - " 'publisher': None,\n", - " 'publication_date': '2024-02-19T15:23:27.959462+01:00',\n", - " 'last_updated_date': None,\n", - " 'name': 'Progress_Genetique',\n", - " 'shortname': None,\n", - " 'start_date': '2014-07-01',\n", - " 'end_date': '2014-07-08',\n", - " 'description': None,\n", - " 'objective': None,\n", - " 'financial_funding': None,\n", - " 'website': None,\n", - " 'related_projects': [],\n", - " 'coordinators': ['m3p:id/user/person.franois.tardieu'],\n", - " 'scientific_contacts': [],\n", - " 'administrative_contacts': [],\n", - " 'experiments': []},\n", - " {'uri': 'm3p:id/project/selgen',\n", - " 'publisher': None,\n", - " 'publication_date': '2024-02-19T15:25:33.899926+01:00',\n", - " 'last_updated_date': None,\n", - " 'name': 'SelGen',\n", - " 'shortname': None,\n", - " 'start_date': '2016-01-01',\n", - " 'end_date': '2017-12-31',\n", - " 'description': 'Genomic selection parent projects DROPs & Amaizing',\n", - " 'objective': None,\n", - " 'financial_funding': None,\n", - " 'website': None,\n", - " 'related_projects': ['m3p:id/project/amaizing'],\n", - " 'coordinators': ['m3p:id/user/person.franois.tardieu'],\n", - " 'scientific_contacts': [],\n", - " 'administrative_contacts': [],\n", - " 'experiments': []},\n", - " {'uri': 'm3p:id/project/sorghum_genomics_toolbox',\n", - " 'publisher': None,\n", - " 'publication_date': '2024-02-19T11:11:01.550354+01:00',\n", - " 'last_updated_date': None,\n", - " 'name': 'Sorghum genomics toolbox',\n", - " 'shortname': None,\n", - " 'start_date': '2016-09-01',\n", - " 'end_date': '2019-09-01',\n", - " 'description': 'The “Sorghum Genomics Toolbox” project (SGT) aims at providing methods and data for accelerating trait and gene discovery in support to sorghum improvement for Sudano-Sahelian cropping environments. Danforth and Kansas university coordinate the sequencing of a panel of ~1000 African sorghum accessions. CIRAD and ICRISAT lead the development and application of field phenotyping facilities in Senegal (CERAAS), Mali (IER), Ethiopia (EIAR). Phenotyping focus will be on plant and crop growth, architecture, resource acquisition and use (light, water) and biomass / grain yield components. At each hub (site/partner), facilities will be implemented to improve sampling logistics, coding and processing, environmental characterization, drone based phenotyping (using TIR, multispectral, RGB sensors), data management and analysis. CIRAD and ICRISAT will also contribute to articulate field crop phenotyping with phenotyping in platforms (controlled environments: LeasyScan, Phenoarch) giving access to finer traits and the estimation of key crop model parameters.',\n", - " 'objective': '',\n", - " 'financial_funding': 'Bill and Melinda Gates Foundation',\n", - " 'website': None,\n", - " 'related_projects': [],\n", - " 'coordinators': [],\n", - " 'scientific_contacts': [],\n", - " 'administrative_contacts': [],\n", - " 'experiments': []},\n", - " {'uri': 'm3p:id/project/test',\n", - " 'publisher': None,\n", - " 'publication_date': '2024-02-19T15:28:26.508934+01:00',\n", - " 'last_updated_date': None,\n", - " 'name': 'Test',\n", - " 'shortname': None,\n", - " 'start_date': '2015-06-01',\n", - " 'end_date': None,\n", - " 'description': None,\n", - " 'objective': None,\n", - " 'financial_funding': None,\n", - " 'website': None,\n", - " 'related_projects': [],\n", - " 'coordinators': ['m3p:id/user/person.isabelle.nembrot'],\n", - " 'scientific_contacts': [],\n", - " 'administrative_contacts': [],\n", - " 'experiments': []},\n", - " {'uri': 'm3p:id/project/vitsec',\n", - " 'publisher': None,\n", - " 'publication_date': '2024-02-19T15:30:43.433037+01:00',\n", - " 'last_updated_date': None,\n", - " 'name': 'VITSEC',\n", - " 'shortname': None,\n", - " 'start_date': '2010-01-01',\n", - " 'end_date': '2012-12-31',\n", - " 'description': 'Molecular bases of grapevine adaptation to water …',\n", - " 'objective': None,\n", - " 'financial_funding': 'Agence Nationale de la Recherche (ANR)',\n", - " 'website': None,\n", - " 'related_projects': [],\n", - " 'coordinators': ['m3p:id/user/person.thierry.simonneau'],\n", - " 'scientific_contacts': [],\n", - " 'administrative_contacts': [],\n", - " 'experiments': []},\n", - " {'uri': 'm3p:id/project/xyz',\n", - " 'publisher': None,\n", - " 'publication_date': '2024-02-19T15:33:38.24394+01:00',\n", - " 'last_updated_date': '2024-02-19T15:36:34.851019+01:00',\n", - " 'name': 'XYZ',\n", - " 'shortname': None,\n", - " 'start_date': '2015-12-18',\n", - " 'end_date': '2015-12-18',\n", - " 'description': 'Background: In maize, silks are hundreds of filam…',\n", - " 'objective': None,\n", - " 'financial_funding': None,\n", - " 'website': None,\n", - " 'related_projects': ['m3p:id/project/phenome'],\n", - " 'coordinators': ['m3p:id/user/person.nicolas.brichet'],\n", - " 'scientific_contacts': ['https://orcid.org/0000-0002-2147-2846/Person'],\n", - " 'administrative_contacts': [],\n", - " 'experiments': []},\n", - " {'uri': 'm3p:id/project/ztest',\n", - " 'publisher': None,\n", - " 'publication_date': '2024-02-19T15:37:46.207302+01:00',\n", - " 'last_updated_date': None,\n", - " 'name': 'ZTEST',\n", - " 'shortname': None,\n", - " 'start_date': '2015-01-04',\n", - " 'end_date': '2015-03-30',\n", - " 'description': 'test 2015 Elcom',\n", - " 'objective': None,\n", - " 'financial_funding': None,\n", - " 'website': None,\n", - " 'related_projects': [],\n", - " 'coordinators': ['https://orcid.org/0000-0002-2147-2846/Person'],\n", - " 'scientific_contacts': [],\n", - " 'administrative_contacts': [],\n", - " 'experiments': []}]}" + "{'uri': 'http://phenome.inrae.fr/m3p/id/variable/ev000036',\n", + " 'name': 'net irradiance_calculated variable_watt.m2',\n", + " 'entity': {'uri': 'm3p:id/variable/entity.solar', 'name': 'Solar'},\n", + " 'entity_of_interest': None,\n", + " 'characteristic': {'uri': 'http://www.ontology-of-units-of-measure.org/resource/om-2/Irradiance',\n", + " 'name': 'Irradiance'},\n", + " 'method': {'uri': 'm3p:id/variable/method.radiation_global',\n", + " 'name': 'Radiation_Global'},\n", + " 'unit': {'uri': 'http://purl.obolibrary.org/obo/UO_0000155',\n", + " 'name': 'watt per square meter'},\n", + " 'onLocal': False,\n", + " 'sharedResourceInstance': None,\n", + " 'alternative_name': None}" ] }, "execution_count": 7, @@ -904,59 +344,46 @@ } ], "source": [ - "phis.get_project()" + "phis.get_variable(variable_name='net irradiance_calculated variable_watt.m2')" ] }, { "cell_type": "markdown", - "id": "1a3a4b8e-f681-4aa7-a733-f00d68278801", + "id": "9cf51b5d-6d54-409f-8cdf-0739e6260b5a", "metadata": {}, "source": [ - "#### Get specific project with URI" + "#### List available projects" ] }, { "cell_type": "code", "execution_count": 8, - "id": "8a4505b9-3f38-48ce-aee6-fe56e6498755", + "id": "d24bf742-f2da-4ab6-8345-1a8dd5a5077e", "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "{'metadata': {'pagination': {'pageSize': 0,\n", - " 'currentPage': 0,\n", - " 'totalCount': 0,\n", - " 'totalPages': 0,\n", - " 'limitCount': 0,\n", - " 'hasNextPage': False},\n", - " 'status': [],\n", - " 'datafiles': []},\n", - " 'result': {'uri': 'm3p:id/project/vitsec',\n", - " 'publisher': {'uri': 'http://www.phenome.inrae.fr/m3p/users#admin.opensilex',\n", - " 'email': 'admin@opensilex.org',\n", - " 'language': 'en',\n", - " 'admin': True,\n", - " 'first_name': 'Admin',\n", - " 'last_name': 'OpenSilex',\n", - " 'linked_person': 'http://www.phenome.inrae.fr/m3p/users#admin.opensilex/Person',\n", - " 'enable': True,\n", - " 'favorites': None},\n", - " 'publication_date': '2024-02-19T15:30:43.433037+01:00',\n", - " 'last_updated_date': None,\n", - " 'name': 'VITSEC',\n", - " 'shortname': None,\n", - " 'start_date': '2010-01-01',\n", - " 'end_date': '2012-12-31',\n", - " 'description': 'Molecular bases of grapevine adaptation to water …',\n", - " 'objective': None,\n", - " 'financial_funding': 'Agence Nationale de la Recherche (ANR)',\n", - " 'website': None,\n", - " 'related_projects': [],\n", - " 'coordinators': ['m3p:id/user/person.thierry.simonneau'],\n", - " 'scientific_contacts': [],\n", - " 'administrative_contacts': [],\n", - " 'experiments': []}}" + "['Amaizing',\n", + " 'CAWaS',\n", + " 'CROPS',\n", + " 'DROPS',\n", + " 'EPPN',\n", + " 'EPPN2020',\n", + " 'EXPOSE',\n", + " 'Florimaize',\n", + " 'G2WAS',\n", + " 'Lines_VS_Hyb',\n", + " 'MYB',\n", + " 'PHENOME',\n", + " 'PHIS_Publi',\n", + " 'Progress_Genetique',\n", + " 'SelGen',\n", + " 'Sorghum genomics toolbox',\n", + " 'Test',\n", + " 'VITSEC',\n", + " 'XYZ',\n", + " 'ZTEST']" ] }, "execution_count": 8, @@ -965,99 +392,43 @@ } ], "source": [ - "phis.get_project(uri='m3p:id/project/vitsec')" + "phis.get_project()" ] }, { "cell_type": "markdown", - "id": "8e0ed766-a3a5-41a5-8773-095d335c96cc", + "id": "1a3a4b8e-f681-4aa7-a733-f00d68278801", "metadata": {}, "source": [ - "#### List available facilities" + "#### Get specific project details" ] }, { "cell_type": "code", "execution_count": 9, - "id": "cff8e32f-a7b3-426c-9163-25261541fbb4", + "id": "8a4505b9-3f38-48ce-aee6-fe56e6498755", "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "{'metadata': {'pagination': {'pageSize': 5,\n", - " 'currentPage': 0,\n", - " 'totalCount': 5,\n", - " 'totalPages': 1,\n", - " 'limitCount': 0,\n", - " 'hasNextPage': True},\n", - " 'status': [],\n", - " 'datafiles': []},\n", - " 'result': [{'uri': 'm3p:id/organization/facility.chambre-e',\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None,\n", - " 'rdf_type': 'vocabulary:GrowthChamber',\n", - " 'rdf_type_name': 'growth chamber',\n", - " 'name': 'chambre E',\n", - " 'organizations': [],\n", - " 'sites': [],\n", - " 'address': None,\n", - " 'variableGroups': [],\n", - " 'geometry': None,\n", - " 'relations': []},\n", - " {'uri': 'm3p:id/organization/facility.phenoarch',\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None,\n", - " 'rdf_type': 'vocabulary:Greenhouse',\n", - " 'rdf_type_name': 'greenhouse',\n", - " 'name': 'phenoarch',\n", - " 'organizations': [],\n", - " 'sites': [],\n", - " 'address': None,\n", - " 'variableGroups': [],\n", - " 'geometry': None,\n", - " 'relations': []},\n", - " {'uri': 'm3p:id/organization/facility.phenopsis-1',\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None,\n", - " 'rdf_type': 'vocabulary:GrowthChamber',\n", - " 'rdf_type_name': 'growth chamber',\n", - " 'name': 'PHENOPSIS-1',\n", - " 'organizations': [],\n", - " 'sites': [],\n", - " 'address': None,\n", - " 'variableGroups': [],\n", - " 'geometry': None,\n", - " 'relations': []},\n", - " {'uri': 'm3p:id/organization/facility.phenopsis-2',\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None,\n", - " 'rdf_type': 'vocabulary:GrowthChamber',\n", - " 'rdf_type_name': 'growth chamber',\n", - " 'name': 'PHENOPSIS-2',\n", - " 'organizations': [],\n", - " 'sites': [],\n", - " 'address': None,\n", - " 'variableGroups': [],\n", - " 'geometry': None,\n", - " 'relations': []},\n", - " {'uri': 'm3p:id/organization/facility.phenopsis-3',\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None,\n", - " 'rdf_type': 'vocabulary:GrowthChamber',\n", - " 'rdf_type_name': 'growth chamber',\n", - " 'name': 'PHENOPSIS-3',\n", - " 'organizations': [],\n", - " 'sites': [],\n", - " 'address': None,\n", - " 'variableGroups': [],\n", - " 'geometry': None,\n", - " 'relations': []}]}" + "{'uri': 'm3p:id/project/crops',\n", + " 'publisher': None,\n", + " 'publication_date': '2024-02-19T15:04:12.971969+01:00',\n", + " 'last_updated_date': None,\n", + " 'name': 'CROPS',\n", + " 'shortname': None,\n", + " 'start_date': '2014-07-01',\n", + " 'end_date': '2014-07-08',\n", + " 'description': None,\n", + " 'objective': None,\n", + " 'financial_funding': None,\n", + " 'website': None,\n", + " 'related_projects': [],\n", + " 'coordinators': [],\n", + " 'scientific_contacts': ['m3p:id/user/person.franois.tardieu'],\n", + " 'administrative_contacts': [],\n", + " 'experiments': []}" ] }, "execution_count": 9, @@ -1066,47 +437,27 @@ } ], "source": [ - "phis.get_facility()" + "phis.get_project(project_name='CROPS')" ] }, { "cell_type": "markdown", - "id": "683fe09d-ee07-4a10-b19e-76849afdf626", + "id": "8e0ed766-a3a5-41a5-8773-095d335c96cc", "metadata": {}, "source": [ - "#### Get specific facility with URI" + "#### List available facilities" ] }, { "cell_type": "code", "execution_count": 10, - "id": "12aaf697-7208-4602-8a0c-d311c9571c85", + "id": "cff8e32f-a7b3-426c-9163-25261541fbb4", "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "{'metadata': {'pagination': {'pageSize': 0,\n", - " 'currentPage': 0,\n", - " 'totalCount': 0,\n", - " 'totalPages': 0,\n", - " 'limitCount': 0,\n", - " 'hasNextPage': False},\n", - " 'status': [],\n", - " 'datafiles': []},\n", - " 'result': {'uri': 'm3p:id/organization/facility.phenoarch',\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None,\n", - " 'rdf_type': 'vocabulary:Greenhouse',\n", - " 'rdf_type_name': 'greenhouse',\n", - " 'name': 'phenoarch',\n", - " 'organizations': [],\n", - " 'sites': [],\n", - " 'address': None,\n", - " 'variableGroups': [],\n", - " 'geometry': None,\n", - " 'relations': []}}" + "['chambre E', 'phenoarch', 'PHENOPSIS-1', 'PHENOPSIS-2', 'PHENOPSIS-3']" ] }, "execution_count": 10, @@ -1115,934 +466,39 @@ } ], "source": [ - "phis.get_facility(uri='m3p:id/organization/facility.phenoarch')" + "phis.get_facility()" ] }, { "cell_type": "markdown", - "id": "501d0584-f961-418e-98a9-d8c59157a8c4", + "id": "683fe09d-ee07-4a10-b19e-76849afdf626", "metadata": {}, "source": [ - "#### List available germplasms" + "#### Get specific facility details" ] }, { "cell_type": "code", "execution_count": 11, - "id": "04fe01d1-8cf8-406f-8760-ce13b9ad971d", + "id": "12aaf697-7208-4602-8a0c-d311c9571c85", "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "{'metadata': {'pagination': {'pageSize': 100,\n", - " 'currentPage': 0,\n", - " 'totalCount': 1239,\n", - " 'totalPages': 13,\n", - " 'limitCount': 0,\n", - " 'hasNextPage': True},\n", - " 'status': [],\n", - " 'datafiles': []},\n", - " 'result': [{'uri': 'http://aims.fao.org/aos/agrovoc/c_4555',\n", - " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Species',\n", - " 'rdf_type_name': 'Species',\n", - " 'name': 'apple tree',\n", - " 'species': None,\n", - " 'species_name': None,\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'http://aims.fao.org/aos/agrovoc/c_29128',\n", - " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Species',\n", - " 'rdf_type_name': 'Species',\n", - " 'name': 'banana',\n", - " 'species': None,\n", - " 'species_name': None,\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'http://aims.fao.org/aos/agrovoc/c_3662',\n", - " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Species',\n", - " 'rdf_type_name': 'Species',\n", - " 'name': 'barley',\n", - " 'species': None,\n", - " 'species_name': None,\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'http://aims.fao.org/aos/agrovoc/c_7951',\n", - " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Species',\n", - " 'rdf_type_name': 'Species',\n", - " 'name': 'bread wheat',\n", - " 'species': None,\n", - " 'species_name': None,\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'http://aims.fao.org/aos/agrovoc/c_1066',\n", - " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Species',\n", - " 'rdf_type_name': 'Species',\n", - " 'name': 'colza',\n", - " 'species': None,\n", - " 'species_name': None,\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'http://aims.fao.org/aos/agrovoc/c_7955',\n", - " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Species',\n", - " 'rdf_type_name': 'Species',\n", - " 'name': 'durum wheat',\n", - " 'species': None,\n", - " 'species_name': None,\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'http://aims.fao.org/aos/agrovoc/c_8283',\n", - " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Species',\n", - " 'rdf_type_name': 'Species',\n", - " 'name': 'grapevine',\n", - " 'species': None,\n", - " 'species_name': None,\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'http://aims.fao.org/aos/agrovoc/c_8504',\n", - " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Species',\n", - " 'rdf_type_name': 'Species',\n", - " 'name': 'maize',\n", - " 'species': None,\n", - " 'species_name': None,\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'http://aims.fao.org/aos/agrovoc/c_13199',\n", - " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Species',\n", - " 'rdf_type_name': 'Species',\n", - " 'name': 'Pearl millet',\n", - " 'species': None,\n", - " 'species_name': None,\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'http://aims.fao.org/aos/agrovoc/c_6116',\n", - " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Species',\n", - " 'rdf_type_name': 'Species',\n", - " 'name': 'poplar',\n", - " 'species': None,\n", - " 'species_name': None,\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'http://aims.fao.org/aos/agrovoc/c_5438',\n", - " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Species',\n", - " 'rdf_type_name': 'Species',\n", - " 'name': 'rice',\n", - " 'species': None,\n", - " 'species_name': None,\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'http://aims.fao.org/aos/agrovoc/c_7247',\n", - " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Species',\n", - " 'rdf_type_name': 'Species',\n", - " 'name': 'sorghum',\n", - " 'species': None,\n", - " 'species_name': None,\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'http://aims.fao.org/aos/agrovoc/c_15476',\n", - " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Species',\n", - " 'rdf_type_name': 'Species',\n", - " 'name': 'teosintes',\n", - " 'species': None,\n", - " 'species_name': None,\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'http://aims.fao.org/aos/agrovoc/c_3339',\n", - " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Species',\n", - " 'rdf_type_name': 'Species',\n", - " 'name': 'upland cotton',\n", - " 'species': None,\n", - " 'species_name': None,\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'http://phenome.inrae.fr/m3p/id/germplasm/variety.17g',\n", - " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Variety',\n", - " 'rdf_type_name': 'Variety',\n", - " 'name': '17g',\n", - " 'species': 'http://aims.fao.org/aos/agrovoc/c_8504',\n", - " 'species_name': 'maize',\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'http://phenome.inrae.fr/m3p/id/germplasm/accesion.17g_inrae',\n", - " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Accession',\n", - " 'rdf_type_name': 'Accession',\n", - " 'name': '17g_inrae',\n", - " 'species': 'http://aims.fao.org/aos/agrovoc/c_8504',\n", - " 'species_name': 'maize',\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'http://phenome.inrae.fr/m3p/id/germplasm/variety.23298mtp40',\n", - " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Variety',\n", - " 'rdf_type_name': 'Variety',\n", - " 'name': '23298Mtp40',\n", - " 'species': 'http://aims.fao.org/aos/agrovoc/c_8283',\n", - " 'species_name': 'grapevine',\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'http://phenome.inrae.fr/m3p/id/germplasm/variety.23298mtp7',\n", - " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Variety',\n", - " 'rdf_type_name': 'Variety',\n", - " 'name': '23298Mtp7',\n", - " 'species': 'http://aims.fao.org/aos/agrovoc/c_8283',\n", - " 'species_name': 'grapevine',\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'http://phenome.inrae.fr/m3p/id/germplasm/variety.2369',\n", - " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Variety',\n", - " 'rdf_type_name': 'Variety',\n", - " 'name': '2369',\n", - " 'species': 'http://aims.fao.org/aos/agrovoc/c_8504',\n", - " 'species_name': 'maize',\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'http://phenome.inrae.fr/m3p/id/germplasm/accesion.2369_udel',\n", - " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Accession',\n", - " 'rdf_type_name': 'Accession',\n", - " 'name': '2369_udel',\n", - " 'species': 'http://aims.fao.org/aos/agrovoc/c_8504',\n", - " 'species_name': 'maize',\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'http://phenome.inrae.fr/m3p/id/germplasm/variety.7g20',\n", - " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Variety',\n", - " 'rdf_type_name': 'Variety',\n", - " 'name': '7G20',\n", - " 'species': 'http://aims.fao.org/aos/agrovoc/c_8283',\n", - " 'species_name': 'grapevine',\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'http://phenome.inrae.fr/m3p/id/germplasm/variety.7g31',\n", - " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Variety',\n", - " 'rdf_type_name': 'Variety',\n", - " 'name': '7G31',\n", - " 'species': 'http://aims.fao.org/aos/agrovoc/c_8283',\n", - " 'species_name': 'grapevine',\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'http://phenome.inrae.fr/m3p/id/germplasm/variety.7g39',\n", - " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Variety',\n", - " 'rdf_type_name': 'Variety',\n", - " 'name': '7G39',\n", - " 'species': 'http://aims.fao.org/aos/agrovoc/c_8283',\n", - " 'species_name': 'grapevine',\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'http://phenome.inrae.fr/m3p/id/germplasm/variety.affenth',\n", - " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Variety',\n", - " 'rdf_type_name': 'Variety',\n", - " 'name': 'Affenth',\n", - " 'species': 'http://aims.fao.org/aos/agrovoc/c_8283',\n", - " 'species_name': 'grapevine',\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'http://phenome.inrae.fr/m3p/id/germplasm/variety.alexandroouli',\n", - " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Variety',\n", - " 'rdf_type_name': 'Variety',\n", - " 'name': 'Alexandroouli',\n", - " 'species': 'http://aims.fao.org/aos/agrovoc/c_8283',\n", - " 'species_name': 'grapevine',\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'http://phenome.inrae.fr/m3p/id/germplasm/variety.ANTIGP1_SSD03',\n", - " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Variety',\n", - " 'rdf_type_name': 'Variety',\n", - " 'name': 'ANTIGP1_SSD03',\n", - " 'species': 'http://aims.fao.org/aos/agrovoc/c_8504',\n", - " 'species_name': 'maize',\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'http://phenome.inrae.fr/m3p/id/germplasm/accesion.ANTIGP1_SSD03_inrae',\n", - " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Accession',\n", - " 'rdf_type_name': 'Accession',\n", - " 'name': 'ANTIGP1_SSD03_inrae',\n", - " 'species': 'http://aims.fao.org/aos/agrovoc/c_8504',\n", - " 'species_name': 'maize',\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'http://phenome.inrae.fr/m3p/id/germplasm/variety.ANTIGP2_HD201',\n", - " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Variety',\n", - " 'rdf_type_name': 'Variety',\n", - " 'name': 'ANTIGP2_HD201',\n", - " 'species': 'http://aims.fao.org/aos/agrovoc/c_8504',\n", - " 'species_name': 'maize',\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'http://phenome.inrae.fr/m3p/id/germplasm/accesion.ANTIGP2_HD201_inrae',\n", - " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Accession',\n", - " 'rdf_type_name': 'Accession',\n", - " 'name': 'ANTIGP2_HD201_inrae',\n", - " 'species': 'http://aims.fao.org/aos/agrovoc/c_8504',\n", - " 'species_name': 'maize',\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'http://phenome.inrae.fr/m3p/id/germplasm/variety.ANTIGP2_SSD01',\n", - " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Variety',\n", - " 'rdf_type_name': 'Variety',\n", - " 'name': 'ANTIGP2_SSD01',\n", - " 'species': 'http://aims.fao.org/aos/agrovoc/c_8504',\n", - " 'species_name': 'maize',\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'http://phenome.inrae.fr/m3p/id/germplasm/accesion.ANTIGP2_SSD01_inrae',\n", - " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Accession',\n", - " 'rdf_type_name': 'Accession',\n", - " 'name': 'ANTIGP2_SSD01_inrae',\n", - " 'species': 'http://aims.fao.org/aos/agrovoc/c_8504',\n", - " 'species_name': 'maize',\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'http://phenome.inrae.fr/m3p/id/germplasm/variety.APUC140_SSD01',\n", - " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Variety',\n", - " 'rdf_type_name': 'Variety',\n", - " 'name': 'APUC140_SSD01',\n", - " 'species': 'http://aims.fao.org/aos/agrovoc/c_8504',\n", - " 'species_name': 'maize',\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'http://phenome.inrae.fr/m3p/id/germplasm/accesion.APUC140_SSD01_inrae',\n", - " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Accession',\n", - " 'rdf_type_name': 'Accession',\n", - " 'name': 'APUC140_SSD01_inrae',\n", - " 'species': 'http://aims.fao.org/aos/agrovoc/c_8504',\n", - " 'species_name': 'maize',\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'http://phenome.inrae.fr/m3p/id/germplasm/variety.APUC171_SSD01',\n", - " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Variety',\n", - " 'rdf_type_name': 'Variety',\n", - " 'name': 'APUC171_SSD01',\n", - " 'species': 'http://aims.fao.org/aos/agrovoc/c_8504',\n", - " 'species_name': 'maize',\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'http://phenome.inrae.fr/m3p/id/germplasm/accesion.APUC171_SSD01_inrae',\n", - " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Accession',\n", - " 'rdf_type_name': 'Accession',\n", - " 'name': 'APUC171_SSD01_inrae',\n", - " 'species': 'http://aims.fao.org/aos/agrovoc/c_8504',\n", - " 'species_name': 'maize',\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'http://phenome.inrae.fr/m3p/id/germplasm/variety.arbane',\n", - " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Variety',\n", - " 'rdf_type_name': 'Variety',\n", - " 'name': 'Arbane',\n", - " 'species': 'http://aims.fao.org/aos/agrovoc/c_8283',\n", - " 'species_name': 'grapevine',\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'http://phenome.inrae.fr/m3p/id/germplasm/variety.ATPS425W',\n", - " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Variety',\n", - " 'rdf_type_name': 'Variety',\n", - " 'name': 'ATPS425W',\n", - " 'species': 'http://aims.fao.org/aos/agrovoc/c_8504',\n", - " 'species_name': 'maize',\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'http://phenome.inrae.fr/m3p/id/germplasm/accesion.ATPS425W_inrae',\n", - " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Accession',\n", - " 'rdf_type_name': 'Accession',\n", - " 'name': 'ATPS425W_inrae',\n", - " 'species': 'http://aims.fao.org/aos/agrovoc/c_8504',\n", - " 'species_name': 'maize',\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'http://phenome.inrae.fr/m3p/id/germplasm/variety.B104',\n", - " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Variety',\n", - " 'rdf_type_name': 'Variety',\n", - " 'name': 'B104',\n", - " 'species': 'http://aims.fao.org/aos/agrovoc/c_8504',\n", - " 'species_name': 'maize',\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'http://phenome.inrae.fr/m3p/id/germplasm/accesion.B104_inrae',\n", - " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Accession',\n", - " 'rdf_type_name': 'Accession',\n", - " 'name': 'B104_inrae',\n", - " 'species': 'http://aims.fao.org/aos/agrovoc/c_8504',\n", - " 'species_name': 'maize',\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'http://phenome.inrae.fr/m3p/id/germplasm/variety.B107',\n", - " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Variety',\n", - " 'rdf_type_name': 'Variety',\n", - " 'name': 'B107',\n", - " 'species': 'http://aims.fao.org/aos/agrovoc/c_8504',\n", - " 'species_name': 'maize',\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'http://phenome.inrae.fr/m3p/id/germplasm/accesion.B107_inrae',\n", - " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Accession',\n", - " 'rdf_type_name': 'Accession',\n", - " 'name': 'B107_inrae',\n", - " 'species': 'http://aims.fao.org/aos/agrovoc/c_8504',\n", - " 'species_name': 'maize',\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'http://phenome.inrae.fr/m3p/id/germplasm/variety.B14a',\n", - " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Variety',\n", - " 'rdf_type_name': 'Variety',\n", - " 'name': 'B14a',\n", - " 'species': 'http://aims.fao.org/aos/agrovoc/c_8504',\n", - " 'species_name': 'maize',\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'http://phenome.inrae.fr/m3p/id/germplasm/accesion.B14a_inrae',\n", - " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Accession',\n", - " 'rdf_type_name': 'Accession',\n", - " 'name': 'B14a_inrae',\n", - " 'species': 'http://aims.fao.org/aos/agrovoc/c_8504',\n", - " 'species_name': 'maize',\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'http://phenome.inrae.fr/m3p/id/germplasm/variety.B37',\n", - " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Variety',\n", - " 'rdf_type_name': 'Variety',\n", - " 'name': 'B37',\n", - " 'species': 'http://aims.fao.org/aos/agrovoc/c_8504',\n", - " 'species_name': 'maize',\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'http://phenome.inrae.fr/m3p/id/germplasm/accesion.B37_inrae',\n", - " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Accession',\n", - " 'rdf_type_name': 'Accession',\n", - " 'name': 'B37_inrae',\n", - " 'species': 'http://aims.fao.org/aos/agrovoc/c_8504',\n", - " 'species_name': 'maize',\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'http://phenome.inrae.fr/m3p/id/germplasm/variety.B73',\n", - " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Variety',\n", - " 'rdf_type_name': 'Variety',\n", - " 'name': 'B73',\n", - " 'species': 'http://aims.fao.org/aos/agrovoc/c_8504',\n", - " 'species_name': 'maize',\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'http://phenome.inrae.fr/m3p/id/germplasm/accesion.B73_inrae',\n", - " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Accession',\n", - " 'rdf_type_name': 'Accession',\n", - " 'name': 'B73_inrae',\n", - " 'species': 'http://aims.fao.org/aos/agrovoc/c_8504',\n", - " 'species_name': 'maize',\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'http://phenome.inrae.fr/m3p/id/germplasm/variety.B73_inrae',\n", - " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Variety',\n", - " 'rdf_type_name': 'Variety',\n", - " 'name': 'B73_inrae',\n", - " 'species': 'http://aims.fao.org/aos/agrovoc/c_8504',\n", - " 'species_name': 'maize',\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'http://phenome.inrae.fr/m3p/id/germplasm/variety.BA90',\n", - " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Variety',\n", - " 'rdf_type_name': 'Variety',\n", - " 'name': 'BA90',\n", - " 'species': 'http://aims.fao.org/aos/agrovoc/c_8504',\n", - " 'species_name': 'maize',\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'http://phenome.inrae.fr/m3p/id/germplasm/accesion.BA90_inrae',\n", - " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Accession',\n", - " 'rdf_type_name': 'Accession',\n", - " 'name': 'BA90_inrae',\n", - " 'species': 'http://aims.fao.org/aos/agrovoc/c_8504',\n", - " 'species_name': 'maize',\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'http://phenome.inrae.fr/m3p/id/germplasm/variety.BOLI711_SSD01',\n", - " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Variety',\n", - " 'rdf_type_name': 'Variety',\n", - " 'name': 'BOLI711_SSD01',\n", - " 'species': 'http://aims.fao.org/aos/agrovoc/c_8504',\n", - " 'species_name': 'maize',\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'http://phenome.inrae.fr/m3p/id/germplasm/accesion.BOLI711_SSD01_inrae',\n", - " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Accession',\n", - " 'rdf_type_name': 'Accession',\n", - " 'name': 'BOLI711_SSD01_inrae',\n", - " 'species': 'http://aims.fao.org/aos/agrovoc/c_8504',\n", - " 'species_name': 'maize',\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'http://phenome.inrae.fr/m3p/id/germplasm/variety.BOLI905_SSD03',\n", - " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Variety',\n", - " 'rdf_type_name': 'Variety',\n", - " 'name': 'BOLI905_SSD03',\n", - " 'species': 'http://aims.fao.org/aos/agrovoc/c_8504',\n", - " 'species_name': 'maize',\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'http://phenome.inrae.fr/m3p/id/germplasm/accesion.BOLI905_SSD03_inrae',\n", - " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Accession',\n", - " 'rdf_type_name': 'Accession',\n", - " 'name': 'BOLI905_SSD03_inrae',\n", - " 'species': 'http://aims.fao.org/aos/agrovoc/c_8504',\n", - " 'species_name': 'maize',\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'http://phenome.inrae.fr/m3p/id/germplasm/variety.BOZM0214_SSD01',\n", - " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Variety',\n", - " 'rdf_type_name': 'Variety',\n", - " 'name': 'BOZM0214_SSD01',\n", - " 'species': 'http://aims.fao.org/aos/agrovoc/c_8504',\n", - " 'species_name': 'maize',\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'http://phenome.inrae.fr/m3p/id/germplasm/accesion.BOZM0214_SSD01_inrae',\n", - " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Accession',\n", - " 'rdf_type_name': 'Accession',\n", - " 'name': 'BOZM0214_SSD01_inrae',\n", - " 'species': 'http://aims.fao.org/aos/agrovoc/c_8504',\n", - " 'species_name': 'maize',\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'http://phenome.inrae.fr/m3p/id/germplasm/variety.BRVI104_HD128',\n", - " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Variety',\n", - " 'rdf_type_name': 'Variety',\n", - " 'name': 'BRVI104_HD128',\n", - " 'species': 'http://aims.fao.org/aos/agrovoc/c_8504',\n", - " 'species_name': 'maize',\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'http://phenome.inrae.fr/m3p/id/germplasm/accesion.BRVI104_HD128_inrae',\n", - " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Accession',\n", - " 'rdf_type_name': 'Accession',\n", - " 'name': 'BRVI104_HD128_inrae',\n", - " 'species': 'http://aims.fao.org/aos/agrovoc/c_8504',\n", - " 'species_name': 'maize',\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'http://phenome.inrae.fr/m3p/id/germplasm/variety.BRVI117_SSD01',\n", - " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Variety',\n", - " 'rdf_type_name': 'Variety',\n", - " 'name': 'BRVI117_SSD01',\n", - " 'species': 'http://aims.fao.org/aos/agrovoc/c_8504',\n", - " 'species_name': 'maize',\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'http://phenome.inrae.fr/m3p/id/germplasm/accesion.BRVI117_SSD01_inrae',\n", - " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Accession',\n", - " 'rdf_type_name': 'Accession',\n", - " 'name': 'BRVI117_SSD01_inrae',\n", - " 'species': 'http://aims.fao.org/aos/agrovoc/c_8504',\n", - " 'species_name': 'maize',\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'http://phenome.inrae.fr/m3p/id/germplasm/variety.BRVI139_SSD01',\n", - " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Variety',\n", - " 'rdf_type_name': 'Variety',\n", - " 'name': 'BRVI139_SSD01',\n", - " 'species': 'http://aims.fao.org/aos/agrovoc/c_8504',\n", - " 'species_name': 'maize',\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'http://phenome.inrae.fr/m3p/id/germplasm/accesion.BRVI139_SSD01_inrae',\n", - " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Accession',\n", - " 'rdf_type_name': 'Accession',\n", - " 'name': 'BRVI139_SSD01_inrae',\n", - " 'species': 'http://aims.fao.org/aos/agrovoc/c_8504',\n", - " 'species_name': 'maize',\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'http://phenome.inrae.fr/m3p/id/germplasm/variety.BRVI142_HD105',\n", - " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Variety',\n", - " 'rdf_type_name': 'Variety',\n", - " 'name': 'BRVI142_HD105',\n", - " 'species': 'http://aims.fao.org/aos/agrovoc/c_8504',\n", - " 'species_name': 'maize',\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'http://phenome.inrae.fr/m3p/id/germplasm/accesion.BRVI142_HD105_inrae',\n", - " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Accession',\n", - " 'rdf_type_name': 'Accession',\n", - " 'name': 'BRVI142_HD105_inrae',\n", - " 'species': 'http://aims.fao.org/aos/agrovoc/c_8504',\n", - " 'species_name': 'maize',\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'http://phenome.inrae.fr/m3p/id/germplasm/variety.CAL14113',\n", - " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Variety',\n", - " 'rdf_type_name': 'Variety',\n", - " 'name': 'CAL14113',\n", - " 'species': 'http://aims.fao.org/aos/agrovoc/c_8504',\n", - " 'species_name': 'maize',\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'http://phenome.inrae.fr/m3p/id/germplasm/accesion.CAL14113_cim',\n", - " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Accession',\n", - " 'rdf_type_name': 'Accession',\n", - " 'name': 'CAL14113_cim',\n", - " 'species': 'http://aims.fao.org/aos/agrovoc/c_8504',\n", - " 'species_name': 'maize',\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'http://phenome.inrae.fr/m3p/id/germplasm/variety.CAL14138',\n", - " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Variety',\n", - " 'rdf_type_name': 'Variety',\n", - " 'name': 'CAL14138',\n", - " 'species': 'http://aims.fao.org/aos/agrovoc/c_8504',\n", - " 'species_name': 'maize',\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'http://phenome.inrae.fr/m3p/id/germplasm/accesion.CAL14138_cim',\n", - " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Accession',\n", - " 'rdf_type_name': 'Accession',\n", - " 'name': 'CAL14138_cim',\n", - " 'species': 'http://aims.fao.org/aos/agrovoc/c_8504',\n", - " 'species_name': 'maize',\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'http://phenome.inrae.fr/m3p/id/germplasm/variety.CAL1440',\n", - " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Variety',\n", - " 'rdf_type_name': 'Variety',\n", - " 'name': 'CAL1440',\n", - " 'species': 'http://aims.fao.org/aos/agrovoc/c_8504',\n", - " 'species_name': 'maize',\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'http://phenome.inrae.fr/m3p/id/germplasm/accesion.CAL1440_cim',\n", - " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Accession',\n", - " 'rdf_type_name': 'Accession',\n", - " 'name': 'CAL1440_cim',\n", - " 'species': 'http://aims.fao.org/aos/agrovoc/c_8504',\n", - " 'species_name': 'maize',\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'http://phenome.inrae.fr/m3p/id/germplasm/variety.CAL1469',\n", - " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Variety',\n", - " 'rdf_type_name': 'Variety',\n", - " 'name': 'CAL1469',\n", - " 'species': 'http://aims.fao.org/aos/agrovoc/c_8504',\n", - " 'species_name': 'maize',\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'http://phenome.inrae.fr/m3p/id/germplasm/accesion.CAL1469_cim',\n", - " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Accession',\n", - " 'rdf_type_name': 'Accession',\n", - " 'name': 'CAL1469_cim',\n", - " 'species': 'http://aims.fao.org/aos/agrovoc/c_8504',\n", - " 'species_name': 'maize',\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'http://phenome.inrae.fr/m3p/id/germplasm/variety.CAL152',\n", - " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Variety',\n", - " 'rdf_type_name': 'Variety',\n", - " 'name': 'CAL152',\n", - " 'species': 'http://aims.fao.org/aos/agrovoc/c_8504',\n", - " 'species_name': 'maize',\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'http://phenome.inrae.fr/m3p/id/germplasm/accesion.CAL152_cim',\n", - " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Accession',\n", - " 'rdf_type_name': 'Accession',\n", - " 'name': 'CAL152_cim',\n", - " 'species': 'http://aims.fao.org/aos/agrovoc/c_8504',\n", - " 'species_name': 'maize',\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'http://phenome.inrae.fr/m3p/id/germplasm/variety.CamInb117',\n", - " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Variety',\n", - " 'rdf_type_name': 'Variety',\n", - " 'name': 'CamInb117',\n", - " 'species': 'http://aims.fao.org/aos/agrovoc/c_8504',\n", - " 'species_name': 'maize',\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'http://phenome.inrae.fr/m3p/id/germplasm/accesion.CamInb117_inrae',\n", - " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Accession',\n", - " 'rdf_type_name': 'Accession',\n", - " 'name': 'CamInb117_inrae',\n", - " 'species': 'http://aims.fao.org/aos/agrovoc/c_8504',\n", - " 'species_name': 'maize',\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'http://phenome.inrae.fr/m3p/id/germplasm/variety.CFD11-004',\n", - " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Variety',\n", - " 'rdf_type_name': 'Variety',\n", - " 'name': 'CFD11-004',\n", - " 'species': 'http://aims.fao.org/aos/agrovoc/c_8504',\n", - " 'species_name': 'maize',\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'http://phenome.inrae.fr/m3p/id/germplasm/accesion.CFD11-004_inrae',\n", - " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Accession',\n", - " 'rdf_type_name': 'Accession',\n", - " 'name': 'CFD11-004_inrae',\n", - " 'species': 'http://aims.fao.org/aos/agrovoc/c_8504',\n", - " 'species_name': 'maize',\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'http://phenome.inrae.fr/m3p/id/germplasm/variety.CFD11-005',\n", - " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Variety',\n", - " 'rdf_type_name': 'Variety',\n", - " 'name': 'CFD11-005',\n", - " 'species': 'http://aims.fao.org/aos/agrovoc/c_8504',\n", - " 'species_name': 'maize',\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'http://phenome.inrae.fr/m3p/id/germplasm/accesion.CFD11-005_inrae',\n", - " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Accession',\n", - " 'rdf_type_name': 'Accession',\n", - " 'name': 'CFD11-005_inrae',\n", - " 'species': 'http://aims.fao.org/aos/agrovoc/c_8504',\n", - " 'species_name': 'maize',\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'http://phenome.inrae.fr/m3p/id/germplasm/variety.CFD11-006',\n", - " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Variety',\n", - " 'rdf_type_name': 'Variety',\n", - " 'name': 'CFD11-006',\n", - " 'species': 'http://aims.fao.org/aos/agrovoc/c_8504',\n", - " 'species_name': 'maize',\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'http://phenome.inrae.fr/m3p/id/germplasm/accesion.CFD11-006_inrae',\n", - " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Accession',\n", - " 'rdf_type_name': 'Accession',\n", - " 'name': 'CFD11-006_inrae',\n", - " 'species': 'http://aims.fao.org/aos/agrovoc/c_8504',\n", - " 'species_name': 'maize',\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'http://phenome.inrae.fr/m3p/id/germplasm/variety.CFD11-007',\n", - " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Variety',\n", - " 'rdf_type_name': 'Variety',\n", - " 'name': 'CFD11-007',\n", - " 'species': 'http://aims.fao.org/aos/agrovoc/c_8504',\n", - " 'species_name': 'maize',\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'http://phenome.inrae.fr/m3p/id/germplasm/accesion.CFD11-007_inrae',\n", - " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Accession',\n", - " 'rdf_type_name': 'Accession',\n", - " 'name': 'CFD11-007_inrae',\n", - " 'species': 'http://aims.fao.org/aos/agrovoc/c_8504',\n", - " 'species_name': 'maize',\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'http://phenome.inrae.fr/m3p/id/germplasm/variety.CFD11-010',\n", - " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Variety',\n", - " 'rdf_type_name': 'Variety',\n", - " 'name': 'CFD11-010',\n", - " 'species': 'http://aims.fao.org/aos/agrovoc/c_8504',\n", - " 'species_name': 'maize',\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'http://phenome.inrae.fr/m3p/id/germplasm/accesion.CFD11-010_inrae',\n", - " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Accession',\n", - " 'rdf_type_name': 'Accession',\n", - " 'name': 'CFD11-010_inrae',\n", - " 'species': 'http://aims.fao.org/aos/agrovoc/c_8504',\n", - " 'species_name': 'maize',\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'http://phenome.inrae.fr/m3p/id/germplasm/variety.CFD11-011',\n", - " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Variety',\n", - " 'rdf_type_name': 'Variety',\n", - " 'name': 'CFD11-011',\n", - " 'species': 'http://aims.fao.org/aos/agrovoc/c_8504',\n", - " 'species_name': 'maize',\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'http://phenome.inrae.fr/m3p/id/germplasm/accesion.CFD11-011_inrae',\n", - " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Accession',\n", - " 'rdf_type_name': 'Accession',\n", - " 'name': 'CFD11-011_inrae',\n", - " 'species': 'http://aims.fao.org/aos/agrovoc/c_8504',\n", - " 'species_name': 'maize',\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'http://phenome.inrae.fr/m3p/id/germplasm/variety.CFD11-026',\n", - " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Variety',\n", - " 'rdf_type_name': 'Variety',\n", - " 'name': 'CFD11-026',\n", - " 'species': 'http://aims.fao.org/aos/agrovoc/c_8504',\n", - " 'species_name': 'maize',\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'http://phenome.inrae.fr/m3p/id/germplasm/accesion.CFD11-026_inrae',\n", - " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Accession',\n", - " 'rdf_type_name': 'Accession',\n", - " 'name': 'CFD11-026_inrae',\n", - " 'species': 'http://aims.fao.org/aos/agrovoc/c_8504',\n", - " 'species_name': 'maize',\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'http://phenome.inrae.fr/m3p/id/germplasm/variety.CFD11-029',\n", - " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Variety',\n", - " 'rdf_type_name': 'Variety',\n", - " 'name': 'CFD11-029',\n", - " 'species': 'http://aims.fao.org/aos/agrovoc/c_8504',\n", - " 'species_name': 'maize',\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'http://phenome.inrae.fr/m3p/id/germplasm/accesion.CFD11-029_inrae',\n", - " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Accession',\n", - " 'rdf_type_name': 'Accession',\n", - " 'name': 'CFD11-029_inrae',\n", - " 'species': 'http://aims.fao.org/aos/agrovoc/c_8504',\n", - " 'species_name': 'maize',\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'http://phenome.inrae.fr/m3p/id/germplasm/variety.CFD11-030',\n", - " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Variety',\n", - " 'rdf_type_name': 'Variety',\n", - " 'name': 'CFD11-030',\n", - " 'species': 'http://aims.fao.org/aos/agrovoc/c_8504',\n", - " 'species_name': 'maize',\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'http://phenome.inrae.fr/m3p/id/germplasm/accesion.CFD11-030_inrae',\n", - " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Accession',\n", - " 'rdf_type_name': 'Accession',\n", - " 'name': 'CFD11-030_inrae',\n", - " 'species': 'http://aims.fao.org/aos/agrovoc/c_8504',\n", - " 'species_name': 'maize',\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'http://phenome.inrae.fr/m3p/id/germplasm/variety.CFD11-045',\n", - " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Variety',\n", - " 'rdf_type_name': 'Variety',\n", - " 'name': 'CFD11-045',\n", - " 'species': 'http://aims.fao.org/aos/agrovoc/c_8504',\n", - " 'species_name': 'maize',\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'http://phenome.inrae.fr/m3p/id/germplasm/accesion.CFD11-045_inrae',\n", - " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Accession',\n", - " 'rdf_type_name': 'Accession',\n", - " 'name': 'CFD11-045_inrae',\n", - " 'species': 'http://aims.fao.org/aos/agrovoc/c_8504',\n", - " 'species_name': 'maize',\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'http://phenome.inrae.fr/m3p/id/germplasm/variety.CFD11-047',\n", - " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Variety',\n", - " 'rdf_type_name': 'Variety',\n", - " 'name': 'CFD11-047',\n", - " 'species': 'http://aims.fao.org/aos/agrovoc/c_8504',\n", - " 'species_name': 'maize',\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'http://phenome.inrae.fr/m3p/id/germplasm/accesion.CFD11-047_inrae',\n", - " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Accession',\n", - " 'rdf_type_name': 'Accession',\n", - " 'name': 'CFD11-047_inrae',\n", - " 'species': 'http://aims.fao.org/aos/agrovoc/c_8504',\n", - " 'species_name': 'maize',\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'http://phenome.inrae.fr/m3p/id/germplasm/variety.CFD11-048',\n", - " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Variety',\n", - " 'rdf_type_name': 'Variety',\n", - " 'name': 'CFD11-048',\n", - " 'species': 'http://aims.fao.org/aos/agrovoc/c_8504',\n", - " 'species_name': 'maize',\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None}]}" + "{'uri': 'm3p:id/organization/facility.phenoarch',\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None,\n", + " 'rdf_type': 'vocabulary:Greenhouse',\n", + " 'rdf_type_name': 'greenhouse',\n", + " 'name': 'phenoarch',\n", + " 'organizations': [],\n", + " 'sites': [],\n", + " 'address': None,\n", + " 'variableGroups': [],\n", + " 'geometry': None,\n", + " 'relations': []}" ] }, "execution_count": 11, @@ -2051,57 +507,126 @@ } ], "source": [ - "phis.get_germplasm()" + "phis.get_facility(facility_name='phenoarch')" ] }, { "cell_type": "markdown", - "id": "47d512bf-6e4c-4a05-acde-2669f4b9921b", + "id": "501d0584-f961-418e-98a9-d8c59157a8c4", "metadata": {}, "source": [ - "#### Get specific germplasm with URI" + "#### List available germplasms" ] }, { "cell_type": "code", "execution_count": 12, - "id": "f41c781e-6f93-427b-96bc-e273fa939d72", + "id": "04fe01d1-8cf8-406f-8760-ce13b9ad971d", "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "{'metadata': {'pagination': {'pageSize': 0,\n", - " 'currentPage': 0,\n", - " 'totalCount': 0,\n", - " 'totalPages': 0,\n", - " 'limitCount': 0,\n", - " 'hasNextPage': False},\n", - " 'status': [],\n", - " 'datafiles': []},\n", - " 'result': {'uri': 'http://aims.fao.org/aos/agrovoc/c_1066',\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None,\n", - " 'rdf_type': 'vocabulary:Species',\n", - " 'rdf_type_name': 'Species',\n", - " 'name': 'colza',\n", - " 'synonyms': [],\n", - " 'code': None,\n", - " 'production_year': None,\n", - " 'description': None,\n", - " 'species': None,\n", - " 'species_name': None,\n", - " 'variety': None,\n", - " 'variety_name': None,\n", - " 'accession': None,\n", - " 'accession_name': None,\n", - " 'institute': None,\n", - " 'website': None,\n", - " 'has_parent_germplasm': None,\n", - " 'has_parent_germplasm_m': None,\n", - " 'has_parent_germplasm_f': None,\n", - " 'metadata': None}}" + "['apple tree',\n", + " 'banana',\n", + " 'barley',\n", + " 'bread wheat',\n", + " 'colza',\n", + " 'durum wheat',\n", + " 'grapevine',\n", + " 'maize',\n", + " 'Pearl millet',\n", + " 'poplar',\n", + " 'rice',\n", + " 'sorghum',\n", + " 'teosintes',\n", + " 'upland cotton',\n", + " '17g',\n", + " '17g_inrae',\n", + " '23298Mtp40',\n", + " '23298Mtp7',\n", + " '2369',\n", + " '2369_udel',\n", + " '7G20',\n", + " '7G31',\n", + " '7G39',\n", + " 'Affenth',\n", + " 'Alexandroouli',\n", + " 'ANTIGP1_SSD03',\n", + " 'ANTIGP1_SSD03_inrae',\n", + " 'ANTIGP2_HD201',\n", + " 'ANTIGP2_HD201_inrae',\n", + " 'ANTIGP2_SSD01',\n", + " 'ANTIGP2_SSD01_inrae',\n", + " 'APUC140_SSD01',\n", + " 'APUC140_SSD01_inrae',\n", + " 'APUC171_SSD01',\n", + " 'APUC171_SSD01_inrae',\n", + " 'Arbane',\n", + " 'ATPS425W',\n", + " 'ATPS425W_inrae',\n", + " 'B104',\n", + " 'B104_inrae',\n", + " 'B107',\n", + " 'B107_inrae',\n", + " 'B14a',\n", + " 'B14a_inrae',\n", + " 'B37',\n", + " 'B37_inrae',\n", + " 'B73',\n", + " 'B73_inrae',\n", + " 'B73_inrae',\n", + " 'BA90',\n", + " 'BA90_inrae',\n", + " 'BOLI711_SSD01',\n", + " 'BOLI711_SSD01_inrae',\n", + " 'BOLI905_SSD03',\n", + " 'BOLI905_SSD03_inrae',\n", + " 'BOZM0214_SSD01',\n", + " 'BOZM0214_SSD01_inrae',\n", + " 'BRVI104_HD128',\n", + " 'BRVI104_HD128_inrae',\n", + " 'BRVI117_SSD01',\n", + " 'BRVI117_SSD01_inrae',\n", + " 'BRVI139_SSD01',\n", + " 'BRVI139_SSD01_inrae',\n", + " 'BRVI142_HD105',\n", + " 'BRVI142_HD105_inrae',\n", + " 'CAL14113',\n", + " 'CAL14113_cim',\n", + " 'CAL14138',\n", + " 'CAL14138_cim',\n", + " 'CAL1440',\n", + " 'CAL1440_cim',\n", + " 'CAL1469',\n", + " 'CAL1469_cim',\n", + " 'CAL152',\n", + " 'CAL152_cim',\n", + " 'CamInb117',\n", + " 'CamInb117_inrae',\n", + " 'CFD11-004',\n", + " 'CFD11-004_inrae',\n", + " 'CFD11-005',\n", + " 'CFD11-005_inrae',\n", + " 'CFD11-006',\n", + " 'CFD11-006_inrae',\n", + " 'CFD11-007',\n", + " 'CFD11-007_inrae',\n", + " 'CFD11-010',\n", + " 'CFD11-010_inrae',\n", + " 'CFD11-011',\n", + " 'CFD11-011_inrae',\n", + " 'CFD11-026',\n", + " 'CFD11-026_inrae',\n", + " 'CFD11-029',\n", + " 'CFD11-029_inrae',\n", + " 'CFD11-030',\n", + " 'CFD11-030_inrae',\n", + " 'CFD11-045',\n", + " 'CFD11-045_inrae',\n", + " 'CFD11-047',\n", + " 'CFD11-047_inrae',\n", + " 'CFD11-048']" ] }, "execution_count": 12, @@ -2110,1609 +635,41 @@ } ], "source": [ - "phis.get_germplasm(uri='http://aims.fao.org/aos/agrovoc/c_1066')" + "phis.get_germplasm(page_size=100)" ] }, { "cell_type": "markdown", - "id": "abe6ba29-c8ec-4f05-93c8-a043df7f4a30", + "id": "dd6fb8d0-754e-48e9-a752-2837ec6298b4", "metadata": {}, "source": [ - "#### List available devices" + "#### List available germplasms with specific criteria" ] }, { "cell_type": "code", "execution_count": 13, - "id": "3bc8180f-a5f0-4d91-a927-61dcfdf834d5", + "id": "37c9339d-80d0-4675-930e-02599fdcc9ea", "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "{'metadata': {'pagination': {'pageSize': 100,\n", - " 'currentPage': 0,\n", - " 'totalCount': 339,\n", - " 'totalPages': 4,\n", - " 'limitCount': 0,\n", - " 'hasNextPage': True},\n", - " 'status': [],\n", - " 'datafiles': []},\n", - " 'result': [{'uri': 'http://www.phenome-fppn.fr/m3p/ec1/2016/sa1600064',\n", - " 'rdf_type': 'vocabulary:CO2Sensor',\n", - " 'rdf_type_name': 'CO2 sensor',\n", - " 'name': 'aria_co2_cE1',\n", - " 'brand': 'ARIA',\n", - " 'constructor_model': None,\n", - " 'serial_number': None,\n", - " 'person_in_charge': None,\n", - " 'start_up': '2011-05-01',\n", - " 'removal': None,\n", - " 'relations': [{'property': 'vocabulary:measures',\n", - " 'value': 'm3p:id/variable/ev000024',\n", - " 'inverse': False}],\n", - " 'description': None,\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'http://www.phenome-fppn.fr/m3p/ec2/2016/sa1600073',\n", - " 'rdf_type': 'vocabulary:CO2Sensor',\n", - " 'rdf_type_name': 'CO2 sensor',\n", - " 'name': 'aria_co2_cE2',\n", - " 'brand': 'ARIA',\n", - " 'constructor_model': None,\n", - " 'serial_number': None,\n", - " 'person_in_charge': None,\n", - " 'start_up': '2011-05-01',\n", - " 'removal': None,\n", - " 'relations': [{'property': 'vocabulary:measures',\n", - " 'value': 'm3p:id/variable/ev000024',\n", - " 'inverse': False}],\n", - " 'description': None,\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'http://www.phenome-fppn.fr/m3p/arch/2016/sa1600057',\n", - " 'rdf_type': 'vocabulary:CO2Sensor',\n", - " 'rdf_type_name': 'CO2 sensor',\n", - " 'name': 'aria_co2_p',\n", - " 'brand': 'ARIA',\n", - " 'constructor_model': None,\n", - " 'serial_number': None,\n", - " 'person_in_charge': None,\n", - " 'start_up': '2011-05-01',\n", - " 'removal': None,\n", - " 'relations': [{'property': 'vocabulary:measures',\n", - " 'value': 'm3p:id/variable/ev000024',\n", - " 'inverse': False}],\n", - " 'description': None,\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'http://www.phenome-fppn.fr/m3p/eo/2016/sa1600005',\n", - " 'rdf_type': 'vocabulary:CupAnemometer',\n", - " 'rdf_type_name': 'cup anemometer',\n", - " 'name': 'aria_directionVent_ext',\n", - " 'brand': 'ARIA',\n", - " 'constructor_model': None,\n", - " 'serial_number': None,\n", - " 'person_in_charge': None,\n", - " 'start_up': '2011-05-01',\n", - " 'removal': None,\n", - " 'relations': [],\n", - " 'description': None,\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'http://www.phenome-fppn.fr/m3p/arch/2016/sa1600051',\n", - " 'rdf_type': 'vocabulary:Lightning',\n", - " 'rdf_type_name': 'lightning',\n", - " 'name': 'aria_eclairage1_p',\n", - " 'brand': None,\n", - " 'constructor_model': 'ARIA',\n", - " 'serial_number': None,\n", - " 'person_in_charge': None,\n", - " 'start_up': None,\n", - " 'removal': None,\n", - " 'relations': [{'property': 'vocabulary:measures',\n", - " 'value': 'm3p:id/variable/greenhouse_lightning_setpoint_boolean',\n", - " 'inverse': False}],\n", - " 'description': None,\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'http://www.phenome-fppn.fr/m3p/dyn/2016/sa1600026',\n", - " 'rdf_type': 'vocabulary:Lightning',\n", - " 'rdf_type_name': 'lightning',\n", - " 'name': 'aria_eclairage1_s1',\n", - " 'brand': None,\n", - " 'constructor_model': 'ARIA',\n", - " 'serial_number': None,\n", - " 'person_in_charge': None,\n", - " 'start_up': None,\n", - " 'removal': None,\n", - " 'relations': [{'property': 'vocabulary:measures',\n", - " 'value': 'm3p:id/variable/greenhouse_lightning_setpoint_boolean',\n", - " 'inverse': False}],\n", - " 'description': None,\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'http://www.phenome-fppn.fr/m3p/arch/2016/sa1600052',\n", - " 'rdf_type': 'vocabulary:Lightning',\n", - " 'rdf_type_name': 'lightning',\n", - " 'name': 'aria_eclairage2_p',\n", - " 'brand': None,\n", - " 'constructor_model': 'ARIA',\n", - " 'serial_number': None,\n", - " 'person_in_charge': None,\n", - " 'start_up': None,\n", - " 'removal': None,\n", - " 'relations': [{'property': 'vocabulary:measures',\n", - " 'value': 'm3p:id/variable/greenhouse_lightning_setpoint_boolean',\n", - " 'inverse': False}],\n", - " 'description': None,\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'http://www.phenome-fppn.fr/m3p/dyn/2016/sa1600027',\n", - " 'rdf_type': 'vocabulary:Lightning',\n", - " 'rdf_type_name': 'lightning',\n", - " 'name': 'aria_eclairage2_s1',\n", - " 'brand': None,\n", - " 'constructor_model': 'ARIA',\n", - " 'serial_number': None,\n", - " 'person_in_charge': None,\n", - " 'start_up': None,\n", - " 'removal': None,\n", - " 'relations': [{'property': 'vocabulary:measures',\n", - " 'value': 'm3p:id/variable/greenhouse_lightning_setpoint_boolean',\n", - " 'inverse': False}],\n", - " 'description': None,\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'http://www.phenome-fppn.fr/m3p/arch/2016/sa1600053',\n", - " 'rdf_type': 'vocabulary:Lightning',\n", - " 'rdf_type_name': 'lightning',\n", - " 'name': 'aria_eclairage3_p',\n", - " 'brand': None,\n", - " 'constructor_model': 'ARIA',\n", - " 'serial_number': None,\n", - " 'person_in_charge': None,\n", - " 'start_up': None,\n", - " 'removal': None,\n", - " 'relations': [{'property': 'vocabulary:measures',\n", - " 'value': 'm3p:id/variable/greenhouse_lightning_setpoint_boolean',\n", - " 'inverse': False}],\n", - " 'description': None,\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'http://www.phenome-fppn.fr/m3p/dyn/2016/sa1600028',\n", - " 'rdf_type': 'vocabulary:Lightning',\n", - " 'rdf_type_name': 'lightning',\n", - " 'name': 'aria_eclairage3_s1',\n", - " 'brand': None,\n", - " 'constructor_model': 'ARIA',\n", - " 'serial_number': None,\n", - " 'person_in_charge': None,\n", - " 'start_up': None,\n", - " 'removal': None,\n", - " 'relations': [{'property': 'vocabulary:measures',\n", - " 'value': 'm3p:id/variable/greenhouse_lightning_setpoint_boolean',\n", - " 'inverse': False}],\n", - " 'description': None,\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'http://www.phenome-fppn.fr/m3p/dyn/2016/sa1600029',\n", - " 'rdf_type': 'vocabulary:Lightning',\n", - " 'rdf_type_name': 'lightning',\n", - " 'name': 'aria_eclairage4_s1',\n", - " 'brand': None,\n", - " 'constructor_model': 'ARIA',\n", - " 'serial_number': None,\n", - " 'person_in_charge': None,\n", - " 'start_up': None,\n", - " 'removal': None,\n", - " 'relations': [{'property': 'vocabulary:measures',\n", - " 'value': 'm3p:id/variable/greenhouse_lightning_setpoint_boolean',\n", - " 'inverse': False}],\n", - " 'description': None,\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'http://www.phenome-fppn.fr/m3p/dyn/2016/sa1600030',\n", - " 'rdf_type': 'vocabulary:Lightning',\n", - " 'rdf_type_name': 'lightning',\n", - " 'name': 'aria_eclairage5_s1',\n", - " 'brand': None,\n", - " 'constructor_model': 'ARIA',\n", - " 'serial_number': None,\n", - " 'person_in_charge': None,\n", - " 'start_up': None,\n", - " 'removal': None,\n", - " 'relations': [{'property': 'vocabulary:measures',\n", - " 'value': 'm3p:id/variable/greenhouse_lightning_setpoint_boolean',\n", - " 'inverse': False}],\n", - " 'description': None,\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'http://www.phenome-fppn.fr/m3p/dyn/2016/sa1600031',\n", - " 'rdf_type': 'vocabulary:Lightning',\n", - " 'rdf_type_name': 'lightning',\n", - " 'name': 'aria_eclairage6_s1',\n", - " 'brand': None,\n", - " 'constructor_model': 'ARIA',\n", - " 'serial_number': None,\n", - " 'person_in_charge': None,\n", - " 'start_up': None,\n", - " 'removal': None,\n", - " 'relations': [{'property': 'vocabulary:measures',\n", - " 'value': 'm3p:id/variable/greenhouse_lightning_setpoint_boolean',\n", - " 'inverse': False}],\n", - " 'description': None,\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'http://www.phenome-fppn.fr/m3p/arch/2016/sa1600048',\n", - " 'rdf_type': 'vocabulary:Shadows',\n", - " 'rdf_type_name': 'shadows',\n", - " 'name': 'aria_ecranBardage1_p',\n", - " 'brand': None,\n", - " 'constructor_model': 'ARIA',\n", - " 'serial_number': None,\n", - " 'person_in_charge': None,\n", - " 'start_up': None,\n", - " 'removal': None,\n", - " 'relations': [{'property': 'vocabulary:measures',\n", - " 'value': 'm3p:id/variable/greenhouse_shading_setpoint_boolean',\n", - " 'inverse': False}],\n", - " 'description': None,\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'http://www.phenome-fppn.fr/m3p/dyn/2016/sa1600023',\n", - " 'rdf_type': 'vocabulary:Shadows',\n", - " 'rdf_type_name': 'shadows',\n", - " 'name': 'aria_ecranBardage1_s1',\n", - " 'brand': None,\n", - " 'constructor_model': 'ARIA',\n", - " 'serial_number': None,\n", - " 'person_in_charge': None,\n", - " 'start_up': None,\n", - " 'removal': None,\n", - " 'relations': [{'property': 'vocabulary:measures',\n", - " 'value': 'm3p:id/variable/greenhouse_shading_setpoint_boolean',\n", - " 'inverse': False}],\n", - " 'description': None,\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'http://www.phenome-fppn.fr/m3p/arch/2016/sa1600049',\n", - " 'rdf_type': 'vocabulary:Shadows',\n", - " 'rdf_type_name': 'shadows',\n", - " 'name': 'aria_ecranBardage2_p',\n", - " 'brand': None,\n", - " 'constructor_model': 'ARIA',\n", - " 'serial_number': None,\n", - " 'person_in_charge': None,\n", - " 'start_up': None,\n", - " 'removal': None,\n", - " 'relations': [{'property': 'vocabulary:measures',\n", - " 'value': 'm3p:id/variable/greenhouse_shading_setpoint_boolean',\n", - " 'inverse': False}],\n", - " 'description': None,\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'http://www.phenome-fppn.fr/m3p/dyn/2016/sa1600024',\n", - " 'rdf_type': 'vocabulary:Shadows',\n", - " 'rdf_type_name': 'shadows',\n", - " 'name': 'aria_ecranBardage2_s1',\n", - " 'brand': None,\n", - " 'constructor_model': 'ARIA',\n", - " 'serial_number': None,\n", - " 'person_in_charge': None,\n", - " 'start_up': None,\n", - " 'removal': None,\n", - " 'relations': [{'property': 'vocabulary:measures',\n", - " 'value': 'm3p:id/variable/greenhouse_shading_setpoint_boolean',\n", - " 'inverse': False}],\n", - " 'description': None,\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'http://www.phenome-fppn.fr/m3p/arch/2016/sa1600047',\n", - " 'rdf_type': 'vocabulary:Shadows',\n", - " 'rdf_type_name': 'shadows',\n", - " 'name': 'aria_ecranPignon_p',\n", - " 'brand': None,\n", - " 'constructor_model': 'ARIA',\n", - " 'serial_number': None,\n", - " 'person_in_charge': None,\n", - " 'start_up': None,\n", - " 'removal': None,\n", - " 'relations': [{'property': 'vocabulary:measures',\n", - " 'value': 'm3p:id/variable/greenhouse_shading_setpoint_boolean',\n", - " 'inverse': False}],\n", - " 'description': None,\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'http://www.phenome-fppn.fr/m3p/dyn/2016/sa1600022',\n", - " 'rdf_type': 'vocabulary:Shadows',\n", - " 'rdf_type_name': 'shadows',\n", - " 'name': 'aria_ecranPignon_s1',\n", - " 'brand': None,\n", - " 'constructor_model': 'ARIA',\n", - " 'serial_number': None,\n", - " 'person_in_charge': None,\n", - " 'start_up': None,\n", - " 'removal': None,\n", - " 'relations': [{'property': 'vocabulary:measures',\n", - " 'value': 'm3p:id/variable/greenhouse_shading_setpoint_boolean',\n", - " 'inverse': False}],\n", - " 'description': None,\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'http://www.phenome-fppn.fr/m3p/arch/2016/sa1600046',\n", - " 'rdf_type': 'vocabulary:Shadows',\n", - " 'rdf_type_name': 'shadows',\n", - " 'name': 'aria_ecranPlan_p',\n", - " 'brand': None,\n", - " 'constructor_model': 'ARIA',\n", - " 'serial_number': None,\n", - " 'person_in_charge': None,\n", - " 'start_up': None,\n", - " 'removal': None,\n", - " 'relations': [{'property': 'vocabulary:measures',\n", - " 'value': 'm3p:id/variable/greenhouse_shading_setpoint_boolean',\n", - " 'inverse': False}],\n", - " 'description': None,\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'http://www.phenome-fppn.fr/m3p/dyn/2016/sa1600021',\n", - " 'rdf_type': 'vocabulary:Shadows',\n", - " 'rdf_type_name': 'shadows',\n", - " 'name': 'aria_ecranPlan_s1',\n", - " 'brand': None,\n", - " 'constructor_model': 'ARIA',\n", - " 'serial_number': None,\n", - " 'person_in_charge': None,\n", - " 'start_up': None,\n", - " 'removal': None,\n", - " 'relations': [{'property': 'vocabulary:measures',\n", - " 'value': 'm3p:id/variable/greenhouse_shading_setpoint_boolean',\n", - " 'inverse': False}],\n", - " 'description': None,\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'http://www.phenome-fppn.fr/m3p/dyn/2016/sa1600013',\n", - " 'rdf_type': 'vocabulary:CapacitiveThinFilmPolymer',\n", - " 'rdf_type_name': 'capacitive - thin film polymer',\n", - " 'name': 'aria_hr01_s1',\n", - " 'brand': 'ARIA',\n", - " 'constructor_model': None,\n", - " 'serial_number': None,\n", - " 'person_in_charge': None,\n", - " 'start_up': '2011-05-01',\n", - " 'removal': None,\n", - " 'relations': [{'property': 'vocabulary:measures',\n", - " 'value': 'm3p:id/variable/ev000020',\n", - " 'inverse': False}],\n", - " 'description': None,\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'http://www.phenome-fppn.fr/m3p/dyn/2016/sa1600014',\n", - " 'rdf_type': 'vocabulary:CapacitiveThinFilmPolymer',\n", - " 'rdf_type_name': 'capacitive - thin film polymer',\n", - " 'name': 'aria_hr02_s1',\n", - " 'brand': 'ARIA',\n", - " 'constructor_model': None,\n", - " 'serial_number': None,\n", - " 'person_in_charge': None,\n", - " 'start_up': '2011-05-01',\n", - " 'removal': None,\n", - " 'relations': [{'property': 'vocabulary:measures',\n", - " 'value': 'm3p:id/variable/ev000020',\n", - " 'inverse': False}],\n", - " 'description': None,\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'http://www.phenome-fppn.fr/m3p/arch/2016/sa1600036',\n", - " 'rdf_type': 'vocabulary:CapacitiveThinFilmPolymer',\n", - " 'rdf_type_name': 'capacitive - thin film polymer',\n", - " 'name': 'aria_hr1_p',\n", - " 'brand': 'ARIA',\n", - " 'constructor_model': None,\n", - " 'serial_number': None,\n", - " 'person_in_charge': None,\n", - " 'start_up': '2011-05-01',\n", - " 'removal': None,\n", - " 'relations': [{'property': 'vocabulary:measures',\n", - " 'value': 'm3p:id/variable/ev000020',\n", - " 'inverse': False}],\n", - " 'description': None,\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'http://www.phenome-fppn.fr/m3p/arch/2016/sa1600037',\n", - " 'rdf_type': 'vocabulary:CapacitiveThinFilmPolymer',\n", - " 'rdf_type_name': 'capacitive - thin film polymer',\n", - " 'name': 'aria_hr2_p',\n", - " 'brand': 'ARIA',\n", - " 'constructor_model': None,\n", - " 'serial_number': None,\n", - " 'person_in_charge': None,\n", - " 'start_up': '2011-05-01',\n", - " 'removal': None,\n", - " 'relations': [],\n", - " 'description': None,\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'http://www.phenome-fppn.fr/m3p/ec1/2016/sa1600060',\n", - " 'rdf_type': 'vocabulary:CapacitiveThinFilmPolymer',\n", - " 'rdf_type_name': 'capacitive - thin film polymer',\n", - " 'name': 'aria_hr_cE1',\n", - " 'brand': 'ARIA',\n", - " 'constructor_model': None,\n", - " 'serial_number': None,\n", - " 'person_in_charge': None,\n", - " 'start_up': '2011-05-01',\n", - " 'removal': None,\n", - " 'relations': [{'property': 'vocabulary:measures',\n", - " 'value': 'm3p:id/variable/ev000020',\n", - " 'inverse': False}],\n", - " 'description': None,\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'http://www.phenome-fppn.fr/m3p/ec2/2016/sa1600069',\n", - " 'rdf_type': 'vocabulary:CapacitiveThinFilmPolymer',\n", - " 'rdf_type_name': 'capacitive - thin film polymer',\n", - " 'name': 'aria_hr_cE2',\n", - " 'brand': 'ARIA',\n", - " 'constructor_model': None,\n", - " 'serial_number': None,\n", - " 'person_in_charge': None,\n", - " 'start_up': '2011-05-01',\n", - " 'removal': None,\n", - " 'relations': [{'property': 'vocabulary:measures',\n", - " 'value': 'm3p:id/variable/ev000020',\n", - " 'inverse': False}],\n", - " 'description': None,\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'http://www.phenome-fppn.fr/m3p/eo/2016/sa1600002',\n", - " 'rdf_type': 'vocabulary:CapacitiveThinFilmPolymer',\n", - " 'rdf_type_name': 'capacitive - thin film polymer',\n", - " 'name': 'aria_hr_ext',\n", - " 'brand': 'ARIA',\n", - " 'constructor_model': None,\n", - " 'serial_number': None,\n", - " 'person_in_charge': None,\n", - " 'start_up': '2011-05-01',\n", - " 'removal': None,\n", - " 'relations': [{'property': 'vocabulary:measures',\n", - " 'value': 'm3p:id/variable/ev000020',\n", - " 'inverse': False}],\n", - " 'description': None,\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'http://www.phenome-fppn.fr/m3p/eo/2016/sa1600003',\n", - " 'rdf_type': 'vocabulary:CapacitiveThinFilmPolymer',\n", - " 'rdf_type_name': 'capacitive - thin film polymer',\n", - " 'name': 'aria_quantiteEauDsAir_ext',\n", - " 'brand': 'ARIA',\n", - " 'constructor_model': None,\n", - " 'serial_number': None,\n", - " 'person_in_charge': None,\n", - " 'start_up': '2011-05-01',\n", - " 'removal': None,\n", - " 'relations': [],\n", - " 'description': None,\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'http://www.phenome-fppn.fr/m3p/eo/2016/sa1600006',\n", - " 'rdf_type': 'vocabulary:Pyranometer',\n", - " 'rdf_type_name': 'pyranometer',\n", - " 'name': 'aria_radiation_ext',\n", - " 'brand': 'ARIA',\n", - " 'constructor_model': None,\n", - " 'serial_number': None,\n", - " 'person_in_charge': None,\n", - " 'start_up': '2011-05-01',\n", - " 'removal': None,\n", - " 'relations': [{'property': 'vocabulary:measures',\n", - " 'value': 'm3p:id/variable/ev000036',\n", - " 'inverse': False}],\n", - " 'description': None,\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'http://www.phenome-fppn.fr/m3p/arch/2016/sa1600032',\n", - " 'rdf_type': 'vocabulary:ElectricalResistanceThermometer',\n", - " 'rdf_type_name': 'electrical resistance thermometer',\n", - " 'name': 'aria_tair01_p',\n", - " 'brand': 'ARIA',\n", - " 'constructor_model': None,\n", - " 'serial_number': None,\n", - " 'person_in_charge': None,\n", - " 'start_up': '2011-05-01',\n", - " 'removal': None,\n", - " 'relations': [{'property': 'vocabulary:measures',\n", - " 'value': 'm3p:id/variable/ev000001',\n", - " 'inverse': False}],\n", - " 'description': None,\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'http://www.phenome-fppn.fr/m3p/dyn/2016/sa1600009',\n", - " 'rdf_type': 'vocabulary:ElectricalResistanceThermometer',\n", - " 'rdf_type_name': 'electrical resistance thermometer',\n", - " 'name': 'aria_tair01_s1',\n", - " 'brand': 'ARIA',\n", - " 'constructor_model': None,\n", - " 'serial_number': None,\n", - " 'person_in_charge': None,\n", - " 'start_up': '2011-05-01',\n", - " 'removal': None,\n", - " 'relations': [],\n", - " 'description': None,\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'http://www.phenome-fppn.fr/m3p/arch/2016/sa1600033',\n", - " 'rdf_type': 'vocabulary:ElectricalResistanceThermometer',\n", - " 'rdf_type_name': 'electrical resistance thermometer',\n", - " 'name': 'aria_tair02_p',\n", - " 'brand': 'ARIA',\n", - " 'constructor_model': None,\n", - " 'serial_number': None,\n", - " 'person_in_charge': None,\n", - " 'start_up': '2011-05-01',\n", - " 'removal': None,\n", - " 'relations': [{'property': 'vocabulary:measures',\n", - " 'value': 'm3p:id/variable/ev000001',\n", - " 'inverse': False}],\n", - " 'description': None,\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'http://www.phenome-fppn.fr/m3p/dyn/2016/sa1600010',\n", - " 'rdf_type': 'vocabulary:ElectricalResistanceThermometer',\n", - " 'rdf_type_name': 'electrical resistance thermometer',\n", - " 'name': 'aria_tair02_s1',\n", - " 'brand': 'ARIA',\n", - " 'constructor_model': None,\n", - " 'serial_number': None,\n", - " 'person_in_charge': None,\n", - " 'start_up': '2011-05-01',\n", - " 'removal': None,\n", - " 'relations': [{'property': 'vocabulary:measures',\n", - " 'value': 'm3p:id/variable/ev000001',\n", - " 'inverse': False}],\n", - " 'description': None,\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'http://www.phenome-fppn.fr/m3p/ec1/2016/sa1600059',\n", - " 'rdf_type': 'vocabulary:ElectricalResistanceThermometer',\n", - " 'rdf_type_name': 'electrical resistance thermometer',\n", - " 'name': 'aria_tair_cE1',\n", - " 'brand': 'ARIA',\n", - " 'constructor_model': None,\n", - " 'serial_number': None,\n", - " 'person_in_charge': None,\n", - " 'start_up': '2011-05-01',\n", - " 'removal': None,\n", - " 'relations': [{'property': 'vocabulary:measures',\n", - " 'value': 'm3p:id/variable/ev000001',\n", - " 'inverse': False}],\n", - " 'description': None,\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'http://www.phenome-fppn.fr/m3p/ec2/2016/sa1600068',\n", - " 'rdf_type': 'vocabulary:ElectricalResistanceThermometer',\n", - " 'rdf_type_name': 'electrical resistance thermometer',\n", - " 'name': 'aria_tair_cE2',\n", - " 'brand': 'ARIA',\n", - " 'constructor_model': None,\n", - " 'serial_number': None,\n", - " 'person_in_charge': None,\n", - " 'start_up': '2011-05-01',\n", - " 'removal': None,\n", - " 'relations': [],\n", - " 'description': None,\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'http://www.phenome-fppn.fr/m3p/eo/2016/sa1600001',\n", - " 'rdf_type': 'vocabulary:ElectricalResistanceThermometer',\n", - " 'rdf_type_name': 'electrical resistance thermometer',\n", - " 'name': 'aria_tair_ext',\n", - " 'brand': 'ARIA',\n", - " 'constructor_model': None,\n", - " 'serial_number': None,\n", - " 'person_in_charge': None,\n", - " 'start_up': '2011-05-01',\n", - " 'removal': None,\n", - " 'relations': [{'property': 'vocabulary:measures',\n", - " 'value': 'm3p:id/variable/ev000001',\n", - " 'inverse': False}],\n", - " 'description': None,\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'http://www.phenome-fppn.fr/m3p/arch/2016/sa1600034',\n", - " 'rdf_type': 'vocabulary:ElectricalResistanceThermometer',\n", - " 'rdf_type_name': 'electrical resistance thermometer',\n", - " 'name': 'aria_tairHaute01_p',\n", - " 'brand': 'ARIA',\n", - " 'constructor_model': None,\n", - " 'serial_number': None,\n", - " 'person_in_charge': None,\n", - " 'start_up': '2011-05-01',\n", - " 'removal': None,\n", - " 'relations': [{'property': 'vocabulary:measures',\n", - " 'value': 'm3p:id/variable/ev000001',\n", - " 'inverse': False}],\n", - " 'description': None,\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'http://www.phenome-fppn.fr/m3p/arch/2016/sa1600035',\n", - " 'rdf_type': 'vocabulary:ElectricalResistanceThermometer',\n", - " 'rdf_type_name': 'electrical resistance thermometer',\n", - " 'name': 'aria_tairHaute02_p',\n", - " 'brand': 'ARIA',\n", - " 'constructor_model': None,\n", - " 'serial_number': None,\n", - " 'person_in_charge': None,\n", - " 'start_up': '2011-05-01',\n", - " 'removal': None,\n", - " 'relations': [{'property': 'vocabulary:measures',\n", - " 'value': 'm3p:id/variable/ev000001',\n", - " 'inverse': False}],\n", - " 'description': None,\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'http://www.phenome-fppn.fr/m3p/eo/2016/sa1600004',\n", - " 'rdf_type': 'vocabulary:CupAnemometer',\n", - " 'rdf_type_name': 'cup anemometer',\n", - " 'name': 'aria_vitesseVent_ext',\n", - " 'brand': 'ARIA',\n", - " 'constructor_model': None,\n", - " 'serial_number': None,\n", - " 'person_in_charge': None,\n", - " 'start_up': '2011-05-01',\n", - " 'removal': None,\n", - " 'relations': [],\n", - " 'description': None,\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'm3p:id/deviceAttribut/eo/2016/sa1600009',\n", - " 'rdf_type': 'vocabulary:PyranometerWithShadeRing',\n", - " 'rdf_type_name': 'pyranometer with shade ring',\n", - " 'name': 'BF5',\n", - " 'brand': 'DeltaT',\n", - " 'constructor_model': 'BF5',\n", - " 'serial_number': None,\n", - " 'person_in_charge': 'https://orcid.org/0000-0002-2147-2846/Person',\n", - " 'start_up': None,\n", - " 'removal': None,\n", - " 'relations': [{'property': 'vocabulary:measures',\n", - " 'value': 'm3p:id/variable/ev000035',\n", - " 'inverse': False},\n", - " {'property': 'vocabulary:measures',\n", - " 'value': 'm3p:id/variable/ev000034',\n", - " 'inverse': False}],\n", - " 'description': None,\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'm3p:id/device/camera_test_opensilex',\n", - " 'rdf_type': 'vocabulary:Camera',\n", - " 'rdf_type_name': 'Camera',\n", - " 'name': 'CAMERA TEST OPENSILEX',\n", - " 'brand': None,\n", - " 'constructor_model': None,\n", - " 'serial_number': None,\n", - " 'person_in_charge': None,\n", - " 'start_up': None,\n", - " 'removal': None,\n", - " 'relations': [],\n", - " 'description': 'Exemple',\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'm3p:id/deviceAttribut/dyn/2014/sa140001',\n", - " 'rdf_type': 'vocabulary:CO2Sensor',\n", - " 'rdf_type_name': 'CO2 sensor',\n", - " 'name': 'co2_01_cA',\n", - " 'brand': 'ARIA',\n", - " 'constructor_model': None,\n", - " 'serial_number': None,\n", - " 'person_in_charge': None,\n", - " 'start_up': None,\n", - " 'removal': None,\n", - " 'relations': [{'property': 'vocabulary:measures',\n", - " 'value': 'm3p:id/variable/ev000024',\n", - " 'inverse': False}],\n", - " 'description': None,\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'm3p:id/deviceAttribut/eo/2017/vc170001',\n", - " 'rdf_type': 'vocabulary:Vector',\n", - " 'rdf_type_name': 'Vector',\n", - " 'name': 'Emb_1',\n", - " 'brand': None,\n", - " 'constructor_model': None,\n", - " 'serial_number': None,\n", - " 'person_in_charge': None,\n", - " 'start_up': '2017-01-01',\n", - " 'removal': None,\n", - " 'relations': [],\n", - " 'description': None,\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'm3p:id/deviceAttribut/eo/2017/vc170010',\n", - " 'rdf_type': 'vocabulary:Vector',\n", - " 'rdf_type_name': 'Vector',\n", - " 'name': 'Emb_10',\n", - " 'brand': None,\n", - " 'constructor_model': None,\n", - " 'serial_number': None,\n", - " 'person_in_charge': None,\n", - " 'start_up': '2017-01-01',\n", - " 'removal': None,\n", - " 'relations': [],\n", - " 'description': None,\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'm3p:id/deviceAttribut/eo/2017/vc170011',\n", - " 'rdf_type': 'vocabulary:Vector',\n", - " 'rdf_type_name': 'Vector',\n", - " 'name': 'Emb_11',\n", - " 'brand': None,\n", - " 'constructor_model': None,\n", - " 'serial_number': None,\n", - " 'person_in_charge': None,\n", - " 'start_up': '2017-01-01',\n", - " 'removal': None,\n", - " 'relations': [],\n", - " 'description': None,\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'm3p:id/deviceAttribut/eo/2017/vc170012',\n", - " 'rdf_type': 'vocabulary:Vector',\n", - " 'rdf_type_name': 'Vector',\n", - " 'name': 'Emb_12',\n", - " 'brand': None,\n", - " 'constructor_model': None,\n", - " 'serial_number': None,\n", - " 'person_in_charge': None,\n", - " 'start_up': '2017-01-01',\n", - " 'removal': None,\n", - " 'relations': [],\n", - " 'description': None,\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'm3p:id/deviceAttribut/eo/2017/vc170013',\n", - " 'rdf_type': 'vocabulary:Vector',\n", - " 'rdf_type_name': 'Vector',\n", - " 'name': 'Emb_13',\n", - " 'brand': None,\n", - " 'constructor_model': None,\n", - " 'serial_number': None,\n", - " 'person_in_charge': None,\n", - " 'start_up': '2017-01-01',\n", - " 'removal': None,\n", - " 'relations': [],\n", - " 'description': None,\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'm3p:id/deviceAttribut/eo/2017/vc170014',\n", - " 'rdf_type': 'vocabulary:Vector',\n", - " 'rdf_type_name': 'Vector',\n", - " 'name': 'Emb_14',\n", - " 'brand': None,\n", - " 'constructor_model': None,\n", - " 'serial_number': None,\n", - " 'person_in_charge': None,\n", - " 'start_up': '2017-01-01',\n", - " 'removal': None,\n", - " 'relations': [],\n", - " 'description': None,\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'm3p:id/deviceAttribut/eo/2017/vc170015',\n", - " 'rdf_type': 'vocabulary:Vector',\n", - " 'rdf_type_name': 'Vector',\n", - " 'name': 'Emb_15',\n", - " 'brand': None,\n", - " 'constructor_model': None,\n", - " 'serial_number': None,\n", - " 'person_in_charge': None,\n", - " 'start_up': '2017-01-01',\n", - " 'removal': None,\n", - " 'relations': [],\n", - " 'description': None,\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'm3p:id/deviceAttribut/eo/2017/vc170016',\n", - " 'rdf_type': 'vocabulary:Vector',\n", - " 'rdf_type_name': 'Vector',\n", - " 'name': 'Emb_16',\n", - " 'brand': None,\n", - " 'constructor_model': None,\n", - " 'serial_number': None,\n", - " 'person_in_charge': None,\n", - " 'start_up': '2017-01-01',\n", - " 'removal': None,\n", - " 'relations': [],\n", - " 'description': None,\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'm3p:id/deviceAttribut/eo/2017/vc170017',\n", - " 'rdf_type': 'vocabulary:Vector',\n", - " 'rdf_type_name': 'Vector',\n", - " 'name': 'Emb_17',\n", - " 'brand': None,\n", - " 'constructor_model': None,\n", - " 'serial_number': None,\n", - " 'person_in_charge': None,\n", - " 'start_up': '2017-01-01',\n", - " 'removal': None,\n", - " 'relations': [],\n", - " 'description': None,\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'm3p:id/deviceAttribut/eo/2017/vc170018',\n", - " 'rdf_type': 'vocabulary:Vector',\n", - " 'rdf_type_name': 'Vector',\n", - " 'name': 'Emb_18',\n", - " 'brand': None,\n", - " 'constructor_model': None,\n", - " 'serial_number': None,\n", - " 'person_in_charge': None,\n", - " 'start_up': '2017-01-01',\n", - " 'removal': None,\n", - " 'relations': [],\n", - " 'description': None,\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'm3p:id/deviceAttribut/eo/2017/vc170019',\n", - " 'rdf_type': 'vocabulary:Vector',\n", - " 'rdf_type_name': 'Vector',\n", - " 'name': 'Emb_19',\n", - " 'brand': None,\n", - " 'constructor_model': None,\n", - " 'serial_number': None,\n", - " 'person_in_charge': None,\n", - " 'start_up': '2017-01-01',\n", - " 'removal': None,\n", - " 'relations': [],\n", - " 'description': None,\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'm3p:id/deviceAttribut/eo/2017/vc170002',\n", - " 'rdf_type': 'vocabulary:Vector',\n", - " 'rdf_type_name': 'Vector',\n", - " 'name': 'Emb_2',\n", - " 'brand': None,\n", - " 'constructor_model': None,\n", - " 'serial_number': None,\n", - " 'person_in_charge': None,\n", - " 'start_up': '2017-01-01',\n", - " 'removal': None,\n", - " 'relations': [],\n", - " 'description': None,\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'm3p:id/deviceAttribut/eo/2017/vc170020',\n", - " 'rdf_type': 'vocabulary:Vector',\n", - " 'rdf_type_name': 'Vector',\n", - " 'name': 'Emb_20',\n", - " 'brand': None,\n", - " 'constructor_model': None,\n", - " 'serial_number': None,\n", - " 'person_in_charge': None,\n", - " 'start_up': '2017-01-01',\n", - " 'removal': None,\n", - " 'relations': [],\n", - " 'description': None,\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'm3p:id/deviceAttribut/eo/2017/vc170021',\n", - " 'rdf_type': 'vocabulary:Vector',\n", - " 'rdf_type_name': 'Vector',\n", - " 'name': 'Emb_21',\n", - " 'brand': None,\n", - " 'constructor_model': None,\n", - " 'serial_number': None,\n", - " 'person_in_charge': None,\n", - " 'start_up': '2017-01-01',\n", - " 'removal': None,\n", - " 'relations': [],\n", - " 'description': None,\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'm3p:id/deviceAttribut/eo/2017/vc170022',\n", - " 'rdf_type': 'vocabulary:Vector',\n", - " 'rdf_type_name': 'Vector',\n", - " 'name': 'Emb_22',\n", - " 'brand': None,\n", - " 'constructor_model': None,\n", - " 'serial_number': None,\n", - " 'person_in_charge': None,\n", - " 'start_up': '2017-01-01',\n", - " 'removal': None,\n", - " 'relations': [],\n", - " 'description': None,\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'm3p:id/deviceAttribut/eo/2017/vc170023',\n", - " 'rdf_type': 'vocabulary:Vector',\n", - " 'rdf_type_name': 'Vector',\n", - " 'name': 'Emb_23',\n", - " 'brand': None,\n", - " 'constructor_model': None,\n", - " 'serial_number': None,\n", - " 'person_in_charge': None,\n", - " 'start_up': '2017-01-01',\n", - " 'removal': None,\n", - " 'relations': [],\n", - " 'description': None,\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'm3p:id/deviceAttribut/eo/2017/vc170024',\n", - " 'rdf_type': 'vocabulary:Vector',\n", - " 'rdf_type_name': 'Vector',\n", - " 'name': 'Emb_24',\n", - " 'brand': None,\n", - " 'constructor_model': None,\n", - " 'serial_number': None,\n", - " 'person_in_charge': None,\n", - " 'start_up': '2017-01-01',\n", - " 'removal': None,\n", - " 'relations': [],\n", - " 'description': None,\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'm3p:id/deviceAttribut/eo/2017/vc170025',\n", - " 'rdf_type': 'vocabulary:Vector',\n", - " 'rdf_type_name': 'Vector',\n", - " 'name': 'Emb_25',\n", - " 'brand': None,\n", - " 'constructor_model': None,\n", - " 'serial_number': None,\n", - " 'person_in_charge': None,\n", - " 'start_up': '2017-01-01',\n", - " 'removal': None,\n", - " 'relations': [],\n", - " 'description': None,\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'm3p:id/deviceAttribut/eo/2017/vc170026',\n", - " 'rdf_type': 'vocabulary:Vector',\n", - " 'rdf_type_name': 'Vector',\n", - " 'name': 'Emb_26',\n", - " 'brand': None,\n", - " 'constructor_model': None,\n", - " 'serial_number': None,\n", - " 'person_in_charge': None,\n", - " 'start_up': '2017-01-01',\n", - " 'removal': None,\n", - " 'relations': [],\n", - " 'description': None,\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'm3p:id/deviceAttribut/eo/2017/vc170027',\n", - " 'rdf_type': 'vocabulary:Vector',\n", - " 'rdf_type_name': 'Vector',\n", - " 'name': 'Emb_27',\n", - " 'brand': None,\n", - " 'constructor_model': None,\n", - " 'serial_number': None,\n", - " 'person_in_charge': None,\n", - " 'start_up': '2017-01-01',\n", - " 'removal': None,\n", - " 'relations': [],\n", - " 'description': None,\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'm3p:id/deviceAttribut/eo/2017/vc170028',\n", - " 'rdf_type': 'vocabulary:Vector',\n", - " 'rdf_type_name': 'Vector',\n", - " 'name': 'Emb_28',\n", - " 'brand': None,\n", - " 'constructor_model': None,\n", - " 'serial_number': None,\n", - " 'person_in_charge': None,\n", - " 'start_up': '2017-01-01',\n", - " 'removal': None,\n", - " 'relations': [],\n", - " 'description': None,\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'm3p:id/deviceAttribut/eo/2017/vc170029',\n", - " 'rdf_type': 'vocabulary:Vector',\n", - " 'rdf_type_name': 'Vector',\n", - " 'name': 'Emb_29',\n", - " 'brand': None,\n", - " 'constructor_model': None,\n", - " 'serial_number': None,\n", - " 'person_in_charge': None,\n", - " 'start_up': '2017-01-01',\n", - " 'removal': None,\n", - " 'relations': [],\n", - " 'description': None,\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'm3p:id/deviceAttribut/eo/2017/vc170003',\n", - " 'rdf_type': 'vocabulary:Vector',\n", - " 'rdf_type_name': 'Vector',\n", - " 'name': 'Emb_3',\n", - " 'brand': None,\n", - " 'constructor_model': None,\n", - " 'serial_number': None,\n", - " 'person_in_charge': None,\n", - " 'start_up': '2017-01-01',\n", - " 'removal': None,\n", - " 'relations': [],\n", - " 'description': None,\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'm3p:id/deviceAttribut/eo/2017/vc170030',\n", - " 'rdf_type': 'vocabulary:Vector',\n", - " 'rdf_type_name': 'Vector',\n", - " 'name': 'Emb_30',\n", - " 'brand': None,\n", - " 'constructor_model': None,\n", - " 'serial_number': None,\n", - " 'person_in_charge': None,\n", - " 'start_up': '2017-01-01',\n", - " 'removal': None,\n", - " 'relations': [],\n", - " 'description': None,\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'm3p:id/deviceAttribut/eo/2017/vc170031',\n", - " 'rdf_type': 'vocabulary:Vector',\n", - " 'rdf_type_name': 'Vector',\n", - " 'name': 'Emb_31',\n", - " 'brand': None,\n", - " 'constructor_model': None,\n", - " 'serial_number': None,\n", - " 'person_in_charge': None,\n", - " 'start_up': '2017-01-01',\n", - " 'removal': None,\n", - " 'relations': [],\n", - " 'description': None,\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'm3p:id/deviceAttribut/eo/2017/vc170032',\n", - " 'rdf_type': 'vocabulary:Vector',\n", - " 'rdf_type_name': 'Vector',\n", - " 'name': 'Emb_32',\n", - " 'brand': None,\n", - " 'constructor_model': None,\n", - " 'serial_number': None,\n", - " 'person_in_charge': None,\n", - " 'start_up': '2017-01-01',\n", - " 'removal': None,\n", - " 'relations': [],\n", - " 'description': None,\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'm3p:id/deviceAttribut/eo/2017/vc170033',\n", - " 'rdf_type': 'vocabulary:Vector',\n", - " 'rdf_type_name': 'Vector',\n", - " 'name': 'Emb_33',\n", - " 'brand': None,\n", - " 'constructor_model': None,\n", - " 'serial_number': None,\n", - " 'person_in_charge': None,\n", - " 'start_up': '2017-01-01',\n", - " 'removal': None,\n", - " 'relations': [],\n", - " 'description': None,\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'm3p:id/deviceAttribut/eo/2017/vc170034',\n", - " 'rdf_type': 'vocabulary:Vector',\n", - " 'rdf_type_name': 'Vector',\n", - " 'name': 'Emb_34',\n", - " 'brand': None,\n", - " 'constructor_model': None,\n", - " 'serial_number': None,\n", - " 'person_in_charge': None,\n", - " 'start_up': '2017-01-01',\n", - " 'removal': None,\n", - " 'relations': [],\n", - " 'description': None,\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'm3p:id/deviceAttribut/eo/2017/vc170035',\n", - " 'rdf_type': 'vocabulary:Vector',\n", - " 'rdf_type_name': 'Vector',\n", - " 'name': 'Emb_35',\n", - " 'brand': None,\n", - " 'constructor_model': None,\n", - " 'serial_number': None,\n", - " 'person_in_charge': None,\n", - " 'start_up': '2017-01-01',\n", - " 'removal': None,\n", - " 'relations': [],\n", - " 'description': None,\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'm3p:id/deviceAttribut/eo/2017/vc170036',\n", - " 'rdf_type': 'vocabulary:Vector',\n", - " 'rdf_type_name': 'Vector',\n", - " 'name': 'Emb_36',\n", - " 'brand': None,\n", - " 'constructor_model': None,\n", - " 'serial_number': None,\n", - " 'person_in_charge': None,\n", - " 'start_up': '2017-01-01',\n", - " 'removal': None,\n", - " 'relations': [],\n", - " 'description': None,\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'm3p:id/deviceAttribut/eo/2017/vc170037',\n", - " 'rdf_type': 'vocabulary:Vector',\n", - " 'rdf_type_name': 'Vector',\n", - " 'name': 'Emb_37',\n", - " 'brand': None,\n", - " 'constructor_model': None,\n", - " 'serial_number': None,\n", - " 'person_in_charge': None,\n", - " 'start_up': '2017-01-01',\n", - " 'removal': None,\n", - " 'relations': [],\n", - " 'description': None,\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'm3p:id/deviceAttribut/eo/2017/vc170038',\n", - " 'rdf_type': 'vocabulary:Vector',\n", - " 'rdf_type_name': 'Vector',\n", - " 'name': 'Emb_38',\n", - " 'brand': None,\n", - " 'constructor_model': None,\n", - " 'serial_number': None,\n", - " 'person_in_charge': None,\n", - " 'start_up': '2017-01-01',\n", - " 'removal': None,\n", - " 'relations': [],\n", - " 'description': None,\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'm3p:id/deviceAttribut/eo/2017/vc170039',\n", - " 'rdf_type': 'vocabulary:Vector',\n", - " 'rdf_type_name': 'Vector',\n", - " 'name': 'Emb_39',\n", - " 'brand': None,\n", - " 'constructor_model': None,\n", - " 'serial_number': None,\n", - " 'person_in_charge': None,\n", - " 'start_up': '2017-01-01',\n", - " 'removal': None,\n", - " 'relations': [],\n", - " 'description': None,\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'm3p:id/deviceAttribut/eo/2017/vc170004',\n", - " 'rdf_type': 'vocabulary:Vector',\n", - " 'rdf_type_name': 'Vector',\n", - " 'name': 'Emb_4',\n", - " 'brand': None,\n", - " 'constructor_model': None,\n", - " 'serial_number': None,\n", - " 'person_in_charge': None,\n", - " 'start_up': '2017-01-01',\n", - " 'removal': None,\n", - " 'relations': [],\n", - " 'description': None,\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'm3p:id/deviceAttribut/eo/2017/vc170040',\n", - " 'rdf_type': 'vocabulary:Vector',\n", - " 'rdf_type_name': 'Vector',\n", - " 'name': 'Emb_40',\n", - " 'brand': None,\n", - " 'constructor_model': None,\n", - " 'serial_number': None,\n", - " 'person_in_charge': None,\n", - " 'start_up': '2017-01-01',\n", - " 'removal': None,\n", - " 'relations': [],\n", - " 'description': None,\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'm3p:id/deviceAttribut/eo/2017/vc170041',\n", - " 'rdf_type': 'vocabulary:Vector',\n", - " 'rdf_type_name': 'Vector',\n", - " 'name': 'Emb_41',\n", - " 'brand': None,\n", - " 'constructor_model': None,\n", - " 'serial_number': None,\n", - " 'person_in_charge': None,\n", - " 'start_up': '2017-01-01',\n", - " 'removal': None,\n", - " 'relations': [],\n", - " 'description': None,\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'm3p:id/deviceAttribut/eo/2017/vc170042',\n", - " 'rdf_type': 'vocabulary:Vector',\n", - " 'rdf_type_name': 'Vector',\n", - " 'name': 'Emb_42',\n", - " 'brand': None,\n", - " 'constructor_model': None,\n", - " 'serial_number': None,\n", - " 'person_in_charge': None,\n", - " 'start_up': '2017-01-01',\n", - " 'removal': None,\n", - " 'relations': [],\n", - " 'description': None,\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'm3p:id/deviceAttribut/eo/2017/vc170043',\n", - " 'rdf_type': 'vocabulary:Vector',\n", - " 'rdf_type_name': 'Vector',\n", - " 'name': 'Emb_43',\n", - " 'brand': None,\n", - " 'constructor_model': None,\n", - " 'serial_number': None,\n", - " 'person_in_charge': None,\n", - " 'start_up': '2017-01-01',\n", - " 'removal': None,\n", - " 'relations': [],\n", - " 'description': None,\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'm3p:id/deviceAttribut/eo/2017/vc170044',\n", - " 'rdf_type': 'vocabulary:Vector',\n", - " 'rdf_type_name': 'Vector',\n", - " 'name': 'Emb_44',\n", - " 'brand': None,\n", - " 'constructor_model': None,\n", - " 'serial_number': None,\n", - " 'person_in_charge': None,\n", - " 'start_up': '2017-01-01',\n", - " 'removal': None,\n", - " 'relations': [],\n", - " 'description': None,\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'm3p:id/deviceAttribut/eo/2017/vc170045',\n", - " 'rdf_type': 'vocabulary:Vector',\n", - " 'rdf_type_name': 'Vector',\n", - " 'name': 'Emb_45',\n", - " 'brand': None,\n", - " 'constructor_model': None,\n", - " 'serial_number': None,\n", - " 'person_in_charge': None,\n", - " 'start_up': '2017-01-01',\n", - " 'removal': None,\n", - " 'relations': [],\n", - " 'description': None,\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'm3p:id/deviceAttribut/eo/2017/vc170046',\n", - " 'rdf_type': 'vocabulary:Vector',\n", - " 'rdf_type_name': 'Vector',\n", - " 'name': 'Emb_46',\n", - " 'brand': None,\n", - " 'constructor_model': None,\n", - " 'serial_number': None,\n", - " 'person_in_charge': None,\n", - " 'start_up': '2017-01-01',\n", - " 'removal': None,\n", - " 'relations': [],\n", - " 'description': None,\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'm3p:id/deviceAttribut/eo/2017/vc170047',\n", - " 'rdf_type': 'vocabulary:Vector',\n", - " 'rdf_type_name': 'Vector',\n", - " 'name': 'Emb_47',\n", - " 'brand': None,\n", - " 'constructor_model': None,\n", - " 'serial_number': None,\n", - " 'person_in_charge': None,\n", - " 'start_up': '2017-01-01',\n", - " 'removal': None,\n", - " 'relations': [],\n", - " 'description': None,\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'm3p:id/deviceAttribut/eo/2017/vc170048',\n", - " 'rdf_type': 'vocabulary:Vector',\n", - " 'rdf_type_name': 'Vector',\n", - " 'name': 'Emb_48',\n", - " 'brand': None,\n", - " 'constructor_model': None,\n", - " 'serial_number': None,\n", - " 'person_in_charge': None,\n", - " 'start_up': '2017-01-01',\n", - " 'removal': None,\n", - " 'relations': [],\n", - " 'description': None,\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'm3p:id/deviceAttribut/eo/2017/vc170049',\n", - " 'rdf_type': 'vocabulary:Vector',\n", - " 'rdf_type_name': 'Vector',\n", - " 'name': 'Emb_49',\n", - " 'brand': None,\n", - " 'constructor_model': None,\n", - " 'serial_number': None,\n", - " 'person_in_charge': None,\n", - " 'start_up': '2017-01-01',\n", - " 'removal': None,\n", - " 'relations': [],\n", - " 'description': None,\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'm3p:id/deviceAttribut/eo/2017/vc170005',\n", - " 'rdf_type': 'vocabulary:Vector',\n", - " 'rdf_type_name': 'Vector',\n", - " 'name': 'Emb_5',\n", - " 'brand': None,\n", - " 'constructor_model': None,\n", - " 'serial_number': None,\n", - " 'person_in_charge': None,\n", - " 'start_up': '2017-01-01',\n", - " 'removal': None,\n", - " 'relations': [],\n", - " 'description': None,\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'm3p:id/deviceAttribut/eo/2017/vc170050',\n", - " 'rdf_type': 'vocabulary:Vector',\n", - " 'rdf_type_name': 'Vector',\n", - " 'name': 'Emb_50',\n", - " 'brand': None,\n", - " 'constructor_model': None,\n", - " 'serial_number': None,\n", - " 'person_in_charge': None,\n", - " 'start_up': '2017-01-01',\n", - " 'removal': None,\n", - " 'relations': [],\n", - " 'description': None,\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'm3p:id/deviceAttribut/eo/2017/vc170051',\n", - " 'rdf_type': 'vocabulary:Vector',\n", - " 'rdf_type_name': 'Vector',\n", - " 'name': 'Emb_51',\n", - " 'brand': None,\n", - " 'constructor_model': None,\n", - " 'serial_number': None,\n", - " 'person_in_charge': None,\n", - " 'start_up': '2017-01-01',\n", - " 'removal': None,\n", - " 'relations': [],\n", - " 'description': None,\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'm3p:id/deviceAttribut/eo/2017/vc170052',\n", - " 'rdf_type': 'vocabulary:Vector',\n", - " 'rdf_type_name': 'Vector',\n", - " 'name': 'Emb_52',\n", - " 'brand': None,\n", - " 'constructor_model': None,\n", - " 'serial_number': None,\n", - " 'person_in_charge': None,\n", - " 'start_up': '2017-01-01',\n", - " 'removal': None,\n", - " 'relations': [],\n", - " 'description': None,\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'm3p:id/deviceAttribut/eo/2017/vc170053',\n", - " 'rdf_type': 'vocabulary:Vector',\n", - " 'rdf_type_name': 'Vector',\n", - " 'name': 'Emb_53',\n", - " 'brand': None,\n", - " 'constructor_model': None,\n", - " 'serial_number': None,\n", - " 'person_in_charge': None,\n", - " 'start_up': '2017-01-01',\n", - " 'removal': None,\n", - " 'relations': [],\n", - " 'description': None,\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'm3p:id/deviceAttribut/eo/2017/vc170054',\n", - " 'rdf_type': 'vocabulary:Vector',\n", - " 'rdf_type_name': 'Vector',\n", - " 'name': 'Emb_54',\n", - " 'brand': None,\n", - " 'constructor_model': None,\n", - " 'serial_number': None,\n", - " 'person_in_charge': None,\n", - " 'start_up': '2017-01-01',\n", - " 'removal': None,\n", - " 'relations': [],\n", - " 'description': None,\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'm3p:id/deviceAttribut/eo/2017/vc170055',\n", - " 'rdf_type': 'vocabulary:Vector',\n", - " 'rdf_type_name': 'Vector',\n", - " 'name': 'Emb_55',\n", - " 'brand': None,\n", - " 'constructor_model': None,\n", - " 'serial_number': None,\n", - " 'person_in_charge': None,\n", - " 'start_up': '2017-01-01',\n", - " 'removal': None,\n", - " 'relations': [],\n", - " 'description': None,\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'm3p:id/deviceAttribut/eo/2017/vc170056',\n", - " 'rdf_type': 'vocabulary:Vector',\n", - " 'rdf_type_name': 'Vector',\n", - " 'name': 'Emb_56',\n", - " 'brand': None,\n", - " 'constructor_model': None,\n", - " 'serial_number': None,\n", - " 'person_in_charge': None,\n", - " 'start_up': '2017-01-01',\n", - " 'removal': None,\n", - " 'relations': [],\n", - " 'description': None,\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'm3p:id/deviceAttribut/eo/2017/vc170057',\n", - " 'rdf_type': 'vocabulary:Vector',\n", - " 'rdf_type_name': 'Vector',\n", - " 'name': 'Emb_57',\n", - " 'brand': None,\n", - " 'constructor_model': None,\n", - " 'serial_number': None,\n", - " 'person_in_charge': None,\n", - " 'start_up': '2017-01-01',\n", - " 'removal': None,\n", - " 'relations': [],\n", - " 'description': None,\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'm3p:id/deviceAttribut/eo/2017/vc170058',\n", - " 'rdf_type': 'vocabulary:Vector',\n", - " 'rdf_type_name': 'Vector',\n", - " 'name': 'Emb_58',\n", - " 'brand': None,\n", - " 'constructor_model': None,\n", - " 'serial_number': None,\n", - " 'person_in_charge': None,\n", - " 'start_up': '2017-01-01',\n", - " 'removal': None,\n", - " 'relations': [],\n", - " 'description': None,\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'm3p:id/deviceAttribut/eo/2017/vc170059',\n", - " 'rdf_type': 'vocabulary:Vector',\n", - " 'rdf_type_name': 'Vector',\n", - " 'name': 'Emb_59',\n", - " 'brand': None,\n", - " 'constructor_model': None,\n", - " 'serial_number': None,\n", - " 'person_in_charge': None,\n", - " 'start_up': '2017-01-01',\n", - " 'removal': None,\n", - " 'relations': [],\n", - " 'description': None,\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'm3p:id/deviceAttribut/eo/2017/vc170006',\n", - " 'rdf_type': 'vocabulary:Vector',\n", - " 'rdf_type_name': 'Vector',\n", - " 'name': 'Emb_6',\n", - " 'brand': None,\n", - " 'constructor_model': None,\n", - " 'serial_number': None,\n", - " 'person_in_charge': None,\n", - " 'start_up': '2017-01-01',\n", - " 'removal': None,\n", - " 'relations': [],\n", - " 'description': None,\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'm3p:id/deviceAttribut/eo/2017/vc170060',\n", - " 'rdf_type': 'vocabulary:Vector',\n", - " 'rdf_type_name': 'Vector',\n", - " 'name': 'Emb_60',\n", - " 'brand': None,\n", - " 'constructor_model': None,\n", - " 'serial_number': None,\n", - " 'person_in_charge': None,\n", - " 'start_up': '2017-01-01',\n", - " 'removal': None,\n", - " 'relations': [],\n", - " 'description': None,\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None}]}" + "['2369_udel',\n", + " 'CML10_udel',\n", + " 'CML254_udel',\n", + " 'CML258_udel',\n", + " 'CML277_udel',\n", + " 'CML341_udel',\n", + " 'CML373_udel',\n", + " 'Ki14_udel',\n", + " 'LH123Ht_udel',\n", + " 'NILASq4g31i04_udel',\n", + " 'NILASq4g31i06_udel',\n", + " 'NILASq4g41i07_udel',\n", + " 'NILASq4g71i03_udel',\n", + " 'Tzi8_udel',\n", + " 'Tzi9_udel']" ] }, "execution_count": 13, @@ -3721,52 +678,35 @@ } ], "source": [ - "phis.get_device()" + "phis.get_germplasm(rdf_type='http://www.opensilex.org/vocabulary/oeso#Accession', name='udel')" ] }, { "cell_type": "markdown", - "id": "77df9f4e-91c0-44c4-b932-042ea2cdbb39", + "id": "47d512bf-6e4c-4a05-acde-2669f4b9921b", "metadata": {}, "source": [ - "#### Get specific device with URI" + "#### Get specific germplasm details" ] }, { "cell_type": "code", "execution_count": 14, - "id": "e8193235-e5ac-4186-906f-b0d3f3a7808b", + "id": "f41c781e-6f93-427b-96bc-e273fa939d72", "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "{'metadata': {'pagination': {'pageSize': 0,\n", - " 'currentPage': 0,\n", - " 'totalCount': 0,\n", - " 'totalPages': 0,\n", - " 'limitCount': 0,\n", - " 'hasNextPage': False},\n", - " 'status': [],\n", - " 'datafiles': []},\n", - " 'result': {'uri': 'http://www.phenome-fppn.fr/m3p/ec1/2016/sa1600064',\n", - " 'rdf_type': 'vocabulary:CO2Sensor',\n", - " 'rdf_type_name': 'CO2 sensor',\n", - " 'name': 'aria_co2_cE1',\n", - " 'brand': 'ARIA',\n", - " 'constructor_model': None,\n", - " 'serial_number': None,\n", - " 'person_in_charge': None,\n", - " 'start_up': '2011-05-01',\n", - " 'removal': None,\n", - " 'relations': [{'property': 'vocabulary:measures',\n", - " 'value': 'm3p:id/variable/ev000024',\n", - " 'inverse': False}],\n", - " 'description': None,\n", - " 'metadata': None,\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None}}" + "{'uri': 'http://phenome.inrae.fr/m3p/id/germplasm/accesion.CFD11-005_inrae',\n", + " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeso#Accession',\n", + " 'rdf_type_name': 'Accession',\n", + " 'name': 'CFD11-005_inrae',\n", + " 'species': 'http://aims.fao.org/aos/agrovoc/c_8504',\n", + " 'species_name': 'maize',\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None}" ] }, "execution_count": 14, @@ -3775,35 +715,126 @@ } ], "source": [ - "phis.get_device(uri='http://www.phenome-fppn.fr/m3p/ec1/2016/sa1600064')" + "phis.get_germplasm(germplasm_name='CFD11-005_inrae')" ] }, { "cell_type": "markdown", - "id": "f6b0d09c-5566-4718-8832-17d837d7b74b", + "id": "abe6ba29-c8ec-4f05-93c8-a043df7f4a30", "metadata": {}, "source": [ - "#### List available annotations" + "#### List available devices" ] }, { "cell_type": "code", "execution_count": 15, - "id": "6c4fbe53-45ef-4679-ace1-9c7d21733552", + "id": "3bc8180f-a5f0-4d91-a927-61dcfdf834d5", "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "{'metadata': {'pagination': {'pageSize': 100,\n", - " 'currentPage': 0,\n", - " 'totalCount': 0,\n", - " 'totalPages': 0,\n", - " 'limitCount': 0,\n", - " 'hasNextPage': False},\n", - " 'status': [],\n", - " 'datafiles': []},\n", - " 'result': []}" + "['aria_co2_cE1',\n", + " 'aria_co2_cE2',\n", + " 'aria_co2_p',\n", + " 'aria_directionVent_ext',\n", + " 'aria_eclairage1_p',\n", + " 'aria_eclairage1_s1',\n", + " 'aria_eclairage2_p',\n", + " 'aria_eclairage2_s1',\n", + " 'aria_eclairage3_p',\n", + " 'aria_eclairage3_s1',\n", + " 'aria_eclairage4_s1',\n", + " 'aria_eclairage5_s1',\n", + " 'aria_eclairage6_s1',\n", + " 'aria_ecranBardage1_p',\n", + " 'aria_ecranBardage1_s1',\n", + " 'aria_ecranBardage2_p',\n", + " 'aria_ecranBardage2_s1',\n", + " 'aria_ecranPignon_p',\n", + " 'aria_ecranPignon_s1',\n", + " 'aria_ecranPlan_p',\n", + " 'aria_ecranPlan_s1',\n", + " 'aria_hr01_s1',\n", + " 'aria_hr02_s1',\n", + " 'aria_hr1_p',\n", + " 'aria_hr2_p',\n", + " 'aria_hr_cE1',\n", + " 'aria_hr_cE2',\n", + " 'aria_hr_ext',\n", + " 'aria_quantiteEauDsAir_ext',\n", + " 'aria_radiation_ext',\n", + " 'aria_tair01_p',\n", + " 'aria_tair01_s1',\n", + " 'aria_tair02_p',\n", + " 'aria_tair02_s1',\n", + " 'aria_tair_cE1',\n", + " 'aria_tair_cE2',\n", + " 'aria_tair_ext',\n", + " 'aria_tairHaute01_p',\n", + " 'aria_tairHaute02_p',\n", + " 'aria_vitesseVent_ext',\n", + " 'BF5',\n", + " 'CAMERA TEST OPENSILEX',\n", + " 'co2_01_cA',\n", + " 'Emb_1',\n", + " 'Emb_10',\n", + " 'Emb_11',\n", + " 'Emb_12',\n", + " 'Emb_13',\n", + " 'Emb_14',\n", + " 'Emb_15',\n", + " 'Emb_16',\n", + " 'Emb_17',\n", + " 'Emb_18',\n", + " 'Emb_19',\n", + " 'Emb_2',\n", + " 'Emb_20',\n", + " 'Emb_21',\n", + " 'Emb_22',\n", + " 'Emb_23',\n", + " 'Emb_24',\n", + " 'Emb_25',\n", + " 'Emb_26',\n", + " 'Emb_27',\n", + " 'Emb_28',\n", + " 'Emb_29',\n", + " 'Emb_3',\n", + " 'Emb_30',\n", + " 'Emb_31',\n", + " 'Emb_32',\n", + " 'Emb_33',\n", + " 'Emb_34',\n", + " 'Emb_35',\n", + " 'Emb_36',\n", + " 'Emb_37',\n", + " 'Emb_38',\n", + " 'Emb_39',\n", + " 'Emb_4',\n", + " 'Emb_40',\n", + " 'Emb_41',\n", + " 'Emb_42',\n", + " 'Emb_43',\n", + " 'Emb_44',\n", + " 'Emb_45',\n", + " 'Emb_46',\n", + " 'Emb_47',\n", + " 'Emb_48',\n", + " 'Emb_49',\n", + " 'Emb_5',\n", + " 'Emb_50',\n", + " 'Emb_51',\n", + " 'Emb_52',\n", + " 'Emb_53',\n", + " 'Emb_54',\n", + " 'Emb_55',\n", + " 'Emb_56',\n", + " 'Emb_57',\n", + " 'Emb_58',\n", + " 'Emb_59',\n", + " 'Emb_6',\n", + " 'Emb_60']" ] }, "execution_count": 15, @@ -3812,103 +843,70 @@ } ], "source": [ - "phis.get_annotation()" + "phis.get_device(page_size=100)" ] }, { "cell_type": "markdown", - "id": "c24cf5a9-0382-41c3-8902-6c8b2be47e80", + "id": "77df9f4e-91c0-44c4-b932-042ea2cdbb39", "metadata": {}, "source": [ - "#### Get specific annotation with URI" + "#### Get specific device details" ] }, { "cell_type": "code", "execution_count": 16, - "id": "ec7ab620-d520-49fe-9646-eecea5ca84fe", + "id": "e8193235-e5ac-4186-906f-b0d3f3a7808b", "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "{'uri': 'm3p:id/deviceAttribut/eo/2017/vc170057',\n", + " 'rdf_type': 'vocabulary:Vector',\n", + " 'rdf_type_name': 'Vector',\n", + " 'name': 'Emb_57',\n", + " 'brand': None,\n", + " 'constructor_model': None,\n", + " 'serial_number': None,\n", + " 'person_in_charge': None,\n", + " 'start_up': '2017-01-01',\n", + " 'removal': None,\n", + " 'relations': [],\n", + " 'description': None,\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None}" + ] + }, + "execution_count": 16, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ - "# No URIs" + "phis.get_device(device_name='Emb_57')" ] }, { "cell_type": "markdown", - "id": "9dcb9c9b-4c69-43e9-a656-21ac67348377", + "id": "f6b0d09c-5566-4718-8832-17d837d7b74b", "metadata": {}, "source": [ - "#### List available documents" + "#### List available annotations" ] }, { "cell_type": "code", "execution_count": 17, - "id": "26b13101-bad6-4767-8cc5-2df08ec12399", + "id": "6c4fbe53-45ef-4679-ace1-9c7d21733552", "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "{'metadata': {'pagination': {'pageSize': 20,\n", - " 'currentPage': 0,\n", - " 'totalCount': 3,\n", - " 'totalPages': 1,\n", - " 'limitCount': 0,\n", - " 'hasNextPage': True},\n", - " 'status': [],\n", - " 'datafiles': []},\n", - " 'result': [{'uri': 'm3p:id/document/test_isa_doc_post_deploy',\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None,\n", - " 'identifier': None,\n", - " 'rdf_type': 'vocabulary:ScientificDocument',\n", - " 'rdf_type_name': 'Scientific Document',\n", - " 'title': 'test isa doc post deploy',\n", - " 'date': '2022-04-05',\n", - " 'description': None,\n", - " 'targets': [],\n", - " 'authors': [],\n", - " 'language': None,\n", - " 'format': 'png',\n", - " 'keywords': [],\n", - " 'deprecated': True,\n", - " 'source': None},\n", - " {'uri': 'm3p:id/document/test_isa_doc',\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None,\n", - " 'identifier': None,\n", - " 'rdf_type': 'vocabulary:ScientificDocument',\n", - " 'rdf_type_name': 'Scientific Document',\n", - " 'title': 'test isa doc ',\n", - " 'date': '2022-04-04',\n", - " 'description': None,\n", - " 'targets': [],\n", - " 'authors': [],\n", - " 'language': None,\n", - " 'format': 'png',\n", - " 'keywords': [],\n", - " 'deprecated': True,\n", - " 'source': None},\n", - " {'uri': 'm3p:id/document/test_dataset',\n", - " 'publisher': None,\n", - " 'publication_date': '2023-08-22T11:46:26.204356+02:00',\n", - " 'last_updated_date': '2023-08-22T11:53:27.395245+02:00',\n", - " 'identifier': 'doi:10.82233/BFHMFT',\n", - " 'rdf_type': 'vocabulary-dataverse:RechercheDataGouvDataset',\n", - " 'rdf_type_name': 'RechercheDataGouv Dataset',\n", - " 'title': 'Test_dataset',\n", - " 'date': '2020-02-20',\n", - " 'description': 'Test et démo connexion IRODS',\n", - " 'targets': ['m3p:id/experiment/expe_test_opensilex_irods'],\n", - " 'authors': ['http://www.phenome.inrae.fr/m3p/users#admin.opensilex/Person'],\n", - " 'language': 'English',\n", - " 'format': None,\n", - " 'keywords': [],\n", - " 'deprecated': True,\n", - " 'source': 'https://data-preproduction.inrae.fr/dataset.xhtml?persistentId=doi%3A10.82233%2FBFHMFT'}]}" + "[]" ] }, "execution_count": 17, @@ -3917,51 +915,27 @@ } ], "source": [ - "phis.get_document()" + "phis.get_annotation()" ] }, { "cell_type": "markdown", - "id": "e55cd13a-1889-431e-a9ab-42e39ba939c8", + "id": "9dcb9c9b-4c69-43e9-a656-21ac67348377", "metadata": {}, "source": [ - "#### Get specific document with URI" + "#### List available documents" ] }, { "cell_type": "code", "execution_count": 18, - "id": "3069fe3f-cda6-4bca-a1f6-02e53abc85c5", + "id": "26b13101-bad6-4767-8cc5-2df08ec12399", "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "{'metadata': {'pagination': {'pageSize': 0,\n", - " 'currentPage': 0,\n", - " 'totalCount': 0,\n", - " 'totalPages': 0,\n", - " 'limitCount': 0,\n", - " 'hasNextPage': False},\n", - " 'status': [],\n", - " 'datafiles': []},\n", - " 'result': {'uri': 'm3p:id/document/test_dataset',\n", - " 'publisher': None,\n", - " 'publication_date': '2023-08-22T11:46:26.204356+02:00',\n", - " 'last_updated_date': '2023-08-22T11:53:27.395245+02:00',\n", - " 'identifier': 'doi:10.82233/BFHMFT',\n", - " 'rdf_type': 'vocabulary-dataverse:RechercheDataGouvDataset',\n", - " 'rdf_type_name': 'RechercheDataGouv Dataset',\n", - " 'title': 'Test_dataset',\n", - " 'date': '2020-02-20',\n", - " 'description': 'Test et démo connexion IRODS',\n", - " 'targets': ['m3p:id/experiment/expe_test_opensilex_irods'],\n", - " 'authors': ['http://www.phenome.inrae.fr/m3p/users#admin.opensilex/Person'],\n", - " 'language': 'English',\n", - " 'format': None,\n", - " 'keywords': [],\n", - " 'deprecated': True,\n", - " 'source': 'https://data-preproduction.inrae.fr/dataset.xhtml?persistentId=doi%3A10.82233%2FBFHMFT'}}" + "['test isa doc post deploy', 'test isa doc ', 'Test_dataset']" ] }, "execution_count": 18, @@ -3970,35 +944,43 @@ } ], "source": [ - "phis.get_document(uri='m3p:id/document/test_dataset')" + "phis.get_document()" ] }, { "cell_type": "markdown", - "id": "d39fcca3-480b-401a-9f6a-6f4d9670aa03", + "id": "e55cd13a-1889-431e-a9ab-42e39ba939c8", "metadata": {}, "source": [ - "#### List available factors" + "#### Get specific document details" ] }, { "cell_type": "code", "execution_count": 19, - "id": "acf07aee-51ad-47f8-adc7-c3d023c98e32", + "id": "3069fe3f-cda6-4bca-a1f6-02e53abc85c5", "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "{'metadata': {'pagination': {'pageSize': 100,\n", - " 'currentPage': 0,\n", - " 'totalCount': 0,\n", - " 'totalPages': 0,\n", - " 'limitCount': 0,\n", - " 'hasNextPage': False},\n", - " 'status': [],\n", - " 'datafiles': []},\n", - " 'result': []}" + "{'uri': 'm3p:id/document/test_isa_doc',\n", + " 'publisher': None,\n", + " 'publication_date': None,\n", + " 'last_updated_date': None,\n", + " 'identifier': None,\n", + " 'rdf_type': 'vocabulary:ScientificDocument',\n", + " 'rdf_type_name': 'Scientific Document',\n", + " 'title': 'test isa doc ',\n", + " 'date': '2022-04-04',\n", + " 'description': None,\n", + " 'targets': [],\n", + " 'authors': [],\n", + " 'language': None,\n", + " 'format': 'png',\n", + " 'keywords': [],\n", + " 'deprecated': True,\n", + " 'source': None}" ] }, "execution_count": 19, @@ -4007,25 +989,36 @@ } ], "source": [ - "phis.get_factor()" + "phis.get_document(document_title='test isa doc ')" ] }, { "cell_type": "markdown", - "id": "96566eec-c90b-4ee9-9cad-88bfde988be4", + "id": "d39fcca3-480b-401a-9f6a-6f4d9670aa03", "metadata": {}, "source": [ - "#### Get specific factor with URI" + "#### List available factors" ] }, { "cell_type": "code", "execution_count": 20, - "id": "10363530-849e-43d0-9376-f87a68e4183f", + "id": "acf07aee-51ad-47f8-adc7-c3d023c98e32", "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "['Scenario']" + ] + }, + "execution_count": 20, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ - "# No URIs" + "phis.get_factor()" ] }, { @@ -4043,75 +1036,26 @@ "metadata": {}, "outputs": [ { - "data": { - "text/plain": [ - "{'metadata': {'pagination': {'pageSize': 6,\n", - " 'currentPage': 0,\n", - " 'totalCount': 6,\n", - " 'totalPages': 1,\n", - " 'limitCount': 0,\n", - " 'hasNextPage': True},\n", - " 'status': [],\n", - " 'datafiles': []},\n", - " 'result': [{'uri': 'https://emphasis.plant-phenotyping.eu/',\n", - " 'name': 'EMPHASIS',\n", - " 'parents': [],\n", - " 'children': ['http://www.phenome-fppn.fr'],\n", - " 'rdf_type': 'vocabulary:EuropeanOrganization',\n", - " 'rdf_type_name': 'european organization',\n", - " 'publication_date': None,\n", - " 'last_updated_date': '2024-02-02T15:44:25.716531+01:00'},\n", - " {'uri': 'm3p:id/organization/phenoarch',\n", - " 'name': 'PHENOARCH',\n", - " 'parents': ['http://phenome.inrae.fr/id/organization/m3p'],\n", - " 'children': [],\n", - " 'rdf_type': 'vocabulary:LocalOrganization',\n", - " 'rdf_type_name': 'local organization',\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'm3p:id/organization/phenodyn',\n", - " 'name': 'PHENODYN',\n", - " 'parents': ['http://phenome.inrae.fr/id/organization/m3p'],\n", - " 'children': [],\n", - " 'rdf_type': 'vocabulary:LocalOrganization',\n", - " 'rdf_type_name': 'local organization',\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'http://www.phenome-fppn.fr',\n", - " 'name': 'PHENOME-EMPHASIS',\n", - " 'parents': ['https://emphasis.plant-phenotyping.eu/'],\n", - " 'children': ['http://phenome.inrae.fr/id/organization/m3p'],\n", - " 'rdf_type': 'vocabulary:NationalOrganization',\n", - " 'rdf_type_name': 'national organization',\n", - " 'publication_date': None,\n", - " 'last_updated_date': '2024-02-02T15:42:52.481122+01:00'},\n", - " {'uri': 'http://phenome.inrae.fr/id/organization/m3p',\n", - " 'name': 'M3P',\n", - " 'parents': ['http://www.phenome-fppn.fr'],\n", - " 'children': ['m3p:id/organization/phenopsis',\n", - " 'm3p:id/organization/phenoarch',\n", - " 'm3p:id/organization/phenodyn'],\n", - " 'rdf_type': 'vocabulary:LocalOrganization',\n", - " 'rdf_type_name': 'local organization',\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'm3p:id/organization/phenopsis',\n", - " 'name': 'PHENOPSIS',\n", - " 'parents': ['http://phenome.inrae.fr/id/organization/m3p'],\n", - " 'children': [],\n", - " 'rdf_type': 'vocabulary:LocalOrganization',\n", - " 'rdf_type_name': 'local organization',\n", - " 'publication_date': None,\n", - " 'last_updated_date': None}]}" - ] - }, - "execution_count": 21, - "metadata": {}, - "output_type": "execute_result" + "name": "stdout", + "output_type": "stream", + "text": [ + "European organization organizations:\n", + "EMPHASIS\n", + "\n", + "Local organization organizations:\n", + "PHENOARCH\n", + "PHENODYN\n", + "M3P\n", + "PHENOPSIS\n", + "\n", + "National organization organizations:\n", + "PHENOME-EMPHASIS\n", + "\n" + ] } ], "source": [ - "phis.get_organization()" + "print(phis.get_organization())" ] }, { @@ -4119,7 +1063,7 @@ "id": "327938f2-8cbf-4da2-9805-439ce37782f6", "metadata": {}, "source": [ - "#### Get specific organization with URI" + "#### Get specific organization details" ] }, { @@ -4131,79 +1075,14 @@ { "data": { "text/plain": [ - "{'metadata': {'pagination': {'pageSize': 0,\n", - " 'currentPage': 0,\n", - " 'totalCount': 0,\n", - " 'totalPages': 0,\n", - " 'limitCount': 0,\n", - " 'hasNextPage': False},\n", - " 'status': [],\n", - " 'datafiles': []},\n", - " 'result': {'uri': 'm3p:id/organization/phenoarch',\n", - " 'rdf_type': 'vocabulary:LocalOrganization',\n", - " 'rdf_type_name': 'local organization',\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None,\n", - " 'name': 'PHENOARCH',\n", - " 'parents': [{'uri': 'http://phenome.inrae.fr/id/organization/m3p',\n", - " 'name': 'M3P',\n", - " 'rdf_type': 'vocabulary:LocalOrganization',\n", - " 'rdf_type_name': 'local organization',\n", - " 'publication_date': None,\n", - " 'last_updated_date': None}],\n", - " 'children': [],\n", - " 'groups': [],\n", - " 'facilities': [],\n", - " 'sites': [],\n", - " 'experiments': [{'uri': 'm3p:id/experiment/dyn2020-05-15',\n", - " 'name': 'G2WAS2020',\n", - " 'rdf_type': 'vocabulary:Experiment',\n", - " 'rdf_type_name': 'experiment',\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'm3p:id/experiment/za20',\n", - " 'name': 'ZA20',\n", - " 'rdf_type': 'vocabulary:Experiment',\n", - " 'rdf_type_name': 'experiment',\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'm3p:id/experiment/ta20',\n", - " 'name': 'TA20',\n", - " 'rdf_type': 'vocabulary:Experiment',\n", - " 'rdf_type_name': 'experiment',\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'm3p:id/experiment/za22',\n", - " 'name': 'ZA22',\n", - " 'rdf_type': 'vocabulary:Experiment',\n", - " 'rdf_type_name': 'experiment',\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'm3p:id/experiment/g2was2022',\n", - " 'name': 'G2WAS2022',\n", - " 'rdf_type': 'vocabulary:Experiment',\n", - " 'rdf_type_name': 'experiment',\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'm3p:id/experiment/archtest_rice2023',\n", - " 'name': 'ARCHTEST_RICE2023',\n", - " 'rdf_type': 'vocabulary:Experiment',\n", - " 'rdf_type_name': 'experiment',\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'm3p:id/experiment/za24',\n", - " 'name': 'ZA24',\n", - " 'rdf_type': 'vocabulary:Experiment',\n", - " 'rdf_type_name': 'experiment',\n", - " 'publication_date': '2024-01-19T15:52:29.026764+01:00',\n", - " 'last_updated_date': '2024-04-08T14:59:16.113409+02:00'},\n", - " {'uri': 'http://www.phenome-fppn.fr/m3p/ARCH2012-01-01',\n", - " 'name': 'ARCH2012-01-01',\n", - " 'rdf_type': 'vocabulary:Experiment',\n", - " 'rdf_type_name': 'experiment',\n", - " 'publication_date': '2024-02-19T16:14:49.51928+01:00',\n", - " 'last_updated_date': '2024-02-20T10:42:40.334917+01:00'}]}}" + "{'uri': 'm3p:id/organization/phenoarch',\n", + " 'name': 'PHENOARCH',\n", + " 'parents': ['http://phenome.inrae.fr/id/organization/m3p'],\n", + " 'children': [],\n", + " 'rdf_type': 'vocabulary:LocalOrganization',\n", + " 'rdf_type_name': 'local organization',\n", + " 'publication_date': None,\n", + " 'last_updated_date': None}" ] }, "execution_count": 22, @@ -4212,7 +1091,7 @@ } ], "source": [ - "phis.get_organization(uri='m3p:id/organization/phenoarch')" + "phis.get_organization(organization_name='PHENOARCH')" ] }, { @@ -4232,15 +1111,7 @@ { "data": { "text/plain": [ - "{'metadata': {'pagination': {'pageSize': 0,\n", - " 'currentPage': 0,\n", - " 'totalCount': 0,\n", - " 'totalPages': 0,\n", - " 'limitCount': 0,\n", - " 'hasNextPage': False},\n", - " 'status': [],\n", - " 'datafiles': []},\n", - " 'result': []}" + "[]" ] }, "execution_count": 23, @@ -4252,24 +1123,6 @@ "phis.get_site()" ] }, - { - "cell_type": "markdown", - "id": "723c8495-6fee-417a-9e6e-57fb1e67d10f", - "metadata": {}, - "source": [ - "#### Get specific site with URI" - ] - }, - { - "cell_type": "code", - "execution_count": 24, - "id": "3ecafefc-4d1f-414b-b53c-303d12d70025", - "metadata": {}, - "outputs": [], - "source": [ - "# No URIs" - ] - }, { "cell_type": "markdown", "id": "b8a0434f-9ad1-4a23-a59f-b35f42d6667a", @@ -4280,930 +1133,122 @@ }, { "cell_type": "code", - "execution_count": 25, + "execution_count": 24, "id": "4d7f5802-ca38-4134-a744-46d2e864ff70", "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "{'metadata': {'pagination': {'pageSize': 100,\n", - " 'currentPage': 0,\n", - " 'totalCount': 3661,\n", - " 'totalPages': 37,\n", - " 'limitCount': 0,\n", - " 'hasNextPage': True},\n", - " 'status': [],\n", - " 'datafiles': []},\n", - " 'result': [{'uri': 'm3p:id/scientific-object/za20/so-0001zm4531eppn7_lwd1eppn_rep_101_01arch2020-02-03',\n", - " 'name': '0001/ZM4531/EPPN7_L/WD1/EPPN_Rep_1/01_01/ARCH2020-02-03',\n", - " 'geometry': None,\n", - " 'rdf_type': 'vocabulary:Plant',\n", - " 'rdf_type_name': 'plant',\n", - " 'publication_date': None,\n", - " 'last_updated_date': None,\n", - " 'creation_date': None,\n", - " 'destruction_date': None},\n", - " {'uri': 'm3p:id/scientific-object/za20/so-0002zm4534eppn10_lwd1eppn_rep_101_02arch2020-02-03',\n", - " 'name': '0002/ZM4534/EPPN10_L/WD1/EPPN_Rep_1/01_02/ARCH2020-02-03',\n", - " 'geometry': None,\n", - " 'rdf_type': 'vocabulary:Plant',\n", - " 'rdf_type_name': 'plant',\n", - " 'publication_date': None,\n", - " 'last_updated_date': None,\n", - " 'creation_date': None,\n", - " 'destruction_date': None},\n", - " {'uri': 'm3p:id/scientific-object/za20/so-0002zm4534eppn10_lwd1eppn_rep_101_02arch2020-02-03-1',\n", - " 'name': '0002/ZM4534/EPPN10_L/WD1/EPPN_Rep_1/01_02/ARCH2020-02-03',\n", - " 'geometry': None,\n", - " 'rdf_type': 'vocabulary:Plant',\n", - " 'rdf_type_name': 'plant',\n", - " 'publication_date': None,\n", - " 'last_updated_date': None,\n", - " 'creation_date': None,\n", - " 'destruction_date': None},\n", - " {'uri': 'm3p:id/scientific-object/za20/so-0003zm4532eppn8_lwd1eppn_rep_101_03arch2020-02-03',\n", - " 'name': '0003/ZM4532/EPPN8_L/WD1/EPPN_Rep_1/01_03/ARCH2020-02-03',\n", - " 'geometry': None,\n", - " 'rdf_type': 'vocabulary:Plant',\n", - " 'rdf_type_name': 'plant',\n", - " 'publication_date': None,\n", - " 'last_updated_date': None,\n", - " 'creation_date': None,\n", - " 'destruction_date': None},\n", - " {'uri': 'm3p:id/scientific-object/za20/so-0003zm4532eppn8_lwd1eppn_rep_101_03arch2020-02-03-1',\n", - " 'name': '0003/ZM4532/EPPN8_L/WD1/EPPN_Rep_1/01_03/ARCH2020-02-03',\n", - " 'geometry': None,\n", - " 'rdf_type': 'vocabulary:Plant',\n", - " 'rdf_type_name': 'plant',\n", - " 'publication_date': None,\n", - " 'last_updated_date': None,\n", - " 'creation_date': None,\n", - " 'destruction_date': None},\n", - " {'uri': 'm3p:id/scientific-object/za20/so-0004zm4527eppn3_lwd1eppn_rep_101_04arch2020-02-03',\n", - " 'name': '0004/ZM4527/EPPN3_L/WD1/EPPN_Rep_1/01_04/ARCH2020-02-03',\n", - " 'geometry': None,\n", - " 'rdf_type': 'vocabulary:Plant',\n", - " 'rdf_type_name': 'plant',\n", - " 'publication_date': None,\n", - " 'last_updated_date': None,\n", - " 'creation_date': None,\n", - " 'destruction_date': None},\n", - " {'uri': 'm3p:id/scientific-object/za20/so-0004zm4527eppn3_lwd1eppn_rep_101_04arch2020-02-03-1',\n", - " 'name': '0004/ZM4527/EPPN3_L/WD1/EPPN_Rep_1/01_04/ARCH2020-02-03',\n", - " 'geometry': None,\n", - " 'rdf_type': 'vocabulary:Plant',\n", - " 'rdf_type_name': 'plant',\n", - " 'publication_date': None,\n", - " 'last_updated_date': None,\n", - " 'creation_date': None,\n", - " 'destruction_date': None},\n", - " {'uri': 'm3p:id/scientific-object/za20/so-0005zm4525eppn1_lwd1eppn_rep_101_05arch2020-02-03',\n", - " 'name': '0005/ZM4525/EPPN1_L/WD1/EPPN_Rep_1/01_05/ARCH2020-02-03',\n", - " 'geometry': None,\n", - " 'rdf_type': 'vocabulary:Plant',\n", - " 'rdf_type_name': 'plant',\n", - " 'publication_date': None,\n", - " 'last_updated_date': None,\n", - " 'creation_date': None,\n", - " 'destruction_date': None},\n", - " {'uri': 'm3p:id/scientific-object/za20/so-0005zm4525eppn1_lwd1eppn_rep_101_05arch2020-02-03-1',\n", - " 'name': '0005/ZM4525/EPPN1_L/WD1/EPPN_Rep_1/01_05/ARCH2020-02-03',\n", - " 'geometry': None,\n", - " 'rdf_type': 'vocabulary:Plant',\n", - " 'rdf_type_name': 'plant',\n", - " 'publication_date': None,\n", - " 'last_updated_date': None,\n", - " 'creation_date': None,\n", - " 'destruction_date': None},\n", - " {'uri': 'm3p:id/scientific-object/za20/so-0006zm4526eppn2_lwd1eppn_rep_101_06arch2020-02-03',\n", - " 'name': '0006/ZM4526/EPPN2_L/WD1/EPPN_Rep_1/01_06/ARCH2020-02-03',\n", - " 'geometry': None,\n", - " 'rdf_type': 'vocabulary:Plant',\n", - " 'rdf_type_name': 'plant',\n", - " 'publication_date': None,\n", - " 'last_updated_date': None,\n", - " 'creation_date': None,\n", - " 'destruction_date': None},\n", - " {'uri': 'm3p:id/scientific-object/za20/so-0006zm4526eppn2_lwd1eppn_rep_101_06arch2020-02-03-1',\n", - " 'name': '0006/ZM4526/EPPN2_L/WD1/EPPN_Rep_1/01_06/ARCH2020-02-03',\n", - " 'geometry': None,\n", - " 'rdf_type': 'vocabulary:Plant',\n", - " 'rdf_type_name': 'plant',\n", - " 'publication_date': None,\n", - " 'last_updated_date': None,\n", - " 'creation_date': None,\n", - " 'destruction_date': None},\n", - " {'uri': 'm3p:id/scientific-object/za20/so-0007zm4533eppn9_lwd1eppn_rep_101_07arch2020-02-03',\n", - " 'name': '0007/ZM4533/EPPN9_L/WD1/EPPN_Rep_1/01_07/ARCH2020-02-03',\n", - " 'geometry': None,\n", - " 'rdf_type': 'vocabulary:Plant',\n", - " 'rdf_type_name': 'plant',\n", - " 'publication_date': None,\n", - " 'last_updated_date': None,\n", - " 'creation_date': None,\n", - " 'destruction_date': None},\n", - " {'uri': 'm3p:id/scientific-object/za20/so-0007zm4533eppn9_lwd1eppn_rep_101_07arch2020-02-03-1',\n", - " 'name': '0007/ZM4533/EPPN9_L/WD1/EPPN_Rep_1/01_07/ARCH2020-02-03',\n", - " 'geometry': None,\n", - " 'rdf_type': 'vocabulary:Plant',\n", - " 'rdf_type_name': 'plant',\n", - " 'publication_date': None,\n", - " 'last_updated_date': None,\n", - " 'creation_date': None,\n", - " 'destruction_date': None},\n", - " {'uri': 'm3p:id/scientific-object/za20/so-0008zm4538eppn14_lwd1eppn_rep_101_08arch2020-02-03',\n", - " 'name': '0008/ZM4538/EPPN14_L/WD1/EPPN_Rep_1/01_08/ARCH2020-02-03',\n", - " 'geometry': None,\n", - " 'rdf_type': 'vocabulary:Plant',\n", - " 'rdf_type_name': 'plant',\n", - " 'publication_date': None,\n", - " 'last_updated_date': None,\n", - " 'creation_date': None,\n", - " 'destruction_date': None},\n", - " {'uri': 'm3p:id/scientific-object/za20/so-0008zm4538eppn14_lwd1eppn_rep_101_08arch2020-02-03-1',\n", - " 'name': '0008/ZM4538/EPPN14_L/WD1/EPPN_Rep_1/01_08/ARCH2020-02-03',\n", - " 'geometry': None,\n", - " 'rdf_type': 'vocabulary:Plant',\n", - " 'rdf_type_name': 'plant',\n", - " 'publication_date': None,\n", - " 'last_updated_date': None,\n", - " 'creation_date': None,\n", - " 'destruction_date': None},\n", - " {'uri': 'm3p:id/scientific-object/za20/so-0009zm4528eppn4_lwd1eppn_rep_101_09arch2020-02-03',\n", - " 'name': '0009/ZM4528/EPPN4_L/WD1/EPPN_Rep_1/01_09/ARCH2020-02-03',\n", - " 'geometry': None,\n", - " 'rdf_type': 'vocabulary:Plant',\n", - " 'rdf_type_name': 'plant',\n", - " 'publication_date': None,\n", - " 'last_updated_date': None,\n", - " 'creation_date': None,\n", - " 'destruction_date': None},\n", - " {'uri': 'm3p:id/scientific-object/za20/so-0009zm4528eppn4_lwd1eppn_rep_101_09arch2020-02-03-1',\n", - " 'name': '0009/ZM4528/EPPN4_L/WD1/EPPN_Rep_1/01_09/ARCH2020-02-03',\n", - " 'geometry': None,\n", - " 'rdf_type': 'vocabulary:Plant',\n", - " 'rdf_type_name': 'plant',\n", - " 'publication_date': None,\n", - " 'last_updated_date': None,\n", - " 'creation_date': None,\n", - " 'destruction_date': None},\n", - " {'uri': 'm3p:id/scientific-object/za20/so-0010zm4555eppn20_twd1eppn_rep_101_10arch2020-02-03',\n", - " 'name': '0010/ZM4555/EPPN20_T/WD1/EPPN_Rep_1/01_10/ARCH2020-02-03',\n", - " 'geometry': None,\n", - " 'rdf_type': 'vocabulary:Plant',\n", - " 'rdf_type_name': 'plant',\n", - " 'publication_date': None,\n", - " 'last_updated_date': None,\n", - " 'creation_date': None,\n", - " 'destruction_date': None},\n", - " {'uri': 'm3p:id/scientific-object/za20/so-0010zm4555eppn20_twd1eppn_rep_101_10arch2020-02-03-1',\n", - " 'name': '0010/ZM4555/EPPN20_T/WD1/EPPN_Rep_1/01_10/ARCH2020-02-03',\n", - " 'geometry': None,\n", - " 'rdf_type': 'vocabulary:Plant',\n", - " 'rdf_type_name': 'plant',\n", - " 'publication_date': None,\n", - " 'last_updated_date': None,\n", - " 'creation_date': None,\n", - " 'destruction_date': None},\n", - " {'uri': 'm3p:id/scientific-object/za20/so-0011zm4537eppn13_lwd1eppn_rep_101_11arch2020-02-03',\n", - " 'name': '0011/ZM4537/EPPN13_L/WD1/EPPN_Rep_1/01_11/ARCH2020-02-03',\n", - " 'geometry': None,\n", - " 'rdf_type': 'vocabulary:Plant',\n", - " 'rdf_type_name': 'plant',\n", - " 'publication_date': None,\n", - " 'last_updated_date': None,\n", - " 'creation_date': None,\n", - " 'destruction_date': None},\n", - " {'uri': 'm3p:id/scientific-object/za20/so-0011zm4537eppn13_lwd1eppn_rep_101_11arch2020-02-03-1',\n", - " 'name': '0011/ZM4537/EPPN13_L/WD1/EPPN_Rep_1/01_11/ARCH2020-02-03',\n", - " 'geometry': None,\n", - " 'rdf_type': 'vocabulary:Plant',\n", - " 'rdf_type_name': 'plant',\n", - " 'publication_date': None,\n", - " 'last_updated_date': None,\n", - " 'creation_date': None,\n", - " 'destruction_date': None},\n", - " {'uri': 'm3p:id/scientific-object/za20/so-0012zm4530eppn6_lwd1eppn_rep_101_12arch2020-02-03',\n", - " 'name': '0012/ZM4530/EPPN6_L/WD1/EPPN_Rep_1/01_12/ARCH2020-02-03',\n", - " 'geometry': None,\n", - " 'rdf_type': 'vocabulary:Plant',\n", - " 'rdf_type_name': 'plant',\n", - " 'publication_date': None,\n", - " 'last_updated_date': None,\n", - " 'creation_date': None,\n", - " 'destruction_date': None},\n", - " {'uri': 'm3p:id/scientific-object/za20/so-0012zm4530eppn6_lwd1eppn_rep_101_12arch2020-02-03-1',\n", - " 'name': '0012/ZM4530/EPPN6_L/WD1/EPPN_Rep_1/01_12/ARCH2020-02-03',\n", - " 'geometry': None,\n", - " 'rdf_type': 'vocabulary:Plant',\n", - " 'rdf_type_name': 'plant',\n", - " 'publication_date': None,\n", - " 'last_updated_date': None,\n", - " 'creation_date': None,\n", - " 'destruction_date': None},\n", - " {'uri': 'm3p:id/scientific-object/za20/so-0013zm4535eppn11_lwd1eppn_rep_101_13arch2020-02-03',\n", - " 'name': '0013/ZM4535/EPPN11_L/WD1/EPPN_Rep_1/01_13/ARCH2020-02-03',\n", - " 'geometry': None,\n", - " 'rdf_type': 'vocabulary:Plant',\n", - " 'rdf_type_name': 'plant',\n", - " 'publication_date': None,\n", - " 'last_updated_date': None,\n", - " 'creation_date': None,\n", - " 'destruction_date': None},\n", - " {'uri': 'm3p:id/scientific-object/za20/so-0013zm4535eppn11_lwd1eppn_rep_101_13arch2020-02-03-1',\n", - " 'name': '0013/ZM4535/EPPN11_L/WD1/EPPN_Rep_1/01_13/ARCH2020-02-03',\n", - " 'geometry': None,\n", - " 'rdf_type': 'vocabulary:Plant',\n", - " 'rdf_type_name': 'plant',\n", - " 'publication_date': None,\n", - " 'last_updated_date': None,\n", - " 'creation_date': None,\n", - " 'destruction_date': None},\n", - " {'uri': 'm3p:id/scientific-object/za20/so-0014zm4529eppn5_lwd1eppn_rep_101_14arch2020-02-03',\n", - " 'name': '0014/ZM4529/EPPN5_L/WD1/EPPN_Rep_1/01_14/ARCH2020-02-03',\n", - " 'geometry': None,\n", - " 'rdf_type': 'vocabulary:Plant',\n", - " 'rdf_type_name': 'plant',\n", - " 'publication_date': None,\n", - " 'last_updated_date': None,\n", - " 'creation_date': None,\n", - " 'destruction_date': None},\n", - " {'uri': 'm3p:id/scientific-object/za20/so-0014zm4529eppn5_lwd1eppn_rep_101_14arch2020-02-03-1',\n", - " 'name': '0014/ZM4529/EPPN5_L/WD1/EPPN_Rep_1/01_14/ARCH2020-02-03',\n", - " 'geometry': None,\n", - " 'rdf_type': 'vocabulary:Plant',\n", - " 'rdf_type_name': 'plant',\n", - " 'publication_date': None,\n", - " 'last_updated_date': None,\n", - " 'creation_date': None,\n", - " 'destruction_date': None},\n", - " {'uri': 'm3p:id/scientific-object/za20/so-0015zm4536eppn12_lwd1eppn_rep_101_15arch2020-02-03',\n", - " 'name': '0015/ZM4536/EPPN12_L/WD1/EPPN_Rep_1/01_15/ARCH2020-02-03',\n", - " 'geometry': None,\n", - " 'rdf_type': 'vocabulary:Plant',\n", - " 'rdf_type_name': 'plant',\n", - " 'publication_date': None,\n", - " 'last_updated_date': None,\n", - " 'creation_date': None,\n", - " 'destruction_date': None},\n", - " {'uri': 'm3p:id/scientific-object/za20/so-0015zm4536eppn12_lwd1eppn_rep_101_15arch2020-02-03-1',\n", - " 'name': '0015/ZM4536/EPPN12_L/WD1/EPPN_Rep_1/01_15/ARCH2020-02-03',\n", - " 'geometry': None,\n", - " 'rdf_type': 'vocabulary:Plant',\n", - " 'rdf_type_name': 'plant',\n", - " 'publication_date': None,\n", - " 'last_updated_date': None,\n", - " 'creation_date': None,\n", - " 'destruction_date': None},\n", - " {'uri': 'm3p:id/scientific-object/za20/so-0016zm4541eppn2_hwweppn_rep_201_16arch2020-02-03',\n", - " 'name': '0016/ZM4541/EPPN2_H/WW/EPPN_Rep_2/01_16/ARCH2020-02-03',\n", - " 'geometry': None,\n", - " 'rdf_type': 'vocabulary:Plant',\n", - " 'rdf_type_name': 'plant',\n", - " 'publication_date': None,\n", - " 'last_updated_date': None,\n", - " 'creation_date': None,\n", - " 'destruction_date': None},\n", - " {'uri': 'm3p:id/scientific-object/za20/so-0016zm4541eppn2_hwweppn_rep_201_16arch2020-02-03-1',\n", - " 'name': '0016/ZM4541/EPPN2_H/WW/EPPN_Rep_2/01_16/ARCH2020-02-03',\n", - " 'geometry': None,\n", - " 'rdf_type': 'vocabulary:Plant',\n", - " 'rdf_type_name': 'plant',\n", - " 'publication_date': None,\n", - " 'last_updated_date': None,\n", - " 'creation_date': None,\n", - " 'destruction_date': None},\n", - " {'uri': 'm3p:id/scientific-object/za20/so-0017zm4547eppn8_hwweppn_rep_201_17arch2020-02-03',\n", - " 'name': '0017/ZM4547/EPPN8_H/WW/EPPN_Rep_2/01_17/ARCH2020-02-03',\n", - " 'geometry': None,\n", - " 'rdf_type': 'vocabulary:Plant',\n", - " 'rdf_type_name': 'plant',\n", - " 'publication_date': None,\n", - " 'last_updated_date': None,\n", - " 'creation_date': None,\n", - " 'destruction_date': None},\n", - " {'uri': 'm3p:id/scientific-object/za20/so-0017zm4547eppn8_hwweppn_rep_201_17arch2020-02-03-1',\n", - " 'name': '0017/ZM4547/EPPN8_H/WW/EPPN_Rep_2/01_17/ARCH2020-02-03',\n", - " 'geometry': None,\n", - " 'rdf_type': 'vocabulary:Plant',\n", - " 'rdf_type_name': 'plant',\n", - " 'publication_date': None,\n", - " 'last_updated_date': None,\n", - " 'creation_date': None,\n", - " 'destruction_date': None},\n", - " {'uri': 'm3p:id/scientific-object/za20/so-0018zm4549eppn10_hwweppn_rep_201_18arch2020-02-03',\n", - " 'name': '0018/ZM4549/EPPN10_H/WW/EPPN_Rep_2/01_18/ARCH2020-02-03',\n", - " 'geometry': None,\n", - " 'rdf_type': 'vocabulary:Plant',\n", - " 'rdf_type_name': 'plant',\n", - " 'publication_date': None,\n", - " 'last_updated_date': None,\n", - " 'creation_date': None,\n", - " 'destruction_date': None},\n", - " {'uri': 'm3p:id/scientific-object/za20/so-0018zm4549eppn10_hwweppn_rep_201_18arch2020-02-03-1',\n", - " 'name': '0018/ZM4549/EPPN10_H/WW/EPPN_Rep_2/01_18/ARCH2020-02-03',\n", - " 'geometry': None,\n", - " 'rdf_type': 'vocabulary:Plant',\n", - " 'rdf_type_name': 'plant',\n", - " 'publication_date': None,\n", - " 'last_updated_date': None,\n", - " 'creation_date': None,\n", - " 'destruction_date': None},\n", - " {'uri': 'm3p:id/scientific-object/za20/so-0019zm4552eppn13_hwweppn_rep_201_19arch2020-02-03',\n", - " 'name': '0019/ZM4552/EPPN13_H/WW/EPPN_Rep_2/01_19/ARCH2020-02-03',\n", - " 'geometry': None,\n", - " 'rdf_type': 'vocabulary:Plant',\n", - " 'rdf_type_name': 'plant',\n", - " 'publication_date': None,\n", - " 'last_updated_date': None,\n", - " 'creation_date': None,\n", - " 'destruction_date': None},\n", - " {'uri': 'm3p:id/scientific-object/za20/so-0019zm4552eppn13_hwweppn_rep_201_19arch2020-02-03-1',\n", - " 'name': '0019/ZM4552/EPPN13_H/WW/EPPN_Rep_2/01_19/ARCH2020-02-03',\n", - " 'geometry': None,\n", - " 'rdf_type': 'vocabulary:Plant',\n", - " 'rdf_type_name': 'plant',\n", - " 'publication_date': None,\n", - " 'last_updated_date': None,\n", - " 'creation_date': None,\n", - " 'destruction_date': None},\n", - " {'uri': 'm3p:id/scientific-object/za20/so-0020zm4546eppn7_hwweppn_rep_201_20arch2020-02-03',\n", - " 'name': '0020/ZM4546/EPPN7_H/WW/EPPN_Rep_2/01_20/ARCH2020-02-03',\n", - " 'geometry': None,\n", - " 'rdf_type': 'vocabulary:Plant',\n", - " 'rdf_type_name': 'plant',\n", - " 'publication_date': None,\n", - " 'last_updated_date': None,\n", - " 'creation_date': None,\n", - " 'destruction_date': None},\n", - " {'uri': 'm3p:id/scientific-object/za20/so-0020zm4546eppn7_hwweppn_rep_201_20arch2020-02-03-1',\n", - " 'name': '0020/ZM4546/EPPN7_H/WW/EPPN_Rep_2/01_20/ARCH2020-02-03',\n", - " 'geometry': None,\n", - " 'rdf_type': 'vocabulary:Plant',\n", - " 'rdf_type_name': 'plant',\n", - " 'publication_date': None,\n", - " 'last_updated_date': None,\n", - " 'creation_date': None,\n", - " 'destruction_date': None},\n", - " {'uri': 'm3p:id/scientific-object/za20/so-0021zm4542eppn3_hwweppn_rep_201_21arch2020-02-03',\n", - " 'name': '0021/ZM4542/EPPN3_H/WW/EPPN_Rep_2/01_21/ARCH2020-02-03',\n", - " 'geometry': None,\n", - " 'rdf_type': 'vocabulary:Plant',\n", - " 'rdf_type_name': 'plant',\n", - " 'publication_date': None,\n", - " 'last_updated_date': None,\n", - " 'creation_date': None,\n", - " 'destruction_date': None},\n", - " {'uri': 'm3p:id/scientific-object/za20/so-0021zm4542eppn3_hwweppn_rep_201_21arch2020-02-03-1',\n", - " 'name': '0021/ZM4542/EPPN3_H/WW/EPPN_Rep_2/01_21/ARCH2020-02-03',\n", - " 'geometry': None,\n", - " 'rdf_type': 'vocabulary:Plant',\n", - " 'rdf_type_name': 'plant',\n", - " 'publication_date': None,\n", - " 'last_updated_date': None,\n", - " 'creation_date': None,\n", - " 'destruction_date': None},\n", - " {'uri': 'm3p:id/scientific-object/za20/so-0022zm4543eppn4_hwweppn_rep_201_22arch2020-02-03',\n", - " 'name': '0022/ZM4543/EPPN4_H/WW/EPPN_Rep_2/01_22/ARCH2020-02-03',\n", - " 'geometry': None,\n", - " 'rdf_type': 'vocabulary:Plant',\n", - " 'rdf_type_name': 'plant',\n", - " 'publication_date': None,\n", - " 'last_updated_date': None,\n", - " 'creation_date': None,\n", - " 'destruction_date': None},\n", - " {'uri': 'm3p:id/scientific-object/za20/so-0022zm4543eppn4_hwweppn_rep_201_22arch2020-02-03-1',\n", - " 'name': '0022/ZM4543/EPPN4_H/WW/EPPN_Rep_2/01_22/ARCH2020-02-03',\n", - " 'geometry': None,\n", - " 'rdf_type': 'vocabulary:Plant',\n", - " 'rdf_type_name': 'plant',\n", - " 'publication_date': None,\n", - " 'last_updated_date': None,\n", - " 'creation_date': None,\n", - " 'destruction_date': None},\n", - " {'uri': 'm3p:id/scientific-object/za20/so-0023zm4545eppn6_hwweppn_rep_201_23arch2020-02-03',\n", - " 'name': '0023/ZM4545/EPPN6_H/WW/EPPN_Rep_2/01_23/ARCH2020-02-03',\n", - " 'geometry': None,\n", - " 'rdf_type': 'vocabulary:Plant',\n", - " 'rdf_type_name': 'plant',\n", - " 'publication_date': None,\n", - " 'last_updated_date': None,\n", - " 'creation_date': None,\n", - " 'destruction_date': None},\n", - " {'uri': 'm3p:id/scientific-object/za20/so-0023zm4545eppn6_hwweppn_rep_201_23arch2020-02-03-1',\n", - " 'name': '0023/ZM4545/EPPN6_H/WW/EPPN_Rep_2/01_23/ARCH2020-02-03',\n", - " 'geometry': None,\n", - " 'rdf_type': 'vocabulary:Plant',\n", - " 'rdf_type_name': 'plant',\n", - " 'publication_date': None,\n", - " 'last_updated_date': None,\n", - " 'creation_date': None,\n", - " 'destruction_date': None},\n", - " {'uri': 'm3p:id/scientific-object/za20/so-0024zm4553eppn14_hwweppn_rep_201_24arch2020-02-03',\n", - " 'name': '0024/ZM4553/EPPN14_H/WW/EPPN_Rep_2/01_24/ARCH2020-02-03',\n", - " 'geometry': None,\n", - " 'rdf_type': 'vocabulary:Plant',\n", - " 'rdf_type_name': 'plant',\n", - " 'publication_date': None,\n", - " 'last_updated_date': None,\n", - " 'creation_date': None,\n", - " 'destruction_date': None},\n", - " {'uri': 'm3p:id/scientific-object/za20/so-0024zm4553eppn14_hwweppn_rep_201_24arch2020-02-03-1',\n", - " 'name': '0024/ZM4553/EPPN14_H/WW/EPPN_Rep_2/01_24/ARCH2020-02-03',\n", - " 'geometry': None,\n", - " 'rdf_type': 'vocabulary:Plant',\n", - " 'rdf_type_name': 'plant',\n", - " 'publication_date': None,\n", - " 'last_updated_date': None,\n", - " 'creation_date': None,\n", - " 'destruction_date': None},\n", - " {'uri': 'm3p:id/scientific-object/za20/so-0025zm4540eppn1_hwweppn_rep_201_25arch2020-02-03',\n", - " 'name': '0025/ZM4540/EPPN1_H/WW/EPPN_Rep_2/01_25/ARCH2020-02-03',\n", - " 'geometry': None,\n", - " 'rdf_type': 'vocabulary:Plant',\n", - " 'rdf_type_name': 'plant',\n", - " 'publication_date': None,\n", - " 'last_updated_date': None,\n", - " 'creation_date': None,\n", - " 'destruction_date': None},\n", - " {'uri': 'm3p:id/scientific-object/za20/so-0025zm4540eppn1_hwweppn_rep_201_25arch2020-02-03-1',\n", - " 'name': '0025/ZM4540/EPPN1_H/WW/EPPN_Rep_2/01_25/ARCH2020-02-03',\n", - " 'geometry': None,\n", - " 'rdf_type': 'vocabulary:Plant',\n", - " 'rdf_type_name': 'plant',\n", - " 'publication_date': None,\n", - " 'last_updated_date': None,\n", - " 'creation_date': None,\n", - " 'destruction_date': None},\n", - " {'uri': 'm3p:id/scientific-object/za20/so-0026zm4550eppn11_hwweppn_rep_201_26arch2020-02-03',\n", - " 'name': '0026/ZM4550/EPPN11_H/WW/EPPN_Rep_2/01_26/ARCH2020-02-03',\n", - " 'geometry': None,\n", - " 'rdf_type': 'vocabulary:Plant',\n", - " 'rdf_type_name': 'plant',\n", - " 'publication_date': None,\n", - " 'last_updated_date': None,\n", - " 'creation_date': None,\n", - " 'destruction_date': None},\n", - " {'uri': 'm3p:id/scientific-object/za20/so-0026zm4550eppn11_hwweppn_rep_201_26arch2020-02-03-1',\n", - " 'name': '0026/ZM4550/EPPN11_H/WW/EPPN_Rep_2/01_26/ARCH2020-02-03',\n", - " 'geometry': None,\n", - " 'rdf_type': 'vocabulary:Plant',\n", - " 'rdf_type_name': 'plant',\n", - " 'publication_date': None,\n", - " 'last_updated_date': None,\n", - " 'creation_date': None,\n", - " 'destruction_date': None},\n", - " {'uri': 'm3p:id/scientific-object/za20/so-0027zm4554eppn15_hwweppn_rep_201_27arch2020-02-03',\n", - " 'name': '0027/ZM4554/EPPN15_H/WW/EPPN_Rep_2/01_27/ARCH2020-02-03',\n", - " 'geometry': None,\n", - " 'rdf_type': 'vocabulary:Plant',\n", - " 'rdf_type_name': 'plant',\n", - " 'publication_date': None,\n", - " 'last_updated_date': None,\n", - " 'creation_date': None,\n", - " 'destruction_date': None},\n", - " {'uri': 'm3p:id/scientific-object/za20/so-0027zm4554eppn15_hwweppn_rep_201_27arch2020-02-03-1',\n", - " 'name': '0027/ZM4554/EPPN15_H/WW/EPPN_Rep_2/01_27/ARCH2020-02-03',\n", - " 'geometry': None,\n", - " 'rdf_type': 'vocabulary:Plant',\n", - " 'rdf_type_name': 'plant',\n", - " 'publication_date': None,\n", - " 'last_updated_date': None,\n", - " 'creation_date': None,\n", - " 'destruction_date': None},\n", - " {'uri': 'm3p:id/scientific-object/za20/so-0028zm4544eppn5_hwweppn_rep_201_28arch2020-02-03',\n", - " 'name': '0028/ZM4544/EPPN5_H/WW/EPPN_Rep_2/01_28/ARCH2020-02-03',\n", - " 'geometry': None,\n", - " 'rdf_type': 'vocabulary:Plant',\n", - " 'rdf_type_name': 'plant',\n", - " 'publication_date': None,\n", - " 'last_updated_date': None,\n", - " 'creation_date': None,\n", - " 'destruction_date': None},\n", - " {'uri': 'm3p:id/scientific-object/za20/so-0028zm4544eppn5_hwweppn_rep_201_28arch2020-02-03-1',\n", - " 'name': '0028/ZM4544/EPPN5_H/WW/EPPN_Rep_2/01_28/ARCH2020-02-03',\n", - " 'geometry': None,\n", - " 'rdf_type': 'vocabulary:Plant',\n", - " 'rdf_type_name': 'plant',\n", - " 'publication_date': None,\n", - " 'last_updated_date': None,\n", - " 'creation_date': None,\n", - " 'destruction_date': None},\n", - " {'uri': 'm3p:id/scientific-object/za20/so-0029zm4548eppn9_hwweppn_rep_201_29arch2020-02-03',\n", - " 'name': '0029/ZM4548/EPPN9_H/WW/EPPN_Rep_2/01_29/ARCH2020-02-03',\n", - " 'geometry': None,\n", - " 'rdf_type': 'vocabulary:Plant',\n", - " 'rdf_type_name': 'plant',\n", - " 'publication_date': None,\n", - " 'last_updated_date': None,\n", - " 'creation_date': None,\n", - " 'destruction_date': None},\n", - " {'uri': 'm3p:id/scientific-object/za20/so-0029zm4548eppn9_hwweppn_rep_201_29arch2020-02-03-1',\n", - " 'name': '0029/ZM4548/EPPN9_H/WW/EPPN_Rep_2/01_29/ARCH2020-02-03',\n", - " 'geometry': None,\n", - " 'rdf_type': 'vocabulary:Plant',\n", - " 'rdf_type_name': 'plant',\n", - " 'publication_date': None,\n", - " 'last_updated_date': None,\n", - " 'creation_date': None,\n", - " 'destruction_date': None},\n", - " {'uri': 'm3p:id/scientific-object/za20/so-0030zm4551eppn12_hwweppn_rep_201_30arch2020-02-03',\n", - " 'name': '0030/ZM4551/EPPN12_H/WW/EPPN_Rep_2/01_30/ARCH2020-02-03',\n", - " 'geometry': None,\n", - " 'rdf_type': 'vocabulary:Plant',\n", - " 'rdf_type_name': 'plant',\n", - " 'publication_date': None,\n", - " 'last_updated_date': None,\n", - " 'creation_date': None,\n", - " 'destruction_date': None},\n", - " {'uri': 'm3p:id/scientific-object/za20/so-0030zm4551eppn12_hwweppn_rep_201_30arch2020-02-03-1',\n", - " 'name': '0030/ZM4551/EPPN12_H/WW/EPPN_Rep_2/01_30/ARCH2020-02-03',\n", - " 'geometry': None,\n", - " 'rdf_type': 'vocabulary:Plant',\n", - " 'rdf_type_name': 'plant',\n", - " 'publication_date': None,\n", - " 'last_updated_date': None,\n", - " 'creation_date': None,\n", - " 'destruction_date': None},\n", - " {'uri': 'm3p:id/scientific-object/za20/so-0031zm4555eppn20_twd1eppn_rep_301_31arch2020-02-03',\n", - " 'name': '0031/ZM4555/EPPN20_T/WD1/EPPN_Rep_3/01_31/ARCH2020-02-03',\n", - " 'geometry': None,\n", - " 'rdf_type': 'vocabulary:Plant',\n", - " 'rdf_type_name': 'plant',\n", - " 'publication_date': None,\n", - " 'last_updated_date': None,\n", - " 'creation_date': None,\n", - " 'destruction_date': None},\n", - " {'uri': 'm3p:id/scientific-object/za20/so-0031zm4555eppn20_twd1eppn_rep_301_31arch2020-02-03-1',\n", - " 'name': '0031/ZM4555/EPPN20_T/WD1/EPPN_Rep_3/01_31/ARCH2020-02-03',\n", - " 'geometry': None,\n", - " 'rdf_type': 'vocabulary:Plant',\n", - " 'rdf_type_name': 'plant',\n", - " 'publication_date': None,\n", - " 'last_updated_date': None,\n", - " 'creation_date': None,\n", - " 'destruction_date': None},\n", - " {'uri': 'm3p:id/scientific-object/za20/so-0032zm4538eppn14_lwd1eppn_rep_301_32arch2020-02-03',\n", - " 'name': '0032/ZM4538/EPPN14_L/WD1/EPPN_Rep_3/01_32/ARCH2020-02-03',\n", - " 'geometry': None,\n", - " 'rdf_type': 'vocabulary:Plant',\n", - " 'rdf_type_name': 'plant',\n", - " 'publication_date': None,\n", - " 'last_updated_date': None,\n", - " 'creation_date': None,\n", - " 'destruction_date': None},\n", - " {'uri': 'm3p:id/scientific-object/za20/so-0032zm4538eppn14_lwd1eppn_rep_301_32arch2020-02-03-1',\n", - " 'name': '0032/ZM4538/EPPN14_L/WD1/EPPN_Rep_3/01_32/ARCH2020-02-03',\n", - " 'geometry': None,\n", - " 'rdf_type': 'vocabulary:Plant',\n", - " 'rdf_type_name': 'plant',\n", - " 'publication_date': None,\n", - " 'last_updated_date': None,\n", - " 'creation_date': None,\n", - " 'destruction_date': None},\n", - " {'uri': 'm3p:id/scientific-object/za20/so-0033zm4527eppn3_lwd1eppn_rep_301_33arch2020-02-03',\n", - " 'name': '0033/ZM4527/EPPN3_L/WD1/EPPN_Rep_3/01_33/ARCH2020-02-03',\n", - " 'geometry': None,\n", - " 'rdf_type': 'vocabulary:Plant',\n", - " 'rdf_type_name': 'plant',\n", - " 'publication_date': None,\n", - " 'last_updated_date': None,\n", - " 'creation_date': None,\n", - " 'destruction_date': None},\n", - " {'uri': 'm3p:id/scientific-object/za20/so-0033zm4527eppn3_lwd1eppn_rep_301_33arch2020-02-03-1',\n", - " 'name': '0033/ZM4527/EPPN3_L/WD1/EPPN_Rep_3/01_33/ARCH2020-02-03',\n", - " 'geometry': None,\n", - " 'rdf_type': 'vocabulary:Plant',\n", - " 'rdf_type_name': 'plant',\n", - " 'publication_date': None,\n", - " 'last_updated_date': None,\n", - " 'creation_date': None,\n", - " 'destruction_date': None},\n", - " {'uri': 'm3p:id/scientific-object/za20/so-0034zm4533eppn9_lwd1eppn_rep_301_34arch2020-02-03',\n", - " 'name': '0034/ZM4533/EPPN9_L/WD1/EPPN_Rep_3/01_34/ARCH2020-02-03',\n", - " 'geometry': None,\n", - " 'rdf_type': 'vocabulary:Plant',\n", - " 'rdf_type_name': 'plant',\n", - " 'publication_date': None,\n", - " 'last_updated_date': None,\n", - " 'creation_date': None,\n", - " 'destruction_date': None},\n", - " {'uri': 'm3p:id/scientific-object/za20/so-0034zm4533eppn9_lwd1eppn_rep_301_34arch2020-02-03-1',\n", - " 'name': '0034/ZM4533/EPPN9_L/WD1/EPPN_Rep_3/01_34/ARCH2020-02-03',\n", - " 'geometry': None,\n", - " 'rdf_type': 'vocabulary:Plant',\n", - " 'rdf_type_name': 'plant',\n", - " 'publication_date': None,\n", - " 'last_updated_date': None,\n", - " 'creation_date': None,\n", - " 'destruction_date': None},\n", - " {'uri': 'm3p:id/scientific-object/za20/so-0035zm4529eppn5_lwd1eppn_rep_301_35arch2020-02-03',\n", - " 'name': '0035/ZM4529/EPPN5_L/WD1/EPPN_Rep_3/01_35/ARCH2020-02-03',\n", - " 'geometry': None,\n", - " 'rdf_type': 'vocabulary:Plant',\n", - " 'rdf_type_name': 'plant',\n", - " 'publication_date': None,\n", - " 'last_updated_date': None,\n", - " 'creation_date': None,\n", - " 'destruction_date': None},\n", - " {'uri': 'm3p:id/scientific-object/za20/so-0035zm4529eppn5_lwd1eppn_rep_301_35arch2020-02-03-1',\n", - " 'name': '0035/ZM4529/EPPN5_L/WD1/EPPN_Rep_3/01_35/ARCH2020-02-03',\n", - " 'geometry': None,\n", - " 'rdf_type': 'vocabulary:Plant',\n", - " 'rdf_type_name': 'plant',\n", - " 'publication_date': None,\n", - " 'last_updated_date': None,\n", - " 'creation_date': None,\n", - " 'destruction_date': None},\n", - " {'uri': 'm3p:id/scientific-object/za20/so-0036zm4537eppn13_lwd1eppn_rep_301_36arch2020-02-03',\n", - " 'name': '0036/ZM4537/EPPN13_L/WD1/EPPN_Rep_3/01_36/ARCH2020-02-03',\n", - " 'geometry': None,\n", - " 'rdf_type': 'vocabulary:Plant',\n", - " 'rdf_type_name': 'plant',\n", - " 'publication_date': None,\n", - " 'last_updated_date': None,\n", - " 'creation_date': None,\n", - " 'destruction_date': None},\n", - " {'uri': 'm3p:id/scientific-object/za20/so-0036zm4537eppn13_lwd1eppn_rep_301_36arch2020-02-03-1',\n", - " 'name': '0036/ZM4537/EPPN13_L/WD1/EPPN_Rep_3/01_36/ARCH2020-02-03',\n", - " 'geometry': None,\n", - " 'rdf_type': 'vocabulary:Plant',\n", - " 'rdf_type_name': 'plant',\n", - " 'publication_date': None,\n", - " 'last_updated_date': None,\n", - " 'creation_date': None,\n", - " 'destruction_date': None},\n", - " {'uri': 'm3p:id/scientific-object/za20/so-0037zm4525eppn1_lwd1eppn_rep_301_37arch2020-02-03',\n", - " 'name': '0037/ZM4525/EPPN1_L/WD1/EPPN_Rep_3/01_37/ARCH2020-02-03',\n", - " 'geometry': None,\n", - " 'rdf_type': 'vocabulary:Plant',\n", - " 'rdf_type_name': 'plant',\n", - " 'publication_date': None,\n", - " 'last_updated_date': None,\n", - " 'creation_date': None,\n", - " 'destruction_date': None},\n", - " {'uri': 'm3p:id/scientific-object/za20/so-0037zm4525eppn1_lwd1eppn_rep_301_37arch2020-02-03-1',\n", - " 'name': '0037/ZM4525/EPPN1_L/WD1/EPPN_Rep_3/01_37/ARCH2020-02-03',\n", - " 'geometry': None,\n", - " 'rdf_type': 'vocabulary:Plant',\n", - " 'rdf_type_name': 'plant',\n", - " 'publication_date': None,\n", - " 'last_updated_date': None,\n", - " 'creation_date': None,\n", - " 'destruction_date': None},\n", - " {'uri': 'm3p:id/scientific-object/za20/so-0038zm4531eppn7_lwd1eppn_rep_301_38arch2020-02-03',\n", - " 'name': '0038/ZM4531/EPPN7_L/WD1/EPPN_Rep_3/01_38/ARCH2020-02-03',\n", - " 'geometry': None,\n", - " 'rdf_type': 'vocabulary:Plant',\n", - " 'rdf_type_name': 'plant',\n", - " 'publication_date': None,\n", - " 'last_updated_date': None,\n", - " 'creation_date': None,\n", - " 'destruction_date': None},\n", - " {'uri': 'm3p:id/scientific-object/za20/so-0038zm4531eppn7_lwd1eppn_rep_301_38arch2020-02-03-1',\n", - " 'name': '0038/ZM4531/EPPN7_L/WD1/EPPN_Rep_3/01_38/ARCH2020-02-03',\n", - " 'geometry': None,\n", - " 'rdf_type': 'vocabulary:Plant',\n", - " 'rdf_type_name': 'plant',\n", - " 'publication_date': None,\n", - " 'last_updated_date': None,\n", - " 'creation_date': None,\n", - " 'destruction_date': None},\n", - " {'uri': 'm3p:id/scientific-object/za20/so-0039zm4536eppn12_lwd1eppn_rep_301_39arch2020-02-03',\n", - " 'name': '0039/ZM4536/EPPN12_L/WD1/EPPN_Rep_3/01_39/ARCH2020-02-03',\n", - " 'geometry': None,\n", - " 'rdf_type': 'vocabulary:Plant',\n", - " 'rdf_type_name': 'plant',\n", - " 'publication_date': None,\n", - " 'last_updated_date': None,\n", - " 'creation_date': None,\n", - " 'destruction_date': None},\n", - " {'uri': 'm3p:id/scientific-object/za20/so-0039zm4536eppn12_lwd1eppn_rep_301_39arch2020-02-03-1',\n", - " 'name': '0039/ZM4536/EPPN12_L/WD1/EPPN_Rep_3/01_39/ARCH2020-02-03',\n", - " 'geometry': None,\n", - " 'rdf_type': 'vocabulary:Plant',\n", - " 'rdf_type_name': 'plant',\n", - " 'publication_date': None,\n", - " 'last_updated_date': None,\n", - " 'creation_date': None,\n", - " 'destruction_date': None},\n", - " {'uri': 'm3p:id/scientific-object/za20/so-0040zm4535eppn11_lwd1eppn_rep_301_40arch2020-02-03',\n", - " 'name': '0040/ZM4535/EPPN11_L/WD1/EPPN_Rep_3/01_40/ARCH2020-02-03',\n", - " 'geometry': None,\n", - " 'rdf_type': 'vocabulary:Plant',\n", - " 'rdf_type_name': 'plant',\n", - " 'publication_date': None,\n", - " 'last_updated_date': None,\n", - " 'creation_date': None,\n", - " 'destruction_date': None},\n", - " {'uri': 'm3p:id/scientific-object/za20/so-0040zm4535eppn11_lwd1eppn_rep_301_40arch2020-02-03-1',\n", - " 'name': '0040/ZM4535/EPPN11_L/WD1/EPPN_Rep_3/01_40/ARCH2020-02-03',\n", - " 'geometry': None,\n", - " 'rdf_type': 'vocabulary:Plant',\n", - " 'rdf_type_name': 'plant',\n", - " 'publication_date': None,\n", - " 'last_updated_date': None,\n", - " 'creation_date': None,\n", - " 'destruction_date': None},\n", - " {'uri': 'm3p:id/scientific-object/za20/so-0041zm4534eppn10_lwd1eppn_rep_301_41arch2020-02-03',\n", - " 'name': '0041/ZM4534/EPPN10_L/WD1/EPPN_Rep_3/01_41/ARCH2020-02-03',\n", - " 'geometry': None,\n", - " 'rdf_type': 'vocabulary:Plant',\n", - " 'rdf_type_name': 'plant',\n", - " 'publication_date': None,\n", - " 'last_updated_date': None,\n", - " 'creation_date': None,\n", - " 'destruction_date': None},\n", - " {'uri': 'm3p:id/scientific-object/za20/so-0041zm4534eppn10_lwd1eppn_rep_301_41arch2020-02-03-1',\n", - " 'name': '0041/ZM4534/EPPN10_L/WD1/EPPN_Rep_3/01_41/ARCH2020-02-03',\n", - " 'geometry': None,\n", - " 'rdf_type': 'vocabulary:Plant',\n", - " 'rdf_type_name': 'plant',\n", - " 'publication_date': None,\n", - " 'last_updated_date': None,\n", - " 'creation_date': None,\n", - " 'destruction_date': None},\n", - " {'uri': 'm3p:id/scientific-object/za20/so-0042zm4526eppn2_lwd1eppn_rep_301_42arch2020-02-03',\n", - " 'name': '0042/ZM4526/EPPN2_L/WD1/EPPN_Rep_3/01_42/ARCH2020-02-03',\n", - " 'geometry': None,\n", - " 'rdf_type': 'vocabulary:Plant',\n", - " 'rdf_type_name': 'plant',\n", - " 'publication_date': None,\n", - " 'last_updated_date': None,\n", - " 'creation_date': None,\n", - " 'destruction_date': None},\n", - " {'uri': 'm3p:id/scientific-object/za20/so-0042zm4526eppn2_lwd1eppn_rep_301_42arch2020-02-03-1',\n", - " 'name': '0042/ZM4526/EPPN2_L/WD1/EPPN_Rep_3/01_42/ARCH2020-02-03',\n", - " 'geometry': None,\n", - " 'rdf_type': 'vocabulary:Plant',\n", - " 'rdf_type_name': 'plant',\n", - " 'publication_date': None,\n", - " 'last_updated_date': None,\n", - " 'creation_date': None,\n", - " 'destruction_date': None},\n", - " {'uri': 'm3p:id/scientific-object/za20/so-0043zm4528eppn4_lwd1eppn_rep_301_43arch2020-02-03',\n", - " 'name': '0043/ZM4528/EPPN4_L/WD1/EPPN_Rep_3/01_43/ARCH2020-02-03',\n", - " 'geometry': None,\n", - " 'rdf_type': 'vocabulary:Plant',\n", - " 'rdf_type_name': 'plant',\n", - " 'publication_date': None,\n", - " 'last_updated_date': None,\n", - " 'creation_date': None,\n", - " 'destruction_date': None},\n", - " {'uri': 'm3p:id/scientific-object/za20/so-0043zm4528eppn4_lwd1eppn_rep_301_43arch2020-02-03-1',\n", - " 'name': '0043/ZM4528/EPPN4_L/WD1/EPPN_Rep_3/01_43/ARCH2020-02-03',\n", - " 'geometry': None,\n", - " 'rdf_type': 'vocabulary:Plant',\n", - " 'rdf_type_name': 'plant',\n", - " 'publication_date': None,\n", - " 'last_updated_date': None,\n", - " 'creation_date': None,\n", - " 'destruction_date': None},\n", - " {'uri': 'm3p:id/scientific-object/za20/so-0044zm4532eppn8_lwd1eppn_rep_301_44arch2020-02-03',\n", - " 'name': '0044/ZM4532/EPPN8_L/WD1/EPPN_Rep_3/01_44/ARCH2020-02-03',\n", - " 'geometry': None,\n", - " 'rdf_type': 'vocabulary:Plant',\n", - " 'rdf_type_name': 'plant',\n", - " 'publication_date': None,\n", - " 'last_updated_date': None,\n", - " 'creation_date': None,\n", - " 'destruction_date': None},\n", - " {'uri': 'm3p:id/scientific-object/za20/so-0044zm4532eppn8_lwd1eppn_rep_301_44arch2020-02-03-1',\n", - " 'name': '0044/ZM4532/EPPN8_L/WD1/EPPN_Rep_3/01_44/ARCH2020-02-03',\n", - " 'geometry': None,\n", - " 'rdf_type': 'vocabulary:Plant',\n", - " 'rdf_type_name': 'plant',\n", - " 'publication_date': None,\n", - " 'last_updated_date': None,\n", - " 'creation_date': None,\n", - " 'destruction_date': None},\n", - " {'uri': 'm3p:id/scientific-object/za20/so-0045zm4530eppn6_lwd1eppn_rep_301_45arch2020-02-03',\n", - " 'name': '0045/ZM4530/EPPN6_L/WD1/EPPN_Rep_3/01_45/ARCH2020-02-03',\n", - " 'geometry': None,\n", - " 'rdf_type': 'vocabulary:Plant',\n", - " 'rdf_type_name': 'plant',\n", - " 'publication_date': None,\n", - " 'last_updated_date': None,\n", - " 'creation_date': None,\n", - " 'destruction_date': None},\n", - " {'uri': 'm3p:id/scientific-object/za20/so-0045zm4530eppn6_lwd1eppn_rep_301_45arch2020-02-03-1',\n", - " 'name': '0045/ZM4530/EPPN6_L/WD1/EPPN_Rep_3/01_45/ARCH2020-02-03',\n", - " 'geometry': None,\n", - " 'rdf_type': 'vocabulary:Plant',\n", - " 'rdf_type_name': 'plant',\n", - " 'publication_date': None,\n", - " 'last_updated_date': None,\n", - " 'creation_date': None,\n", - " 'destruction_date': None},\n", - " {'uri': 'm3p:id/scientific-object/za20/so-0046zm4554eppn15_hwweppn_rep_401_46arch2020-02-03',\n", - " 'name': '0046/ZM4554/EPPN15_H/WW/EPPN_Rep_4/01_46/ARCH2020-02-03',\n", - " 'geometry': None,\n", - " 'rdf_type': 'vocabulary:Plant',\n", - " 'rdf_type_name': 'plant',\n", - " 'publication_date': None,\n", - " 'last_updated_date': None,\n", - " 'creation_date': None,\n", - " 'destruction_date': None},\n", - " {'uri': 'm3p:id/scientific-object/za20/so-0046zm4554eppn15_hwweppn_rep_401_46arch2020-02-03-1',\n", - " 'name': '0046/ZM4554/EPPN15_H/WW/EPPN_Rep_4/01_46/ARCH2020-02-03',\n", - " 'geometry': None,\n", - " 'rdf_type': 'vocabulary:Plant',\n", - " 'rdf_type_name': 'plant',\n", - " 'publication_date': None,\n", - " 'last_updated_date': None,\n", - " 'creation_date': None,\n", - " 'destruction_date': None},\n", - " {'uri': 'm3p:id/scientific-object/za20/so-0047zm4545eppn6_hwweppn_rep_401_47arch2020-02-03',\n", - " 'name': '0047/ZM4545/EPPN6_H/WW/EPPN_Rep_4/01_47/ARCH2020-02-03',\n", - " 'geometry': None,\n", - " 'rdf_type': 'vocabulary:Plant',\n", - " 'rdf_type_name': 'plant',\n", - " 'publication_date': None,\n", - " 'last_updated_date': None,\n", - " 'creation_date': None,\n", - " 'destruction_date': None},\n", - " {'uri': 'm3p:id/scientific-object/za20/so-0047zm4545eppn6_hwweppn_rep_401_47arch2020-02-03-1',\n", - " 'name': '0047/ZM4545/EPPN6_H/WW/EPPN_Rep_4/01_47/ARCH2020-02-03',\n", - " 'geometry': None,\n", - " 'rdf_type': 'vocabulary:Plant',\n", - " 'rdf_type_name': 'plant',\n", - " 'publication_date': None,\n", - " 'last_updated_date': None,\n", - " 'creation_date': None,\n", - " 'destruction_date': None},\n", - " {'uri': 'm3p:id/scientific-object/za20/so-0048zm4547eppn8_hwweppn_rep_401_48arch2020-02-03',\n", - " 'name': '0048/ZM4547/EPPN8_H/WW/EPPN_Rep_4/01_48/ARCH2020-02-03',\n", - " 'geometry': None,\n", - " 'rdf_type': 'vocabulary:Plant',\n", - " 'rdf_type_name': 'plant',\n", - " 'publication_date': None,\n", - " 'last_updated_date': None,\n", - " 'creation_date': None,\n", - " 'destruction_date': None},\n", - " {'uri': 'm3p:id/scientific-object/za20/so-0048zm4547eppn8_hwweppn_rep_401_48arch2020-02-03-1',\n", - " 'name': '0048/ZM4547/EPPN8_H/WW/EPPN_Rep_4/01_48/ARCH2020-02-03',\n", - " 'geometry': None,\n", - " 'rdf_type': 'vocabulary:Plant',\n", - " 'rdf_type_name': 'plant',\n", - " 'publication_date': None,\n", - " 'last_updated_date': None,\n", - " 'creation_date': None,\n", - " 'destruction_date': None},\n", - " {'uri': 'm3p:id/scientific-object/za20/so-0049zm4551eppn12_hwweppn_rep_401_49arch2020-02-03',\n", - " 'name': '0049/ZM4551/EPPN12_H/WW/EPPN_Rep_4/01_49/ARCH2020-02-03',\n", - " 'geometry': None,\n", - " 'rdf_type': 'vocabulary:Plant',\n", - " 'rdf_type_name': 'plant',\n", - " 'publication_date': None,\n", - " 'last_updated_date': None,\n", - " 'creation_date': None,\n", - " 'destruction_date': None},\n", - " {'uri': 'm3p:id/scientific-object/za20/so-0049zm4551eppn12_hwweppn_rep_401_49arch2020-02-03-1',\n", - " 'name': '0049/ZM4551/EPPN12_H/WW/EPPN_Rep_4/01_49/ARCH2020-02-03',\n", - " 'geometry': None,\n", - " 'rdf_type': 'vocabulary:Plant',\n", - " 'rdf_type_name': 'plant',\n", - " 'publication_date': None,\n", - " 'last_updated_date': None,\n", - " 'creation_date': None,\n", - " 'destruction_date': None},\n", - " {'uri': 'm3p:id/scientific-object/za20/so-0050zm4546eppn7_hwweppn_rep_401_50arch2020-02-03',\n", - " 'name': '0050/ZM4546/EPPN7_H/WW/EPPN_Rep_4/01_50/ARCH2020-02-03',\n", - " 'geometry': None,\n", - " 'rdf_type': 'vocabulary:Plant',\n", - " 'rdf_type_name': 'plant',\n", - " 'publication_date': None,\n", - " 'last_updated_date': None,\n", - " 'creation_date': None,\n", - " 'destruction_date': None},\n", - " {'uri': 'm3p:id/scientific-object/za20/so-0050zm4546eppn7_hwweppn_rep_401_50arch2020-02-03-1',\n", - " 'name': '0050/ZM4546/EPPN7_H/WW/EPPN_Rep_4/01_50/ARCH2020-02-03',\n", - " 'geometry': None,\n", - " 'rdf_type': 'vocabulary:Plant',\n", - " 'rdf_type_name': 'plant',\n", - " 'publication_date': None,\n", - " 'last_updated_date': None,\n", - " 'creation_date': None,\n", - " 'destruction_date': None},\n", - " {'uri': 'm3p:id/scientific-object/za20/so-0051zm4540eppn1_hwweppn_rep_401_51arch2020-02-03',\n", - " 'name': '0051/ZM4540/EPPN1_H/WW/EPPN_Rep_4/01_51/ARCH2020-02-03',\n", - " 'geometry': None,\n", - " 'rdf_type': 'vocabulary:Plant',\n", - " 'rdf_type_name': 'plant',\n", - " 'publication_date': None,\n", - " 'last_updated_date': None,\n", - " 'creation_date': None,\n", - " 'destruction_date': None}]}" + "['0001/ZM4531/EPPN7_L/WD1/EPPN_Rep_1/01_01/ARCH2020-02-03',\n", + " '0002/ZM4534/EPPN10_L/WD1/EPPN_Rep_1/01_02/ARCH2020-02-03',\n", + " '0002/ZM4534/EPPN10_L/WD1/EPPN_Rep_1/01_02/ARCH2020-02-03',\n", + " '0003/ZM4532/EPPN8_L/WD1/EPPN_Rep_1/01_03/ARCH2020-02-03',\n", + " '0003/ZM4532/EPPN8_L/WD1/EPPN_Rep_1/01_03/ARCH2020-02-03',\n", + " '0004/ZM4527/EPPN3_L/WD1/EPPN_Rep_1/01_04/ARCH2020-02-03',\n", + " '0004/ZM4527/EPPN3_L/WD1/EPPN_Rep_1/01_04/ARCH2020-02-03',\n", + " '0005/ZM4525/EPPN1_L/WD1/EPPN_Rep_1/01_05/ARCH2020-02-03',\n", + " '0005/ZM4525/EPPN1_L/WD1/EPPN_Rep_1/01_05/ARCH2020-02-03',\n", + " '0006/ZM4526/EPPN2_L/WD1/EPPN_Rep_1/01_06/ARCH2020-02-03',\n", + " '0006/ZM4526/EPPN2_L/WD1/EPPN_Rep_1/01_06/ARCH2020-02-03',\n", + " '0007/ZM4533/EPPN9_L/WD1/EPPN_Rep_1/01_07/ARCH2020-02-03',\n", + " '0007/ZM4533/EPPN9_L/WD1/EPPN_Rep_1/01_07/ARCH2020-02-03',\n", + " '0008/ZM4538/EPPN14_L/WD1/EPPN_Rep_1/01_08/ARCH2020-02-03',\n", + " '0008/ZM4538/EPPN14_L/WD1/EPPN_Rep_1/01_08/ARCH2020-02-03',\n", + " '0009/ZM4528/EPPN4_L/WD1/EPPN_Rep_1/01_09/ARCH2020-02-03',\n", + " '0009/ZM4528/EPPN4_L/WD1/EPPN_Rep_1/01_09/ARCH2020-02-03',\n", + " '0010/ZM4555/EPPN20_T/WD1/EPPN_Rep_1/01_10/ARCH2020-02-03',\n", + " '0010/ZM4555/EPPN20_T/WD1/EPPN_Rep_1/01_10/ARCH2020-02-03',\n", + " '0011/ZM4537/EPPN13_L/WD1/EPPN_Rep_1/01_11/ARCH2020-02-03',\n", + " '0011/ZM4537/EPPN13_L/WD1/EPPN_Rep_1/01_11/ARCH2020-02-03',\n", + " '0012/ZM4530/EPPN6_L/WD1/EPPN_Rep_1/01_12/ARCH2020-02-03',\n", + " '0012/ZM4530/EPPN6_L/WD1/EPPN_Rep_1/01_12/ARCH2020-02-03',\n", + " '0013/ZM4535/EPPN11_L/WD1/EPPN_Rep_1/01_13/ARCH2020-02-03',\n", + " '0013/ZM4535/EPPN11_L/WD1/EPPN_Rep_1/01_13/ARCH2020-02-03',\n", + " '0014/ZM4529/EPPN5_L/WD1/EPPN_Rep_1/01_14/ARCH2020-02-03',\n", + " '0014/ZM4529/EPPN5_L/WD1/EPPN_Rep_1/01_14/ARCH2020-02-03',\n", + " '0015/ZM4536/EPPN12_L/WD1/EPPN_Rep_1/01_15/ARCH2020-02-03',\n", + " '0015/ZM4536/EPPN12_L/WD1/EPPN_Rep_1/01_15/ARCH2020-02-03',\n", + " '0016/ZM4541/EPPN2_H/WW/EPPN_Rep_2/01_16/ARCH2020-02-03',\n", + " '0016/ZM4541/EPPN2_H/WW/EPPN_Rep_2/01_16/ARCH2020-02-03',\n", + " '0017/ZM4547/EPPN8_H/WW/EPPN_Rep_2/01_17/ARCH2020-02-03',\n", + " '0017/ZM4547/EPPN8_H/WW/EPPN_Rep_2/01_17/ARCH2020-02-03',\n", + " '0018/ZM4549/EPPN10_H/WW/EPPN_Rep_2/01_18/ARCH2020-02-03',\n", + " '0018/ZM4549/EPPN10_H/WW/EPPN_Rep_2/01_18/ARCH2020-02-03',\n", + " '0019/ZM4552/EPPN13_H/WW/EPPN_Rep_2/01_19/ARCH2020-02-03',\n", + " '0019/ZM4552/EPPN13_H/WW/EPPN_Rep_2/01_19/ARCH2020-02-03',\n", + " '0020/ZM4546/EPPN7_H/WW/EPPN_Rep_2/01_20/ARCH2020-02-03',\n", + " '0020/ZM4546/EPPN7_H/WW/EPPN_Rep_2/01_20/ARCH2020-02-03',\n", + " '0021/ZM4542/EPPN3_H/WW/EPPN_Rep_2/01_21/ARCH2020-02-03',\n", + " '0021/ZM4542/EPPN3_H/WW/EPPN_Rep_2/01_21/ARCH2020-02-03',\n", + " '0022/ZM4543/EPPN4_H/WW/EPPN_Rep_2/01_22/ARCH2020-02-03',\n", + " '0022/ZM4543/EPPN4_H/WW/EPPN_Rep_2/01_22/ARCH2020-02-03',\n", + " '0023/ZM4545/EPPN6_H/WW/EPPN_Rep_2/01_23/ARCH2020-02-03',\n", + " '0023/ZM4545/EPPN6_H/WW/EPPN_Rep_2/01_23/ARCH2020-02-03',\n", + " '0024/ZM4553/EPPN14_H/WW/EPPN_Rep_2/01_24/ARCH2020-02-03',\n", + " '0024/ZM4553/EPPN14_H/WW/EPPN_Rep_2/01_24/ARCH2020-02-03',\n", + " '0025/ZM4540/EPPN1_H/WW/EPPN_Rep_2/01_25/ARCH2020-02-03',\n", + " '0025/ZM4540/EPPN1_H/WW/EPPN_Rep_2/01_25/ARCH2020-02-03',\n", + " '0026/ZM4550/EPPN11_H/WW/EPPN_Rep_2/01_26/ARCH2020-02-03',\n", + " '0026/ZM4550/EPPN11_H/WW/EPPN_Rep_2/01_26/ARCH2020-02-03',\n", + " '0027/ZM4554/EPPN15_H/WW/EPPN_Rep_2/01_27/ARCH2020-02-03',\n", + " '0027/ZM4554/EPPN15_H/WW/EPPN_Rep_2/01_27/ARCH2020-02-03',\n", + " '0028/ZM4544/EPPN5_H/WW/EPPN_Rep_2/01_28/ARCH2020-02-03',\n", + " '0028/ZM4544/EPPN5_H/WW/EPPN_Rep_2/01_28/ARCH2020-02-03',\n", + " '0029/ZM4548/EPPN9_H/WW/EPPN_Rep_2/01_29/ARCH2020-02-03',\n", + " '0029/ZM4548/EPPN9_H/WW/EPPN_Rep_2/01_29/ARCH2020-02-03',\n", + " '0030/ZM4551/EPPN12_H/WW/EPPN_Rep_2/01_30/ARCH2020-02-03',\n", + " '0030/ZM4551/EPPN12_H/WW/EPPN_Rep_2/01_30/ARCH2020-02-03',\n", + " '0031/ZM4555/EPPN20_T/WD1/EPPN_Rep_3/01_31/ARCH2020-02-03',\n", + " '0031/ZM4555/EPPN20_T/WD1/EPPN_Rep_3/01_31/ARCH2020-02-03',\n", + " '0032/ZM4538/EPPN14_L/WD1/EPPN_Rep_3/01_32/ARCH2020-02-03',\n", + " '0032/ZM4538/EPPN14_L/WD1/EPPN_Rep_3/01_32/ARCH2020-02-03',\n", + " '0033/ZM4527/EPPN3_L/WD1/EPPN_Rep_3/01_33/ARCH2020-02-03',\n", + " '0033/ZM4527/EPPN3_L/WD1/EPPN_Rep_3/01_33/ARCH2020-02-03',\n", + " '0034/ZM4533/EPPN9_L/WD1/EPPN_Rep_3/01_34/ARCH2020-02-03',\n", + " '0034/ZM4533/EPPN9_L/WD1/EPPN_Rep_3/01_34/ARCH2020-02-03',\n", + " '0035/ZM4529/EPPN5_L/WD1/EPPN_Rep_3/01_35/ARCH2020-02-03',\n", + " '0035/ZM4529/EPPN5_L/WD1/EPPN_Rep_3/01_35/ARCH2020-02-03',\n", + " '0036/ZM4537/EPPN13_L/WD1/EPPN_Rep_3/01_36/ARCH2020-02-03',\n", + " '0036/ZM4537/EPPN13_L/WD1/EPPN_Rep_3/01_36/ARCH2020-02-03',\n", + " '0037/ZM4525/EPPN1_L/WD1/EPPN_Rep_3/01_37/ARCH2020-02-03',\n", + " '0037/ZM4525/EPPN1_L/WD1/EPPN_Rep_3/01_37/ARCH2020-02-03',\n", + " '0038/ZM4531/EPPN7_L/WD1/EPPN_Rep_3/01_38/ARCH2020-02-03',\n", + " '0038/ZM4531/EPPN7_L/WD1/EPPN_Rep_3/01_38/ARCH2020-02-03',\n", + " '0039/ZM4536/EPPN12_L/WD1/EPPN_Rep_3/01_39/ARCH2020-02-03',\n", + " '0039/ZM4536/EPPN12_L/WD1/EPPN_Rep_3/01_39/ARCH2020-02-03',\n", + " '0040/ZM4535/EPPN11_L/WD1/EPPN_Rep_3/01_40/ARCH2020-02-03',\n", + " '0040/ZM4535/EPPN11_L/WD1/EPPN_Rep_3/01_40/ARCH2020-02-03',\n", + " '0041/ZM4534/EPPN10_L/WD1/EPPN_Rep_3/01_41/ARCH2020-02-03',\n", + " '0041/ZM4534/EPPN10_L/WD1/EPPN_Rep_3/01_41/ARCH2020-02-03',\n", + " '0042/ZM4526/EPPN2_L/WD1/EPPN_Rep_3/01_42/ARCH2020-02-03',\n", + " '0042/ZM4526/EPPN2_L/WD1/EPPN_Rep_3/01_42/ARCH2020-02-03',\n", + " '0043/ZM4528/EPPN4_L/WD1/EPPN_Rep_3/01_43/ARCH2020-02-03',\n", + " '0043/ZM4528/EPPN4_L/WD1/EPPN_Rep_3/01_43/ARCH2020-02-03',\n", + " '0044/ZM4532/EPPN8_L/WD1/EPPN_Rep_3/01_44/ARCH2020-02-03',\n", + " '0044/ZM4532/EPPN8_L/WD1/EPPN_Rep_3/01_44/ARCH2020-02-03',\n", + " '0045/ZM4530/EPPN6_L/WD1/EPPN_Rep_3/01_45/ARCH2020-02-03',\n", + " '0045/ZM4530/EPPN6_L/WD1/EPPN_Rep_3/01_45/ARCH2020-02-03',\n", + " '0046/ZM4554/EPPN15_H/WW/EPPN_Rep_4/01_46/ARCH2020-02-03',\n", + " '0046/ZM4554/EPPN15_H/WW/EPPN_Rep_4/01_46/ARCH2020-02-03',\n", + " '0047/ZM4545/EPPN6_H/WW/EPPN_Rep_4/01_47/ARCH2020-02-03',\n", + " '0047/ZM4545/EPPN6_H/WW/EPPN_Rep_4/01_47/ARCH2020-02-03',\n", + " '0048/ZM4547/EPPN8_H/WW/EPPN_Rep_4/01_48/ARCH2020-02-03',\n", + " '0048/ZM4547/EPPN8_H/WW/EPPN_Rep_4/01_48/ARCH2020-02-03',\n", + " '0049/ZM4551/EPPN12_H/WW/EPPN_Rep_4/01_49/ARCH2020-02-03',\n", + " '0049/ZM4551/EPPN12_H/WW/EPPN_Rep_4/01_49/ARCH2020-02-03',\n", + " '0050/ZM4546/EPPN7_H/WW/EPPN_Rep_4/01_50/ARCH2020-02-03',\n", + " '0050/ZM4546/EPPN7_H/WW/EPPN_Rep_4/01_50/ARCH2020-02-03',\n", + " '0051/ZM4540/EPPN1_H/WW/EPPN_Rep_4/01_51/ARCH2020-02-03']" ] }, - "execution_count": 25, + "execution_count": 24, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "phis.get_scientific_object()" + "phis.get_scientific_object(page_size=100)" ] }, { @@ -5211,47 +1256,36 @@ "id": "24cc536c-e817-448e-9b7a-e20db5fdb328", "metadata": {}, "source": [ - "#### Get specific scientific object with URI" + "#### Get specific scientific object details" ] }, { "cell_type": "code", - "execution_count": 26, + "execution_count": 25, "id": "8779f4e4-2c2f-44c9-b7dc-6a6850d7d4dd", "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "{'metadata': {'pagination': {'pageSize': 0,\n", - " 'currentPage': 0,\n", - " 'totalCount': 0,\n", - " 'totalPages': 0,\n", - " 'limitCount': 0,\n", - " 'hasNextPage': False},\n", - " 'status': [],\n", - " 'datafiles': []},\n", - " 'result': {'uri': 'm3p:id/scientific-object/za20/so-0001zm4531eppn7_lwd1eppn_rep_101_01arch2020-02-03',\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None,\n", - " 'rdf_type': 'vocabulary:Plant',\n", - " 'rdf_type_name': 'plant',\n", - " 'name': '0001/ZM4531/EPPN7_L/WD1/EPPN_Rep_1/01_01/ARCH2020-02-03',\n", - " 'parent': None,\n", - " 'parent_name': None,\n", - " 'factor_level': None,\n", - " 'relations': [],\n", - " 'geometry': None}}" + "{'uri': 'm3p:id/scientific-object/za20/so-0001zm4531eppn7_lwd1eppn_rep_101_01arch2020-02-03',\n", + " 'name': '0001/ZM4531/EPPN7_L/WD1/EPPN_Rep_1/01_01/ARCH2020-02-03',\n", + " 'geometry': None,\n", + " 'rdf_type': 'vocabulary:Plant',\n", + " 'rdf_type_name': 'plant',\n", + " 'publication_date': None,\n", + " 'last_updated_date': None,\n", + " 'creation_date': None,\n", + " 'destruction_date': None}" ] }, - "execution_count": 26, + "execution_count": 25, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "phis.get_scientific_object(uri='m3p:id/scientific-object/za20/so-0001zm4531eppn7_lwd1eppn_rep_101_01arch2020-02-03')" + "phis.get_scientific_object(scientific_object_name='0001/ZM4531/EPPN7_L/WD1/EPPN_Rep_1/01_01/ARCH2020-02-03')" ] }, { @@ -5264,40 +1298,24 @@ }, { "cell_type": "code", - "execution_count": 27, + "execution_count": 26, "id": "efe065de-1b7a-4c35-9efe-73f97a2c2c5d", "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "{'metadata': {'pagination': {'pageSize': 100,\n", - " 'currentPage': 0,\n", - " 'totalCount': 8,\n", - " 'totalPages': 1,\n", - " 'limitCount': 0,\n", - " 'hasNextPage': True},\n", - " 'status': [],\n", - " 'datafiles': []},\n", - " 'result': [{'uri': 'http://phenome.inrae.fr/m3p/id/variable/characteristic..co2',\n", - " 'name': 'CO2'},\n", - " {'uri': 'http://phenome.inrae.fr/m3p/id/variable/characteristic.fresh_weight',\n", - " 'name': 'fresh_weight'},\n", - " {'uri': 'http://phenome.inrae.fr/m3p/id/variable/characteristic.humidity',\n", - " 'name': 'humidity'},\n", - " {'uri': 'http://phenome.inrae.fr/m3p/id/variable/characteristic..infra-red-radiation',\n", - " 'name': 'Infra-red radiation'},\n", - " {'uri': 'http://www.ontology-of-units-of-measure.org/resource/om-2/Irradiance',\n", - " 'name': 'Irradiance'},\n", - " {'uri': 'http://phenome.inrae.fr/m3p/id/variable/characteristic.lightning',\n", - " 'name': 'Lightning'},\n", - " {'uri': 'http://phenome.inrae.fr/m3p/id/variable/characteristic.shading',\n", - " 'name': 'Shading'},\n", - " {'uri': 'http://phenome.inrae.fr/m3p/id/variable/characteristic.temperature',\n", - " 'name': 'Temperature'}]}" + "['CO2',\n", + " 'fresh_weight',\n", + " 'humidity',\n", + " 'Infra-red radiation',\n", + " 'Irradiance',\n", + " 'Lightning',\n", + " 'Shading',\n", + " 'Temperature']" ] }, - "execution_count": 27, + "execution_count": 26, "metadata": {}, "output_type": "execute_result" } @@ -5311,46 +1329,29 @@ "id": "f2fd36bd-fb8d-456c-8064-bfac341e1e2d", "metadata": {}, "source": [ - "#### Get specific characteristic with URI" + "#### Get specific characteristic details" ] }, { "cell_type": "code", - "execution_count": 28, + "execution_count": 27, "id": "49f96e29-61c4-49c5-8105-f706de3991ab", "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "{'metadata': {'pagination': {'pageSize': 0,\n", - " 'currentPage': 0,\n", - " 'totalCount': 0,\n", - " 'totalPages': 0,\n", - " 'limitCount': 0,\n", - " 'hasNextPage': False},\n", - " 'status': [],\n", - " 'datafiles': []},\n", - " 'result': {'uri': 'http://phenome.inrae.fr/m3p/id/variable/characteristic.humidity',\n", - " 'name': 'humidity',\n", - " 'description': None,\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None,\n", - " 'exact_match': [],\n", - " 'close_match': [],\n", - " 'broad_match': [],\n", - " 'narrow_match': [],\n", - " 'from_shared_resource_instance': None}}" + "{'uri': 'http://phenome.inrae.fr/m3p/id/variable/characteristic..co2',\n", + " 'name': 'CO2'}" ] }, - "execution_count": 28, + "execution_count": 27, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "phis.get_characteristic(uri='http://phenome.inrae.fr/m3p/id/variable/characteristic.humidity')" + "phis.get_characteristic(characteristic_name='CO2')" ] }, { @@ -5363,35 +1364,17 @@ }, { "cell_type": "code", - "execution_count": 29, + "execution_count": 28, "id": "c98396dc-3cc9-4613-a697-6e961ff80220", "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "{'metadata': {'pagination': {'pageSize': 100,\n", - " 'currentPage': 0,\n", - " 'totalCount': 6,\n", - " 'totalPages': 1,\n", - " 'limitCount': 0,\n", - " 'hasNextPage': True},\n", - " 'status': [],\n", - " 'datafiles': []},\n", - " 'result': [{'uri': 'http://phenome.inrae.fr/m3p/id/variable/entity.air',\n", - " 'name': 'Air'},\n", - " {'uri': 'http://phenome.inrae.fr/m3p/id/variable/entity.greenhouse',\n", - " 'name': 'Greenhouse'},\n", - " {'uri': 'http://phenome.inrae.fr/m3p/id/variable/entity.leaf',\n", - " 'name': 'Leaf'},\n", - " {'uri': 'http://purl.obolibrary.org/obo/PO_0000003', 'name': 'Plant'},\n", - " {'uri': 'http://phenome.inrae.fr/m3p/id/variable/entity.solar',\n", - " 'name': 'Solar'},\n", - " {'uri': 'http://phenome.inrae.fr/m3p/id/variable/entity.water',\n", - " 'name': 'Water'}]}" + "['Air', 'Greenhouse', 'Leaf', 'Plant', 'Solar', 'Water']" ] }, - "execution_count": 29, + "execution_count": 28, "metadata": {}, "output_type": "execute_result" } @@ -5405,46 +1388,28 @@ "id": "0fffe9b5-67f4-449b-aba5-84aaa812dc64", "metadata": {}, "source": [ - "#### Get specific entity with URI" + "#### Get specific entity details" ] }, { "cell_type": "code", - "execution_count": 30, + "execution_count": 29, "id": "9a115d99-4e40-4c64-9477-220c6378e189", "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "{'metadata': {'pagination': {'pageSize': 0,\n", - " 'currentPage': 0,\n", - " 'totalCount': 0,\n", - " 'totalPages': 0,\n", - " 'limitCount': 0,\n", - " 'hasNextPage': False},\n", - " 'status': [],\n", - " 'datafiles': []},\n", - " 'result': {'uri': 'http://phenome.inrae.fr/m3p/id/variable/entity.solar',\n", - " 'name': 'Solar',\n", - " 'description': None,\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None,\n", - " 'exact_match': [],\n", - " 'close_match': [],\n", - " 'broad_match': [],\n", - " 'narrow_match': [],\n", - " 'from_shared_resource_instance': None}}" + "{'uri': 'http://phenome.inrae.fr/m3p/id/variable/entity.air', 'name': 'Air'}" ] }, - "execution_count": 30, + "execution_count": 29, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "phis.get_entity(uri='http://phenome.inrae.fr/m3p/id/variable/entity.solar')" + "phis.get_entity(entity_name='Air')" ] }, { @@ -5457,25 +1422,17 @@ }, { "cell_type": "code", - "execution_count": 31, + "execution_count": 30, "id": "12aa6de7-c1d0-4648-b636-a7c4dc83bf77", "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "{'metadata': {'pagination': {'pageSize': 100,\n", - " 'currentPage': 0,\n", - " 'totalCount': 0,\n", - " 'totalPages': 0,\n", - " 'limitCount': 0,\n", - " 'hasNextPage': False},\n", - " 'status': [],\n", - " 'datafiles': []},\n", - " 'result': []}" + "[]" ] }, - "execution_count": 31, + "execution_count": 30, "metadata": {}, "output_type": "execute_result" } @@ -5484,24 +1441,6 @@ "phis.get_entity_of_interest()" ] }, - { - "cell_type": "markdown", - "id": "203e53ab-cf80-4c99-8897-87ed32f7f8ce", - "metadata": {}, - "source": [ - "#### Get specific entity of interest with URI" - ] - }, - { - "cell_type": "code", - "execution_count": 32, - "id": "357329e0-4c17-49ba-a585-c57eefe61602", - "metadata": {}, - "outputs": [], - "source": [ - "# No URIs" - ] - }, { "cell_type": "markdown", "id": "3793f85e-1783-463f-a486-93fd981b78cb", @@ -5512,45 +1451,27 @@ }, { "cell_type": "code", - "execution_count": 33, + "execution_count": 31, "id": "e89debc4-50a9-4e57-9532-654a463a320a", "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "{'metadata': {'pagination': {'pageSize': 100,\n", - " 'currentPage': 0,\n", - " 'totalCount': 11,\n", - " 'totalPages': 1,\n", - " 'limitCount': 0,\n", - " 'hasNextPage': True},\n", - " 'status': [],\n", - " 'datafiles': []},\n", - " 'result': [{'uri': 'http://phenome.inrae.fr/m3p/id/variable/method.computation',\n", - " 'name': 'Computation'},\n", - " {'uri': 'http://phenome.inrae.fr/m3p/id/variable/method.lower-near-surface',\n", - " 'name': 'Lower near-surface'},\n", - " {'uri': 'http://phenome.inrae.fr/m3p/id/variable/method.measurement',\n", - " 'name': 'Measurement'},\n", - " {'uri': 'http://phenome.inrae.fr/m3p/id/variable/method.par', 'name': 'PAR'},\n", - " {'uri': 'http://phenome.inrae.fr/m3p/id/variable/method.par_diffuse',\n", - " 'name': 'PAR_Diffuse'},\n", - " {'uri': 'http://phenome.inrae.fr/m3p/id/variable/method.par_direct',\n", - " 'name': 'PAR_Direct'},\n", - " {'uri': 'http://phenome.inrae.fr/m3p/id/variable/method.radiation_global',\n", - " 'name': 'Radiation_Global'},\n", - " {'uri': 'http://phenome.inrae.fr/m3p/id/variable/method.setpoint',\n", - " 'name': 'Setpoint'},\n", - " {'uri': 'http://phenome.inrae.fr/m3p/id/variable/method.shelter_instant',\n", - " 'name': 'Shelter_Instant_Measurement'},\n", - " {'uri': 'http://phenome.inrae.fr/m3p/id/variable/method.thermocouple',\n", - " 'name': 'thermocouple'},\n", - " {'uri': 'http://phenome.inrae.fr/m3p/id/variable/method.upper-near-surface',\n", - " 'name': 'Upper near-surface'}]}" + "['Computation',\n", + " 'Lower near-surface',\n", + " 'Measurement',\n", + " 'PAR',\n", + " 'PAR_Diffuse',\n", + " 'PAR_Direct',\n", + " 'Radiation_Global',\n", + " 'Setpoint',\n", + " 'Shelter_Instant_Measurement',\n", + " 'thermocouple',\n", + " 'Upper near-surface']" ] }, - "execution_count": 33, + "execution_count": 31, "metadata": {}, "output_type": "execute_result" } @@ -5564,46 +1485,29 @@ "id": "a8a91224-5d46-40f2-8e85-2cda9a8a4850", "metadata": {}, "source": [ - "#### Get specific method with URI" + "#### Get specific method details" ] }, { "cell_type": "code", - "execution_count": 34, + "execution_count": 32, "id": "17c00ccd-0b06-4d53-925d-fc7716bc35ba", "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "{'metadata': {'pagination': {'pageSize': 0,\n", - " 'currentPage': 0,\n", - " 'totalCount': 0,\n", - " 'totalPages': 0,\n", - " 'limitCount': 0,\n", - " 'hasNextPage': False},\n", - " 'status': [],\n", - " 'datafiles': []},\n", - " 'result': {'uri': 'http://phenome.inrae.fr/m3p/id/variable/method.measurement',\n", - " 'name': 'Measurement',\n", - " 'description': None,\n", - " 'publisher': None,\n", - " 'publication_date': None,\n", - " 'last_updated_date': None,\n", - " 'exact_match': [],\n", - " 'close_match': [],\n", - " 'broad_match': [],\n", - " 'narrow_match': [],\n", - " 'from_shared_resource_instance': None}}" + "{'uri': 'http://phenome.inrae.fr/m3p/id/variable/method.computation',\n", + " 'name': 'Computation'}" ] }, - "execution_count": 34, + "execution_count": 32, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "phis.get_method(uri='http://phenome.inrae.fr/m3p/id/variable/method.measurement')" + "phis.get_method(method_name='Computation')" ] }, { @@ -5616,42 +1520,28 @@ }, { "cell_type": "code", - "execution_count": 35, + "execution_count": 33, "id": "a5a14d0f-a53d-453c-95db-fc0e6f898c66", "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "{'metadata': {'pagination': {'pageSize': 100,\n", - " 'currentPage': 0,\n", - " 'totalCount': 12,\n", - " 'totalPages': 1,\n", - " 'limitCount': 0,\n", - " 'hasNextPage': True},\n", - " 'status': [],\n", - " 'datafiles': []},\n", - " 'result': [{'uri': 'http://phenome.inrae.fr/m3p/id/variable/unit.boolean',\n", - " 'name': 'Boolean'},\n", - " {'uri': 'http://phenome.inrae.fr/m3p/id/variable/unit.celsius',\n", - " 'name': 'degree celsius'},\n", - " {'uri': 'http://phenome.inrae.fr/m3p/id/variable/unit.gram', 'name': 'gram'},\n", - " {'uri': 'http://qudt.org/vocab/unit/J-PER-M2', 'name': 'J-PER-M2'},\n", - " {'uri': 'http://qudt.org/vocab/unit/J', 'name': 'Joule'},\n", - " {'uri': 'http://qudt.org/vocab/unit/KiloGM', 'name': 'kilogram'},\n", - " {'uri': 'http://qudt.org/vocab/unit/MicroMOL-PER-M2-SEC',\n", - " 'name': 'MicroMOL-PER-M2-SEC'},\n", - " {'uri': 'http://phenome.inrae.fr/m3p/id/variable/unit.micromole-per-square-metre-per-second',\n", - " 'name': 'Micromole per square metre per_second'},\n", - " {'uri': 'http://qudt.org/vocab/unit/MilliM', 'name': 'millimetre '},\n", - " {'uri': 'http://phenome.inrae.fr/m3p/id/variable/unit.percentage',\n", - " 'name': 'percent'},\n", - " {'uri': 'http://purl.obolibrary.org/obo/UO_0000169', 'name': 'ppm'},\n", - " {'uri': 'http://purl.obolibrary.org/obo/UO_0000155',\n", - " 'name': 'watt per square meter'}]}" + "['Boolean',\n", + " 'degree celsius',\n", + " 'gram',\n", + " 'J-PER-M2',\n", + " 'Joule',\n", + " 'kilogram',\n", + " 'MicroMOL-PER-M2-SEC',\n", + " 'Micromole per square metre per_second',\n", + " 'millimetre ',\n", + " 'percent',\n", + " 'ppm',\n", + " 'watt per square meter']" ] }, - "execution_count": 35, + "execution_count": 33, "metadata": {}, "output_type": "execute_result" } @@ -5665,56 +1555,29 @@ "id": "39a54c76-3e7f-4667-a7a2-897a6dffd261", "metadata": {}, "source": [ - "#### Get specific unit with URI" + "#### Get specific unit details" ] }, { "cell_type": "code", - "execution_count": 36, + "execution_count": 34, "id": "86d4a3d3-3800-4134-a555-689461cac2d6", "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "{'metadata': {'pagination': {'pageSize': 0,\n", - " 'currentPage': 0,\n", - " 'totalCount': 0,\n", - " 'totalPages': 0,\n", - " 'limitCount': 0,\n", - " 'hasNextPage': False},\n", - " 'status': [],\n", - " 'datafiles': []},\n", - " 'result': {'uri': 'http://qudt.org/vocab/unit/J',\n", - " 'name': 'Joule',\n", - " 'description': 'The SI unit of work or energy, defined to be the work done by a force of one newton acting to move an object through a distance of one meter in the direction in which the force is applied. Equivalently, since kinetic energy is one half the mass times the square of the velocity, one joule is the kinetic energy of a mass of two kilograms moving at a velocity of 1 m/s. This is the same as 107 ergs in the CGS system, or approximately 0.737 562 foot-pound in the traditional English system. In other energy units, one joule equals about 9.478 170 x 10-4 Btu, 0.238 846 (small) calories, or 2.777 778 x 10-4 watt hour. The joule is named for the British physicist James Prescott Joule (1818-1889), who demonstrated the equivalence of mechanical and thermal energy in a famous experiment in 1843. ',\n", - " 'symbol': 'J',\n", - " 'alternative_symbol': None,\n", - " 'exact_match': [],\n", - " 'close_match': [],\n", - " 'broad_match': [],\n", - " 'narrow_match': [],\n", - " 'publisher': {'uri': 'https://orcid.org/0000-0002-2147-2846',\n", - " 'email': 'llorenc.cabrera-bosquet@inrae.fr',\n", - " 'language': 'en',\n", - " 'admin': True,\n", - " 'first_name': 'Llorenç',\n", - " 'last_name': 'CABRERA-BOSQUET',\n", - " 'linked_person': 'https://orcid.org/0000-0002-2147-2846/Person',\n", - " 'enable': True,\n", - " 'favorites': None},\n", - " 'publication_date': '2024-03-29T10:08:49.599127+01:00',\n", - " 'last_updated_date': None,\n", - " 'from_shared_resource_instance': None}}" + "{'uri': 'http://phenome.inrae.fr/m3p/id/variable/unit.boolean',\n", + " 'name': 'Boolean'}" ] }, - "execution_count": 36, + "execution_count": 34, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "phis.get_unit(uri='http://qudt.org/vocab/unit/J')" + "phis.get_unit(unit_name='Boolean')" ] }, { @@ -5727,1487 +1590,165 @@ }, { "cell_type": "code", - "execution_count": 37, + "execution_count": 35, "id": "d9bbf18f-a044-4800-998a-b8e16e8a03d0", "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "{'metadata': {'pagination': {'pageSize': 100,\n", - " 'currentPage': 0,\n", - " 'totalCount': 149,\n", - " 'totalPages': 2,\n", - " 'limitCount': 0,\n", - " 'hasNextPage': True},\n", - " 'status': [],\n", - " 'datafiles': []},\n", - " 'result': [{'uri': 'm3p:provenance/standard_provenance',\n", - " 'name': 'standard_provenance',\n", - " 'description': 'This provenance is used when there is no need to describe a specific provenance',\n", - " 'prov_activity': None,\n", - " 'prov_agent': [],\n", - " 'publisher': None,\n", - " 'issued': None,\n", - " 'modified': None},\n", - " {'uri': 'm3p:Prov_air_humidity_weather_station_percentage_hr01_p',\n", - " 'name': 'Prov_air humidity_weather station_percentage_hr01_p',\n", - " 'description': 'acquisition of air humidity_weather station_percentage and hr01_p',\n", - " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", - " 'uri': None,\n", - " 'start_date': None,\n", - " 'end_date': None,\n", - " 'settings': None}],\n", - " 'prov_agent': [{'uri': 'm3p:id/deviceAttribut/arch/2011/sa110001',\n", - " 'rdf_type': 'vocabulary:CapacitiveThinFilmPolymer',\n", - " 'settings': {'site': 'p'}}],\n", - " 'publisher': None,\n", - " 'issued': None,\n", - " 'modified': None},\n", - " {'uri': 'm3p:Prov_air_humidity_weather_station_percentage_hr02_p',\n", - " 'name': 'Prov_air humidity_weather station_percentage_hr02_p',\n", - " 'description': 'acquisition of air humidity_weather station_percentage and hr02_p',\n", - " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", - " 'uri': None,\n", - " 'start_date': None,\n", - " 'end_date': None,\n", - " 'settings': None}],\n", - " 'prov_agent': [{'uri': 'm3p:id/deviceAttribut/arch/2011/sa110002',\n", - " 'rdf_type': 'vocabulary:CapacitiveThinFilmPolymer',\n", - " 'settings': {'site': 'p'}}],\n", - " 'publisher': None,\n", - " 'issued': None,\n", - " 'modified': None},\n", - " {'uri': 'm3p:Prov_air_humidity_weather_station_percentage_hr03_p',\n", - " 'name': 'Prov_air humidity_weather station_percentage_hr03_p',\n", - " 'description': 'acquisition of air humidity_weather station_percentage and hr03_p',\n", - " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", - " 'uri': None,\n", - " 'start_date': None,\n", - " 'end_date': None,\n", - " 'settings': None}],\n", - " 'prov_agent': [{'uri': 'm3p:id/deviceAttribut/arch/2011/sa110003',\n", - " 'rdf_type': 'vocabulary:CapacitiveThinFilmPolymer',\n", - " 'settings': {'site': 'p'}}],\n", - " 'publisher': None,\n", - " 'issued': None,\n", - " 'modified': None},\n", - " {'uri': 'm3p:Prov_air_humidity_weather_station_percentage_hr04_p',\n", - " 'name': 'Prov_air humidity_weather station_percentage_hr04_p',\n", - " 'description': 'acquisition of air humidity_weather station_percentage and hr04_p',\n", - " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", - " 'uri': None,\n", - " 'start_date': None,\n", - " 'end_date': None,\n", - " 'settings': None}],\n", - " 'prov_agent': [{'uri': 'm3p:id/deviceAttribut/arch/2011/sa110004',\n", - " 'rdf_type': 'vocabulary:CapacitiveThinFilmPolymer',\n", - " 'settings': {'site': 'p'}}],\n", - " 'publisher': None,\n", - " 'issued': None,\n", - " 'modified': None},\n", - " {'uri': 'm3p:Prov_air_humidity_weather_station_percentage_hr05_p',\n", - " 'name': 'Prov_air humidity_weather station_percentage_hr05_p',\n", - " 'description': 'acquisition of air humidity_weather station_percentage and hr05_p',\n", - " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", - " 'uri': None,\n", - " 'start_date': None,\n", - " 'end_date': None,\n", - " 'settings': None}],\n", - " 'prov_agent': [{'uri': 'm3p:id/deviceAttribut/arch/2011/sa110005',\n", - " 'rdf_type': 'vocabulary:CapacitiveThinFilmPolymer',\n", - " 'settings': {'site': 'p'}}],\n", - " 'publisher': None,\n", - " 'issued': None,\n", - " 'modified': None},\n", - " {'uri': 'm3p:Prov_air_humidity_weather_station_percentage_hr06_p',\n", - " 'name': 'Prov_air humidity_weather station_percentage_hr06_p',\n", - " 'description': 'acquisition of air humidity_weather station_percentage and hr06_p',\n", - " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", - " 'uri': None,\n", - " 'start_date': None,\n", - " 'end_date': None,\n", - " 'settings': None}],\n", - " 'prov_agent': [{'uri': 'm3p:id/deviceAttribut/arch/2011/sa110006',\n", - " 'rdf_type': 'vocabulary:CapacitiveThinFilmPolymer',\n", - " 'settings': {'site': 'p'}}],\n", - " 'publisher': None,\n", - " 'issued': None,\n", - " 'modified': None},\n", - " {'uri': 'm3p:Prov_air_humidity_weather_station_percentage_hr07_p',\n", - " 'name': 'Prov_air humidity_weather station_percentage_hr07_p',\n", - " 'description': 'acquisition of air humidity_weather station_percentage and hr07_p',\n", - " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", - " 'uri': None,\n", - " 'start_date': None,\n", - " 'end_date': None,\n", - " 'settings': None}],\n", - " 'prov_agent': [{'uri': 'm3p:id/deviceAttribut/arch/2013/sa130001',\n", - " 'rdf_type': 'vocabulary:CapacitiveThinFilmPolymer',\n", - " 'settings': {'site': 'p'}}],\n", - " 'publisher': None,\n", - " 'issued': None,\n", - " 'modified': None},\n", - " {'uri': 'm3p:Prov_air_humidity_weather_station_percentage_hr08_p',\n", - " 'name': 'Prov_air humidity_weather station_percentage_hr08_p',\n", - " 'description': 'acquisition of air humidity_weather station_percentage and hr08_p',\n", - " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", - " 'uri': None,\n", - " 'start_date': None,\n", - " 'end_date': None,\n", - " 'settings': None}],\n", - " 'prov_agent': [{'uri': 'm3p:id/deviceAttribut/arch/2013/sa130002',\n", - " 'rdf_type': 'vocabulary:CapacitiveThinFilmPolymer',\n", - " 'settings': {'site': 'p'}}],\n", - " 'publisher': None,\n", - " 'issued': None,\n", - " 'modified': None},\n", - " {'uri': 'm3p:Prov_air_humidity_weather_station_percentage_hr09_p',\n", - " 'name': 'Prov_air humidity_weather station_percentage_hr09_p',\n", - " 'description': 'acquisition of air humidity_weather station_percentage and hr09_p',\n", - " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", - " 'uri': None,\n", - " 'start_date': None,\n", - " 'end_date': None,\n", - " 'settings': None}],\n", - " 'prov_agent': [{'uri': 'm3p:id/deviceAttribut/2019/s19008',\n", - " 'rdf_type': 'vocabulary:CapacitiveThinFilmPolymer',\n", - " 'settings': {'site': 'p'}}],\n", - " 'publisher': None,\n", - " 'issued': None,\n", - " 'modified': None},\n", - " {'uri': 'm3p:Prov_air_humidity_weather_station_percentage_hr10_p',\n", - " 'name': 'Prov_air humidity_weather station_percentage_hr10_p',\n", - " 'description': 'acquisition of air humidity_weather station_percentage and hr10_p',\n", - " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", - " 'uri': None,\n", - " 'start_date': None,\n", - " 'end_date': None,\n", - " 'settings': None}],\n", - " 'prov_agent': [{'uri': 'm3p:id/deviceAttribut/2019/s19009',\n", - " 'rdf_type': 'vocabulary:CapacitiveThinFilmPolymer',\n", - " 'settings': {'site': 'p'}}],\n", - " 'publisher': None,\n", - " 'issued': None,\n", - " 'modified': None},\n", - " {'uri': 'm3p:Prov_PAR_Light_weather_station_micromole.m-2.s-1_par01_p',\n", - " 'name': 'Prov_PAR Light_weather station_micromole.m-2.s-1_par01_p',\n", - " 'description': 'acquisition of PAR Light_weather station_micromole.m-2.s-1 and par01_p',\n", - " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", - " 'uri': None,\n", - " 'start_date': None,\n", - " 'end_date': None,\n", - " 'settings': None}],\n", - " 'prov_agent': [{'uri': 'm3p:id/deviceAttribut/arch/2011/sa110007',\n", - " 'rdf_type': 'vocabulary:QuantumSensor',\n", - " 'settings': {'site': 'p'}}],\n", - " 'publisher': None,\n", - " 'issued': None,\n", - " 'modified': None},\n", - " {'uri': 'm3p:Prov_PAR_Light_weather_station_micromole.m-2.s-1_par02_p',\n", - " 'name': 'Prov_PAR Light_weather station_micromole.m-2.s-1_par02_p',\n", - " 'description': 'acquisition of PAR Light_weather station_micromole.m-2.s-1 and par02_p',\n", - " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", - " 'uri': None,\n", - " 'start_date': None,\n", - " 'end_date': None,\n", - " 'settings': None}],\n", - " 'prov_agent': [{'uri': 'm3p:id/deviceAttribut/arch/2011/sa110008',\n", - " 'rdf_type': 'vocabulary:QuantumSensor',\n", - " 'settings': {'site': 'p'}}],\n", - " 'publisher': None,\n", - " 'issued': None,\n", - " 'modified': None},\n", - " {'uri': 'm3p:Prov_PAR_Light_weather_station_micromole.m-2.s-1_par03_p',\n", - " 'name': 'Prov_PAR Light_weather station_micromole.m-2.s-1_par03_p',\n", - " 'description': 'acquisition of PAR Light_weather station_micromole.m-2.s-1 and par03_p',\n", - " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", - " 'uri': None,\n", - " 'start_date': None,\n", - " 'end_date': None,\n", - " 'settings': None}],\n", - " 'prov_agent': [{'uri': 'm3p:id/deviceAttribut/arch/2011/sa110009',\n", - " 'rdf_type': 'vocabulary:QuantumSensor',\n", - " 'settings': {'site': 'p'}}],\n", - " 'publisher': None,\n", - " 'issued': None,\n", - " 'modified': None},\n", - " {'uri': 'm3p:Prov_PAR_Light_weather_station_micromole.m-2.s-1_par04_p',\n", - " 'name': 'Prov_PAR Light_weather station_micromole.m-2.s-1_par04_p',\n", - " 'description': 'acquisition of PAR Light_weather station_micromole.m-2.s-1 and par04_p',\n", - " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", - " 'uri': None,\n", - " 'start_date': None,\n", - " 'end_date': None,\n", - " 'settings': None}],\n", - " 'prov_agent': [{'uri': 'm3p:id/deviceAttribut/arch/2011/sa110010',\n", - " 'rdf_type': 'vocabulary:QuantumSensor',\n", - " 'settings': {'site': 'p'}}],\n", - " 'publisher': None,\n", - " 'issued': None,\n", - " 'modified': None},\n", - " {'uri': 'm3p:Prov_PAR_Light_weather_station_micromole.m-2.s-1_par05_p',\n", - " 'name': 'Prov_PAR Light_weather station_micromole.m-2.s-1_par05_p',\n", - " 'description': 'acquisition of PAR Light_weather station_micromole.m-2.s-1 and par05_p',\n", - " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", - " 'uri': None,\n", - " 'start_date': None,\n", - " 'end_date': None,\n", - " 'settings': None}],\n", - " 'prov_agent': [{'uri': 'm3p:id/deviceAttribut/arch/2011/sa110011',\n", - " 'rdf_type': 'vocabulary:QuantumSensor',\n", - " 'settings': {'site': 'p'}}],\n", - " 'publisher': None,\n", - " 'issued': None,\n", - " 'modified': None},\n", - " {'uri': 'm3p:Prov_PAR_Light_weather_station_micromole.m-2.s-1_par06_p',\n", - " 'name': 'Prov_PAR Light_weather station_micromole.m-2.s-1_par06_p',\n", - " 'description': 'acquisition of PAR Light_weather station_micromole.m-2.s-1 and par06_p',\n", - " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", - " 'uri': None,\n", - " 'start_date': None,\n", - " 'end_date': None,\n", - " 'settings': None}],\n", - " 'prov_agent': [{'uri': 'm3p:id/deviceAttribut/arch/2011/sa110012',\n", - " 'rdf_type': 'vocabulary:QuantumSensor',\n", - " 'settings': {'site': 'p'}}],\n", - " 'publisher': None,\n", - " 'issued': None,\n", - " 'modified': None},\n", - " {'uri': 'm3p:Prov_PAR_Light_weather_station_micromole.m-2.s-1_par07_p',\n", - " 'name': 'Prov_PAR Light_weather station_micromole.m-2.s-1_par07_p',\n", - " 'description': 'acquisition of PAR Light_weather station_micromole.m-2.s-1 and par07_p',\n", - " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", - " 'uri': None,\n", - " 'start_date': None,\n", - " 'end_date': None,\n", - " 'settings': None}],\n", - " 'prov_agent': [{'uri': 'm3p:id/deviceAttribut/arch/2013/sa130003',\n", - " 'rdf_type': 'vocabulary:QuantumSensor',\n", - " 'settings': {'site': 'p'}}],\n", - " 'publisher': None,\n", - " 'issued': None,\n", - " 'modified': None},\n", - " {'uri': 'm3p:Prov_PAR_Light_weather_station_micromole.m-2.s-1_par08_p',\n", - " 'name': 'Prov_PAR Light_weather station_micromole.m-2.s-1_par08_p',\n", - " 'description': 'acquisition of PAR Light_weather station_micromole.m-2.s-1 and par08_p',\n", - " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", - " 'uri': None,\n", - " 'start_date': None,\n", - " 'end_date': None,\n", - " 'settings': None}],\n", - " 'prov_agent': [{'uri': 'm3p:id/deviceAttribut/arch/2013/sa130004',\n", - " 'rdf_type': 'vocabulary:QuantumSensor',\n", - " 'settings': {'site': 'p'}}],\n", - " 'publisher': None,\n", - " 'issued': None,\n", - " 'modified': None},\n", - " {'uri': 'm3p:Prov_PAR_Light_weather_station_micromole.m-2.s-1_par09_p',\n", - " 'name': 'Prov_PAR Light_weather station_micromole.m-2.s-1_par09_p',\n", - " 'description': 'acquisition of PAR Light_weather station_micromole.m-2.s-1 and par09_p',\n", - " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", - " 'uri': None,\n", - " 'start_date': None,\n", - " 'end_date': None,\n", - " 'settings': None}],\n", - " 'prov_agent': [{'uri': 'm3p:id/deviceAttribut/2019/s19006',\n", - " 'rdf_type': 'vocabulary:QuantumSensor',\n", - " 'settings': {'site': 'p'}}],\n", - " 'publisher': None,\n", - " 'issued': None,\n", - " 'modified': None},\n", - " {'uri': 'm3p:Prov_PAR_Light_weather_station_micromole.m-2.s-1_par10_p',\n", - " 'name': 'Prov_PAR Light_weather station_micromole.m-2.s-1_par10_p',\n", - " 'description': 'acquisition of PAR Light_weather station_micromole.m-2.s-1 and par10_p',\n", - " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", - " 'uri': None,\n", - " 'start_date': None,\n", - " 'end_date': None,\n", - " 'settings': None}],\n", - " 'prov_agent': [{'uri': 'm3p:id/deviceAttribut/2019/s19007',\n", - " 'rdf_type': 'vocabulary:QuantumSensor',\n", - " 'settings': {'site': 'p'}}],\n", - " 'publisher': None,\n", - " 'issued': None,\n", - " 'modified': None},\n", - " {'uri': 'm3p:Prov_air_temperature_weather_station_degree_celsius_tair01_p',\n", - " 'name': 'Prov_air temperature_weather station_degree celsius_tair01_p',\n", - " 'description': 'acquisition of air temperature_weather station_degree celsius and tair01_p',\n", - " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", - " 'uri': None,\n", - " 'start_date': None,\n", - " 'end_date': None,\n", - " 'settings': None}],\n", - " 'prov_agent': [{'uri': 'm3p:id/deviceAttribut/arch/2011/sa110013',\n", - " 'rdf_type': 'vocabulary:ElectricalResistanceThermometer',\n", - " 'settings': {'site': 'p'}}],\n", - " 'publisher': None,\n", - " 'issued': None,\n", - " 'modified': None},\n", - " {'uri': 'm3p:Prov_air_temperature_weather_station_degree_celsius_tair02_p',\n", - " 'name': 'Prov_air temperature_weather station_degree celsius_tair02_p',\n", - " 'description': 'acquisition of air temperature_weather station_degree celsius and tair02_p',\n", - " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", - " 'uri': None,\n", - " 'start_date': None,\n", - " 'end_date': None,\n", - " 'settings': None}],\n", - " 'prov_agent': [{'uri': 'm3p:id/deviceAttribut/arch/2011/sa110014',\n", - " 'rdf_type': 'vocabulary:ElectricalResistanceThermometer',\n", - " 'settings': {'site': 'p'}}],\n", - " 'publisher': None,\n", - " 'issued': None,\n", - " 'modified': None},\n", - " {'uri': 'm3p:Prov_diffuse_PAR_light_sensor_micromole.m-2.s-1_BF5',\n", - " 'name': 'Prov_diffuse PAR light_sensor_micromole.m-2.s-1_BF5',\n", - " 'description': 'acquisition of diffuse PAR light_sensor_micromole.m-2.s-1 and BF5',\n", - " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", - " 'uri': None,\n", - " 'start_date': None,\n", - " 'end_date': None,\n", - " 'settings': None}],\n", - " 'prov_agent': [{'uri': 'm3p:id/deviceAttribut/eo/2016/sa1600009',\n", - " 'rdf_type': 'vocabulary:PyranometerWithShadeRing',\n", - " 'settings': {'site': 'p'}}],\n", - " 'publisher': None,\n", - " 'issued': None,\n", - " 'modified': None},\n", - " {'uri': 'm3p:Prov_direct_PAR_light_sensor_micromole.m-2.s-1_BF5',\n", - " 'name': 'Prov_direct PAR light_sensor_micromole.m-2.s-1_BF5',\n", - " 'description': 'acquisition of direct PAR light_sensor_micromole.m-2.s-1 and BF5',\n", - " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", - " 'uri': None,\n", - " 'start_date': None,\n", - " 'end_date': None,\n", - " 'settings': None}],\n", - " 'prov_agent': [{'uri': 'm3p:id/deviceAttribut/eo/2016/sa1600009',\n", - " 'rdf_type': 'vocabulary:PyranometerWithShadeRing',\n", - " 'settings': {'site': 'p'}}],\n", - " 'publisher': None,\n", - " 'issued': None,\n", - " 'modified': None},\n", - " {'uri': 'm3p:Prov_air_temperature_weather_station_degree_celsius_tair03_p',\n", - " 'name': 'Prov_air temperature_weather station_degree celsius_tair03_p',\n", - " 'description': 'acquisition of air temperature_weather station_degree celsius and tair03_p',\n", - " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", - " 'uri': None,\n", - " 'start_date': None,\n", - " 'end_date': None,\n", - " 'settings': None}],\n", - " 'prov_agent': [{'uri': 'm3p:id/deviceAttribut/arch/2011/sa110015',\n", - " 'rdf_type': 'vocabulary:ElectricalResistanceThermometer',\n", - " 'settings': {'site': 'p'}}],\n", - " 'publisher': None,\n", - " 'issued': None,\n", - " 'modified': None},\n", - " {'uri': 'm3p:Prov_air_temperature_weather_station_degree_celsius_tair04_p',\n", - " 'name': 'Prov_air temperature_weather station_degree celsius_tair04_p',\n", - " 'description': 'acquisition of air temperature_weather station_degree celsius and tair04_p',\n", - " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", - " 'uri': None,\n", - " 'start_date': None,\n", - " 'end_date': None,\n", - " 'settings': None}],\n", - " 'prov_agent': [{'uri': 'm3p:id/deviceAttribut/arch/2011/sa110016',\n", - " 'rdf_type': 'vocabulary:ElectricalResistanceThermometer',\n", - " 'settings': {'site': 'p'}}],\n", - " 'publisher': None,\n", - " 'issued': None,\n", - " 'modified': None},\n", - " {'uri': 'm3p:Prov_air_temperature_weather_station_degree_celsius_tair05_p',\n", - " 'name': 'Prov_air temperature_weather station_degree celsius_tair05_p',\n", - " 'description': 'acquisition of air temperature_weather station_degree celsius and tair05_p',\n", - " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", - " 'uri': None,\n", - " 'start_date': None,\n", - " 'end_date': None,\n", - " 'settings': None}],\n", - " 'prov_agent': [{'uri': 'm3p:id/deviceAttribut/arch/2011/sa110017',\n", - " 'rdf_type': 'vocabulary:ElectricalResistanceThermometer',\n", - " 'settings': {'site': 'p'}}],\n", - " 'publisher': None,\n", - " 'issued': None,\n", - " 'modified': None},\n", - " {'uri': 'm3p:Prov_air_temperature_weather_station_degree_celsius_tair06_p',\n", - " 'name': 'Prov_air temperature_weather station_degree celsius_tair06_p',\n", - " 'description': 'acquisition of air temperature_weather station_degree celsius and tair06_p',\n", - " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", - " 'uri': None,\n", - " 'start_date': None,\n", - " 'end_date': None,\n", - " 'settings': None}],\n", - " 'prov_agent': [{'uri': 'm3p:id/deviceAttribut/arch/2011/sa110018',\n", - " 'rdf_type': 'vocabulary:ElectricalResistanceThermometer',\n", - " 'settings': {'site': 'p'}}],\n", - " 'publisher': None,\n", - " 'issued': None,\n", - " 'modified': None},\n", - " {'uri': 'm3p:Prov_air_temperature_weather_station_degree_celsius_tair07_p',\n", - " 'name': 'Prov_air temperature_weather station_degree celsius_tair07_p',\n", - " 'description': 'acquisition of air temperature_weather station_degree celsius and tair07_p',\n", - " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", - " 'uri': None,\n", - " 'start_date': None,\n", - " 'end_date': None,\n", - " 'settings': None}],\n", - " 'prov_agent': [{'uri': 'm3p:id/deviceAttribut/arch/2013/sa130005',\n", - " 'rdf_type': 'vocabulary:ElectricalResistanceThermometer',\n", - " 'settings': {'site': 'p'}}],\n", - " 'publisher': None,\n", - " 'issued': None,\n", - " 'modified': None},\n", - " {'uri': 'm3p:Prov_air_temperature_weather_station_degree_celsius_tair08_p',\n", - " 'name': 'Prov_air temperature_weather station_degree celsius_tair08_p',\n", - " 'description': 'acquisition of air temperature_weather station_degree celsius and tair08_p',\n", - " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", - " 'uri': None,\n", - " 'start_date': None,\n", - " 'end_date': None,\n", - " 'settings': None}],\n", - " 'prov_agent': [{'uri': 'm3p:id/deviceAttribut/arch/2013/sa130006',\n", - " 'rdf_type': 'vocabulary:ElectricalResistanceThermometer',\n", - " 'settings': {'site': 'p'}}],\n", - " 'publisher': None,\n", - " 'issued': None,\n", - " 'modified': None},\n", - " {'uri': 'm3p:Prov_air_temperature_weather_station_degree_celsius_tair09_p',\n", - " 'name': 'Prov_air temperature_weather station_degree celsius_tair09_p',\n", - " 'description': 'acquisition of air temperature_weather station_degree celsius and tair09_p',\n", - " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", - " 'uri': None,\n", - " 'start_date': None,\n", - " 'end_date': None,\n", - " 'settings': None}],\n", - " 'prov_agent': [{'uri': 'm3p:id/deviceAttribut/2019/s19010',\n", - " 'rdf_type': 'vocabulary:ElectricalResistanceThermometer',\n", - " 'settings': {'site': 'p'}}],\n", - " 'publisher': None,\n", - " 'issued': None,\n", - " 'modified': None},\n", - " {'uri': 'm3p:Prov_air_temperature_weather_station_degree_celsius_tair10_p',\n", - " 'name': 'Prov_air temperature_weather station_degree celsius_tair10_p',\n", - " 'description': 'acquisition of air temperature_weather station_degree celsius and tair10_p',\n", - " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", - " 'uri': None,\n", - " 'start_date': None,\n", - " 'end_date': None,\n", - " 'settings': None}],\n", - " 'prov_agent': [{'uri': 'm3p:id/deviceAttribut/2019/s19011',\n", - " 'rdf_type': 'vocabulary:ElectricalResistanceThermometer',\n", - " 'settings': {'site': 'p'}}],\n", - " 'publisher': None,\n", - " 'issued': None,\n", - " 'modified': None},\n", - " {'uri': 'http://www.phenome-fppn.fr/m3p/Prov_watering_WateringStation02_water',\n", - " 'name': 'Prov_watering_WateringStation02_water',\n", - " 'description': 'acquisition of WateringStation02 and water [2021-11-16__11-04-51]',\n", - " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", - " 'uri': None,\n", - " 'start_date': '2020-01-01T00:00:00Z',\n", - " 'end_date': None,\n", - " 'settings': None}],\n", - " 'prov_agent': [{'uri': 'http://www.phenome-fppn.fr/m3p/2019/v1908',\n", - " 'rdf_type': 'vocabulary:Station',\n", - " 'settings': None},\n", - " {'uri': 'http://www.phenome-fppn.fr/m3p/2020/a20002',\n", - " 'rdf_type': 'vocabulary:WateringPump',\n", - " 'settings': None},\n", - " {'uri': 'http://www.phenome-fppn.fr/m3p/2019/s19002',\n", - " 'rdf_type': 'vocabulary:WeighingScale',\n", - " 'settings': None}],\n", - " 'publisher': None,\n", - " 'issued': None,\n", - " 'modified': None},\n", - " {'uri': 'http://www.phenome-fppn.fr/m3p/Prov_watering_WateringStation04_water',\n", - " 'name': 'Prov_watering_WateringStation04_water',\n", - " 'description': 'acquisition of WateringStation04 and water [2021-11-16__11-04-51]',\n", - " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", - " 'uri': None,\n", - " 'start_date': '2020-01-01T00:00:00Z',\n", - " 'end_date': None,\n", - " 'settings': None}],\n", - " 'prov_agent': [{'uri': 'http://www.phenome-fppn.fr/m3p/2020/a20004',\n", - " 'rdf_type': 'vocabulary:WateringPump',\n", - " 'settings': None},\n", - " {'uri': 'http://www.phenome-fppn.fr/m3p/2019/s19004',\n", - " 'rdf_type': 'vocabulary:WeighingScale',\n", - " 'settings': None},\n", - " {'uri': 'http://www.phenome-fppn.fr/m3p/2019/v1910',\n", - " 'rdf_type': 'vocabulary:Station',\n", - " 'settings': None}],\n", - " 'publisher': None,\n", - " 'issued': None,\n", - " 'modified': None},\n", - " {'uri': 'http://www.phenome-fppn.fr/m3p/Prov_watering_WateringStation04_watermaize',\n", - " 'name': 'Prov_watering_WateringStation04_watermaize',\n", - " 'description': 'acquisition of WateringStation04 and watermaize [2021-11-16__11-04-51]',\n", - " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", - " 'uri': None,\n", - " 'start_date': '2020-01-01T00:00:00Z',\n", - " 'end_date': None,\n", - " 'settings': None}],\n", - " 'prov_agent': [{'uri': 'http://www.phenome-fppn.fr/m3p/2020/a20004',\n", - " 'rdf_type': 'vocabulary:WateringPump',\n", - " 'settings': None},\n", - " {'uri': 'http://www.phenome-fppn.fr/m3p/2019/s19004',\n", - " 'rdf_type': 'vocabulary:WeighingScale',\n", - " 'settings': None},\n", - " {'uri': 'http://www.phenome-fppn.fr/m3p/2019/v1910',\n", - " 'rdf_type': 'vocabulary:Station',\n", - " 'settings': None}],\n", - " 'publisher': None,\n", - " 'issued': None,\n", - " 'modified': None},\n", - " {'uri': 'http://www.phenome-fppn.fr/m3p/Prov_watering_WateringStation02_watermaize',\n", - " 'name': 'Prov_watering_WateringStation02_watermaize',\n", - " 'description': 'acquisition of WateringStation02 and watermaize [2021-11-16__11-04-51]',\n", - " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", - " 'uri': None,\n", - " 'start_date': '2020-01-01T00:00:00Z',\n", - " 'end_date': None,\n", - " 'settings': None}],\n", - " 'prov_agent': [{'uri': 'http://www.phenome-fppn.fr/m3p/2019/v1908',\n", - " 'rdf_type': 'vocabulary:Station',\n", - " 'settings': None},\n", - " {'uri': 'http://www.phenome-fppn.fr/m3p/2020/a20002',\n", - " 'rdf_type': 'vocabulary:WateringPump',\n", - " 'settings': None},\n", - " {'uri': 'http://www.phenome-fppn.fr/m3p/2019/s19002',\n", - " 'rdf_type': 'vocabulary:WeighingScale',\n", - " 'settings': None}],\n", - " 'publisher': None,\n", - " 'issued': None,\n", - " 'modified': None},\n", - " {'uri': 'http://www.phenome-fppn.fr/m3p/Prov_watering_WateringStation03_waterwheat',\n", - " 'name': 'Prov_watering_WateringStation03_waterwheat',\n", - " 'description': 'acquisition of WateringStation03 and waterwheat [2021-11-16__11-04-51]',\n", - " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", - " 'uri': None,\n", - " 'start_date': '2020-01-01T00:00:00Z',\n", - " 'end_date': None,\n", - " 'settings': None}],\n", - " 'prov_agent': [{'uri': 'http://www.phenome-fppn.fr/m3p/2019/v1909',\n", - " 'rdf_type': 'vocabulary:Station',\n", - " 'settings': None},\n", - " {'uri': 'http://www.phenome-fppn.fr/m3p/2019/s19003',\n", - " 'rdf_type': 'vocabulary:WeighingScale',\n", - " 'settings': None},\n", - " {'uri': 'http://www.phenome-fppn.fr/m3p/2020/a20003',\n", - " 'rdf_type': 'vocabulary:WateringPump',\n", - " 'settings': None}],\n", - " 'publisher': None,\n", - " 'issued': None,\n", - " 'modified': None},\n", - " {'uri': 'http://www.phenome-fppn.fr/m3p/Prov_watering_WateringStation05_waterwheat',\n", - " 'name': 'Prov_watering_WateringStation05_waterwheat',\n", - " 'description': 'acquisition of WateringStation05 and waterwheat [2021-11-16__11-04-51]',\n", - " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", - " 'uri': None,\n", - " 'start_date': '2020-01-01T00:00:00Z',\n", - " 'end_date': None,\n", - " 'settings': None}],\n", - " 'prov_agent': [{'uri': 'http://www.phenome-fppn.fr/m3p/2019/s19005',\n", - " 'rdf_type': 'vocabulary:WeighingScale',\n", - " 'settings': None},\n", - " {'uri': 'http://www.phenome-fppn.fr/m3p/2019/v1911',\n", - " 'rdf_type': 'vocabulary:Station',\n", - " 'settings': None},\n", - " {'uri': 'http://www.phenome-fppn.fr/m3p/2020/a20005',\n", - " 'rdf_type': 'vocabulary:WateringPump',\n", - " 'settings': None}],\n", - " 'publisher': None,\n", - " 'issued': None,\n", - " 'modified': None},\n", - " {'uri': 'http://www.phenome-fppn.fr/m3p/Prov_watering_WateringStation01_waterwheat',\n", - " 'name': 'Prov_watering_WateringStation01_waterwheat',\n", - " 'description': 'acquisition of WateringStation01 and waterwheat [2021-11-16__11-04-51]',\n", - " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", - " 'uri': None,\n", - " 'start_date': '2020-01-01T00:00:00Z',\n", - " 'end_date': None,\n", - " 'settings': None}],\n", - " 'prov_agent': [{'uri': 'http://www.phenome-fppn.fr/m3p/2019/s19001',\n", - " 'rdf_type': 'vocabulary:WeighingScale',\n", - " 'settings': None},\n", - " {'uri': 'http://www.phenome-fppn.fr/m3p/2020/a20001',\n", - " 'rdf_type': 'vocabulary:WateringPump',\n", - " 'settings': None},\n", - " {'uri': 'http://www.phenome-fppn.fr/m3p/2019/v1907',\n", - " 'rdf_type': 'vocabulary:Station',\n", - " 'settings': None}],\n", - " 'publisher': None,\n", - " 'issued': None,\n", - " 'modified': None},\n", - " {'uri': 'http://www.phenome-fppn.fr/m3p/Prov_weighing_WateringStation05_ARCH2020-01-20',\n", - " 'name': 'Prov_weighing_WateringStation05_ARCH2020-01-20',\n", - " 'description': 'acquisition of WateringStation05 and ARCH2020-01-20 [2021-11-17__11-51-46]',\n", - " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", - " 'uri': None,\n", - " 'start_date': '2020-01-01T00:00:00Z',\n", - " 'end_date': None,\n", - " 'settings': None}],\n", - " 'prov_agent': [{'uri': 'http://www.phenome-fppn.fr/m3p/2019/s19005',\n", - " 'rdf_type': 'vocabulary:WeighingScale',\n", - " 'settings': None},\n", - " {'uri': 'http://www.phenome-fppn.fr/m3p/2019/v1911',\n", - " 'rdf_type': 'vocabulary:Station',\n", - " 'settings': None}],\n", - " 'publisher': None,\n", - " 'issued': None,\n", - " 'modified': None},\n", - " {'uri': 'http://www.phenome-fppn.fr/m3p/Prov_weighing_WateringStation03_ARCH2020-01-20',\n", - " 'name': 'Prov_weighing_WateringStation03_ARCH2020-01-20',\n", - " 'description': 'acquisition of WateringStation03 and ARCH2020-01-20 [2021-11-17__11-51-46]',\n", - " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", - " 'uri': None,\n", - " 'start_date': '2020-01-01T00:00:00Z',\n", - " 'end_date': None,\n", - " 'settings': None}],\n", - " 'prov_agent': [{'uri': 'http://www.phenome-fppn.fr/m3p/2019/v1909',\n", - " 'rdf_type': 'vocabulary:Station',\n", - " 'settings': None},\n", - " {'uri': 'http://www.phenome-fppn.fr/m3p/2019/s19003',\n", - " 'rdf_type': 'vocabulary:WeighingScale',\n", - " 'settings': None}],\n", - " 'publisher': None,\n", - " 'issued': None,\n", - " 'modified': None},\n", - " {'uri': 'http://www.phenome-fppn.fr/m3p/Prov_weighing_WateringStation04_ARCH2020-01-20',\n", - " 'name': 'Prov_weighing_WateringStation04_ARCH2020-01-20',\n", - " 'description': 'acquisition of WateringStation04 and ARCH2020-01-20 [2021-11-17__11-51-46]',\n", - " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", - " 'uri': None,\n", - " 'start_date': '2020-01-01T00:00:00Z',\n", - " 'end_date': None,\n", - " 'settings': None}],\n", - " 'prov_agent': [{'uri': 'http://www.phenome-fppn.fr/m3p/2019/s19004',\n", - " 'rdf_type': 'vocabulary:WeighingScale',\n", - " 'settings': None},\n", - " {'uri': 'http://www.phenome-fppn.fr/m3p/2019/v1910',\n", - " 'rdf_type': 'vocabulary:Station',\n", - " 'settings': None}],\n", - " 'publisher': None,\n", - " 'issued': None,\n", - " 'modified': None},\n", - " {'uri': 'http://www.phenome-fppn.fr/m3p/Prov_weighing_WateringStation02_ARCH2020-01-20',\n", - " 'name': 'Prov_weighing_WateringStation02_ARCH2020-01-20',\n", - " 'description': 'acquisition of WateringStation02 and ARCH2020-01-20 [2021-11-17__11-51-46]',\n", - " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", - " 'uri': None,\n", - " 'start_date': '2020-01-01T00:00:00Z',\n", - " 'end_date': None,\n", - " 'settings': None}],\n", - " 'prov_agent': [{'uri': 'http://www.phenome-fppn.fr/m3p/2019/v1908',\n", - " 'rdf_type': 'vocabulary:Station',\n", - " 'settings': None},\n", - " {'uri': 'http://www.phenome-fppn.fr/m3p/2019/s19002',\n", - " 'rdf_type': 'vocabulary:WeighingScale',\n", - " 'settings': None}],\n", - " 'publisher': None,\n", - " 'issued': None,\n", - " 'modified': None},\n", - " {'uri': 'http://www.phenome-fppn.fr/m3p/Prov_weighing_WateringStation01_ARCH2020-01-20',\n", - " 'name': 'Prov_weighing_WateringStation01_ARCH2020-01-20',\n", - " 'description': 'acquisition of WateringStation01 and ARCH2020-01-20 [2021-11-17__11-51-46]',\n", - " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", - " 'uri': None,\n", - " 'start_date': '2020-01-01T00:00:00Z',\n", - " 'end_date': None,\n", - " 'settings': None}],\n", - " 'prov_agent': [{'uri': 'http://www.phenome-fppn.fr/m3p/2019/s19001',\n", - " 'rdf_type': 'vocabulary:WeighingScale',\n", - " 'settings': None},\n", - " {'uri': 'http://www.phenome-fppn.fr/m3p/2019/v1907',\n", - " 'rdf_type': 'vocabulary:Station',\n", - " 'settings': None}],\n", - " 'publisher': None,\n", - " 'issued': None,\n", - " 'modified': None},\n", - " {'uri': 'http://www.phenome-fppn.fr/m3p/Prov_weighing_OperatorStation01_ARCH2020-01-20',\n", - " 'name': 'Prov_weighing_OperatorStation01_ARCH2020-01-20',\n", - " 'description': 'acquisition of OperatorStation01 and ARCH2020-01-20 [2021-11-17__11-51-46]',\n", - " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", - " 'uri': None,\n", - " 'start_date': '2020-01-01T00:00:00Z',\n", - " 'end_date': None,\n", - " 'settings': None}],\n", - " 'prov_agent': [{'uri': 'http://www.phenome-fppn.fr/m3p/2019/s19001',\n", - " 'rdf_type': 'vocabulary:WeighingScale',\n", - " 'settings': None},\n", - " {'uri': 'http://www.phenome-fppn.fr/set/devices/station-operatorstation01',\n", - " 'rdf_type': 'vocabulary:Station',\n", - " 'settings': None}],\n", - " 'publisher': None,\n", - " 'issued': None,\n", - " 'modified': None},\n", - " {'uri': 'http://www.phenome-fppn.fr/m3p/Prov_weighing_WateringStation01_DYN2020-05-15',\n", - " 'name': 'Prov_weighing_WateringStation01_DYN2020-05-15',\n", - " 'description': 'acquisition of WateringStation01 and DYN2020-05-15 [2021-11-17__11-51-46]',\n", - " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", - " 'uri': None,\n", - " 'start_date': '2020-05-01T00:00:00Z',\n", - " 'end_date': None,\n", - " 'settings': None}],\n", - " 'prov_agent': [{'uri': 'http://www.phenome-fppn.fr/m3p/2019/s19001',\n", - " 'rdf_type': 'vocabulary:WeighingScale',\n", - " 'settings': None},\n", - " {'uri': 'http://www.phenome-fppn.fr/m3p/2019/v1907',\n", - " 'rdf_type': 'vocabulary:Station',\n", - " 'settings': None}],\n", - " 'publisher': None,\n", - " 'issued': None,\n", - " 'modified': None},\n", - " {'uri': 'http://www.phenome-fppn.fr/m3p/Prov_watering_WateringStation01_water',\n", - " 'name': 'Prov_watering_WateringStation01_water',\n", - " 'description': 'acquisition of WateringStation01 and water [2021-11-17__10-55-32]',\n", - " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", - " 'uri': None,\n", - " 'start_date': '2020-01-01T00:00:00Z',\n", - " 'end_date': None,\n", - " 'settings': None}],\n", - " 'prov_agent': [{'uri': 'http://www.phenome-fppn.fr/m3p/2019/s19001',\n", - " 'rdf_type': 'vocabulary:WeighingScale',\n", - " 'settings': None},\n", - " {'uri': 'http://www.phenome-fppn.fr/m3p/2020/a20001',\n", - " 'rdf_type': 'vocabulary:WateringPump',\n", - " 'settings': None},\n", - " {'uri': 'http://www.phenome-fppn.fr/m3p/2019/v1907',\n", - " 'rdf_type': 'vocabulary:Station',\n", - " 'settings': None}],\n", - " 'publisher': None,\n", - " 'issued': None,\n", - " 'modified': None},\n", - " {'uri': 'http://www.phenome-fppn.fr/m3p/Prov_leaf_temperature_thermocouple_sensor_degree_celsius_thc_emb_02',\n", - " 'name': 'Prov_leaf temperature_thermocouple sensor_degree celsius_thc_emb_02',\n", - " 'description': 'acquisition of leaf temperature_thermocouple sensor_degree celsius and thc_emb_02',\n", - " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", - " 'uri': None,\n", - " 'start_date': None,\n", - " 'end_date': None,\n", - " 'settings': None}],\n", - " 'prov_agent': [{'uri': 'm3p:id/deviceAttribut/eo/2017/sa1700002',\n", - " 'rdf_type': 'vocabulary:Thermocouple',\n", - " 'settings': {'site': 'p'}}],\n", - " 'publisher': None,\n", - " 'issued': None,\n", - " 'modified': None},\n", - " {'uri': 'http://www.phenome-fppn.fr/m3p/Prov_leaf_temperature_thermocouple_sensor_degree_celsius_thc_emb_03',\n", - " 'name': 'Prov_leaf temperature_thermocouple sensor_degree celsius_thc_emb_03',\n", - " 'description': 'acquisition of leaf temperature_thermocouple sensor_degree celsius and thc_emb_03',\n", - " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", - " 'uri': None,\n", - " 'start_date': None,\n", - " 'end_date': None,\n", - " 'settings': None}],\n", - " 'prov_agent': [{'uri': 'm3p:id/deviceAttribut/eo/2017/sa1700003',\n", - " 'rdf_type': 'vocabulary:Thermocouple',\n", - " 'settings': {'site': 'p'}}],\n", - " 'publisher': None,\n", - " 'issued': None,\n", - " 'modified': None},\n", - " {'uri': 'http://www.phenome-fppn.fr/m3p/Prov_leaf_temperature_thermocouple_sensor_degree_celsius_thc_emb_04',\n", - " 'name': 'Prov_leaf temperature_thermocouple sensor_degree celsius_thc_emb_04',\n", - " 'description': 'acquisition of leaf temperature_thermocouple sensor_degree celsius and thc_emb_04',\n", - " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", - " 'uri': None,\n", - " 'start_date': None,\n", - " 'end_date': None,\n", - " 'settings': None}],\n", - " 'prov_agent': [{'uri': 'm3p:id/deviceAttribut/eo/2017/sa1700004',\n", - " 'rdf_type': 'vocabulary:Thermocouple',\n", - " 'settings': {'site': 'p'}}],\n", - " 'publisher': None,\n", - " 'issued': None,\n", - " 'modified': None},\n", - " {'uri': 'http://www.phenome-fppn.fr/m3p/Prov_leaf_temperature_thermocouple_sensor_degree_celsius_thc_emb_05',\n", - " 'name': 'Prov_leaf temperature_thermocouple sensor_degree celsius_thc_emb_05',\n", - " 'description': 'acquisition of leaf temperature_thermocouple sensor_degree celsius and thc_emb_05',\n", - " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", - " 'uri': None,\n", - " 'start_date': None,\n", - " 'end_date': None,\n", - " 'settings': None}],\n", - " 'prov_agent': [{'uri': 'm3p:id/deviceAttribut/eo/2017/sa1700005',\n", - " 'rdf_type': 'vocabulary:Thermocouple',\n", - " 'settings': {'site': 'p'}}],\n", - " 'publisher': None,\n", - " 'issued': None,\n", - " 'modified': None},\n", - " {'uri': 'http://www.phenome-fppn.fr/m3p/Prov_leaf_temperature_thermocouple_sensor_degree_celsius_thc_emb_06',\n", - " 'name': 'Prov_leaf temperature_thermocouple sensor_degree celsius_thc_emb_06',\n", - " 'description': 'acquisition of leaf temperature_thermocouple sensor_degree celsius and thc_emb_06',\n", - " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", - " 'uri': None,\n", - " 'start_date': None,\n", - " 'end_date': None,\n", - " 'settings': None}],\n", - " 'prov_agent': [{'uri': 'm3p:id/deviceAttribut/eo/2017/sa1700006',\n", - " 'rdf_type': 'vocabulary:Thermocouple',\n", - " 'settings': {'site': 'p'}}],\n", - " 'publisher': None,\n", - " 'issued': None,\n", - " 'modified': None},\n", - " {'uri': 'http://www.phenome-fppn.fr/m3p/Prov_leaf_temperature_thermocouple_sensor_degree_celsius_thc_emb_07',\n", - " 'name': 'Prov_leaf temperature_thermocouple sensor_degree celsius_thc_emb_07',\n", - " 'description': 'acquisition of leaf temperature_thermocouple sensor_degree celsius and thc_emb_07',\n", - " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", - " 'uri': None,\n", - " 'start_date': None,\n", - " 'end_date': None,\n", - " 'settings': None}],\n", - " 'prov_agent': [{'uri': 'm3p:id/deviceAttribut/eo/2017/sa1700007',\n", - " 'rdf_type': 'vocabulary:Thermocouple',\n", - " 'settings': {'site': 'p'}}],\n", - " 'publisher': None,\n", - " 'issued': None,\n", - " 'modified': None},\n", - " {'uri': 'http://www.phenome-fppn.fr/m3p/Prov_leaf_temperature_thermocouple_sensor_degree_celsius_thc_emb_08',\n", - " 'name': 'Prov_leaf temperature_thermocouple sensor_degree celsius_thc_emb_08',\n", - " 'description': 'acquisition of leaf temperature_thermocouple sensor_degree celsius and thc_emb_08',\n", - " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", - " 'uri': None,\n", - " 'start_date': None,\n", - " 'end_date': None,\n", - " 'settings': None}],\n", - " 'prov_agent': [{'uri': 'm3p:id/deviceAttribut/eo/2017/sa1700008',\n", - " 'rdf_type': 'vocabulary:Thermocouple',\n", - " 'settings': {'site': 'p'}}],\n", - " 'publisher': None,\n", - " 'issued': None,\n", - " 'modified': None},\n", - " {'uri': 'http://www.phenome-fppn.fr/m3p/Prov_leaf_temperature_thermocouple_sensor_degree_celsius_thc_emb_09',\n", - " 'name': 'Prov_leaf temperature_thermocouple sensor_degree celsius_thc_emb_09',\n", - " 'description': 'acquisition of leaf temperature_thermocouple sensor_degree celsius and thc_emb_09',\n", - " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", - " 'uri': None,\n", - " 'start_date': None,\n", - " 'end_date': None,\n", - " 'settings': None}],\n", - " 'prov_agent': [{'uri': 'm3p:id/deviceAttribut/eo/2017/sa1700009',\n", - " 'rdf_type': 'vocabulary:Thermocouple',\n", - " 'settings': {'site': 'p'}}],\n", - " 'publisher': None,\n", - " 'issued': None,\n", - " 'modified': None},\n", - " {'uri': 'http://www.phenome-fppn.fr/m3p/Prov_leaf_temperature_thermocouple_sensor_degree_celsius_thc_emb_10',\n", - " 'name': 'Prov_leaf temperature_thermocouple sensor_degree celsius_thc_emb_10',\n", - " 'description': 'acquisition of leaf temperature_thermocouple sensor_degree celsius and thc_emb_10',\n", - " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", - " 'uri': None,\n", - " 'start_date': None,\n", - " 'end_date': None,\n", - " 'settings': None}],\n", - " 'prov_agent': [{'uri': 'm3p:id/deviceAttribut/eo/2017/sa1700010',\n", - " 'rdf_type': 'vocabulary:Thermocouple',\n", - " 'settings': {'site': 'p'}}],\n", - " 'publisher': None,\n", - " 'issued': None,\n", - " 'modified': None},\n", - " {'uri': 'http://www.phenome-fppn.fr/m3p/Prov_leaf_temperature_thermocouple_sensor_degree_celsius_thc_emb_11',\n", - " 'name': 'Prov_leaf temperature_thermocouple sensor_degree celsius_thc_emb_11',\n", - " 'description': 'acquisition of leaf temperature_thermocouple sensor_degree celsius and thc_emb_11',\n", - " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", - " 'uri': None,\n", - " 'start_date': None,\n", - " 'end_date': None,\n", - " 'settings': None}],\n", - " 'prov_agent': [{'uri': 'm3p:id/deviceAttribut/eo/2017/sa1700011',\n", - " 'rdf_type': 'vocabulary:Thermocouple',\n", - " 'settings': {'site': 'p'}}],\n", - " 'publisher': None,\n", - " 'issued': None,\n", - " 'modified': None},\n", - " {'uri': 'http://www.phenome-fppn.fr/m3p/Prov_leaf_temperature_thermocouple_sensor_degree_celsius_thc_emb_12',\n", - " 'name': 'Prov_leaf temperature_thermocouple sensor_degree celsius_thc_emb_12',\n", - " 'description': 'acquisition of leaf temperature_thermocouple sensor_degree celsius and thc_emb_12',\n", - " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", - " 'uri': None,\n", - " 'start_date': None,\n", - " 'end_date': None,\n", - " 'settings': None}],\n", - " 'prov_agent': [{'uri': 'm3p:id/deviceAttribut/eo/2017/sa1700012',\n", - " 'rdf_type': 'vocabulary:Thermocouple',\n", - " 'settings': {'site': 'p'}}],\n", - " 'publisher': None,\n", - " 'issued': None,\n", - " 'modified': None},\n", - " {'uri': 'http://www.phenome-fppn.fr/m3p/Prov_leaf_temperature_thermocouple_sensor_degree_celsius_thc_emb_13',\n", - " 'name': 'Prov_leaf temperature_thermocouple sensor_degree celsius_thc_emb_13',\n", - " 'description': 'acquisition of leaf temperature_thermocouple sensor_degree celsius and thc_emb_13',\n", - " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", - " 'uri': None,\n", - " 'start_date': None,\n", - " 'end_date': None,\n", - " 'settings': None}],\n", - " 'prov_agent': [{'uri': 'm3p:id/deviceAttribut/eo/2017/sa1700013',\n", - " 'rdf_type': 'vocabulary:Thermocouple',\n", - " 'settings': {'site': 'p'}}],\n", - " 'publisher': None,\n", - " 'issued': None,\n", - " 'modified': None},\n", - " {'uri': 'http://www.phenome-fppn.fr/m3p/Prov_leaf_temperature_thermocouple_sensor_degree_celsius_thc_emb_14',\n", - " 'name': 'Prov_leaf temperature_thermocouple sensor_degree celsius_thc_emb_14',\n", - " 'description': 'acquisition of leaf temperature_thermocouple sensor_degree celsius and thc_emb_14',\n", - " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", - " 'uri': None,\n", - " 'start_date': None,\n", - " 'end_date': None,\n", - " 'settings': None}],\n", - " 'prov_agent': [{'uri': 'm3p:id/deviceAttribut/eo/2017/sa1700014',\n", - " 'rdf_type': 'vocabulary:Thermocouple',\n", - " 'settings': {'site': 'p'}}],\n", - " 'publisher': None,\n", - " 'issued': None,\n", - " 'modified': None},\n", - " {'uri': 'http://www.phenome-fppn.fr/m3p/Prov_leaf_temperature_thermocouple_sensor_degree_celsius_thc_emb_15',\n", - " 'name': 'Prov_leaf temperature_thermocouple sensor_degree celsius_thc_emb_15',\n", - " 'description': 'acquisition of leaf temperature_thermocouple sensor_degree celsius and thc_emb_15',\n", - " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", - " 'uri': None,\n", - " 'start_date': None,\n", - " 'end_date': None,\n", - " 'settings': None}],\n", - " 'prov_agent': [{'uri': 'm3p:id/deviceAttribut/eo/2017/sa1700015',\n", - " 'rdf_type': 'vocabulary:Thermocouple',\n", - " 'settings': {'site': 'p'}}],\n", - " 'publisher': None,\n", - " 'issued': None,\n", - " 'modified': None},\n", - " {'uri': 'http://www.phenome-fppn.fr/m3p/Prov_leaf_temperature_thermocouple_sensor_degree_celsius_thc_emb_16',\n", - " 'name': 'Prov_leaf temperature_thermocouple sensor_degree celsius_thc_emb_16',\n", - " 'description': 'acquisition of leaf temperature_thermocouple sensor_degree celsius and thc_emb_16',\n", - " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", - " 'uri': None,\n", - " 'start_date': None,\n", - " 'end_date': None,\n", - " 'settings': None}],\n", - " 'prov_agent': [{'uri': 'm3p:id/deviceAttribut/eo/2017/sa1700016',\n", - " 'rdf_type': 'vocabulary:Thermocouple',\n", - " 'settings': {'site': 'p'}}],\n", - " 'publisher': None,\n", - " 'issued': None,\n", - " 'modified': None},\n", - " {'uri': 'http://www.phenome-fppn.fr/m3p/Prov_leaf_temperature_thermocouple_sensor_degree_celsius_thc_emb_17',\n", - " 'name': 'Prov_leaf temperature_thermocouple sensor_degree celsius_thc_emb_17',\n", - " 'description': 'acquisition of leaf temperature_thermocouple sensor_degree celsius and thc_emb_17',\n", - " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", - " 'uri': None,\n", - " 'start_date': None,\n", - " 'end_date': None,\n", - " 'settings': None}],\n", - " 'prov_agent': [{'uri': 'm3p:id/deviceAttribut/eo/2017/sa1700017',\n", - " 'rdf_type': 'vocabulary:Thermocouple',\n", - " 'settings': {'site': 'p'}}],\n", - " 'publisher': None,\n", - " 'issued': None,\n", - " 'modified': None},\n", - " {'uri': 'http://www.phenome-fppn.fr/m3p/Prov_leaf_temperature_thermocouple_sensor_degree_celsius_thc_emb_18',\n", - " 'name': 'Prov_leaf temperature_thermocouple sensor_degree celsius_thc_emb_18',\n", - " 'description': 'acquisition of leaf temperature_thermocouple sensor_degree celsius and thc_emb_18',\n", - " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", - " 'uri': None,\n", - " 'start_date': None,\n", - " 'end_date': None,\n", - " 'settings': None}],\n", - " 'prov_agent': [{'uri': 'm3p:id/deviceAttribut/eo/2017/sa1700018',\n", - " 'rdf_type': 'vocabulary:Thermocouple',\n", - " 'settings': {'site': 'p'}}],\n", - " 'publisher': None,\n", - " 'issued': None,\n", - " 'modified': None},\n", - " {'uri': 'http://www.phenome-fppn.fr/m3p/Prov_leaf_temperature_thermocouple_sensor_degree_celsius_thc_emb_19',\n", - " 'name': 'Prov_leaf temperature_thermocouple sensor_degree celsius_thc_emb_19',\n", - " 'description': 'acquisition of leaf temperature_thermocouple sensor_degree celsius and thc_emb_19',\n", - " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", - " 'uri': None,\n", - " 'start_date': None,\n", - " 'end_date': None,\n", - " 'settings': None}],\n", - " 'prov_agent': [{'uri': 'm3p:id/deviceAttribut/eo/2017/sa1700019',\n", - " 'rdf_type': 'vocabulary:Thermocouple',\n", - " 'settings': {'site': 'p'}}],\n", - " 'publisher': None,\n", - " 'issued': None,\n", - " 'modified': None},\n", - " {'uri': 'http://www.phenome-fppn.fr/m3p/Prov_leaf_temperature_thermocouple_sensor_degree_celsius_thc_emb_20',\n", - " 'name': 'Prov_leaf temperature_thermocouple sensor_degree celsius_thc_emb_20',\n", - " 'description': 'acquisition of leaf temperature_thermocouple sensor_degree celsius and thc_emb_20',\n", - " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", - " 'uri': None,\n", - " 'start_date': None,\n", - " 'end_date': None,\n", - " 'settings': None}],\n", - " 'prov_agent': [{'uri': 'm3p:id/deviceAttribut/eo/2017/sa1700020',\n", - " 'rdf_type': 'vocabulary:Thermocouple',\n", - " 'settings': {'site': 'p'}}],\n", - " 'publisher': None,\n", - " 'issued': None,\n", - " 'modified': None},\n", - " {'uri': 'http://www.phenome-fppn.fr/m3p/Prov_leaf_temperature_thermocouple_sensor_degree_celsius_thc_emb_21',\n", - " 'name': 'Prov_leaf temperature_thermocouple sensor_degree celsius_thc_emb_21',\n", - " 'description': 'acquisition of leaf temperature_thermocouple sensor_degree celsius and thc_emb_21',\n", - " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", - " 'uri': None,\n", - " 'start_date': None,\n", - " 'end_date': None,\n", - " 'settings': None}],\n", - " 'prov_agent': [{'uri': 'm3p:id/deviceAttribut/eo/2017/sa1700021',\n", - " 'rdf_type': 'vocabulary:Thermocouple',\n", - " 'settings': {'site': 'p'}}],\n", - " 'publisher': None,\n", - " 'issued': None,\n", - " 'modified': None},\n", - " {'uri': 'http://www.phenome-fppn.fr/m3p/Prov_leaf_temperature_thermocouple_sensor_degree_celsius_thc_emb_22',\n", - " 'name': 'Prov_leaf temperature_thermocouple sensor_degree celsius_thc_emb_22',\n", - " 'description': 'acquisition of leaf temperature_thermocouple sensor_degree celsius and thc_emb_22',\n", - " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", - " 'uri': None,\n", - " 'start_date': None,\n", - " 'end_date': None,\n", - " 'settings': None}],\n", - " 'prov_agent': [{'uri': 'm3p:id/deviceAttribut/eo/2017/sa1700022',\n", - " 'rdf_type': 'vocabulary:Thermocouple',\n", - " 'settings': {'site': 'p'}}],\n", - " 'publisher': None,\n", - " 'issued': None,\n", - " 'modified': None},\n", - " {'uri': 'http://www.phenome-fppn.fr/m3p/Prov_leaf_temperature_thermocouple_sensor_degree_celsius_thc_emb_23',\n", - " 'name': 'Prov_leaf temperature_thermocouple sensor_degree celsius_thc_emb_23',\n", - " 'description': 'acquisition of leaf temperature_thermocouple sensor_degree celsius and thc_emb_23',\n", - " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", - " 'uri': None,\n", - " 'start_date': None,\n", - " 'end_date': None,\n", - " 'settings': None}],\n", - " 'prov_agent': [{'uri': 'm3p:id/deviceAttribut/eo/2017/sa1700023',\n", - " 'rdf_type': 'vocabulary:Thermocouple',\n", - " 'settings': {'site': 'p'}}],\n", - " 'publisher': None,\n", - " 'issued': None,\n", - " 'modified': None},\n", - " {'uri': 'http://www.phenome-fppn.fr/m3p/Prov_leaf_temperature_thermocouple_sensor_degree_celsius_thc_emb_24',\n", - " 'name': 'Prov_leaf temperature_thermocouple sensor_degree celsius_thc_emb_24',\n", - " 'description': 'acquisition of leaf temperature_thermocouple sensor_degree celsius and thc_emb_24',\n", - " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", - " 'uri': None,\n", - " 'start_date': None,\n", - " 'end_date': None,\n", - " 'settings': None}],\n", - " 'prov_agent': [{'uri': 'm3p:id/deviceAttribut/eo/2017/sa1700024',\n", - " 'rdf_type': 'vocabulary:Thermocouple',\n", - " 'settings': {'site': 'p'}}],\n", - " 'publisher': None,\n", - " 'issued': None,\n", - " 'modified': None},\n", - " {'uri': 'http://www.phenome-fppn.fr/m3p/Prov_leaf_temperature_thermocouple_sensor_degree_celsius_thc_emb_25',\n", - " 'name': 'Prov_leaf temperature_thermocouple sensor_degree celsius_thc_emb_25',\n", - " 'description': 'acquisition of leaf temperature_thermocouple sensor_degree celsius and thc_emb_25',\n", - " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", - " 'uri': None,\n", - " 'start_date': None,\n", - " 'end_date': None,\n", - " 'settings': None}],\n", - " 'prov_agent': [{'uri': 'm3p:id/deviceAttribut/eo/2017/sa1700025',\n", - " 'rdf_type': 'vocabulary:Thermocouple',\n", - " 'settings': {'site': 'p'}}],\n", - " 'publisher': None,\n", - " 'issued': None,\n", - " 'modified': None},\n", - " {'uri': 'http://www.phenome-fppn.fr/m3p/Prov_leaf_temperature_thermocouple_sensor_degree_celsius_thc_emb_26',\n", - " 'name': 'Prov_leaf temperature_thermocouple sensor_degree celsius_thc_emb_26',\n", - " 'description': 'acquisition of leaf temperature_thermocouple sensor_degree celsius and thc_emb_26',\n", - " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", - " 'uri': None,\n", - " 'start_date': None,\n", - " 'end_date': None,\n", - " 'settings': None}],\n", - " 'prov_agent': [{'uri': 'm3p:id/deviceAttribut/eo/2017/sa1700026',\n", - " 'rdf_type': 'vocabulary:Thermocouple',\n", - " 'settings': {'site': 'p'}}],\n", - " 'publisher': None,\n", - " 'issued': None,\n", - " 'modified': None},\n", - " {'uri': 'http://www.phenome-fppn.fr/m3p/Prov_leaf_temperature_thermocouple_sensor_degree_celsius_thc_emb_28',\n", - " 'name': 'Prov_leaf temperature_thermocouple sensor_degree celsius_thc_emb_28',\n", - " 'description': 'acquisition of leaf temperature_thermocouple sensor_degree celsius and thc_emb_28',\n", - " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", - " 'uri': None,\n", - " 'start_date': None,\n", - " 'end_date': None,\n", - " 'settings': None}],\n", - " 'prov_agent': [{'uri': 'm3p:id/deviceAttribut/eo/2017/sa1700028',\n", - " 'rdf_type': 'vocabulary:Thermocouple',\n", - " 'settings': {'site': 'p'}}],\n", - " 'publisher': None,\n", - " 'issued': None,\n", - " 'modified': None},\n", - " {'uri': 'http://www.phenome-fppn.fr/m3p/Prov_leaf_temperature_thermocouple_sensor_degree_celsius_thc_emb_29',\n", - " 'name': 'Prov_leaf temperature_thermocouple sensor_degree celsius_thc_emb_29',\n", - " 'description': 'acquisition of leaf temperature_thermocouple sensor_degree celsius and thc_emb_29',\n", - " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", - " 'uri': None,\n", - " 'start_date': None,\n", - " 'end_date': None,\n", - " 'settings': None}],\n", - " 'prov_agent': [{'uri': 'm3p:id/deviceAttribut/eo/2017/sa1700029',\n", - " 'rdf_type': 'vocabulary:Thermocouple',\n", - " 'settings': {'site': 'p'}}],\n", - " 'publisher': None,\n", - " 'issued': None,\n", - " 'modified': None},\n", - " {'uri': 'http://www.phenome-fppn.fr/m3p/Prov_leaf_temperature_thermocouple_sensor_degree_celsius_thc_emb_30',\n", - " 'name': 'Prov_leaf temperature_thermocouple sensor_degree celsius_thc_emb_30',\n", - " 'description': 'acquisition of leaf temperature_thermocouple sensor_degree celsius and thc_emb_30',\n", - " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", - " 'uri': None,\n", - " 'start_date': None,\n", - " 'end_date': None,\n", - " 'settings': None}],\n", - " 'prov_agent': [{'uri': 'm3p:id/deviceAttribut/eo/2017/sa1700030',\n", - " 'rdf_type': 'vocabulary:Thermocouple',\n", - " 'settings': {'site': 'p'}}],\n", - " 'publisher': None,\n", - " 'issued': None,\n", - " 'modified': None},\n", - " {'uri': 'http://www.phenome-fppn.fr/m3p/Prov_leaf_temperature_thermocouple_sensor_degree_celsius_thc_emb_31',\n", - " 'name': 'Prov_leaf temperature_thermocouple sensor_degree celsius_thc_emb_31',\n", - " 'description': 'acquisition of leaf temperature_thermocouple sensor_degree celsius and thc_emb_31',\n", - " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", - " 'uri': None,\n", - " 'start_date': None,\n", - " 'end_date': None,\n", - " 'settings': None}],\n", - " 'prov_agent': [{'uri': 'm3p:id/deviceAttribut/eo/2017/sa1700031',\n", - " 'rdf_type': 'vocabulary:Thermocouple',\n", - " 'settings': {'site': 'p'}}],\n", - " 'publisher': None,\n", - " 'issued': None,\n", - " 'modified': None},\n", - " {'uri': 'http://www.phenome-fppn.fr/m3p/Prov_leaf_temperature_thermocouple_sensor_degree_celsius_thc_emb_32',\n", - " 'name': 'Prov_leaf temperature_thermocouple sensor_degree celsius_thc_emb_32',\n", - " 'description': 'acquisition of leaf temperature_thermocouple sensor_degree celsius and thc_emb_32',\n", - " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", - " 'uri': None,\n", - " 'start_date': None,\n", - " 'end_date': None,\n", - " 'settings': None}],\n", - " 'prov_agent': [{'uri': 'm3p:id/deviceAttribut/eo/2017/sa1700032',\n", - " 'rdf_type': 'vocabulary:Thermocouple',\n", - " 'settings': {'site': 'p'}}],\n", - " 'publisher': None,\n", - " 'issued': None,\n", - " 'modified': None},\n", - " {'uri': 'http://www.phenome-fppn.fr/m3p/Prov_leaf_temperature_thermocouple_sensor_degree_celsius_thc_emb_33',\n", - " 'name': 'Prov_leaf temperature_thermocouple sensor_degree celsius_thc_emb_33',\n", - " 'description': 'acquisition of leaf temperature_thermocouple sensor_degree celsius and thc_emb_33',\n", - " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", - " 'uri': None,\n", - " 'start_date': None,\n", - " 'end_date': None,\n", - " 'settings': None}],\n", - " 'prov_agent': [{'uri': 'm3p:id/deviceAttribut/eo/2017/sa1700033',\n", - " 'rdf_type': 'vocabulary:Thermocouple',\n", - " 'settings': {'site': 'p'}}],\n", - " 'publisher': None,\n", - " 'issued': None,\n", - " 'modified': None},\n", - " {'uri': 'http://www.phenome-fppn.fr/m3p/Prov_leaf_temperature_thermocouple_sensor_degree_celsius_thc_emb_34',\n", - " 'name': 'Prov_leaf temperature_thermocouple sensor_degree celsius_thc_emb_34',\n", - " 'description': 'acquisition of leaf temperature_thermocouple sensor_degree celsius and thc_emb_34',\n", - " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", - " 'uri': None,\n", - " 'start_date': None,\n", - " 'end_date': None,\n", - " 'settings': None}],\n", - " 'prov_agent': [{'uri': 'm3p:id/deviceAttribut/eo/2017/sa1700034',\n", - " 'rdf_type': 'vocabulary:Thermocouple',\n", - " 'settings': {'site': 'p'}}],\n", - " 'publisher': None,\n", - " 'issued': None,\n", - " 'modified': None},\n", - " {'uri': 'http://www.phenome-fppn.fr/m3p/Prov_leaf_temperature_thermocouple_sensor_degree_celsius_thc_emb_35',\n", - " 'name': 'Prov_leaf temperature_thermocouple sensor_degree celsius_thc_emb_35',\n", - " 'description': 'acquisition of leaf temperature_thermocouple sensor_degree celsius and thc_emb_35',\n", - " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", - " 'uri': None,\n", - " 'start_date': None,\n", - " 'end_date': None,\n", - " 'settings': None}],\n", - " 'prov_agent': [{'uri': 'm3p:id/deviceAttribut/eo/2017/sa1700035',\n", - " 'rdf_type': 'vocabulary:Thermocouple',\n", - " 'settings': {'site': 'p'}}],\n", - " 'publisher': None,\n", - " 'issued': None,\n", - " 'modified': None},\n", - " {'uri': 'http://www.phenome-fppn.fr/m3p/Prov_leaf_temperature_thermocouple_sensor_degree_celsius_thc_emb_36',\n", - " 'name': 'Prov_leaf temperature_thermocouple sensor_degree celsius_thc_emb_36',\n", - " 'description': 'acquisition of leaf temperature_thermocouple sensor_degree celsius and thc_emb_36',\n", - " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", - " 'uri': None,\n", - " 'start_date': None,\n", - " 'end_date': None,\n", - " 'settings': None}],\n", - " 'prov_agent': [{'uri': 'm3p:id/deviceAttribut/eo/2017/sa1700036',\n", - " 'rdf_type': 'vocabulary:Thermocouple',\n", - " 'settings': {'site': 'p'}}],\n", - " 'publisher': None,\n", - " 'issued': None,\n", - " 'modified': None},\n", - " {'uri': 'http://www.phenome-fppn.fr/m3p/Prov_leaf_temperature_thermocouple_sensor_degree_celsius_thc_emb_37',\n", - " 'name': 'Prov_leaf temperature_thermocouple sensor_degree celsius_thc_emb_37',\n", - " 'description': 'acquisition of leaf temperature_thermocouple sensor_degree celsius and thc_emb_37',\n", - " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", - " 'uri': None,\n", - " 'start_date': None,\n", - " 'end_date': None,\n", - " 'settings': None}],\n", - " 'prov_agent': [{'uri': 'm3p:id/deviceAttribut/eo/2017/sa1700037',\n", - " 'rdf_type': 'vocabulary:Thermocouple',\n", - " 'settings': {'site': 'p'}}],\n", - " 'publisher': None,\n", - " 'issued': None,\n", - " 'modified': None},\n", - " {'uri': 'http://www.phenome-fppn.fr/m3p/Prov_leaf_temperature_thermocouple_sensor_degree_celsius_thc_emb_38',\n", - " 'name': 'Prov_leaf temperature_thermocouple sensor_degree celsius_thc_emb_38',\n", - " 'description': 'acquisition of leaf temperature_thermocouple sensor_degree celsius and thc_emb_38',\n", - " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", - " 'uri': None,\n", - " 'start_date': None,\n", - " 'end_date': None,\n", - " 'settings': None}],\n", - " 'prov_agent': [{'uri': 'm3p:id/deviceAttribut/eo/2017/sa1700038',\n", - " 'rdf_type': 'vocabulary:Thermocouple',\n", - " 'settings': {'site': 'p'}}],\n", - " 'publisher': None,\n", - " 'issued': None,\n", - " 'modified': None},\n", - " {'uri': 'http://www.phenome-fppn.fr/m3p/Prov_leaf_temperature_thermocouple_sensor_degree_celsius_thc_emb_39',\n", - " 'name': 'Prov_leaf temperature_thermocouple sensor_degree celsius_thc_emb_39',\n", - " 'description': 'acquisition of leaf temperature_thermocouple sensor_degree celsius and thc_emb_39',\n", - " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", - " 'uri': None,\n", - " 'start_date': None,\n", - " 'end_date': None,\n", - " 'settings': None}],\n", - " 'prov_agent': [{'uri': 'm3p:id/deviceAttribut/eo/2017/sa1700039',\n", - " 'rdf_type': 'vocabulary:Thermocouple',\n", - " 'settings': {'site': 'p'}}],\n", - " 'publisher': None,\n", - " 'issued': None,\n", - " 'modified': None},\n", - " {'uri': 'http://www.phenome-fppn.fr/m3p/Prov_leaf_temperature_thermocouple_sensor_degree_celsius_thc_emb_40',\n", - " 'name': 'Prov_leaf temperature_thermocouple sensor_degree celsius_thc_emb_40',\n", - " 'description': 'acquisition of leaf temperature_thermocouple sensor_degree celsius and thc_emb_40',\n", - " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", - " 'uri': None,\n", - " 'start_date': None,\n", - " 'end_date': None,\n", - " 'settings': None}],\n", - " 'prov_agent': [{'uri': 'm3p:id/deviceAttribut/eo/2017/sa1700040',\n", - " 'rdf_type': 'vocabulary:Thermocouple',\n", - " 'settings': {'site': 'p'}}],\n", - " 'publisher': None,\n", - " 'issued': None,\n", - " 'modified': None},\n", - " {'uri': 'http://www.phenome-fppn.fr/m3p/Prov_leaf_temperature_thermocouple_sensor_degree_celsius_thc_emb_41',\n", - " 'name': 'Prov_leaf temperature_thermocouple sensor_degree celsius_thc_emb_41',\n", - " 'description': 'acquisition of leaf temperature_thermocouple sensor_degree celsius and thc_emb_41',\n", - " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", - " 'uri': None,\n", - " 'start_date': None,\n", - " 'end_date': None,\n", - " 'settings': None}],\n", - " 'prov_agent': [{'uri': 'm3p:id/deviceAttribut/eo/2017/sa1700041',\n", - " 'rdf_type': 'vocabulary:Thermocouple',\n", - " 'settings': {'site': 'p'}}],\n", - " 'publisher': None,\n", - " 'issued': None,\n", - " 'modified': None},\n", - " {'uri': 'http://www.phenome-fppn.fr/m3p/Prov_leaf_temperature_thermocouple_sensor_degree_celsius_thc_emb_42',\n", - " 'name': 'Prov_leaf temperature_thermocouple sensor_degree celsius_thc_emb_42',\n", - " 'description': 'acquisition of leaf temperature_thermocouple sensor_degree celsius and thc_emb_42',\n", - " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", - " 'uri': None,\n", - " 'start_date': None,\n", - " 'end_date': None,\n", - " 'settings': None}],\n", - " 'prov_agent': [{'uri': 'm3p:id/deviceAttribut/eo/2017/sa1700042',\n", - " 'rdf_type': 'vocabulary:Thermocouple',\n", - " 'settings': {'site': 'p'}}],\n", - " 'publisher': None,\n", - " 'issued': None,\n", - " 'modified': None},\n", - " {'uri': 'http://www.phenome-fppn.fr/m3p/Prov_leaf_temperature_thermocouple_sensor_degree_celsius_thc_emb_43',\n", - " 'name': 'Prov_leaf temperature_thermocouple sensor_degree celsius_thc_emb_43',\n", - " 'description': 'acquisition of leaf temperature_thermocouple sensor_degree celsius and thc_emb_43',\n", - " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", - " 'uri': None,\n", - " 'start_date': None,\n", - " 'end_date': None,\n", - " 'settings': None}],\n", - " 'prov_agent': [{'uri': 'm3p:id/deviceAttribut/eo/2017/sa1700043',\n", - " 'rdf_type': 'vocabulary:Thermocouple',\n", - " 'settings': {'site': 'p'}}],\n", - " 'publisher': None,\n", - " 'issued': None,\n", - " 'modified': None},\n", - " {'uri': 'http://www.phenome-fppn.fr/m3p/Prov_leaf_temperature_thermocouple_sensor_degree_celsius_thc_emb_44',\n", - " 'name': 'Prov_leaf temperature_thermocouple sensor_degree celsius_thc_emb_44',\n", - " 'description': 'acquisition of leaf temperature_thermocouple sensor_degree celsius and thc_emb_44',\n", - " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", - " 'uri': None,\n", - " 'start_date': None,\n", - " 'end_date': None,\n", - " 'settings': None}],\n", - " 'prov_agent': [{'uri': 'm3p:id/deviceAttribut/eo/2017/sa1700044',\n", - " 'rdf_type': 'vocabulary:Thermocouple',\n", - " 'settings': {'site': 'p'}}],\n", - " 'publisher': None,\n", - " 'issued': None,\n", - " 'modified': None},\n", - " {'uri': 'http://www.phenome-fppn.fr/m3p/Prov_leaf_temperature_thermocouple_sensor_degree_celsius_thc_emb_45',\n", - " 'name': 'Prov_leaf temperature_thermocouple sensor_degree celsius_thc_emb_45',\n", - " 'description': 'acquisition of leaf temperature_thermocouple sensor_degree celsius and thc_emb_45',\n", - " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", - " 'uri': None,\n", - " 'start_date': None,\n", - " 'end_date': None,\n", - " 'settings': None}],\n", - " 'prov_agent': [{'uri': 'm3p:id/deviceAttribut/eo/2017/sa1700045',\n", - " 'rdf_type': 'vocabulary:Thermocouple',\n", - " 'settings': {'site': 'p'}}],\n", - " 'publisher': None,\n", - " 'issued': None,\n", - " 'modified': None},\n", - " {'uri': 'http://www.phenome-fppn.fr/m3p/Prov_leaf_temperature_thermocouple_sensor_degree_celsius_thc_emb_46',\n", - " 'name': 'Prov_leaf temperature_thermocouple sensor_degree celsius_thc_emb_46',\n", - " 'description': 'acquisition of leaf temperature_thermocouple sensor_degree celsius and thc_emb_46',\n", - " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", - " 'uri': None,\n", - " 'start_date': None,\n", - " 'end_date': None,\n", - " 'settings': None}],\n", - " 'prov_agent': [{'uri': 'm3p:id/deviceAttribut/eo/2017/sa1700046',\n", - " 'rdf_type': 'vocabulary:Thermocouple',\n", - " 'settings': {'site': 'p'}}],\n", - " 'publisher': None,\n", - " 'issued': None,\n", - " 'modified': None},\n", - " {'uri': 'http://www.phenome-fppn.fr/m3p/Prov_leaf_temperature_thermocouple_sensor_degree_celsius_thc_emb_47',\n", - " 'name': 'Prov_leaf temperature_thermocouple sensor_degree celsius_thc_emb_47',\n", - " 'description': 'acquisition of leaf temperature_thermocouple sensor_degree celsius and thc_emb_47',\n", - " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", - " 'uri': None,\n", - " 'start_date': None,\n", - " 'end_date': None,\n", - " 'settings': None}],\n", - " 'prov_agent': [{'uri': 'm3p:id/deviceAttribut/eo/2017/sa1700047',\n", - " 'rdf_type': 'vocabulary:Thermocouple',\n", - " 'settings': {'site': 'p'}}],\n", - " 'publisher': None,\n", - " 'issued': None,\n", - " 'modified': None},\n", - " {'uri': 'http://www.phenome-fppn.fr/m3p/Prov_leaf_temperature_thermocouple_sensor_degree_celsius_thc_emb_48',\n", - " 'name': 'Prov_leaf temperature_thermocouple sensor_degree celsius_thc_emb_48',\n", - " 'description': 'acquisition of leaf temperature_thermocouple sensor_degree celsius and thc_emb_48',\n", - " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", - " 'uri': None,\n", - " 'start_date': None,\n", - " 'end_date': None,\n", - " 'settings': None}],\n", - " 'prov_agent': [{'uri': 'm3p:id/deviceAttribut/eo/2017/sa1700048',\n", - " 'rdf_type': 'vocabulary:Thermocouple',\n", - " 'settings': {'site': 'p'}}],\n", - " 'publisher': None,\n", - " 'issued': None,\n", - " 'modified': None},\n", - " {'uri': 'http://www.phenome-fppn.fr/m3p/Prov_leaf_temperature_thermocouple_sensor_degree_celsius_thc_emb_50',\n", - " 'name': 'Prov_leaf temperature_thermocouple sensor_degree celsius_thc_emb_50',\n", - " 'description': 'acquisition of leaf temperature_thermocouple sensor_degree celsius and thc_emb_50',\n", - " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", - " 'uri': None,\n", - " 'start_date': None,\n", - " 'end_date': None,\n", - " 'settings': None}],\n", - " 'prov_agent': [{'uri': 'm3p:id/deviceAttribut/eo/2017/sa1700050',\n", - " 'rdf_type': 'vocabulary:Thermocouple',\n", - " 'settings': {'site': 'p'}}],\n", - " 'publisher': None,\n", - " 'issued': None,\n", - " 'modified': None},\n", - " {'uri': 'http://www.phenome-fppn.fr/m3p/Prov_leaf_temperature_thermocouple_sensor_degree_celsius_thc_emb_51',\n", - " 'name': 'Prov_leaf temperature_thermocouple sensor_degree celsius_thc_emb_51',\n", - " 'description': 'acquisition of leaf temperature_thermocouple sensor_degree celsius and thc_emb_51',\n", - " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", - " 'uri': None,\n", - " 'start_date': None,\n", - " 'end_date': None,\n", - " 'settings': None}],\n", - " 'prov_agent': [{'uri': 'm3p:id/deviceAttribut/eo/2017/sa1700051',\n", - " 'rdf_type': 'vocabulary:Thermocouple',\n", - " 'settings': {'site': 'p'}}],\n", - " 'publisher': None,\n", - " 'issued': None,\n", - " 'modified': None},\n", - " {'uri': 'http://www.phenome-fppn.fr/m3p/Prov_leaf_temperature_thermocouple_sensor_degree_celsius_thc_emb_52',\n", - " 'name': 'Prov_leaf temperature_thermocouple sensor_degree celsius_thc_emb_52',\n", - " 'description': 'acquisition of leaf temperature_thermocouple sensor_degree celsius and thc_emb_52',\n", - " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", - " 'uri': None,\n", - " 'start_date': None,\n", - " 'end_date': None,\n", - " 'settings': None}],\n", - " 'prov_agent': [{'uri': 'm3p:id/deviceAttribut/eo/2017/sa1700052',\n", - " 'rdf_type': 'vocabulary:Thermocouple',\n", - " 'settings': {'site': 'p'}}],\n", - " 'publisher': None,\n", - " 'issued': None,\n", - " 'modified': None},\n", - " {'uri': 'http://www.phenome-fppn.fr/m3p/Prov_leaf_temperature_thermocouple_sensor_degree_celsius_thc_emb_53',\n", - " 'name': 'Prov_leaf temperature_thermocouple sensor_degree celsius_thc_emb_53',\n", - " 'description': 'acquisition of leaf temperature_thermocouple sensor_degree celsius and thc_emb_53',\n", - " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", - " 'uri': None,\n", - " 'start_date': None,\n", - " 'end_date': None,\n", - " 'settings': None}],\n", - " 'prov_agent': [{'uri': 'm3p:id/deviceAttribut/eo/2017/sa1700053',\n", - " 'rdf_type': 'vocabulary:Thermocouple',\n", - " 'settings': {'site': 'p'}}],\n", - " 'publisher': None,\n", - " 'issued': None,\n", - " 'modified': None},\n", - " {'uri': 'http://www.phenome-fppn.fr/m3p/Prov_leaf_temperature_thermocouple_sensor_degree_celsius_thc_emb_54',\n", - " 'name': 'Prov_leaf temperature_thermocouple sensor_degree celsius_thc_emb_54',\n", - " 'description': 'acquisition of leaf temperature_thermocouple sensor_degree celsius and thc_emb_54',\n", - " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", - " 'uri': None,\n", - " 'start_date': None,\n", - " 'end_date': None,\n", - " 'settings': None}],\n", - " 'prov_agent': [{'uri': 'm3p:id/deviceAttribut/eo/2017/sa1700054',\n", - " 'rdf_type': 'vocabulary:Thermocouple',\n", - " 'settings': {'site': 'p'}}],\n", - " 'publisher': None,\n", - " 'issued': None,\n", - " 'modified': None},\n", - " {'uri': 'http://www.phenome-fppn.fr/m3p/Prov_leaf_temperature_thermocouple_sensor_degree_celsius_thc_emb_55',\n", - " 'name': 'Prov_leaf temperature_thermocouple sensor_degree celsius_thc_emb_55',\n", - " 'description': 'acquisition of leaf temperature_thermocouple sensor_degree celsius and thc_emb_55',\n", - " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", - " 'uri': None,\n", - " 'start_date': None,\n", - " 'end_date': None,\n", - " 'settings': None}],\n", - " 'prov_agent': [{'uri': 'm3p:id/deviceAttribut/eo/2017/sa1700055',\n", - " 'rdf_type': 'vocabulary:Thermocouple',\n", - " 'settings': {'site': 'p'}}],\n", - " 'publisher': None,\n", - " 'issued': None,\n", - " 'modified': None}]}" + "['standard_provenance',\n", + " 'Prov_air humidity_weather station_percentage_hr01_p',\n", + " 'Prov_air humidity_weather station_percentage_hr02_p',\n", + " 'Prov_air humidity_weather station_percentage_hr03_p',\n", + " 'Prov_air humidity_weather station_percentage_hr04_p',\n", + " 'Prov_air humidity_weather station_percentage_hr05_p',\n", + " 'Prov_air humidity_weather station_percentage_hr06_p',\n", + " 'Prov_air humidity_weather station_percentage_hr07_p',\n", + " 'Prov_air humidity_weather station_percentage_hr08_p',\n", + " 'Prov_air humidity_weather station_percentage_hr09_p',\n", + " 'Prov_air humidity_weather station_percentage_hr10_p',\n", + " 'Prov_PAR Light_weather station_micromole.m-2.s-1_par01_p',\n", + " 'Prov_PAR Light_weather station_micromole.m-2.s-1_par02_p',\n", + " 'Prov_PAR Light_weather station_micromole.m-2.s-1_par03_p',\n", + " 'Prov_PAR Light_weather station_micromole.m-2.s-1_par04_p',\n", + " 'Prov_PAR Light_weather station_micromole.m-2.s-1_par05_p',\n", + " 'Prov_PAR Light_weather station_micromole.m-2.s-1_par06_p',\n", + " 'Prov_PAR Light_weather station_micromole.m-2.s-1_par07_p',\n", + " 'Prov_PAR Light_weather station_micromole.m-2.s-1_par08_p',\n", + " 'Prov_PAR Light_weather station_micromole.m-2.s-1_par09_p',\n", + " 'Prov_PAR Light_weather station_micromole.m-2.s-1_par10_p',\n", + " 'Prov_air temperature_weather station_degree celsius_tair01_p',\n", + " 'Prov_air temperature_weather station_degree celsius_tair02_p',\n", + " 'Prov_diffuse PAR light_sensor_micromole.m-2.s-1_BF5',\n", + " 'Prov_direct PAR light_sensor_micromole.m-2.s-1_BF5',\n", + " 'Prov_air temperature_weather station_degree celsius_tair03_p',\n", + " 'Prov_air temperature_weather station_degree celsius_tair04_p',\n", + " 'Prov_air temperature_weather station_degree celsius_tair05_p',\n", + " 'Prov_air temperature_weather station_degree celsius_tair06_p',\n", + " 'Prov_air temperature_weather station_degree celsius_tair07_p',\n", + " 'Prov_air temperature_weather station_degree celsius_tair08_p',\n", + " 'Prov_air temperature_weather station_degree celsius_tair09_p',\n", + " 'Prov_air temperature_weather station_degree celsius_tair10_p',\n", + " 'Prov_watering_WateringStation02_water',\n", + " 'Prov_watering_WateringStation04_water',\n", + " 'Prov_watering_WateringStation04_watermaize',\n", + " 'Prov_watering_WateringStation02_watermaize',\n", + " 'Prov_watering_WateringStation03_waterwheat',\n", + " 'Prov_watering_WateringStation05_waterwheat',\n", + " 'Prov_watering_WateringStation01_waterwheat',\n", + " 'Prov_weighing_WateringStation05_ARCH2020-01-20',\n", + " 'Prov_weighing_WateringStation03_ARCH2020-01-20',\n", + " 'Prov_weighing_WateringStation04_ARCH2020-01-20',\n", + " 'Prov_weighing_WateringStation02_ARCH2020-01-20',\n", + " 'Prov_weighing_WateringStation01_ARCH2020-01-20',\n", + " 'Prov_weighing_OperatorStation01_ARCH2020-01-20',\n", + " 'Prov_weighing_WateringStation01_DYN2020-05-15',\n", + " 'Prov_watering_WateringStation01_water',\n", + " 'Prov_leaf temperature_thermocouple sensor_degree celsius_thc_emb_02',\n", + " 'Prov_leaf temperature_thermocouple sensor_degree celsius_thc_emb_03',\n", + " 'Prov_leaf temperature_thermocouple sensor_degree celsius_thc_emb_04',\n", + " 'Prov_leaf temperature_thermocouple sensor_degree celsius_thc_emb_05',\n", + " 'Prov_leaf temperature_thermocouple sensor_degree celsius_thc_emb_06',\n", + " 'Prov_leaf temperature_thermocouple sensor_degree celsius_thc_emb_07',\n", + " 'Prov_leaf temperature_thermocouple sensor_degree celsius_thc_emb_08',\n", + " 'Prov_leaf temperature_thermocouple sensor_degree celsius_thc_emb_09',\n", + " 'Prov_leaf temperature_thermocouple sensor_degree celsius_thc_emb_10',\n", + " 'Prov_leaf temperature_thermocouple sensor_degree celsius_thc_emb_11',\n", + " 'Prov_leaf temperature_thermocouple sensor_degree celsius_thc_emb_12',\n", + " 'Prov_leaf temperature_thermocouple sensor_degree celsius_thc_emb_13',\n", + " 'Prov_leaf temperature_thermocouple sensor_degree celsius_thc_emb_14',\n", + " 'Prov_leaf temperature_thermocouple sensor_degree celsius_thc_emb_15',\n", + " 'Prov_leaf temperature_thermocouple sensor_degree celsius_thc_emb_16',\n", + " 'Prov_leaf temperature_thermocouple sensor_degree celsius_thc_emb_17',\n", + " 'Prov_leaf temperature_thermocouple sensor_degree celsius_thc_emb_18',\n", + " 'Prov_leaf temperature_thermocouple sensor_degree celsius_thc_emb_19',\n", + " 'Prov_leaf temperature_thermocouple sensor_degree celsius_thc_emb_20',\n", + " 'Prov_leaf temperature_thermocouple sensor_degree celsius_thc_emb_21',\n", + " 'Prov_leaf temperature_thermocouple sensor_degree celsius_thc_emb_22',\n", + " 'Prov_leaf temperature_thermocouple sensor_degree celsius_thc_emb_23',\n", + " 'Prov_leaf temperature_thermocouple sensor_degree celsius_thc_emb_24',\n", + " 'Prov_leaf temperature_thermocouple sensor_degree celsius_thc_emb_25',\n", + " 'Prov_leaf temperature_thermocouple sensor_degree celsius_thc_emb_26',\n", + " 'Prov_leaf temperature_thermocouple sensor_degree celsius_thc_emb_28',\n", + " 'Prov_leaf temperature_thermocouple sensor_degree celsius_thc_emb_29',\n", + " 'Prov_leaf temperature_thermocouple sensor_degree celsius_thc_emb_30',\n", + " 'Prov_leaf temperature_thermocouple sensor_degree celsius_thc_emb_31',\n", + " 'Prov_leaf temperature_thermocouple sensor_degree celsius_thc_emb_32',\n", + " 'Prov_leaf temperature_thermocouple sensor_degree celsius_thc_emb_33',\n", + " 'Prov_leaf temperature_thermocouple sensor_degree celsius_thc_emb_34',\n", + " 'Prov_leaf temperature_thermocouple sensor_degree celsius_thc_emb_35',\n", + " 'Prov_leaf temperature_thermocouple sensor_degree celsius_thc_emb_36',\n", + " 'Prov_leaf temperature_thermocouple sensor_degree celsius_thc_emb_37',\n", + " 'Prov_leaf temperature_thermocouple sensor_degree celsius_thc_emb_38',\n", + " 'Prov_leaf temperature_thermocouple sensor_degree celsius_thc_emb_39',\n", + " 'Prov_leaf temperature_thermocouple sensor_degree celsius_thc_emb_40',\n", + " 'Prov_leaf temperature_thermocouple sensor_degree celsius_thc_emb_41',\n", + " 'Prov_leaf temperature_thermocouple sensor_degree celsius_thc_emb_42',\n", + " 'Prov_leaf temperature_thermocouple sensor_degree celsius_thc_emb_43',\n", + " 'Prov_leaf temperature_thermocouple sensor_degree celsius_thc_emb_44',\n", + " 'Prov_leaf temperature_thermocouple sensor_degree celsius_thc_emb_45',\n", + " 'Prov_leaf temperature_thermocouple sensor_degree celsius_thc_emb_46',\n", + " 'Prov_leaf temperature_thermocouple sensor_degree celsius_thc_emb_47',\n", + " 'Prov_leaf temperature_thermocouple sensor_degree celsius_thc_emb_48',\n", + " 'Prov_leaf temperature_thermocouple sensor_degree celsius_thc_emb_50',\n", + " 'Prov_leaf temperature_thermocouple sensor_degree celsius_thc_emb_51',\n", + " 'Prov_leaf temperature_thermocouple sensor_degree celsius_thc_emb_52',\n", + " 'Prov_leaf temperature_thermocouple sensor_degree celsius_thc_emb_53',\n", + " 'Prov_leaf temperature_thermocouple sensor_degree celsius_thc_emb_54',\n", + " 'Prov_leaf temperature_thermocouple sensor_degree celsius_thc_emb_55',\n", + " 'Prov_leaf temperature_thermocouple sensor_degree celsius_thc_emb_56',\n", + " 'Prov_leaf temperature_thermocouple sensor_degree celsius_thc_emb_57',\n", + " 'Prov_leaf temperature_thermocouple sensor_degree celsius_thc_emb_58',\n", + " 'Prov_leaf temperature_thermocouple sensor_degree celsius_thc_emb_59',\n", + " 'Prov_leaf temperature_thermocouple sensor_degree celsius_thc_emb_60',\n", + " 'Prov_weighing_WateringStation05_DYN2020-05-15',\n", + " 'Prov_weighing_WateringStation03_DYN2020-05-15',\n", + " 'Prov_weighing_WateringStation02_DYN2020-05-15',\n", + " 'Prov_weighing_WateringStation04_DYN2020-05-15',\n", + " 'Prov_watering_WateringStation05_water',\n", + " 'Prov_watering_WateringStation03_water',\n", + " 'Prov_CarbonDioxide_sensor_part per million_aria_co2_cE2',\n", + " 'Prov_CarbonDioxide_sensor_part per million_aria_co2_p',\n", + " 'Prov_air humidity_weather station_percentage_aria_hr1_p',\n", + " 'Prov_air humidity_weather station_percentage_aria_hr_cE2',\n", + " 'Prov_air humidity_weather station_percentage_aria_hr_ext',\n", + " 'Prov_net irradiance_calculated variable_watt.m2_aria_radiation_ext',\n", + " 'Prov_air temperature_weather station_degree celsius_aria_tair01_p',\n", + " 'Prov_air temperature_weather station_degree celsius_aria_tair02_p',\n", + " 'Prov_air temperature_weather station_degree celsius_aria_tair_ext',\n", + " 'Prov_air temperature_weather station_degree celsius_aria_tairHaute01_p',\n", + " 'Prov_air temperature_weather station_degree celsius_aria_tairHaute02_p',\n", + " 'Prov_Greenhouse_Lightning_Setpoint_Boolean_aria_eclairage1_p',\n", + " 'Prov_Greenhouse_Lightning_Setpoint_Boolean_aria_eclairage2_p',\n", + " 'Prov_Greenhouse_Lightning_Setpoint_Boolean_aria_eclairage3_p',\n", + " 'Prov_Greenhouse_Lightning_Setpoint_Boolean_aria_eclairage4_s1',\n", + " 'Prov_Greenhouse_Lightning_Setpoint_Boolean_aria_eclairage5_s1',\n", + " 'Prov_Greenhouse_Lightning_Setpoint_Boolean_aria_eclairage6_s1',\n", + " 'Prov_Greenhouse_Shading_Setpoint_Boolean_aria_ecranBardage1_p',\n", + " 'Prov_Greenhouse_Shading_Setpoint_Boolean_aria_ecranBardage2_p',\n", + " 'Prov_Greenhouse_Shading_Setpoint_Boolean_aria_ecranPignon_p',\n", + " 'Prov_Greenhouse_Shading_Setpoint_Boolean_aria_ecranPlan_p',\n", + " 'TEST_OPENSILEX_IRODS',\n", + " 'Prov_ARCHTEST_RICE2023_6650_ImagingStation03_Side',\n", + " 'Prov_ARCHTEST_RICE2023_6650_ImagingStation01_Side',\n", + " 'Prov_ARCHTEST_RICE2023_6650_ImagingStation02_Side',\n", + " 'Prov_ARCHTEST_RICE2023_6650_ImagingStation03_Top',\n", + " 'Prov_ARCHTEST_RICE2023_6650_ImagingStation01_Top',\n", + " 'Prov_ARCHTEST_RICE2023_6650_ImagingStation02_Top',\n", + " 'Prov_weighing_WateringStation03_ARCHTEST_RICE2023',\n", + " 'Prov_weighing_WateringStation05_ARCHTEST_RICE2023',\n", + " 'Prov_weighing_WateringStation02_ARCHTEST_RICE2023',\n", + " 'Prov_weighing_WateringStation04_ARCHTEST_RICE2023',\n", + " 'Prov_watering_WateringStation03_6l',\n", + " 'Prov_watering_WateringStation02_6l',\n", + " 'Prov_watering_WateringStation05_9l',\n", + " 'Prov_watering_WateringStation04_9l',\n", + " 'Prov_watering_WateringStation04_6l',\n", + " 'Prov_watering_WateringStation05_6l']" ] }, - "execution_count": 37, + "execution_count": 35, "metadata": {}, "output_type": "execute_result" } @@ -7221,55 +1762,47 @@ "id": "cc1bb3ab-c43b-4712-8296-6cfa9a702450", "metadata": {}, "source": [ - "#### Get specific provenance with URI" + "#### Get specific provenance details" ] }, { "cell_type": "code", - "execution_count": 38, + "execution_count": 36, "id": "17dd3c58-4736-4078-8430-1ee607cb6b96", "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "{'metadata': {'pagination': {'pageSize': 0,\n", - " 'currentPage': 0,\n", - " 'totalCount': 0,\n", - " 'totalPages': 0,\n", - " 'limitCount': 0,\n", - " 'hasNextPage': False},\n", - " 'status': [],\n", - " 'datafiles': []},\n", - " 'result': {'uri': 'http://www.phenome-fppn.fr/m3p/Prov_watering_WateringStation05_6l',\n", - " 'name': 'Prov_watering_WateringStation05_6l',\n", - " 'description': 'acquisition of WateringStation05 and 6l [2023-05-17__13-37-01]',\n", - " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", - " 'uri': None,\n", - " 'start_date': '2023-03-01T00:00:00Z',\n", - " 'end_date': None,\n", - " 'settings': None}],\n", - " 'prov_agent': [{'uri': 'http://www.phenome-fppn.fr/m3p/2019/s19005',\n", - " 'rdf_type': 'vocabulary:WeighingScale',\n", - " 'settings': None},\n", - " {'uri': 'http://www.phenome-fppn.fr/m3p/2019/v1911',\n", - " 'rdf_type': 'vocabulary:Station',\n", - " 'settings': None},\n", - " {'uri': 'http://www.phenome-fppn.fr/m3p/2020/a20005',\n", - " 'rdf_type': 'vocabulary:WateringPump',\n", - " 'settings': None}],\n", - " 'publisher': None,\n", - " 'issued': None,\n", - " 'modified': None}}" + "{'uri': 'http://www.phenome-fppn.fr/m3p/Prov_watering_WateringStation01_water',\n", + " 'name': 'Prov_watering_WateringStation01_water',\n", + " 'description': 'acquisition of WateringStation01 and water [2021-11-17__10-55-32]',\n", + " 'prov_activity': [{'rdf_type': 'vocabulary:MeasuresAcquisition',\n", + " 'uri': None,\n", + " 'start_date': '2020-01-01T00:00:00Z',\n", + " 'end_date': None,\n", + " 'settings': None}],\n", + " 'prov_agent': [{'uri': 'http://www.phenome-fppn.fr/m3p/2019/s19001',\n", + " 'rdf_type': 'vocabulary:WeighingScale',\n", + " 'settings': None},\n", + " {'uri': 'http://www.phenome-fppn.fr/m3p/2020/a20001',\n", + " 'rdf_type': 'vocabulary:WateringPump',\n", + " 'settings': None},\n", + " {'uri': 'http://www.phenome-fppn.fr/m3p/2019/v1907',\n", + " 'rdf_type': 'vocabulary:Station',\n", + " 'settings': None}],\n", + " 'publisher': None,\n", + " 'issued': None,\n", + " 'modified': None}" ] }, - "execution_count": 38, + "execution_count": 36, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "phis.get_provenance(uri='http://www.phenome-fppn.fr/m3p/Prov_watering_WateringStation05_6l')" + "phis.get_provenance(provenance_name='Prov_watering_WateringStation01_water')" ] }, { @@ -7282,39 +1815,17 @@ }, { "cell_type": "code", - "execution_count": 39, + "execution_count": 37, "id": "13fd53b9-2138-4b36-b48f-21a5f91f54dc", "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "{'metadata': {'pagination': {'pageSize': 100,\n", - " 'currentPage': 0,\n", - " 'totalCount': 1,\n", - " 'totalPages': 1,\n", - " 'limitCount': 0,\n", - " 'hasNextPage': True},\n", - " 'status': [],\n", - " 'datafiles': []},\n", - " 'result': [{'uri': 'm3p:id/file/1597964400.af46ac07f735ced228cf181aa85ebced',\n", - " 'rdf_type': 'vocabulary:Image',\n", - " 'date': '2020-08-21T00:00:00.000+0100',\n", - " 'timezone': None,\n", - " 'target': 'm3p:id/scientific-object/za20/so-0001zm4531eppn7_lwd1eppn_rep_101_01arch2020-02-03',\n", - " 'provenance': {'uri': 'm3p:provenance/standard_provenance',\n", - " 'prov_used': None,\n", - " 'prov_was_associated_with': None,\n", - " 'settings': None,\n", - " 'experiments': None},\n", - " 'metadata': None,\n", - " 'archive': None,\n", - " 'filename': '7018.tar',\n", - " 'publisher': None,\n", - " 'issued': None}]}" + "['7018.tar']" ] }, - "execution_count": 39, + "execution_count": 37, "metadata": {}, "output_type": "execute_result" } @@ -7328,50 +1839,42 @@ "id": "f7b8ce86-be16-4cac-862d-79bba08ecff8", "metadata": {}, "source": [ - "#### Get specific datafile with URI" + "#### Get specific datafile details" ] }, { "cell_type": "code", - "execution_count": 40, + "execution_count": 38, "id": "149d8501-413d-4d15-bcd1-ea2c9eb182b8", "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "{'metadata': {'pagination': {'pageSize': 0,\n", - " 'currentPage': 0,\n", - " 'totalCount': 0,\n", - " 'totalPages': 0,\n", - " 'limitCount': 0,\n", - " 'hasNextPage': False},\n", - " 'status': [],\n", - " 'datafiles': []},\n", - " 'result': {'uri': 'm3p:id/file/1597964400.af46ac07f735ced228cf181aa85ebced',\n", - " 'rdf_type': 'vocabulary:Image',\n", - " 'date': '2020-08-21T00:00:00.000+0100',\n", - " 'timezone': None,\n", - " 'target': 'm3p:id/scientific-object/za20/so-0001zm4531eppn7_lwd1eppn_rep_101_01arch2020-02-03',\n", - " 'provenance': {'uri': 'm3p:provenance/standard_provenance',\n", - " 'prov_used': None,\n", - " 'prov_was_associated_with': None,\n", - " 'settings': None,\n", - " 'experiments': None},\n", - " 'metadata': None,\n", - " 'archive': None,\n", - " 'filename': '7018.tar',\n", - " 'publisher': None,\n", - " 'issued': None}}" + "{'uri': 'm3p:id/file/1597964400.af46ac07f735ced228cf181aa85ebced',\n", + " 'rdf_type': 'vocabulary:Image',\n", + " 'date': '2020-08-21T00:00:00.000+0100',\n", + " 'timezone': None,\n", + " 'target': 'm3p:id/scientific-object/za20/so-0001zm4531eppn7_lwd1eppn_rep_101_01arch2020-02-03',\n", + " 'provenance': {'uri': 'm3p:provenance/standard_provenance',\n", + " 'prov_used': None,\n", + " 'prov_was_associated_with': None,\n", + " 'settings': None,\n", + " 'experiments': None},\n", + " 'metadata': None,\n", + " 'archive': None,\n", + " 'filename': '7018.tar',\n", + " 'publisher': None,\n", + " 'issued': None}" ] }, - "execution_count": 40, + "execution_count": 38, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "phis.get_datafile(uri='m3p:id/file/1597964400.af46ac07f735ced228cf181aa85ebced')" + "phis.get_datafile(datafile_name='7018.tar')" ] }, { @@ -7384,362 +1887,82 @@ }, { "cell_type": "code", - "execution_count": 41, + "execution_count": 39, "id": "7725a021-8e76-4e2d-9320-bfb24df22125", "metadata": {}, "outputs": [ { - "data": { - "text/plain": [ - "{'metadata': {'pagination': {'pageSize': 100,\n", - " 'currentPage': 0,\n", - " 'totalCount': 30,\n", - " 'totalPages': 1,\n", - " 'limitCount': 0,\n", - " 'hasNextPage': True},\n", - " 'status': [],\n", - " 'datafiles': []},\n", - " 'result': [{'uri': 'm3p:id/event/cb8b96ea-4d0b-4bc6-804f-e3cf2b56092e',\n", - " 'publisher': None,\n", - " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeev#ManualCalibration',\n", - " 'rdf_type_name': 'Manual calibration',\n", - " 'start': None,\n", - " 'end': '2024-05-02T15:02Z',\n", - " 'is_instant': True,\n", - " 'description': 'New settings for ZB24 experiment',\n", - " 'targets': ['m3p:id/device/imagingstation02'],\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'm3p:id/event/690cf5fd-965d-49d7-a251-b290f5cc35f1',\n", - " 'publisher': None,\n", - " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeev#ManualCalibration',\n", - " 'rdf_type_name': 'Manual calibration',\n", - " 'start': None,\n", - " 'end': '2024-05-02T15:00Z',\n", - " 'is_instant': True,\n", - " 'description': 'New settings for ZB24 experiment',\n", - " 'targets': ['m3p:id/device/imagingstation01'],\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'm3p:id/event/aa5f7ea9-de27-4921-b080-570593fc7284',\n", - " 'publisher': None,\n", - " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeev#ManualCalibration',\n", - " 'rdf_type_name': 'Manual calibration',\n", - " 'start': None,\n", - " 'end': '2024-02-26T12:00Z',\n", - " 'is_instant': True,\n", - " 'description': 'New settings for ZA24 experiment (zoom out)',\n", - " 'targets': ['m3p:id/device/imagingstation01',\n", - " 'm3p:id/device/imagingstation03',\n", - " 'm3p:id/device/imagingstation02'],\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'm3p:id/event/4a69aa52-c041-4fbb-bbc0-f86a4916e1da',\n", - " 'publisher': None,\n", - " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeev#AssociationWithSensingDevice',\n", - " 'rdf_type_name': 'Association with a sensing device',\n", - " 'start': None,\n", - " 'end': '2015-01-01T15:22:56.337Z',\n", - " 'is_instant': True,\n", - " 'description': None,\n", - " 'targets': ['m3p:id/device/imagingstation02'],\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'm3p:id/event/ffcb426f-b605-4c7e-945a-c0237f14d1e5',\n", - " 'publisher': None,\n", - " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeev#AssociationWithSensingDevice',\n", - " 'rdf_type_name': 'Association with a sensing device',\n", - " 'start': None,\n", - " 'end': '2015-01-01T15:21:24.658Z',\n", - " 'is_instant': True,\n", - " 'description': None,\n", - " 'targets': ['m3p:id/device/imagingstation03'],\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'm3p:id/event/fa52d4e5-a364-4244-95f9-11c754008e76',\n", - " 'publisher': None,\n", - " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeev#AssociationWithSensingDevice',\n", - " 'rdf_type_name': 'Association with a sensing device',\n", - " 'start': None,\n", - " 'end': '2015-01-01T15:20:49.466Z',\n", - " 'is_instant': True,\n", - " 'description': None,\n", - " 'targets': ['m3p:id/device/imagingstation02'],\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'm3p:id/event/0829e9b7-ce77-4131-b8f0-d5158029b1df',\n", - " 'publisher': None,\n", - " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeev#AssociationWithSensingDevice',\n", - " 'rdf_type_name': 'Association with a sensing device',\n", - " 'start': None,\n", - " 'end': '2015-01-01T15:15:50.553Z',\n", - " 'is_instant': True,\n", - " 'description': None,\n", - " 'targets': ['m3p:id/device/imagingstation01'],\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'm3p:set/event/01a64e71-c4b7-4d82-8334-ebd8cc1e2f69',\n", - " 'publisher': None,\n", - " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeev#Move',\n", - " 'rdf_type_name': 'Move',\n", - " 'start': None,\n", - " 'end': '2011-05-01T00:00Z',\n", - " 'is_instant': True,\n", - " 'description': None,\n", - " 'targets': ['http://www.phenome-fppn.fr/m3p/arch/2016/sa1600032'],\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'm3p:set/event/0d9bc611-7959-4a4c-944e-17ccc60b413a',\n", - " 'publisher': None,\n", - " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeev#Move',\n", - " 'rdf_type_name': 'Move',\n", - " 'start': None,\n", - " 'end': '2011-05-01T00:00Z',\n", - " 'is_instant': True,\n", - " 'description': None,\n", - " 'targets': ['http://www.phenome-fppn.fr/m3p/arch/2016/sa1600035'],\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'm3p:set/event/0eaf87d7-5570-4537-b9f4-68b07949a6b7',\n", - " 'publisher': None,\n", - " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeev#Move',\n", - " 'rdf_type_name': 'Move',\n", - " 'start': None,\n", - " 'end': '2011-05-01T00:00Z',\n", - " 'is_instant': True,\n", - " 'description': None,\n", - " 'targets': ['http://www.phenome-fppn.fr/m3p/arch/2016/sa1600036'],\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'm3p:set/event/10f1634a-9058-4f43-a724-335d77cdba02',\n", - " 'publisher': None,\n", - " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeev#Move',\n", - " 'rdf_type_name': 'Move',\n", - " 'start': None,\n", - " 'end': '2011-05-01T00:00Z',\n", - " 'is_instant': True,\n", - " 'description': None,\n", - " 'targets': ['http://www.phenome-fppn.fr/m3p/ec1/2016/sa1600059'],\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'm3p:set/event/13d3b76d-d94d-43f7-9e5f-5970f81b6db1',\n", - " 'publisher': None,\n", - " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeev#Move',\n", - " 'rdf_type_name': 'Move',\n", - " 'start': None,\n", - " 'end': '2011-05-01T00:00Z',\n", - " 'is_instant': True,\n", - " 'description': None,\n", - " 'targets': ['http://www.phenome-fppn.fr/m3p/eo/2016/sa1600003'],\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'm3p:set/event/2342104b-21a3-433c-987d-578106cc9cf8',\n", - " 'publisher': None,\n", - " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeev#Move',\n", - " 'rdf_type_name': 'Move',\n", - " 'start': None,\n", - " 'end': '2011-05-01T00:00Z',\n", - " 'is_instant': True,\n", - " 'description': None,\n", - " 'targets': ['http://www.phenome-fppn.fr/m3p/eo/2016/sa1600006'],\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'm3p:set/event/25c545d3-b602-4f3a-bf5a-a3db01ae94e3',\n", - " 'publisher': None,\n", - " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeev#Move',\n", - " 'rdf_type_name': 'Move',\n", - " 'start': None,\n", - " 'end': '2011-05-01T00:00Z',\n", - " 'is_instant': True,\n", - " 'description': None,\n", - " 'targets': ['http://www.phenome-fppn.fr/m3p/eo/2016/sa1600004'],\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'm3p:set/event/283c1acf-d784-46b5-8a44-b8900030b42f',\n", - " 'publisher': None,\n", - " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeev#Move',\n", - " 'rdf_type_name': 'Move',\n", - " 'start': None,\n", - " 'end': '2011-05-01T00:00Z',\n", - " 'is_instant': True,\n", - " 'description': None,\n", - " 'targets': ['http://www.phenome-fppn.fr/m3p/ec1/2016/sa1600060'],\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'm3p:set/event/2d3dc380-3eb2-419c-9987-d6bd68e0fc1a',\n", - " 'publisher': None,\n", - " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeev#Move',\n", - " 'rdf_type_name': 'Move',\n", - " 'start': None,\n", - " 'end': '2011-05-01T00:00Z',\n", - " 'is_instant': True,\n", - " 'description': None,\n", - " 'targets': ['http://www.phenome-fppn.fr/m3p/ec1/2016/sa1600064'],\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'm3p:set/event/3d0355f6-04c0-4f56-84cf-6843a7015579',\n", - " 'publisher': None,\n", - " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeev#Move',\n", - " 'rdf_type_name': 'Move',\n", - " 'start': None,\n", - " 'end': '2011-05-01T00:00Z',\n", - " 'is_instant': True,\n", - " 'description': None,\n", - " 'targets': ['http://www.phenome-fppn.fr/m3p/ec2/2016/sa1600069'],\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'm3p:set/event/3e8d0b14-8312-40ac-b3c2-c4bc6362bd6a',\n", - " 'publisher': None,\n", - " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeev#Move',\n", - " 'rdf_type_name': 'Move',\n", - " 'start': None,\n", - " 'end': '2011-05-01T00:00Z',\n", - " 'is_instant': True,\n", - " 'description': None,\n", - " 'targets': ['http://www.phenome-fppn.fr/m3p/arch/2016/sa1600034'],\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'm3p:set/event/43a2f55f-83a2-4efc-a9c9-5fd35ea597a3',\n", - " 'publisher': None,\n", - " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeev#Move',\n", - " 'rdf_type_name': 'Move',\n", - " 'start': None,\n", - " 'end': '2011-05-01T00:00Z',\n", - " 'is_instant': True,\n", - " 'description': None,\n", - " 'targets': ['http://www.phenome-fppn.fr/m3p/ec2/2016/sa1600068'],\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'm3p:set/event/451c1cdc-e130-462e-9af4-74664e1d05b3',\n", - " 'publisher': None,\n", - " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeev#Move',\n", - " 'rdf_type_name': 'Move',\n", - " 'start': None,\n", - " 'end': '2011-05-01T00:00Z',\n", - " 'is_instant': True,\n", - " 'description': None,\n", - " 'targets': ['http://www.phenome-fppn.fr/m3p/dyn/2016/sa1600009'],\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'm3p:set/event/47d5e5aa-eb59-4b9d-846a-4a79f0a6dec1',\n", - " 'publisher': None,\n", - " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeev#Move',\n", - " 'rdf_type_name': 'Move',\n", - " 'start': None,\n", - " 'end': '2011-05-01T00:00Z',\n", - " 'is_instant': True,\n", - " 'description': None,\n", - " 'targets': ['http://www.phenome-fppn.fr/m3p/arch/2016/sa1600057'],\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'm3p:set/event/77e18d54-d0f2-4ab4-8b94-765b86181396',\n", - " 'publisher': None,\n", - " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeev#Move',\n", - " 'rdf_type_name': 'Move',\n", - " 'start': None,\n", - " 'end': '2011-05-01T00:00Z',\n", - " 'is_instant': True,\n", - " 'description': None,\n", - " 'targets': ['http://www.phenome-fppn.fr/m3p/dyn/2016/sa1600013'],\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'm3p:set/event/89344f84-56dc-42ff-9509-ef654eb3aaa1',\n", - " 'publisher': None,\n", - " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeev#Move',\n", - " 'rdf_type_name': 'Move',\n", - " 'start': None,\n", - " 'end': '2011-05-01T00:00Z',\n", - " 'is_instant': True,\n", - " 'description': None,\n", - " 'targets': ['http://www.phenome-fppn.fr/m3p/ec2/2016/sa1600073'],\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'm3p:set/event/9b1b41ca-805c-420b-a7ad-3d5ea5965eca',\n", - " 'publisher': None,\n", - " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeev#Move',\n", - " 'rdf_type_name': 'Move',\n", - " 'start': None,\n", - " 'end': '2011-05-01T00:00Z',\n", - " 'is_instant': True,\n", - " 'description': None,\n", - " 'targets': ['http://www.phenome-fppn.fr/m3p/eo/2016/sa1600002'],\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'm3p:set/event/a0dc542a-b7ec-48e4-a7a0-1d67aa59f151',\n", - " 'publisher': None,\n", - " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeev#Move',\n", - " 'rdf_type_name': 'Move',\n", - " 'start': None,\n", - " 'end': '2011-05-01T00:00Z',\n", - " 'is_instant': True,\n", - " 'description': None,\n", - " 'targets': ['http://www.phenome-fppn.fr/m3p/eo/2016/sa1600001'],\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'm3p:set/event/a7077d63-c24b-4ad0-a566-5e803a4c7cfb',\n", - " 'publisher': None,\n", - " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeev#Move',\n", - " 'rdf_type_name': 'Move',\n", - " 'start': None,\n", - " 'end': '2011-05-01T00:00Z',\n", - " 'is_instant': True,\n", - " 'description': None,\n", - " 'targets': ['http://www.phenome-fppn.fr/m3p/arch/2016/sa1600037'],\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'm3p:set/event/aa79b006-6afe-47f6-ac73-67b33d77c032',\n", - " 'publisher': None,\n", - " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeev#Move',\n", - " 'rdf_type_name': 'Move',\n", - " 'start': None,\n", - " 'end': '2011-05-01T00:00Z',\n", - " 'is_instant': True,\n", - " 'description': None,\n", - " 'targets': ['http://www.phenome-fppn.fr/m3p/eo/2016/sa1600005'],\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'm3p:set/event/acaad3b9-6d5d-478e-b8ea-29bc66df8692',\n", - " 'publisher': None,\n", - " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeev#Move',\n", - " 'rdf_type_name': 'Move',\n", - " 'start': None,\n", - " 'end': '2011-05-01T00:00Z',\n", - " 'is_instant': True,\n", - " 'description': None,\n", - " 'targets': ['http://www.phenome-fppn.fr/m3p/dyn/2016/sa1600014'],\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'm3p:set/event/d031c196-4ef7-439c-9fb9-6b3f1226b3c0',\n", - " 'publisher': None,\n", - " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeev#Move',\n", - " 'rdf_type_name': 'Move',\n", - " 'start': None,\n", - " 'end': '2011-05-01T00:00Z',\n", - " 'is_instant': True,\n", - " 'description': None,\n", - " 'targets': ['http://www.phenome-fppn.fr/m3p/dyn/2016/sa1600010'],\n", - " 'publication_date': None,\n", - " 'last_updated_date': None},\n", - " {'uri': 'm3p:set/event/e27b1321-c442-44d4-a705-2ee71f40c77b',\n", - " 'publisher': None,\n", - " 'rdf_type': 'http://www.opensilex.org/vocabulary/oeev#Move',\n", - " 'rdf_type_name': 'Move',\n", - " 'start': None,\n", - " 'end': '2011-05-01T00:00Z',\n", - " 'is_instant': True,\n", - " 'description': None,\n", - " 'targets': ['http://www.phenome-fppn.fr/m3p/arch/2016/sa1600033'],\n", - " 'publication_date': None,\n", - " 'last_updated_date': None}]}" - ] - }, - "execution_count": 41, - "metadata": {}, - "output_type": "execute_result" + "name": "stdout", + "output_type": "stream", + "text": [ + "Association with a sensing device events:\n", + "uri: m3p:id/event/4a69aa52-c041-4fbb-bbc0-f86a4916e1da\n", + "target: ImagingStation02\n", + "\n", + "uri: m3p:id/event/ffcb426f-b605-4c7e-945a-c0237f14d1e5\n", + "target: ImagingStation03\n", + "\n", + "uri: m3p:id/event/fa52d4e5-a364-4244-95f9-11c754008e76\n", + "target: ImagingStation02\n", + "\n", + "uri: m3p:id/event/0829e9b7-ce77-4131-b8f0-d5158029b1df\n", + "target: ImagingStation01\n", + "\n", + "\n", + "Manual calibration events:\n", + "uri: m3p:id/event/cb8b96ea-4d0b-4bc6-804f-e3cf2b56092e\n", + "description: New settings for ZB24 experiment\n", + "target: ImagingStation02\n", + "\n", + "uri: m3p:id/event/690cf5fd-965d-49d7-a251-b290f5cc35f1\n", + "description: New settings for ZB24 experiment\n", + "target: ImagingStation01\n", + "\n", + "uri: m3p:id/event/aa5f7ea9-de27-4921-b080-570593fc7284\n", + "description: New settings for ZA24 experiment (zoom out)\n", + "target: ImagingStation01\n", + "target: ImagingStation03\n", + "target: ImagingStation02\n", + "\n", + "\n", + "Move events:\n", + "uri: m3p:set/event/01a64e71-c4b7-4d82-8334-ebd8cc1e2f69\n", + "target: aria_tair01_p\n", + "\n", + "uri: m3p:set/event/0d9bc611-7959-4a4c-944e-17ccc60b413a\n", + "target: aria_tairHaute02_p\n", + "\n", + "uri: m3p:set/event/0eaf87d7-5570-4537-b9f4-68b07949a6b7\n", + "target: aria_hr1_p\n", + "\n", + "uri: m3p:set/event/10f1634a-9058-4f43-a724-335d77cdba02\n", + "target: aria_tair_cE1\n", + "\n", + "uri: m3p:set/event/13d3b76d-d94d-43f7-9e5f-5970f81b6db1\n", + "target: aria_quantiteEauDsAir_ext\n", + "\n", + "uri: m3p:set/event/2342104b-21a3-433c-987d-578106cc9cf8\n", + "target: aria_radiation_ext\n", + "\n", + "uri: m3p:set/event/25c545d3-b602-4f3a-bf5a-a3db01ae94e3\n", + "target: aria_vitesseVent_ext\n", + "\n", + "uri: m3p:set/event/283c1acf-d784-46b5-8a44-b8900030b42f\n", + "target: aria_hr_cE1\n", + "\n", + "uri: m3p:set/event/2d3dc380-3eb2-419c-9987-d6bd68e0fc1a\n", + "target: aria_co2_cE1\n", + "\n", + "uri: m3p:set/event/3d0355f6-04c0-4f56-84cf-6843a7015579\n", + "target: aria_hr_cE2\n", + "\n", + "... (13 more events)\n", + "\n" + ] } ], "source": [ - "phis.get_event()" + "print(phis.get_event(max_results_per_type=10))" ] }, { @@ -7747,12 +1970,12 @@ "id": "9288a120-c65e-449a-b184-00445e17ae32", "metadata": {}, "source": [ - "#### Get specific event with URI" + "#### Get specific event details" ] }, { "cell_type": "code", - "execution_count": 42, + "execution_count": 40, "id": "e7691135-9933-4528-9ba1-eda10db27c19", "metadata": {}, "outputs": [ @@ -7780,7 +2003,7 @@ " 'last_updated_date': None}}" ] }, - "execution_count": 42, + "execution_count": 40, "metadata": {}, "output_type": "execute_result" } @@ -7799,39 +2022,30 @@ }, { "cell_type": "code", - "execution_count": 43, + "execution_count": 41, "id": "7ee85624-495d-4a36-860b-1fe407ab5491", "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "{'metadata': {'pagination': {'pageSize': 14,\n", - " 'currentPage': 0,\n", - " 'totalCount': 14,\n", - " 'totalPages': 1,\n", - " 'limitCount': 0,\n", - " 'hasNextPage': True},\n", - " 'status': [],\n", - " 'datafiles': []},\n", - " 'result': [{'uri': 'http://aims.fao.org/aos/agrovoc/c_4555',\n", - " 'name': 'apple tree'},\n", - " {'uri': 'http://aims.fao.org/aos/agrovoc/c_29128', 'name': 'banana'},\n", - " {'uri': 'http://aims.fao.org/aos/agrovoc/c_3662', 'name': 'barley'},\n", - " {'uri': 'http://aims.fao.org/aos/agrovoc/c_7951', 'name': 'bread wheat'},\n", - " {'uri': 'http://aims.fao.org/aos/agrovoc/c_1066', 'name': 'colza'},\n", - " {'uri': 'http://aims.fao.org/aos/agrovoc/c_7955', 'name': 'durum wheat'},\n", - " {'uri': 'http://aims.fao.org/aos/agrovoc/c_8283', 'name': 'grapevine'},\n", - " {'uri': 'http://aims.fao.org/aos/agrovoc/c_8504', 'name': 'maize'},\n", - " {'uri': 'http://aims.fao.org/aos/agrovoc/c_13199', 'name': 'Pearl millet'},\n", - " {'uri': 'http://aims.fao.org/aos/agrovoc/c_6116', 'name': 'poplar'},\n", - " {'uri': 'http://aims.fao.org/aos/agrovoc/c_5438', 'name': 'rice'},\n", - " {'uri': 'http://aims.fao.org/aos/agrovoc/c_7247', 'name': 'sorghum'},\n", - " {'uri': 'http://aims.fao.org/aos/agrovoc/c_15476', 'name': 'teosintes'},\n", - " {'uri': 'http://aims.fao.org/aos/agrovoc/c_3339', 'name': 'upland cotton'}]}" + "['apple tree',\n", + " 'banana',\n", + " 'barley',\n", + " 'bread wheat',\n", + " 'colza',\n", + " 'durum wheat',\n", + " 'grapevine',\n", + " 'maize',\n", + " 'Pearl millet',\n", + " 'poplar',\n", + " 'rice',\n", + " 'sorghum',\n", + " 'teosintes',\n", + " 'upland cotton']" ] }, - "execution_count": 43, + "execution_count": 41, "metadata": {}, "output_type": "execute_result" } @@ -7850,7 +2064,7 @@ }, { "cell_type": "code", - "execution_count": 44, + "execution_count": 42, "id": "4876c969-c954-417c-875f-7c6fe72a7fe2", "metadata": {}, "outputs": [ @@ -7895,7 +2109,7 @@ " 'github_page': 'https://github.com/OpenSILEX/opensilex'}}" ] }, - "execution_count": 44, + "execution_count": 42, "metadata": {}, "output_type": "execute_result" } diff --git a/src/agroservices/phis/phis.py b/src/agroservices/phis/phis.py index f5b8ae6..cfb7fc0 100644 --- a/src/agroservices/phis/phis.py +++ b/src/agroservices/phis/phis.py @@ -137,7 +137,7 @@ def authenticate(self, identifier='phenoarch@lepse.inra.fr', return token, status_code - def get_experiment(self, uri=None, name=None, year=None, is_ended=None, species=None, factors=None, + def get_experiment_api(self, uri=None, name=None, year=None, is_ended=None, species=None, factors=None, projects=None, is_public=None, facilities=None, order_by=None, page=None, page_size=None): """ This function can either retrieve detailed information about a specific experiment by its URI or list @@ -208,7 +208,7 @@ def get_experiment(self, uri=None, name=None, year=None, is_ended=None, species= return str(e) - def get_variable(self, uri=None, name=None, entity=None, entity_of_interest=None, characteristic=None, + def get_variable_api(self, uri=None, name=None, entity=None, entity_of_interest=None, characteristic=None, method=None, unit=None, group_of_variables=None, not_included_in_group_of_variables=None, data_type=None, time_interval=None, species=None, withAssociatedData=None, experiments=None, scientific_objects=None, devices=None, order_by=None, page=None, page_size=None, sharedResourceInstance=None): @@ -308,7 +308,7 @@ def get_variable(self, uri=None, name=None, entity=None, entity_of_interest=None return str(e) - def get_project(self, uri=None, name=None, year=None, keyword=None, financial_funding=None, order_by=None, + def get_project_api(self, uri=None, name=None, year=None, keyword=None, financial_funding=None, order_by=None, page=None, page_size=None): """ This function can either retrieve detailed information about a specific project by its URI or list @@ -369,7 +369,7 @@ def get_project(self, uri=None, name=None, year=None, keyword=None, financial_fu return str(e) - def get_facility(self, uri=None, pattern=None, organizations=None, order_by=None, page=None, page_size=None): + def get_facility_api(self, uri=None, pattern=None, organizations=None, order_by=None, page=None, page_size=None): """ This function can either retrieve detailed information about a specific facility by its URI or list facilities based on various filtering criteria. @@ -423,7 +423,7 @@ def get_facility(self, uri=None, pattern=None, organizations=None, order_by=None return str(e) - def get_germplasm(self, uri=None, rdf_type=None, name=None, code=None, production_year=None, species=None, variety=None, + def get_germplasm_api(self, uri=None, rdf_type=None, name=None, code=None, production_year=None, species=None, variety=None, accession=None, group_of_germplasm=None, institute=None, experiment=None, parent_germplasms=None, parent_germplasms_m=None, parent_germplasms_f=None, metadata=None, order_by=None, page=None, page_size=None): """ @@ -515,7 +515,7 @@ def get_germplasm(self, uri=None, rdf_type=None, name=None, code=None, productio return str(e) - def get_device(self, uri=None, rdf_type=None, include_subtypes=None, name=None, variable=None, year=None, existence_date=None, + def get_device_api(self, uri=None, rdf_type=None, include_subtypes=None, name=None, variable=None, year=None, existence_date=None, facility=None, brand=None, model=None, serial_number=None, metadata=None, order_by=None, page=None, page_size=None): """ @@ -598,7 +598,7 @@ def get_device(self, uri=None, rdf_type=None, include_subtypes=None, name=None, return str(e) - def get_annotation(self, uri=None, description=None, target=None, motivation=None, author=None, order_by=None, + def get_annotation_api(self, uri=None, description=None, target=None, motivation=None, author=None, order_by=None, page=None, page_size=None): """ This function can either retrieve detailed information about a specific annotation by its URI or list @@ -659,7 +659,7 @@ def get_annotation(self, uri=None, description=None, target=None, motivation=Non return str(e) - def get_document(self, uri=None, rdf_type=None, title=None, date=None, targets=None, authors=None, keyword=None, multiple=None, + def get_document_api(self, uri=None, rdf_type=None, title=None, date=None, targets=None, authors=None, keyword=None, multiple=None, deprecated=None, order_by=None, page=None, page_size=None): """ This function can either retrieve detailed information about a specific document by its URI or list @@ -740,7 +740,7 @@ def get_document(self, uri=None, rdf_type=None, title=None, date=None, targets=N return str(e) - def get_factor(self, uri=None, name=None, description=None, category=None, experiment=None, order_by=None, page=None, + def get_factor_api(self, uri=None, name=None, description=None, category=None, experiment=None, order_by=None, page=None, page_size=None): """ This function can either retrieve detailed information about a specific factor by its URI or list @@ -801,7 +801,7 @@ def get_factor(self, uri=None, name=None, description=None, category=None, exper return str(e) - def get_organization(self, uri=None, pattern=None, organisation_uris=None, page=None, page_size=None): + def get_organization_api(self, uri=None, pattern=None, organisation_uris=None, page=None, page_size=None): """ This function can either retrieve detailed information about a specific organization by its URI or list organizations based on various filtering criteria. @@ -852,7 +852,7 @@ def get_organization(self, uri=None, pattern=None, organisation_uris=None, page= return str(e) - def get_site(self, uri=None, pattern=None, organizations=None, order_by=None, page=None, page_size=None): + def get_site_api(self, uri=None, pattern=None, organizations=None, order_by=None, page=None, page_size=None): """ This function can either retrieve detailed information about a specific site by its URI or list sites based on various filtering criteria. @@ -906,7 +906,7 @@ def get_site(self, uri=None, pattern=None, organizations=None, order_by=None, pa return str(e) - def get_scientific_object(self, uri=None, experiment=None, rdf_types=None, name=None, parent=None, germplasms=None, + def get_scientific_object_api(self, uri=None, experiment=None, rdf_types=None, name=None, parent=None, germplasms=None, factor_levels=None, facility=None, variables=None, devices=None, existence_date=None, creation_date=None, criteria_on_data=None, order_by=None, page=None, page_size=None): """ @@ -992,7 +992,7 @@ def get_scientific_object(self, uri=None, experiment=None, rdf_types=None, name= return str(e) - def get_species(self, sharedResourceInstance=None): + def get_species_api(self, sharedResourceInstance=None): """ Retrieve a list of species based on optional filtering criteria. @@ -1022,7 +1022,7 @@ def get_species(self, sharedResourceInstance=None): return str(e) - def get_system_info(self): + def get_system_info_api(self): """ Retrieve system information. @@ -1043,7 +1043,7 @@ def get_system_info(self): return str(e) - def get_characteristic(self, uri=None, name=None, order_by=None, page=None, page_size=None, sharedResourceInstance=None): + def get_characteristic_api(self, uri=None, name=None, order_by=None, page=None, page_size=None, sharedResourceInstance=None): """ Retrieve specific characteristic information by URI or list characteristics based on filtering criteria. @@ -1096,7 +1096,7 @@ def get_characteristic(self, uri=None, name=None, order_by=None, page=None, page return str(e) - def get_entity(self, uri=None, name=None, order_by=None, page=None, page_size=None, sharedResourceInstance=None): + def get_entity_api(self, uri=None, name=None, order_by=None, page=None, page_size=None, sharedResourceInstance=None): """ Retrieve specific entity information by URI or list entities based on filtering criteria. @@ -1149,7 +1149,7 @@ def get_entity(self, uri=None, name=None, order_by=None, page=None, page_size=No return str(e) - def get_entity_of_interest(self, uri=None, name=None, order_by=None, page=None, page_size=None, sharedResourceInstance=None): + def get_entity_of_interest_api(self, uri=None, name=None, order_by=None, page=None, page_size=None, sharedResourceInstance=None): """ Retrieve specific entity of interest information by URI or list entities of interest based on filtering criteria. @@ -1202,7 +1202,7 @@ def get_entity_of_interest(self, uri=None, name=None, order_by=None, page=None, return str(e) - def get_method(self, uri=None, name=None, order_by=None, page=None, page_size=None, sharedResourceInstance=None): + def get_method_api(self, uri=None, name=None, order_by=None, page=None, page_size=None, sharedResourceInstance=None): """ Retrieve specific method information by URI or list methods based on filtering criteria. @@ -1255,7 +1255,7 @@ def get_method(self, uri=None, name=None, order_by=None, page=None, page_size=No return str(e) - def get_unit(self, uri=None, name=None, order_by=None, page=None, page_size=None, sharedResourceInstance=None): + def get_unit_api(self, uri=None, name=None, order_by=None, page=None, page_size=None, sharedResourceInstance=None): # Get specific unit information by uri if uri: result = self.http_get(self.url + 'core/units/' @@ -1294,7 +1294,7 @@ def get_unit(self, uri=None, name=None, order_by=None, page=None, page_size=None return str(e) - def get_provenance(self, uri=None, name=None, description=None, activity=None, activity_type=None, agent=None, + def get_provenance_api(self, uri=None, name=None, description=None, activity=None, activity_type=None, agent=None, agent_type=None, order_by=None, page=None, page_size=None): """ Retrieve specific provenance information by URI or list provenances based on filtering criteria. @@ -1360,7 +1360,7 @@ def get_provenance(self, uri=None, name=None, description=None, activity=None, a return str(e) - def get_datafile(self, uri=None, rdf_type=None, start_date=None, end_date=None, timezone=None, experiments=None, + def get_datafile_api(self, uri=None, rdf_type=None, start_date=None, end_date=None, timezone=None, experiments=None, targets=None, devices=None, provenances=None, metadata=None, order_by=None, page=None, page_size=None): """ Retrieve specific datafile information by URI or list datafiles based on filtering criteria. @@ -1443,7 +1443,7 @@ def get_datafile(self, uri=None, rdf_type=None, start_date=None, end_date=None, return str(e) - def get_event(self, uri=None, details=False, rdf_type=None, start=None, end=None, target=None, description=None, + def get_event_api(self, uri=None, details=False, rdf_type=None, start=None, end=None, target=None, description=None, order_by=None, page=None, page_size=None): """ Retrieve specific event information by URI or list events based on filtering criteria. @@ -1510,3 +1510,87 @@ def get_event(self, uri=None, details=False, rdf_type=None, start=None, end=None except Exception as e: return str(e) + + def get_data_api(self, uri=None, start_date=None, end_date=None, timezone=None, experiments=None, targets=None, variables=None, + devices=None, min_confidence=None, max_confidence=None, provenances=None, metadata=None, operators=None, + order_by=None, page=None, page_size=None): + """ + Retrieve specific data information by URI or list data based on filtering criteria. + + :param uri: (str) URI of the specific data to retrieve + :param start_date: (str) Filter data by start date/time (e.g., '2023-01-01T00:00:00Z') + :param end_date: (str) Filter data by end date/time (e.g., '2023-12-31T23:59:59Z') + :param timezone: (str) Filter data by timezone (e.g., 'UTC', 'Europe/Paris') + :param experiments: (array[str]) Filter data by experiments + :param targets: (array[str]) Filter data by targets + :param variables: (array[str]) Filter data by variables + :param devices: (array[str]) Filter data by devices + :param min_confidence: (float) Filter data by minimum confidence level + :param max_confidence: (float) Filter data by maximum confidence level + :param provenances: (array[str]) Filter data by provenances + :param metadata: (str) Filter data by metadata + :param operators: (array[str]) Filter data by operators + :param order_by: (array[str]) Order the data by specific fields + :param page: (int) Page number for pagination + :param page_size: (int) Page size for pagination (default is DEFAULT_PAGE_SIZE) + :return: + (dict or str) Data information or an error message + :raises: + Exception: if the data is not found (HTTP 404) or if the result is empty + """ + # Get specific data information by uri + if uri: + result = self.http_get(self.url + 'core/data/' + + quote_plus(uri), headers={'Authorization':self.token}) + if result == 404: + raise Exception("Data not found") + return result + + # Get list of data based on filtering criteria + url = self.url + 'core/data' + query = {} + + if start_date is not None: + query['start_date'] = start_date + if end_date is not None: + query['end_date'] = end_date + if timezone is not None: + query['timezone'] = timezone + if experiments is not None: + query['experiments'] = experiments + if targets is not None: + query['targets'] = targets + if variables is not None: + query['variables'] = variables + if devices is not None: + query['devices'] = devices + if min_confidence is not None: + query['min_confidence'] = str(min_confidence) + if max_confidence is not None: + query['max_confidence'] = str(max_confidence) + if provenances is not None: + query['provenances'] = provenances + if metadata is not None: + query['metadata'] = metadata + if operators is not None: + query['operators'] = operators + if order_by is not None: + query['order_by'] = order_by + if page is not None: + query['page'] = str(page) + if page_size is not None: + query['page_size'] = str(page_size) + else: + query['page_size'] = str(DEFAULT_PAGE_SIZE) + + if query: + query_string = '&'.join(f'{key}={quote_plus(value)}' for key, value in query.items()) + url += '?' + query_string + + try: + response = self.http_get(url, headers={'Authorization':self.token}) + if response == 404: + raise Exception("Empty result") + return response + except Exception as e: + return str(e) \ No newline at end of file diff --git a/src/agroservices/phis/phis_interface.py b/src/agroservices/phis/phis_interface.py index a053b20..3539351 100644 --- a/src/agroservices/phis/phis_interface.py +++ b/src/agroservices/phis/phis_interface.py @@ -7,206 +7,530 @@ class Phis_UI(Phis): def __init__(self): super().__init__() - self.device_all = None - self.scientific_object_all = None - self.experiment_all = None - self.variable_all = None - self.project_all = None - self.facility_all = None - self.germplasm_all = None - self.annotation_all = None - self.document_all = None - self.factor_all = None - def get_device_user(self, device_name=None): - if self.device_all == None: - self.device_all = self.get_device(page_size=PAGE_SIZE_ALL) + def get_device(self, device_name=None, uri=None, rdf_type=None, include_subtypes=None, name=None, variable=None, year=None, + existence_date=None, facility=None, brand=None, model=None, serial_number=None, metadata=None, order_by=None, + page=None, page_size=PAGE_SIZE_ALL): + + # Return details by URI + if uri: + result = self.get_device_api(uri=uri) + return result + + result = self.get_device_api(rdf_type=rdf_type, include_subtypes=include_subtypes, name=name, variable=variable, year=year, + existence_date=existence_date, facility=facility, brand=brand, model=model, + serial_number=serial_number, metadata=metadata, order_by=order_by, page=page, page_size=page_size) - if device_name == None: - list = [] - for item in self.device_all['result']: - list.append(item['name']) - return list + # If no device name set, return list of all devices name + if device_name == None and uri == None: + return [item['name'] for item in result['result']] - else: - for item in self.device_all['result']: - if item['name'] == device_name: - return item + # Else return details by name + for item in result['result']: + if item['name'] == device_name: + return item return None - def get_scientific_object_user(self, scientific_object_name=None): - if self.scientific_object_all == None: - self.scientific_object_all = self.get_scientific_object(page_size=PAGE_SIZE_ALL) + def get_scientific_object(self, scientific_object_name=None, uri=None, experiment=None, rdf_types=None, name=None, + parent=None, germplasms=None, factor_levels=None, facility=None, variables=None, devices=None, + existence_date=None, creation_date=None, criteria_on_data=None, order_by=None, page=None, + page_size=PAGE_SIZE_ALL): + + # Return details by URI + if uri: + result = self.get_scientific_object_api(uri=uri) + return result + result = self.get_scientific_object_api(uri=uri, experiment=experiment, rdf_types=rdf_types, name=name, parent=parent, + germplasms=germplasms, factor_levels=factor_levels, facility=facility, + variables=variables, devices=devices, existence_date=existence_date, + creation_date=creation_date, criteria_on_data=criteria_on_data, order_by=order_by, + page=page, page_size=page_size) + # If no scientific object set, return list of all scientific objects name if scientific_object_name == None: - list = [] - for item in self.scientific_object_all['result']: - list.append(item['name']) - return list + return [item['name'] for item in result['result']] - else: - for item in self.scientific_object_all['result']: - if item['name'] == scientific_object_name: - return item + # Else return details of selected scientific object + for item in result['result']: + if item['name'] == scientific_object_name: + return item return None - def get_experiment_user(self, experiment_name=None): - if self.experiment_all == None: - self.experiment_all = self.get_experiment(page_size=PAGE_SIZE_ALL) + def get_experiment(self, experiment_name=None, uri=None, name=None, year=None, is_ended=None, species=None, factors=None, + projects=None, is_public=None, facilities=None, order_by=None, page=None, page_size=PAGE_SIZE_ALL): + # Return details by URI + if uri: + result = self.get_experiment_api(uri=uri) + return result + + result = self.get_experiment_api(uri=uri, name=name, year=year, is_ended=is_ended, species=species, factors=factors, + projects=projects, is_public=is_public, facilities=facilities, order_by=order_by, page=page, + page_size=page_size) + # If no experiment name set, return list of all experiments name if experiment_name == None: - list = [] - for item in self.experiment_all['result']: - list.append(item['name']) - return list + return [item['name'] for item in result['result']] - else: - for item in self.experiment_all['result']: - if item['name'] == experiment_name: - return item + # Else return details of selected experiment + for item in result['result']: + if item['name'] == experiment_name: + return item return None - def get_variable_user(self, variable_name=None): - if self.variable_all == None: - self.variable_all = self.get_variable(page_size=PAGE_SIZE_ALL) + def get_variable(self, variable_name=None, uri=None, name=None, entity=None, entity_of_interest=None, characteristic=None, + method=None, unit=None, group_of_variables=None, not_included_in_group_of_variables=None, data_type=None, + time_interval=None, species=None, withAssociatedData=None, experiments=None, scientific_objects=None, + devices=None, order_by=None, page=None, page_size=PAGE_SIZE_ALL, sharedResourceInstance=None): + + # Return details by URI + if uri: + result = self.get_variable_api(uri=uri) + return result + result = self.get_variable_api(uri=uri, name=name, entity=entity, entity_of_interest=entity_of_interest, + characteristic=characteristic, method=method, unit=unit, group_of_variables=group_of_variables, + not_included_in_group_of_variables=not_included_in_group_of_variables, data_type=data_type, + time_interval=time_interval, species=species, withAssociatedData=withAssociatedData, + experiments=experiments, scientific_objects=scientific_objects, devices=devices, + order_by=order_by, page=page, page_size=page_size, sharedResourceInstance=sharedResourceInstance) + # If no variable name set, return list of all variables name if variable_name == None: - list = [] - for item in self.variable_all['result']: - list.append(item['name']) - return list + return [item['name'] for item in result['result']] - else: - for item in self.variable_all['result']: - if item['name'] == variable_name: - return item + # Else return details of selected variable + for item in result['result']: + if item['name'] == variable_name: + return item return None - def get_project_user(self, project_name=None): - if self.project_all == None: - self.project_all = self.get_project(page_size=PAGE_SIZE_ALL) + def get_project(self, project_name=None, uri=None, name=None, year=None, keyword=None, financial_funding=None, order_by=None, + page=None, page_size=PAGE_SIZE_ALL): + # Return details by URI + if uri: + result = self.get_project_api(uri=uri) + return result + + result = self.get_project_api(uri=uri, name=name, year=year, keyword=keyword, financial_funding=financial_funding, + order_by=order_by, page=page, page_size=page_size) + # If no project name set, return list of all projects name if project_name == None: - list = [] - for item in self.project_all['result']: - list.append(item['name']) - return list + return [item['name'] for item in result['result']] - else: - for item in self.project_all['result']: - if item['name'] == project_name: - return item + # Else return details of selected project + for item in result['result']: + if item['name'] == project_name: + return item return None - def get_facility_user(self, facility_name=None): - if self.facility_all == None: - self.facility_all = self.get_facility(page_size=PAGE_SIZE_ALL) + def get_facility(self, facility_name=None, uri=None, pattern=None, organizations=None, order_by=None, page=None, + page_size=PAGE_SIZE_ALL): + + # Return details by URI + if uri: + result = self.get_facility_api(uri=uri) + return result + result = self.get_facility_api(uri=uri, pattern=pattern, organizations=organizations, order_by=order_by, page=page, + page_size=page_size) + # If no facility name set, return list of all facilities name if facility_name == None: - list = [] - for item in self.facility_all['result']: - list.append(item['name']) - return list + return [item['name'] for item in result['result']] - else: - for item in self.facility_all['result']: - if item['name'] == facility_name: - return item + # Else return details of selected facility + for item in result['result']: + if item['name'] == facility_name: + return item return None - def get_germplasm_user(self, germplasm_name=None): - if self.germplasm_all == None: - self.germplasm_all = self.get_germplasm(page_size=PAGE_SIZE_ALL) + def get_germplasm(self, germplasm_name=None, uri=None, rdf_type=None, name=None, code=None, production_year=None, + species=None, variety=None, accession=None, group_of_germplasm=None, institute=None, experiment=None, + parent_germplasms=None, parent_germplasms_m=None, parent_germplasms_f=None, metadata=None, order_by=None, + page=None, page_size=PAGE_SIZE_ALL): + + # Return details by URI + if uri: + result = self.get_germplasm_api(uri=uri) + return result + result = self.get_germplasm_api(uri=uri, rdf_type=rdf_type, name=name, code=code, production_year=production_year, + species=species, variety=variety, accession=accession, group_of_germplasm=group_of_germplasm, + institute=institute, experiment=experiment, parent_germplasms=parent_germplasms, + parent_germplasms_m=parent_germplasms_m, parent_germplasms_f=parent_germplasms_f, + metadata=metadata, order_by=order_by, page=page, page_size=page_size) + # If no germplasm name set, return list of all germplasms name if germplasm_name == None: - list = [] - for item in self.germplasm_all['result']: - list.append(item['name']) - return list + return [item['name'] for item in result['result']] - else: - for item in self.germplasm_all['result']: - if item['name'] == germplasm_name: - return item + # Else return details of selected germplasm + for item in result['result']: + if item['name'] == germplasm_name: + return item return None - def get_annotation_user(self, annotation_name=None): - if self.annotation_all == None: - self.annotation_all = self.get_annotation(page_size=PAGE_SIZE_ALL) + def get_annotation(self, annotation_name=None, uri=None, description=None, target=None, motivation=None, author=None, + order_by=None, page=None, page_size=PAGE_SIZE_ALL): + # Return details by URI + if uri: + result = self.get_annotation_api(uri=uri) + return result + + result = self.get_annotation_api(uri=uri, description=description, target=target, motivation=motivation, author=author, + order_by=order_by, page=page, page_size=page_size) + # If no annotation name set, return list of all annotations name if annotation_name == None: - list = [] - for item in self.annotation_all['result']: - list.append(item['name']) - return list + return [item['name'] for item in result['result']] - else: - for item in self.annotation_all['result']: - if item['name'] == annotation_name: - return item + # Else return details of selected annotation + for item in result['result']: + if item['name'] == annotation_name: + return item return None - def get_document_user(self, document_name=None): - if self.document_all == None: - self.document_all = self.get_document(page_size=PAGE_SIZE_ALL) + def get_document(self, document_title=None, uri=None, rdf_type=None, title=None, date=None, targets=None, authors=None, + keyword=None, multiple=None, deprecated=None, order_by=None, page=None, page_size=PAGE_SIZE_ALL): + + # Return details by URI + if uri: + result = self.get_document_api(uri=uri) + return result - if document_name == None: - list = [] - for item in self.document_all['result']: - list.append(item['name']) - return list + result = self.get_document_api(uri=uri, rdf_type=rdf_type, title=title, date=date, targets=targets, authors=authors, + keyword=keyword, multiple=multiple, deprecated=deprecated, order_by=order_by, page=page, + page_size=page_size) + # If no document name set, return list of all documents name + if document_title == None: + return [item['title'] for item in result['result']] - else: - for item in self.document_all['result']: - if item['name'] == document_name: - return item + # Else return details of selected document + for item in result['result']: + if item['title'] == document_title: + return item return None - def get_factor_user(self, factor_name=None): - if self.factor_all == None: - self.factor_all = self.get_factor(page_size=PAGE_SIZE_ALL) + def get_factor(self, factor_name=None, uri=None, name=None, description=None, category=None, experiment=None, + order_by=None, page=None, page_size=PAGE_SIZE_ALL): + # Return details by URI + if uri: + result = self.get_factor_api(uri=uri) + return result + + result = self.get_factor_api(uri=uri, name=name, description=description, category=category, experiment=experiment, + order_by=order_by, page=page, page_size=page_size) + # If no factor name set, return list of all factors name if factor_name == None: - list = [] - for item in self.factor_all['result']: - list.append(item['name']) - return list + return [item['name'] for item in result['result']] - else: - for item in self.factor_all['result']: - if item['name'] == factor_name: - return item + # Else return details of selected factor + for item in result['result']: + if item['name'] == factor_name: + return item return None + + def get_organization(self, organization_name=None, uri=None, pattern=None, organisation_uris=None, page=None, + page_size=PAGE_SIZE_ALL): + + # Return details by URI + if uri: + result = self.get_organization_api(uri=uri) + return result + + result = self.get_organization_api(uri=uri, pattern=pattern, organisation_uris=organisation_uris, page=page, + page_size=page_size) + # If no organization name set, return list of all organizations name + if organization_name is None: + org_dict = {} + for item in result['result']: + rdf_type_name = item['rdf_type_name'] + if rdf_type_name not in org_dict: + org_dict[rdf_type_name] = [] + org_dict[rdf_type_name].append(item['name']) + + sorted_org_list = [] + for rdf_type_name in sorted(org_dict.keys()): + sorted_org_list.append(f"{rdf_type_name.capitalize()} organizations:") + sorted_org_list.extend(org_dict[rdf_type_name]) + sorted_org_list.append("") # Adds an empty line for separation + + return "\n".join(sorted_org_list) + + + # Else return details of selected organization + for item in result['result']: + if item['name'] == organization_name: + return item + return None + + def get_site(self, site_name=None, uri=None, pattern=None, organizations=None, order_by=None, page=None, + page_size=PAGE_SIZE_ALL): + + # Return details by URI + if uri: + result = self.get_site_api(uri=uri) + return result + + result = self.get_site_api(uri=uri, pattern=pattern, organizations=organizations, order_by=order_by, page=page, + page_size=page_size) + # If no site name set, return list of all sites name + if site_name == None: + return [item['name'] for item in result['result']] + + # Else return details of selected site + for item in result['result']: + if item['name'] == site_name: + return item + return None -phis_ui = Phis_UI() -#get all devices and print names -for item in phis_ui.get_device_user(): - print(item) + def get_species(self, species_name=None, sharedResourceInstance=None): + result = self.get_species_api(sharedResourceInstance=sharedResourceInstance) + # If no species name set, return list of all species name + if species_name == None: + return [item['name'] for item in result['result']] + + # Else return details of selected species + for item in result['result']: + if item['name'] == species_name: + return item + return None + -print() -#show device details by name -emb7_details = phis_ui.get_device_user('Emb_7') -print(emb7_details) + def get_characteristic(self, characteristic_name=None, uri=None, name=None, order_by=None, page=None, + page_size=PAGE_SIZE_ALL, sharedResourceInstance=None): + + # Return details by URI + if uri: + result = self.get_characteristic_api(uri=uri) + return result + + result = self.get_characteristic_api(uri=uri, name=name, order_by=order_by, page=page, page_size=page_size, + sharedResourceInstance=sharedResourceInstance) + # If no characteristic name set, return list of all characteristics name + if characteristic_name == None: + return [item['name'] for item in result['result']] + + # Else return details of selected characteristic + for item in result['result']: + if item['name'] == characteristic_name: + return item + return None + -print() -#get all scientific objects and print names -for item in phis_ui.get_scientific_object_user(): - print(item) + def get_entity(self, entity_name=None, uri=None, name=None, order_by=None, page=None, page_size=PAGE_SIZE_ALL, + sharedResourceInstance=None): + + # Return details by URI + if uri: + result = self.get_entity_api(uri=uri) + return result + + result = self.get_entity_api(uri=uri, name=name, order_by=order_by, page=page, page_size=page_size, + sharedResourceInstance=sharedResourceInstance) + # If no entity name set, return list of all entities name + if entity_name == None: + return [item['name'] for item in result['result']] + + # Else return details of selected entity + for item in result['result']: + if item['name'] == entity_name: + return item + return None + -print() -#show scientific object details by name -object_details = phis_ui.get_scientific_object_user('0587/ZM4523/DZ_PG_74/WW/PGe_Rep_2/10_47/ARCH2020-02-03') -print(object_details) \ No newline at end of file + def get_entity_of_interest(self, entity_of_interest_name=None, uri=None, name=None, order_by=None, page=None, + page_size=PAGE_SIZE_ALL, sharedResourceInstance=None): + + # Return details by URI + if uri: + result = self.get_entity_of_interest_api(uri=uri) + return result + + result = self.get_entity_of_interest_api(uri=uri, name=name, order_by=order_by, page=page, page_size=page_size, + sharedResourceInstance=sharedResourceInstance) + # If no entity of interest name set, return list of all entities of interest name + if entity_of_interest_name == None: + return [item['name'] for item in result['result']] + + # Else return details of selected entity of interest + for item in result['result']: + if item['name'] == entity_of_interest_name: + return item + return None + + + def get_method(self, method_name=None, uri=None, name=None, order_by=None, page=None, page_size=PAGE_SIZE_ALL, + sharedResourceInstance=None): + + # Return details by URI + if uri: + result = self.get_method_api(uri=uri) + return result + + result = self.get_method_api(uri=uri, name=name, order_by=order_by, page=page, page_size=page_size, + sharedResourceInstance=sharedResourceInstance) + # If no method name set, return list of all methods name + if method_name == None: + return [item['name'] for item in result['result']] + + # Else return details of selected method + for item in result['result']: + if item['name'] == method_name: + return item + return None + + + def get_unit(self, unit_name=None, uri=None, name=None, order_by=None, page=None, page_size=PAGE_SIZE_ALL, + sharedResourceInstance=None): + + # Return details by URI + if uri: + result = self.get_unit_api(uri=uri) + return result + + result = self.get_unit_api(uri=uri, name=name, order_by=order_by, page=page, page_size=page_size, + sharedResourceInstance=sharedResourceInstance) + # If no unit name set, return list of all units name + if unit_name == None: + return [item['name'] for item in result['result']] + + # Else return details of selected unit + for item in result['result']: + if item['name'] == unit_name: + return item + return None + + + def get_provenance(self, provenance_name=None, uri=None, name=None, description=None, activity=None, activity_type=None, + agent=None, agent_type=None, order_by=None, page=None, page_size=PAGE_SIZE_ALL): + + # Return details by URI + if uri: + result = self.get_provenance_api(uri=uri) + return result + + result = self.get_provenance_api(uri=uri, name=name, description=description, activity=activity, activity_type=activity_type, + agent=agent, agent_type=agent_type, order_by=order_by, page=page, page_size=page_size) + # If no provenances name set, return list of all provenances name + if provenance_name == None: + return [item['name'] for item in result['result']] + + # Else return details of selected provenance + for item in result['result']: + if item['name'] == provenance_name: + return item + return None + + + def get_datafile(self, datafile_name=None, uri=None, rdf_type=None, start_date=None, end_date=None, timezone=None, + experiments=None, targets=None, devices=None, provenances=None, metadata=None, order_by=None, page=None, + page_size=PAGE_SIZE_ALL): + + # Return details by URI + if uri: + result = self.get_datafile_api(uri=uri) + return result + + result = self.get_datafile_api(uri=uri, rdf_type=rdf_type, start_date=start_date, end_date=end_date, timezone=timezone, + experiments=experiments, targets=targets, devices=devices, provenances=provenances, + metadata=metadata, order_by=order_by, page=page, page_size=page_size) + # If no datafile name set, return list of all datafiles name + if datafile_name == None: + return [item['filename'] for item in result['result']] + + # Else return details of selected datafile + for item in result['result']: + if item['filename'] == datafile_name: + return item + return None + + + def get_event(self, event_name=None, uri=None, details=False, rdf_type=None, start=None, end=None, target=None, + description=None, order_by=None, page=None, page_size=PAGE_SIZE_ALL, max_results_per_type=None): + + # Return details by URI + if uri: + result = self.get_event_api(uri=uri) + return result + + result = self.get_event_api(uri=uri, details=details, rdf_type=rdf_type, start=start, end=end, target=target, + description=description, order_by=order_by, page=page, page_size=page_size) + # If no event name set, return list of all events name sorted by event type + if event_name is None: + event_dict = {} + for item in result['result']: + rdf_type_name = item['rdf_type_name'] + if rdf_type_name not in event_dict: + event_dict[rdf_type_name] = [] + event_dict[rdf_type_name].append(item) + + sorted_event_list = [] + for rdf_type_name in sorted(event_dict.keys()): + sorted_event_list.append(f"{rdf_type_name.capitalize()} events:") + count = 0 + remaining_events = 0 # Counter for remaining events to be displayed + for event in event_dict[rdf_type_name]: + if max_results_per_type is not None and count >= max_results_per_type: + remaining_events += 1 + continue + sorted_event_list.append(f'uri: {event["uri"]}') + if event['description'] is not None: + sorted_event_list.append(f'description: {event["description"]}') + for d in event["targets"]: + device_name = self.get_device(uri=d)['result']['name'] + sorted_event_list.append(f'target: {device_name}') + sorted_event_list.append("") + count += 1 + + if remaining_events > 0: + sorted_event_list.append(f"... ({remaining_events} more events)") + + sorted_event_list.append("") # Adds an empty line for separation + + result_str = "\n".join(sorted_event_list) + return result_str + + # Else return details of selected event + for item in result['result']: + if item['name'] == event_name: + return item + return None + + def get_data(self, data_date=None, uri=None, start_date=None, end_date=None, timezone=None, experiments=None, targets=None, + variables=None, devices=None, min_confidence=None, max_confidence=None, provenances=None, metadata=None, + operators=None, order_by=None, page=None, page_size=PAGE_SIZE_ALL): + + # Return details by URI + if uri: + result = self.get_data_api(uri=uri) + return result + + result = self.get_data_api(uri=uri, start_date=start_date, end_date=end_date, timezone=timezone, experiments=experiments, + targets=targets, variables=variables, devices=devices, min_confidence=min_confidence, + max_confidence=max_confidence, provenances=provenances, metadata=metadata, + operators=operators, order_by=order_by, page=page, page_size=page_size) + # If no data name set, return list of all datas name + if data_date == None: + return [item['value'] for item in result['result']] + + # Else return details of selected data + for item in result['result']: + if item['date'] == data_date: + return item + return None + + def get_system_info(self): + return self.get_system_info_api()