# 4TU.ResearchData

Het dataarchief van de 4TU-federatie (TU Delft, TU Eindhoven, Universiteit Twente en Wageningen University & Research). Volgens de homepage 12.494 datasets met 191.894 bestanden en ongeveer 102 TB (16 oktober 2026), vooral techniek, water, kust, klimaat en verkeer, vaak als NetCDF met OPeNDAP. Elke dataset heeft een DOI met voorvoegsel 10.4121 en een eigen licentie, meestal Creative Commons. De software heet djehuty en heeft een Figshare-achtige API.

- Uitgever: 4TU.ResearchData
- Gebied: Nederland · Laagste detail: dataset
- Periode: per dataset verschillend · Ververst: dagelijks
- Toegang: Open · Licentie: per dataset, meestal Creative Commons (CC BY 4.0, CC BY-SA 4.0, ook CC BY-NC-ND 4.0)
- Koppelsleutels: DOI (10.4121/…), dataset-uuid
- Status: grijs
- URL: https://data.4tu.nl

## Wat kun je ermee?
- **Data achter het nieuws over water.** DataCite vindt 1.777 DOI's van 4TU met het onderwerp Water. Veel zijn meetreeksen en modeluitkomsten achter publicaties over droogte, kust en rivieren.
- **Onderzoek over jouw stad.** Zoek op een plaatsnaam in de titel: Rotterdam geeft 50 DOI's (een dataset telt vaak twee keer, zie beperkingen). Zo vind je de ruwe data achter een onderzoek over je stad.
- **Rekenen zonder downloaden.** Veel NetCDF-bestanden zijn via OPeNDAP te bevragen. Je haalt dan alleen het stuk tijd of gebied op dat je nodig hebt, in plaats van gigabytes.

## Zo verwerk je het
1. **Zoeken via DataCite.** DataCite heeft titel, jaar, onderwerp en licentie van elke 4TU-DOI, zonder robots.txt-verbod. Filter met prefix=10.4121 en query=.
   `https://api.datacite.org/dois?prefix=10.4121&query=subjects.subject:%22Water%22&page%5Bsize%5D=10`
2. **De djehuty-API.** Volgens de fase 2-test werkt de Figshare-achtige API zonder sleutel: /v2/articles (lijst), POST /v2/articles/search met search_for, /v2/articles/<uuid> (één dataset). robots.txt verbiedt crawlers; of losse aanroepen daaronder vallen, zegt 4TU niet. De documentatie is dun.
   `https://djehuty.4tu.nl/api/`
3. **Het datamodel.** djehuty slaat alles op als RDF. Datasets zijn versies binnen een container met één vaste identifier; dat past bij de twee soorten DOI's (per versie en voor alle versies samen).
   `https://djehuty.4tu.nl/knowledge-graph/`

## Interessante koppelingen
- Klopt het model met de meting? → [rws-waterinfo](https://www.opendataindex.nl/bron/rws-waterinfo.md) via meetlocatie en periode. Leg een modelreeks uit 4TU naast de officiële waterstanden of afvoeren van Rijkswaterstaat voor dezelfde plek en tijd.
- Welke data hoort bij dit artikel? → [onderzoeksoutput](https://www.opendataindex.nl/bron/onderzoeksoutput.md) via DOI van de publicatie. Veel 4TU-datasets heten 'Data underlying the publication: …'. Zoek het artikel in OpenAlex en vergelijk de conclusies met de data.

## Vergelijkbare bronnen
- [dans-datastations](https://www.opendataindex.nl/bron/dans-datastations.md): Het andere grote Nederlandse dataarchief, met meer sociale wetenschappen en archeologie.
- [rws-waterinfo](https://www.opendataindex.nl/bron/rws-waterinfo.md): Officiële metingen van Rijkswaterstaat; in 4TU staan onderzoeksdata, vaak afgeleid van zulke metingen.
- [onderzoeksoutput](https://www.opendataindex.nl/bron/onderzoeksoutput.md): De publicaties van Nederlandse onderzoekers (OpenAlex); 4TU heeft de data erachter.

## Waar je op moet letten
- **Niet geautomatiseerd uitlezen.** robots.txt van data.4tu.nl verbiedt alle crawlers (Crawl-delay 20). Wij oogsten de site niet en hebben geen statuscheck; de grafiek en de lijst op deze pagina komen uit DataCite.
- **Twee DOI's per dataset.** Een dataset heeft een DOI per versie (…v1) en een DOI voor alle versies samen. DataCite telt daardoor 21.770 DOI's met 10.4121 tegen 12.494 datasets op de homepage (16 oktober 2026). Samengevoegd per dataset zijn het er 13.030 (inclusief 610 keer software en 400 collecties); die lijst staat hieronder.
- **Ook rommel in de registratie.** Op 16 oktober 2026 stonden er in DataCite 221 DOI's van 4TU (109 records met hun versie-DOI's) met titels als 'College of Nursing Sciences … Admission Form Is Out' en een telefoonnummer: spam die als collectie is geregistreerd, in februari en oktober 2026. Wij laten die weg. Filter op resourceType dataset als je zelf telt.
- **Licenties verschillen.** Naast CC BY 4.0 komen CC BY-SA en CC BY-NC-ND voor. Bij NC mag je de data niet commercieel gebruiken; controleer de licentie per dataset.

## API (REST (JSON:API), via DataCite)

- Basis: https://api.datacite.org
- Toegang: Geen sleutel. DataCite telt een verzoek als 'geïdentificeerd' als er een e-mailadres in de User-Agent of een mailto= in de URL staat; dan mag je twee keer zo vaak. (getest)
- Formaten: json, JSON:API, DataCite XML (attribuut xml, base64)
- Omvang: 21785 DOI's met voorvoegsel 10.4121 in DataCite (16 okt 2026; per dataset een DOI per versie plus één overkoepelende) (getest)
- Filteren: Losse parameters (prefix, resource-type-id, published) plus een vrije zoekvraag in Elasticsearch-syntaxis in query=.; veld:waarde, "zin", AND, OR, NOT, *

### Endpoints
- `GET /dois?prefix=10.4121`: Alle DOI's van 4TU.ResearchData, met filters, zoeken, sorteren en paginering. Totaal in meta.total.
- `GET /dois/{doi}`: Eén DOI met alle metadata: makers, beschrijving, onderwerpen, licentie, gerelateerde publicaties, geolocatie, aantal views en downloads.
- `GET /prefixes/10.4121`: Bij welk DataCite-lid het voorvoegsel hoort (client delft.data4tu, provider scpr).
- `GET /clients/delft.data4tu`: De repository zelf zoals DataCite die kent (naam, website, contact).

### Parameters
- `prefix`: DOI-voorvoegsel; 10.4121 is 4TU.ResearchData. (getest)
- `client-id`: Alternatief voor prefix: delft.data4tu. (getest)
- `query`: Zoekvraag in Elasticsearch-syntaxis op velden: titles.title:Rotterdam, subjects.subject:"Water", publisher, creators.name; met AND, OR, aanhalingstekens en *. (getest)
- `resource-type-id`: Soort: dataset, software, collection, text … (dataset gaf 19.266 van de 21.785 DOI's). (getest)
- `published`: Publicatiejaar, bv. 2025 (3.049 DOI's). Ook een bereik als 2020-2025. (getest)
- `fields[dois]`: Alleen deze attributen teruggeven (doi,titles,publicationYear,rightsList,url): veel kleinere antwoorden. (getest)
- `page[size]`: Rijen per pagina, 0 tot 1.000 (standaard 25). page[size]=0 geeft alleen de telling. (getest)
- `page[number]`: Paginanummer, tot 10.000 records in totaal. (uit de beschrijving)
- `page[cursor]`: Begin met 1 en volg links.next voor alles voorbij 10.000 records. (getest)
- `sort`: relevance, name, created, updated, published, met - voor aflopend (sort=-updated = nieuwste wijziging eerst). (uit de beschrijving)

### Velden in het DataCite-antwoord (selectie) (12)
`attributes.doi` tekst, `attributes.titles[].title` tekst, `attributes.publicationYear` getal, `attributes.types.resourceTypeGeneral` tekst, `attributes.subjects[]` lijst, `attributes.rightsList[]` lijst, `attributes.url` url, `attributes.creators[]` lijst, `attributes.relatedIdentifiers[]` lijst, `attributes.geoLocations[]` lijst, `attributes.created / updated` datetime, `meta.total` getal

### Limieten en valkuilen
- DataCite: 500 verzoeken per 5 minuten per IP-adres zonder e-mailadres, 1.000 met een e-mailadres in de User-Agent of mailto=, 3.000 met een account. Daarboven HTTP 429. (uit de beschrijving)
- page[size] boven 1.000 wordt stil teruggezet naar 1.000. Paginanummers gaan tot 10.000 records; page[number]=11 bij 1.000 per pagina geeft stil weer pagina 10. Gebruik daarna de cursor. (getest)
- Een volle pagina van 1.000 records zonder fields[dois] is ongeveer 5 MB; met een paar velden 160 kB. (getest)
- robots.txt van data.4tu.nl verbiedt alle bots (Disallow: /, Crawl-delay: 20). De djehuty-API zelf (data.4tu.nl/v2, /v3) is daarom niet door ons getest; het voorbeeld loopt via DataCite. (getest)
- Elke dataset heeft een DOI per versie (…v1) en een DOI zonder versie. Tel alleen DOI's zonder .vN aan het eind, anders tel je dubbel. (getest)
- Facetten (facets=) komen niet terug in meta; tel per jaar of soort met page[size]=0 en een filter. (getest)
- Er staan spam-collecties onder 10.4121 (titels met een telefoonnummer, 2026). Filter op resource-type-id=dataset als je telt. (ervaring)

### Voorbeeld
```
https://api.datacite.org/dois?prefix=10.4121&query=titles.title:Rotterdam&resource-type-id=dataset&page%5Bsize%5D=3&fields%5Bdois%5D=doi,titles,publicationYear,rightsList,url
```

## Zo haal je het op

### curl
```bash
curl -g "https://api.datacite.org/dois?prefix=10.4121&query=titles.title:Rotterdam&page[size]=10&fields[dois]=doi,titles,publicationYear,rightsList"
```

### python
```python
import re, requests

# Via DataCite: data.4tu.nl verbiedt crawlers in robots.txt.
r = requests.get("https://api.datacite.org/dois", params={
    "prefix": "10.4121", "query": "titles.title:Rotterdam", "resource-type-id": "dataset",
    "page[size]": 25, "fields[dois]": "doi,titles,publicationYear,rightsList"},
    headers={"User-Agent": "mijnproject/1.0 (mailto:jij@voorbeeld.nl)"})
for x in r.json()["data"]:
    a = x["attributes"]
    if not re.search(r"\.v\d+$", a["doi"]):   # alleen de DOI voor alle versies, niet .v1, .v2 …
        print(a["publicationYear"], a["titles"][0]["title"][:70])
```


## Wat er allemaal in zit: 13.094 datasets

Alles wat 4TU.ResearchData bij DataCite heeft geregistreerd, één rij per dataset (alle versies samengevoegd), per vakgebied zoals DataCite het toekent. Elke nacht opgehaald uit DataCite, niet van data.4tu.nl zelf. Elke rij heeft een eigen pagina met licentie, DOI en de DataCite-aanroep.

- Soorten: dataset 12.072, software 619, collectie 402, overig 1
- Laatst gewijzigd: 2026-10-30 (129 in de afgelopen 30 dagen)
- Met een API-aanroep op de datasetpagina: 13.094
- Zoeken: https://www.opendataindex.nl/api/catalogus/datacite-4tu?q=… of de MCP-functie zoek_datasets met herkomst=datacite-4tu
- Elke rij heeft een eigen pagina: https://www.opendataindex.nl/dataset/datacite-4tu/<sleutel>

### Mappen
- Natural sciences (8.104): Mathematics (146), Computer and information sciences (813), Physical sciences (546), Chemical sciences (340), Earth and related environmental sciences (5718), Biological sciences (541)
- Engineering and technology (2.680): Civil engineering (894), Electrical engineering, electronic engineering, information engineering (238), Mechanical engineering (771), Chemical engineering (125), Materials engineering (93), Medical engineering (120), Environmental engineering (153), Environmental biotechnology (26) …
- Medical and health sciences (249): Basic medicine (9), Clinical medicine (107), Health sciences (93), Medical biotechnology (20), Other medical sciences (20)
- Agricultural sciences (175): Agriculture, forestry and fisheries (128), Animal and dairy science (27), Veterinary sciences (5), Agricultural biotechnology (2), Other agricultural sciences (13)
- Social sciences (656): Psychology (178), Economics and business (162), Educational sciences (63), Sociology (53), Law (11), Political science (35), Social and economic geography (122), Media and communications (32)
- Humanities (93): History and archaeology (10), Languages and literature (9), Philosophy, ethics and religion (9), Arts (arts, history of arts, performing arts, music) (60), Other humanities (5)
- No field of science assigned (1.137)

## Voorbeelden met echte cijfers (1)

Per voorbeeld de bevinding, de peildatum en de aanroep die precies deze cijfers ophaalt.

- **DOI's van 4TU.ResearchData per publicatiejaar, geteld in DataCite (voorvoegsel 10.4121): 3.047 DOI's in 2025, 9,1 keer zo veel als in 2013** (2025). Tabel DOI-voorvoegsel 10.4121. [Voorbeeld](https://www.opendataindex.nl/voorbeeld/4tu-dois-per-jaar)
  - `https://api.datacite.org/dois?prefix=10.4121&published=2025&page%5Bsize%5D=1&fields%5Bdois%5D=doi`
