{ "metadata": { "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.8.5-final" }, "orig_nbformat": 2, "kernelspec": { "name": "python3", "display_name": "Python 3.8.5 64-bit", "metadata": { "interpreter": { "hash": "1ee38ef4a5a9feb55287fd749643f13d043cb0a7addaab2a9c224cbe137c0062" } } } }, "nbformat": 4, "nbformat_minor": 2, "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Organisation/Funder/Repository Data Management Plans statistics\n", "\n", "Data management plans (DMPs) are documents accompanying research proposals and project outputs. DMPs are created as textual narratives and describe the data and tools employed in scientific investigations.They are sometimes seen as an administrative exercise and not as an integral part of research practice. Machine Actionable DMPs (maDMPs) take the DMP concept further by using PIDs and PIDs services to connect all resources associated with a DMP.\n", "\n", "\n", "This notebook displays all DMP statistics for an organisation, funder and/or data repository. By the end of this notebook, you will be able to succinctly display all the DMPs statistics for an organization, a funder and a repository. To demonstrate this we use the **California Digital Library** as Organization (https://ror.org/03yrm5c26) and the ** European Commision** as Funder (https://doi.org/10.13039/501100000780). In the summary statistics you will find a row for each DMP of the EC. Each row includes the title of the DMP, the PID, number of datasets and related publications, people involved, organizations and funders.\n", "\n", "\n", "The process of displaying the DMP statistics is very simple. First, and after an initial setup, we fetch all we need from the DataCite GraphQL API. Then, we transform this data into a data structure that can be used for computation. Finally, we take the data transformation and supply it to a table.\n", "\n", "\n" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "%%capture\n", "# Install required Python packages\n", "!pip install dfply" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "import json\n", "import pandas as pd\n", "import numpy as np\n", "from dfply import *\n" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "# Prepare the GraphQL client\n", "import requests\n", "from IPython.display import display, Markdown\n", "from gql import gql, Client\n", "from gql.transport.requests import RequestsHTTPTransport\n", "\n", "_transport = RequestsHTTPTransport(\n", " url='https://api.datacite.org/graphql',\n", " use_json=True,\n", ")\n", "\n", "client = Client(\n", " transport=_transport,\n", " fetch_schema_from_transport=True,\n", ")" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "output_type": "display_data", "data": { "text/plain": "Dropdown(description='Choose Organisation:', index=1, options=(('European Commission - ror.org/00k4n6c32', 'ht…", "application/vnd.jupyter.widget-view+json": { "version_major": 2, "version_minor": 0, "model_id": "5b8b99cb0f484ad6a5283d2fee2bed25" } }, "metadata": {} } ], "source": [ "import ipywidgets as widgets\n", "f = widgets.Dropdown(\n", " options=[('European Commission - ror.org/00k4n6c32', 'https://ror.org/00k4n6c32'), ('California Digital Library - ror.org/03yrm5c26','https://ror.org/03yrm5c26')],\n", " value='https://ror.org/03yrm5c26',\n", " description='Choose Organisation:',\n", " disabled=False,\n", ")\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "display(f)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Fetching Data\n", "\n", "We obtain all the data from the DataCite GraphQL API.\n" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ " # Generate the GraphQL query to retrieve up to 100 outputs of University of Oxford, with at least 100 views each.\n", "repo_id = \"cdl.cdl\" if f.value == \"https://ror.org/03yrm5c26\" else \"cern.zenodo\"\n", "funder_id = \"https://doi.org/10.13039/100000141\" if f.value == \"https://ror.org/03yrm5c26\" else \"https://doi.org/10.13039/501100000780\"\n", "query_params = {\n", " \"rorId\" : f.value,\n", " \"funderId\" : funder_id,\n", " \"repositoryId\" : repo_id\n", "}\n", "\n", "organizationQuery = gql(\"\"\"query getOutputs($rorId: ID!)\n", "{\n", " organization(id: $rorId) {\n", " name\n", " dataManagementPlans(first: 10) {\n", " totalCount\n", " nodes {\n", " id\n", " title: titles(first: 1) {\n", " title\n", " }\n", " datasets: citations(query:\"types.resourceTypeGeneral:Dataset\") {\n", " totalCount\n", " }\n", " publications: citations(query:\"types.resourceTypeGeneral:Text\") {\n", " totalCount\n", " }\n", " producer: contributors(contributorType: \"Producer\") {\n", " id\n", " title: name\n", " }\n", " funders: fundingReferences {\n", " id: funderIdentifier\n", " funderIdentifierType\n", " title: funderName\n", " }\n", " people: creators {\n", " id\n", " name\n", " }\n", " contributors {\n", " id\n", " name\n", " }\n", " }\n", " }\n", " }\n", "}\n", "\"\"\")\n", "\n", "funderQuery = gql(\"\"\"query getOutputs($funderId: ID!)\n", "{\n", " funder(id: $funderId) {\n", " name\n", " dataManagementPlans(first: 10) {\n", " totalCount\n", " nodes {\n", " id\n", " title: titles(first: 1) {\n", " title\n", " }\n", " datasets: citations(query:\"types.resourceTypeGeneral:Dataset\") {\n", " totalCount\n", " }\n", " publications: citations(query:\"types.resourceTypeGeneral:Text\") {\n", " totalCount\n", " }\n", " producer: contributors(contributorType: \"Producer\") {\n", " id\n", " title: name\n", " }\n", " funders: fundingReferences {\n", " id: funderIdentifier\n", " funderIdentifierType\n", " title: funderName\n", " }\n", " people: creators {\n", " id\n", " name\n", " }\n", " contributors {\n", " id\n", " name\n", " }\n", " }\n", " }\n", " }\n", "}\n", "\"\"\")\n", "\n", "repositoryQuery = gql(\"\"\"query getOutputs($repositoryId: ID!)\n", "{\n", " repository(id: $repositoryId) {\n", " name\n", " dataManagementPlans(first: 10) {\n", " totalCount\n", " nodes {\n", " id\n", " title: titles(first: 1) {\n", " title\n", " }\n", " datasets: citations(query:\"types.resourceTypeGeneral:Dataset\") {\n", " totalCount\n", " }\n", " publications: citations(query:\"types.resourceTypeGeneral:Text\") {\n", " totalCount\n", " }\n", " producer: contributors(contributorType: \"Producer\") {\n", " id\n", " title: name\n", " }\n", " funders: fundingReferences {\n", " id: funderIdentifier\n", " funderIdentifierType\n", " title: funderName\n", " }\n", " people: creators {\n", " id\n", " name\n", " }\n", " contributors {\n", " id\n", " name\n", " }\n", " }\n", " }\n", " }\n", "}\n", "\"\"\")\n", " " ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "def get_data(type):\n", " if type == \"organization\":\n", " return client.execute(organizationQuery, variable_values=json.dumps(query_params))[\"organization\"]\n", " elif type == \"funder\":\n", " return client.execute(funderQuery, variable_values=json.dumps(query_params))[\"funder\"]\n", " else:\n", " return client.execute(repositoryQuery, variable_values=json.dumps(query_params))[\"repository\"]\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Data Transformation\n", "\n", "Simple transformations are performed to convert the graphql response into an array that can be used. The final array is composed of the columns used in the DMP statistics." ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [], "source": [ "def get_series_size(series_element):\n", " return len(series_element)" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [], "source": [ "def get_total(series_element):\n", " if len(series_element) == 0:\n", " return 0\n", " return series_element['totalCount']" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [], "source": [ "def dmp_header(row):\n", " s = 'DMP: '+ row.dmp + '\\r Funder: '+row.funders+'\\r Producer: '+row.producer\n", " return s\n", " " ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [], "source": [ "def get_dataset_nodes(series_element):\n", " return series_element['nodes']" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [], "source": [ "def get_title(series_element):\n", " if len(series_element) == 0:\n", " return \"None\"\n", " return series_element[0]['title']" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [], "source": [ "def transform_dmps(dataframe):\n", " \"\"\"Modifies each item to include attributes needed for the node visulisation\n", "\n", " Parameters:\n", " dataframe (dataframe): A dataframe with all the itemss\n", " parent (int): The id of the parent node\n", "\n", " Returns:\n", " dataframe:Returning vthe same dataframe with new attributes\n", "\n", " \"\"\"\n", " if (dataframe) is None:\n", " return pd.DataFrame() \n", " else: \n", " return (dataframe >>\n", " mutate(\n", " DMP = X.title.apply(get_title),\n", " doi = X.id,\n", " NumDatasets = X.datasets.apply(get_total),\n", " NumPublications = X.publications.apply(get_total),\n", " Producer = X.producer.apply(get_title),\n", " Funder = X.funders.apply(get_title),\n", " NumPeople = (X.people + X.contributors).apply(get_series_size)\n", " ) \n", " # >> \n", " # mutate(\n", " # header = dmp_header(X),\n", " # ) \n", " # >>\n", " # filter_by(\n", " # X.hostingInstitution > 0\n", " # )\n", " )\n", " " ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [], "source": [ "def processTable(type):\n", " data = get_data(type)\n", " if len(data[\"dataManagementPlans\"]['nodes']) == 0:\n", " return None\n", " else:\n", " table = pd.DataFrame(data[\"dataManagementPlans\"]['nodes'],columns=data[\"dataManagementPlans\"]['nodes'][0].keys())\n", " return transform_dmps(table)[list(('DMP', 'Funder', 'Producer', 'NumDatasets','NumPublications','NumPeople', 'doi'))].style.set_caption(data['name']) " ] }, { "source": [ "## DMP Statistics Visulisation\n", "\n", "\n", "The following three tables show the DMP Statistics for three different entities. Each of the tables includes the DMP title, its funding body, producer, host, and summary statistics about the number of datasets, publications, and people linked to the DMP. The first table displays DMP statistics that are hosted by the California Digital Library. The next table displays the statistics of DMPs funded by the European Commission. Finally, the last table shows the DMP statistics stored in the Zenodo Repository." ], "cell_type": "markdown", "metadata": {} }, { "cell_type": "code", "execution_count": 14, "metadata": { "tags": [] }, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "" ], "text/html": "\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
California Digital Library
DMP Funder Producer NumDatasets NumPublications NumPeople doi
0DMPRoadmap: Making Data Management Plans ActionableNational Science Foundation (NSF)University Of California System004https://doi.org/10.48321/d1mw28
1LTREB: Drivers of temperate forest carbon storage from canopy closure through successional timeNational Science Foundation (NSF)University Of Michigan135https://doi.org/10.48321/d1h59r
2Late Season Productivity, Carbon, and Nutrient Dynamics in a Changing ArcticNational Science Foundation (NSF)Oregon State University005https://doi.org/10.48321/d17p4j
3REU Site: A Multidisciplinary Research Experience in Engineered Bioactive Interfaces and DevicesNational Science Foundation (NSF)University Of Kentucky004https://doi.org/10.48321/d1cc7t
4Brown carbon characterizationNational Science Foundation (NSF)College, Harvey Mudd023https://doi.org/10.48321/d13w2m
5A Political Ecology of Value: A Cohort-Based Ethnography of the Environmental Turn in Nicaraguan Urban Social PolicyNational Science Foundation (NSF)Western Washington University023https://doi.org/10.48321/d10593
6Finding Levers for Privacy and Security by Design in Mobile DevelopmentNational Science Foundation (NSF)University Of Maryland, College Park064https://doi.org/10.48321/d1vc75
7Use of telemetry and the Acoustic Wave Glider to study southern flounder migrationsNational Science Foundation (NSF)East Carolina University006https://doi.org/10.48321/d1kw2z
8The Virgin Islands Partnership to Increase Participation and Engagement through Linked, Informal, Nurturing Experiences in STEM (V.I. PIPELINES)National Science Foundation (NSF)University Of The Virgin Islands007https://doi.org/10.48321/d1qp4w
9DMP for The Role of Temperature in Regulating Herbivory and Algal Biomass in Upwelling SystemsNational Science Foundation (NSF)University Of North Carolina, Chapel Hill0133https://doi.org/10.48321/d1g59f
10Barriers to cross-shelf coral connectivity in the Florida KeysNational Science Foundation (NSF)University Of Texas At Austin023https://doi.org/10.48321/d1bc7h
11THE EFFECTS OF MASS INCARCERATION ON FAMILIES IN THE NATION’S CAPITALNational Science Foundation (NSF)University Of California, Merced003https://doi.org/10.48321/d13018
12EAGER: High-throughput, culture-independent technique identifying cyanobacteria infections to improve understanding of carbon biogeochemical cyclingNational Science Foundation (NSF)Johns Hopkins University003https://doi.org/10.48321/d1z59s
13Development and Intercomparison of Methodologies to Measure Ferrous Iron in SeawaterNational Science Foundation (NSF)University Of Southern California003https://doi.org/10.48321/d1tg6h
14Fundamentals of Quantum Materials Winter School and WorkshopNational Science Foundation (NSF)University Of Maryland, College Park006https://doi.org/10.48321/d1pp4k
15Bolstering STEM with Scholarships and Mentoring Networks at an HSINational Science Foundation (NSF)New Mexico Institute Of Mining And Technology005https://doi.org/10.48321/d1k01m
16CAREER: 4.5D Printing of Nickel Titanium Shape Memory AlloysNational Science Foundation (NSF)Texas A&M University003https://doi.org/10.48321/d1f594
17Impacts of size-selective mortality on sex-changing fishesDivision of Ocean Sciences (nsf.gov)Oregon State University044https://doi.org/10.48321/d1101n
18Turbulence-spurred settlement: Deciphering a newly recognized class of larval responseDivision of Ocean Sciences (nsf.gov)San Francisco State University (Sfsu.Edu)046https://doi.org/10.48321/d14s38
19Collaborative Research: New Approaches to New ProductionDivision of Ocean Sciences (nsf.gov)University Of Southern California (Usc.Edu)074https://doi.org/10.48321/d1w88t
20Adaptations of fish and fishing communities to rapid climate changeDivision of Ocean Sciences (nsf.gov)University Of California, Santa Barbara (Ucsb.Edu)1109https://doi.org/10.48321/d1h010
21Gene content, gene expression, and physiology in mesopelagic ammonia-oxidizing archaeaDivision of Ocean Sciences (nsf.gov)J. Craig Venter Institute (Jcvi.Org)014https://doi.org/10.48321/d1ms3m
22Collaborative Research: Ocean Acidification and Coral Reefs: Scale Dependence and Adaptive CapacityDivision of Ocean Sciences (nsf.gov)California State University, Northridge (Csun.Edu)1118https://doi.org/10.48321/d1rg6w
23Collaborative research: Quantifying the biological, chemical, and physical linkages between chemosynthetic communities and the surrounding deep seaDivision of Ocean Sciences (nsf.gov)University Of California, San Diego (Ucsd.Edu)0010https://doi.org/10.48321/d17g67
24Collaborative Research: Field test of larval behavior on transport and connectivity in an upwelling regimeDivision of Ocean Sciences (nsf.gov)University Of California, Davis (Ucdavis.Edu)006https://doi.org/10.48321/d1c885
25Collaborative Research: Dissolved organic matter feedbacks in coral reef resilience: The genomic & geochemical basis for microbial modulation of algal phase shiftsDivision of Ocean Sciences (nsf.gov)University Of Hawaii At Manoa (Manoa.Hawaii.Edu)0106https://doi.org/10.48321/d1001b
26Quantifying the potential for biogeochemical feedbacks to create 'refugia' from ocean acidification on tropical coral reefsDivision of Ocean Sciences (nsf.gov)Carnegie Institution For Science (Carnegiescience.Edu)017https://doi.org/10.48321/d13s3z
27Collaborative Research: Use of Triple Oxygen Isotopes and O2/Ar to constrain Net/Gross Oxygen Production during upwelling and non-upwelling periods in a Coastal SettingDivision of Ocean Sciences (nsf.gov)King Abdullah University Of Science And Technology (Kaust.Edu.Sa)039https://doi.org/10.48321/d1v88h
28The ProteOMZ Expedition: Investigating Life Without Oxygen in the Pacific OceanNoneWoods Hole Oceanographic Institution (Whoi.Edu)014https://doi.org/10.48321/d1qg6k
29Collaborative Research: Diatoms, Food Webs and Carbon Export - Leveraging NASA EXPORTS to Test the Role of Diatom Physiology in the Biological Carbon PumpDivision of Ocean Sciences (nsf.gov)University Of California, Santa Barbara (Ucsb.Edu)006https://doi.org/10.48321/d1ks39
30Convergence: RAISE: Linking the adaptive dynamics of plankton with emergent global ocean biogeochemistryDivision of Ocean Sciences (nsf.gov)University Of California, Irvine (Uci.Edu)11011https://doi.org/10.48321/d1g01p
" }, "metadata": {}, "execution_count": 14 } ], "source": [ "processTable(\"organization\")" ] }, { "cell_type": "code", "execution_count": 15, "metadata": { "tags": [] }, "outputs": [ { "output_type": "error", "ename": "Exception", "evalue": "{'message': 'Record not found', 'path': ['funder'], 'extensions': {'code': 'DOWNSTREAM_SERVICE_ERROR', 'serviceName': 'client-api', 'query': 'query($funderId:ID!){funder(id:$funderId){name dataManagementPlans(first:50){totalCount nodes{id contributors{id name}title:titles(first:1){title}datasets:citations(query:\"types.resourceTypeGeneral:Dataset\"){totalCount}publications:citations(query:\"types.resourceTypeGeneral:Text\"){totalCount}producer:contributors(contributorType:\"Producer\"){id title:name}funders:fundingReferences{funderIdentifierType id:funderIdentifier title:funderName}people:creators{id name}}}}}', 'variables': {'funderId': 'https://doi.org/10.13039/100000141'}}}", "traceback": [ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[0;31mException\u001b[0m Traceback (most recent call last)", "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mprocessTable\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"funder\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", "\u001b[0;32m\u001b[0m in \u001b[0;36mprocessTable\u001b[0;34m(type)\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mprocessTable\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mtype\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 2\u001b[0;31m \u001b[0mdata\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mget_data\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mtype\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 3\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mlen\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdata\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m\"dataManagementPlans\"\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'nodes'\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0;36m0\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 4\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 5\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m\u001b[0m in \u001b[0;36mget_data\u001b[0;34m(type)\u001b[0m\n\u001b[1;32m 3\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mclient\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mexecute\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0morganizationQuery\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mvariable_values\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mjson\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdumps\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mquery_params\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m\"organization\"\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 4\u001b[0m \u001b[0;32melif\u001b[0m \u001b[0mtype\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0;34m\"funder\"\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 5\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mclient\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mexecute\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfunderQuery\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mvariable_values\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mjson\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdumps\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mquery_params\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m\"funder\"\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 6\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 7\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mclient\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mexecute\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mrepositoryQuery\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mvariable_values\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mjson\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdumps\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mquery_params\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m\"repository\"\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/usr/local/lib/python3.8/site-packages/gql/client.py\u001b[0m in \u001b[0;36mexecute\u001b[0;34m(self, document, *args, **kwargs)\u001b[0m\n\u001b[1;32m 50\u001b[0m \u001b[0mresult\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_get_result\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdocument\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 51\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mresult\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0merrors\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 52\u001b[0;31m \u001b[0;32mraise\u001b[0m \u001b[0mException\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mstr\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mresult\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0merrors\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 53\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 54\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mresult\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdata\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;31mException\u001b[0m: {'message': 'Record not found', 'path': ['funder'], 'extensions': {'code': 'DOWNSTREAM_SERVICE_ERROR', 'serviceName': 'client-api', 'query': 'query($funderId:ID!){funder(id:$funderId){name dataManagementPlans(first:50){totalCount nodes{id contributors{id name}title:titles(first:1){title}datasets:citations(query:\"types.resourceTypeGeneral:Dataset\"){totalCount}publications:citations(query:\"types.resourceTypeGeneral:Text\"){totalCount}producer:contributors(contributorType:\"Producer\"){id title:name}funders:fundingReferences{funderIdentifierType id:funderIdentifier title:funderName}people:creators{id name}}}}}', 'variables': {'funderId': 'https://doi.org/10.13039/100000141'}}}" ] } ], "source": [ "processTable(\"funder\")" ] }, { "cell_type": "code", "execution_count": 19, "metadata": { "tags": [] }, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "" ], "text/html": "\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
Zenodo
DMP Funder Producer Host NumDatasets NumPublications NumPeople doi
0Periódicos técnicosNoneNoneNone001https://doi.org/10.5281/zenodo.2655759
1Periódicos técnicosNoneNoneNone001https://doi.org/10.5281/zenodo.2655758
2Fractional-order functions for solving fractional-order variational problems with boundary conditionsNoneNoneNone002https://doi.org/10.5281/zenodo.2741388
3Fractional-order functions for solving fractional-order variational problems with boundary conditionsNoneNoneNone002https://doi.org/10.5281/zenodo.2741387
4EURHISFIRM D1.2: Data Management Plan (first version)European CommissionNoneNone003https://doi.org/10.5281/zenodo.3245354
5EURHISFIRM D1.2: Data Management Plan (first version)European CommissionNoneNone003https://doi.org/10.5281/zenodo.3245353
6EURHISFIRM D1.7: Second Data Management PlanEuropean CommissionNoneNone005https://doi.org/10.5281/zenodo.3246339
7EURHISFIRM D1.7: Second Data Management PlanEuropean CommissionNoneNone005https://doi.org/10.5281/zenodo.3246338
8Example ezDMP outputNoneNoneNone001https://doi.org/10.5281/zenodo.3247755
9Example ezDMP outputNoneNoneNone001https://doi.org/10.5281/zenodo.3247756
10European Collaboration for Healthcare Optimisation (ECHO) Data Model SpecificationEuropean CommissionNoneNone008https://doi.org/10.5281/zenodo.3253683
11European Collaboration for Healthcare Optimisation (ECHO) Data Model SpecificationEuropean CommissionNoneNone008https://doi.org/10.5281/zenodo.3253684
12The data management plan of Alien-CSINoneNoneNone0012https://doi.org/10.5281/zenodo.3265764
13The data management plan of Alien-CSINoneNoneNone0012https://doi.org/10.5281/zenodo.3265765
14TANGO Data Management Plan Version 3NoneNoneNone004https://doi.org/10.5281/zenodo.3349817
15TANGO Data Management Plan Version 4NoneNoneNone004https://doi.org/10.5281/zenodo.3349816
16REEEM-D6.6_Data Management Plan (DMP) - Collection, processing and dissemination of dataEuropean CommissionNoneNone001https://doi.org/10.5281/zenodo.3368558
17REEEM-D6.6_Data Management Plan (DMP) - Collection, processing and dissemination of dataEuropean CommissionNoneNone001https://doi.org/10.5281/zenodo.3368557
18D6.5 Data Management PlanEuropean CommissionNoneNone001https://doi.org/10.5281/zenodo.3372460
19D6.5 Data Management PlanEuropean CommissionNoneNone001https://doi.org/10.5281/zenodo.3372459
20DMP test 1NoneNoneNone001https://doi.org/10.5281/zenodo.3441880
21DMP test 1NoneNoneNone001https://doi.org/10.5281/zenodo.3441879
22Data Management PlanEuropean CommissionNoneNone001https://doi.org/10.5281/zenodo.3446152
23Data Management PlanEuropean CommissionNoneNone001https://doi.org/10.5281/zenodo.3446151
24RECEIPT Data Management PlanNoneNoneNone001https://doi.org/10.5281/zenodo.3459695
25RECEIPT Data Management PlanNoneNoneNone001https://doi.org/10.5281/zenodo.3459696
26The European Qur'an. Islamic Scripture in European Culture and Religion 1150-1850. Horizon 2020 DMP (initial outline)NoneNoneNone002https://doi.org/10.5281/zenodo.3462464
27The European Qur'an. Islamic Scripture in European Culture and Religion 1150-1850. Horizon 2020 DMP (initial outline)NoneNoneNone002https://doi.org/10.5281/zenodo.3462465
28Interdependency_of_port_clusters_during_regional_disasters_FINAL_REPORTNoneNoneNone001https://doi.org/10.5281/zenodo.3466109
29Interdependency_of_port_clusters_during_regional_disasters_FINAL_REPORTNoneNoneNone001https://doi.org/10.5281/zenodo.3466108
30RECEIPT Data Management PlanNoneNoneNone001https://doi.org/10.5281/zenodo.3467621
31RECEIPT Data Management PlanNoneNoneNone001https://doi.org/10.5281/zenodo.3467620
32REEEM-D6.6_Data Management Plan (DMP) - Collection, processing and dissemination of dataEuropean CommissionNoneNone001https://doi.org/10.5281/zenodo.3472765
33Data Management Plans at CERNNoneNoneNone001https://doi.org/10.5281/zenodo.3479129
34Data Management Plans at CERNNoneNoneNone001https://doi.org/10.5281/zenodo.3479128
35D7.2: Data Management Plan (1)European CommissionNoneNone003https://doi.org/10.5281/zenodo.3492131
36D7.2: Data Management Plan (1)European CommissionNoneNone003https://doi.org/10.5281/zenodo.3492130
37D7.3: Data Management Plan (2)European CommissionNoneNone002https://doi.org/10.5281/zenodo.3492133
38D7.3: Data Management Plan (2)European CommissionNoneNone002https://doi.org/10.5281/zenodo.3492132
39Testing a novel explanatory factor for the non-linearity between rainfall event magnitude-frequency and catchment erosion with HYDRALAB+European CommissionNoneNone002https://doi.org/10.5281/zenodo.3510132
40Testing a novel explanatory factor for the non-linearity between rainfall event magnitude-frequency and catchment erosion with HYDRALAB+European CommissionNoneNone002https://doi.org/10.5281/zenodo.3510131
41PatchFlow: Flow through emergent and submerged patches in wide shallow flowEuropean CommissionNoneNone002https://doi.org/10.5281/zenodo.3510197
42PatchFlow: Flow through emergent and submerged patches in wide shallow flowEuropean CommissionNoneNone002https://doi.org/10.5281/zenodo.3510196
43MoDEX: Morphological Diffusivity Experiment - controls on morphological diffusivity for innovative beach protection schemesEuropean CommissionNoneNone002https://doi.org/10.5281/zenodo.3510200
44MoDEX: Morphological Diffusivity Experiment - controls on morphological diffusivity for innovative beach protection schemesEuropean CommissionNoneNone002https://doi.org/10.5281/zenodo.3510201
45Smelling vortices: Animal tracking of chemical scents in turbulent, unidirectional flowEuropean CommissionNoneNone003https://doi.org/10.5281/zenodo.3510210
46Smelling vortices: Animal tracking of chemical scents in turbulent, unidirectional flowEuropean CommissionNoneNone003https://doi.org/10.5281/zenodo.3510211
47Data Management Plan for the MSCA project PlasmaSolutionEuropean CommissionNoneNone003https://doi.org/10.5281/zenodo.3530163
48Data Management Plan for the MSCA project PlasmaSolutionEuropean CommissionNoneNone003https://doi.org/10.5281/zenodo.3530162
49Planeación primer trimestre del tercer grado de primaria del estado de sonora.NoneNoneNone001https://doi.org/10.5281/zenodo.3533817
" }, "metadata": {}, "execution_count": 19 } ], "source": [ "processTable(\"repository\")" ] } ] }