Gå till innehållet

API för (admin.)dataportal.se

All information om datamängder som syns på dataportal.se finns tillgängliga via API:et på admin.dataportal.se. Det innebär att om man har andra behov som inte täcks av vad som finns på dataportal.se eller api.dataportal.se så kan man ladda ner informationen och vidareutnyttja utifrån eget tycke.

Admin.dataportal.se använder sig av EntryScape Registry och lagringslösningen EntryStore för att hantera metadata. Generell dokumentation om det underliggande API:et finner du här:

Utöver denna generella dokumentation följer nedan mer specifik och förenklad dokumentation om hur API:et används på admin.dataportal.se.

Uppdateringsfrekvens

Varje natt försöker registrera uppdatera infomrationen om datamängderna genom att skörda om från alla registrerade organisationer. Det innebär att informationen kan som mest vara 24 timmar gammal förutsatt att skördningen från källan fungerar som den ska.

Nattlig dump

Varje natt efter att informationen om datamängder uppdaterats skapas en dump där all information samlats i formatet RDF/XML enligt den svenska profilen DCAT-AP-SE2.0.0:

http://admin.dataportal.se/all.rdf

Datamängdssök

Datamängderna beskrivs med hjälp av DCAT-AP-SE2.0.0 och formatet som används är RDF. API:et tillåter anrop för att få ut enskilda metadata om enskilda datamängder såväl som ett sökAPI där man kan filtrera fram vilka datamängder man vill ha i en lista. Man kan naturligtvis också välja att inte ha något filter och få en paginerad lista med alla datamängder, följande API anrop gör just det:

https://admin.dataportal.se/store/search?type=solr&query=rdfType:http%5C%3A%2F%2Fwww.w3.org%2Fns%2Fdcat%23Dataset+AND+public:true&limit=10&offset=0&sort=modified+desc

Här används offset för paginering, parametern limit kan ökas till max 100 för att få fler svar i ett anrop. Parametern rdfType indikerar vilken typ av entiteter vi söker efter, i detta fall är det datamängder då typen är http://www.w3.org/ns/dcat#Dataset, observera att först har tecknet : escapats då det har en särskild betydelse i frågespråket som används (Solr) och därefter har uttrycket urlenkodats.

Svaren man får tillbaka är en JSON struktur som ser ut som:

{
   "offset": 0,
   "limit": 10,
   "results": 7038,
   "resource" {
      "children": [
         {
            "contextId": "574",
            "entryId": "2700",
            "metadata": {
                // Dataset metadata 
            },
            ...
         },
         ...
      ]
   }
}

Datamängdernas metadata uttrycks i formatet rdf/json.

Om man har koll på vilken identitet en datamängd har, dvs dess URI kan man göra följande anrop för att nå dess metadata:

https://admin.dataportal.se/store/search?type=solr&query=public:true+AND+(resource:URI)

Där du ersätter URI med datamängdens adress (eller någon annan entitet som en utgivare, kontakt, distribution osv.), glöm inte att först escapa : och sen urlenkoda.

Notera att i sökresultat får man bara med metadata för precis det man söker efter t.ex. datamängdens egen metadata. Man får inte med refererade entiteter, t.ex. distributioner, utgivare, kontakter osv. Dessa är bara angivna via deras identifierare (URI:er). Detta skiljer sig från dumpen ovan där alla relaterade entiteter finns med.

Det går att be om att få ut all metadata för en viss datamängd om man känner till dess identitet i API:et. I resultatlistan anges varje träffs identitet via en kombinationen avcontextId och entryId. Med hjälp av dessa id:n kan vi få ut all metadata för en datamängd:

https://admin.dataportal.se/store/{contextId}/entry/{entryId}?recursive=dcat

Du kan välja mellan lite olika format, antingen via content negotiation eller genom att sätta den explicita format parametern &format=text/turtle. Om man inte anger ett format får man application/rdf+xml.

Skördningsstatus

Den som är nyfiken över hur många datamängder det finns per organisation kan göra följande anrop:

https://admin.dataportal.se/charts/orgData.json

För att få information om exakt vilken organisation som skördades senaste dygnet och hur många av dessa datamängder som kommer från offentlig sektor kan man göra följande anrop:

https://admin.dataportal.se/store/search?type=solr&query=rdfType:http%5C%3A%2F%2Fentrystore.org%2Fterms%2Fstatistics%23CatalogStatistics&limit=1

I det sistnämnda anropet kan man ändra limit och se historiska data flera år tillbaka. Formatet i det svaret kräver dock lite mer bearbetning då organisationsnamn inte står i klartext utan istället anges indirekt via ett contextId som motsvarar en skördad datakatalog. Man kan se contextId insprängt i en speciell property, som i följande exempel där contextId är 170, värdet som pekas ut är antalet datamängder som skördats för den organisationen:

http://entrystore.org/terms/statistics#datasets_in_context_170: 2

För att förstå resultatet bättre är det rekommenderat att man kombinerar med följande anrop som ger alla senaste skördningsrapporter per organisation. Utöver detaljerad skördningsstatus ser man nämligen också kopplingen mellan contextId och namn på organisationen (via propertyn dcterms:title):

https://admin.dataportal.se/store/search?type=solr&query=tag.literal:latest+AND+metadata.predicate.literal.b1ddd1d5:true&limit=100

Om man bara vill få ut skördninstrapporter för offentliga organisationer kan man lägga till filtret psi:

https://admin.dataportal.se/store/search?type=solr&query=(tag.literal:latest+AND+tag.literal:psi)+AND+metadata.predicate.literal.b1ddd1d5:true&limit=100