Open Data en Open Search gebruiken

  • mei 2013
  • Ernest Verhees
  • ·
  • Aangepast 27 jun
  • 12
  • 59
Ernest Verhees
KIA Community
  • Christian van der Ven
  • Verwijderde gebruiker
  • Bob Coret

Kan iemand me helpen met het gebruik van Open Search: http://www.opensearch.org/Home . Dit wordt vaak gebruikt als API voor Open Data, zoals bijvoorbeeld door het Nationaal Archief: http://www.gahetna.nl/opendata

Concrete vraag, hoe krijg ik meer dan 10 resultaten? Met http://www.gahetna.nl/beeldbank-api/opensearch/?q=Nijmegen krijg ik er namelijk maar 10. De uitleg op Open Search is voor mij te ingewikkeld en ik kan geen andere uitleg vinden. Ik weet ook niet precies hoe ik zoekwoorden kan combineren of in een specifiek veld kan zoeken via de opbouw van de url.

Een iets algemenere vraag die hieruit voortkomt is of het als Open Data beschikbaarstellen via Open Search of OAI alleen wel voldoende is. Zou er voor niet ict-ers niet ook een eenvoudig csv of excel bestand met de data beschikbaar moeten zijn? Mogelijk kan dat hergebruik - al is dit niet meteen in een spannende app of toepassing - nog meer stimuleren.

Is het eigenlijk wel Open Data als je veel technische kennis nodig hebt om bij die data te komen?

Reacties

12 reacties, meest recent: 10 april 2014
  • Open Search is een goed beschreven specificatie die verschillende zaken definieert, waaronder de parameter 'count' voor het aantal zoekresultaten. De specificatie zegt tegen 'providers', dus diegenen die de zoekfunctie bieden, dat het aantal zoekresultaten kan worden bepaald door de 'consumer' via door 'count' parameter, het zegt echter niet dat hier ook iets mee gedaan moet worden, dat is de vrijheid van de providers...

    Het lijkt er op dat GaHetNade count niet hebben geïmplementeerd in hun zoek API, dus het is 10 zoekresultaten, punt.  Dit blijkt overigens ook uit de beschrijving van de GaHetNa api: http://www.gahetna.nl/beeldbank-api/opensearch/description-document (waarin trouwens ook voorbeelden hoe je op bepaalde velden zoekt). Wil je meer dan moet je de startItem parameter gebruiken om de vervolgresultaten op te halen (dus na 1-10 haal je 11-20 op, 21-30, enz.). Bedenk dat Open Search niet is bedoel als havesting protocol, dus helemaal leegslurpen is het niet voor bedoeld. Ik verwacht trouwens als je een bericht naar GaHetNa stuurt je de gegevensset ook in een ander formaat kan krijgen (maar dat zal dan een eenmalige dump zijn, waarbij je maar weer moet afwachten in welk formaat).

    Dan naar jouw algemenere vraag. Bij hergebruik denk ik toch al snel aan ontwikkelaars die enige technische kennis hebben. Het verwerken van gestructureerde gegevens uit 'live' systemen op basis van een standaard zijn daarbij aantrekkelijker dan het af en toe met de hand gemaakte en geuploade CSV bestand waarvan de je kolomkoppen moet raden (waarmee ik trouwens niet wil zeggen dat CSV geen opendata is, maar goed beschreven en volgens standaard is toch wel een must). 

    Eén van de 'eisen' aan open data is dat deze moet toegankelijk moet zijn voor iedereen, voor elk legaal gebruik, zonder (fin.) drempels. Het feit dat je technische kennis nodig hebt zou ik niet direct als een drempel aanmerken, standaarden/XML/harvesting wordt al snel technisch maar daardoor wel goed beschreven en eenduidig. Aan de andere kant, het ontbreken van deze kennis is voor jou een drempel om de data te hergebruiken...

    Bob Coret
  • Bob, bedankt voor de uitleg. Eerst een kleine praktische vraag, hoe gebruik ik de startItem parameter? Met http://www.gahetna.nl/beeldbank-api/opensearch/?searchTerms=Nijmegen&startItem=11 krijg ik hetzelfde resultaat als met http://www.gahetna.nl/beeldbank-api/opensearch/?q=Nijmegen .

    Maar het belangrijkste punt, al zou dit werken, uiteindelijk krijg ik niet (althans niet makkelijk) wat ik graag wil hebben: een export van de beschrijvingen in de Anefo collectie met foto's van Nijmegen. En waarom is mij toch niet helemaal duidelijk. Omdat Opensearch harvesten niet mogelijk maakt? waarom dan kiezen voor deze wijze van beschikbaarstellen van Open Data? Dat kan allemaal wel heel mooi gedocumenteerd zijn en daarmee voldoen aan afspraken over hoe programmeurs maar uiteindelijk wel een belemmering voor mijn wensen. Is het een probleem voor Gahetna als ik de data ga "leegslurpen"?

    Ik pleit ook zeker niet voor alleen een csv-bestand want daar zitten zeker nadelen aan maar die zitten er ook aan OpenSearch voor de manier waarop ik - en misschien ook wel anderen - die data wil gebruiken. Waarom zou de focus voor hergebruik alleen op ontwikkelaars moeten liggen?

    Of Gahetna een gegevensset stuurt voor mijn specifieke vraag (alleen van de 1001 Nijmeegse foto's) betwijfel ik en een gegevensset met alle 140.000 beschrijvingen gaat weer wat ver. Niettemin kan zo'n gegevensset toch ook aan standaarden voldoen en duidelijk beschreven zijn? Een xml-export zou dat al zijn denk ik.

    Ernest Verhees
  • Naar aanleiding van deze vraag en Bob's opmerkingen hebben wij (als ontwikkelaar van de OpenSearch API van het Nationaal Archief) enkele "puntjes op de i" gezet:

    • de count parameter werkt, het is dus mogelijk om zelf te bepalen hoeveel items (met een maximum van 100) er per pagina geleverd worden, het werkelijke aantal kan worden uitgelezen uit het

    • de door Bob genoemde parameter startItem werkte inderdaad niet zoals Ernest terecht opmerkt: de parameter startIndex had gebruikt moeten worden, dat stond niet goed in het Description Document. Inmiddels is dat gerepareerd en werkt zowel de parameter startIndex als startItem

    Verder sluit ik mij aan bij Bob dat OpenSearch niet het meest geschikte protocol is om een complete dataset naar een ander systeem te kopiëren, het is bedoeld om "live" gebruik te kunnen maken van de meest recente versie van de data van het Nationaal Archief.

    Het lijkt mij zeker geen afbreuk te doen aan het Open Data principe als er technische kennis vereist is. Sterker nog de definitie van Open Data zoals die bij de overheid geldt (https://data.overheid.nl) impliceert bijna dat technische kennis een vereiste is voor het gebruik van Open Data.

    Verwijderde gebruiker
  • Beste Ernest,

    Volgens mij worden naast gebruikers met een meer technische achtergrond, 'gewone' gebruikers ook bediend. Op de individuele pagina's staat in de beschrijving, mits er sprake is van een open data record, bij auteursrechthebbende Nationaal Archief, CC-BY-SA:

    Ik denk dat je ook moet beseffen waar deze api primair voor bedoeld is. Dat is m.i. het bieden van een dynamische service naar andere platforms en toepassingen. Het doel wat je voor ogen hebt met de api is het 'leegslurpen' ervan op basis van een aantal zoektermen. Daar is uiteraard niets op tegen en als je even weet hoe je de url kan opbouwen kan je dat met wat extra handelingen ook zelf doen. Alleen besef wel dat deze api niet zozeer is neergezet als een harvest-tool maar als een dynamische service die (externe) zoekvragen kan verwerken en daar feedback op geeft. 

    Zoals Bob ook aangeeft kan je op http://www.gahetna.nl/beeldbank-api/opensearch/description-document vinden hoe de api werkt. De kern ervan is deze regel:

    template="http://www.gahetna.nl/beeldbank-api/opensearch/?searchTerms={searchTerms}&startIndex={startItem?}&count={count}

    Vervolgens moet je bepalen welk veld nu waar precies voor zijn. De searchTerms staan uiteraard voor de zoekterm. Met de startIndex geeft je de api mee op welke pagina van de resultaten het tonen moet beginnen. Besef hierbij wel dat default er 10 resultaten teruggegeven worden. Je bekijkt dus record 1 tot en met 10, 11 tot en met 20 enzovoort. Zoals gezegd is het maximaal aantal resultaten 10 per pagina. Dat kan je eventueel naar beneden bijstellen via het element count. Op zie manier kan je een url opbouwen waarin je zegt:

    • Geef mij alle CC-BY-SA records van www.gahetna.nl

    • Gebaseerd op de zoekterm vierdaagse

    • De resultaten 81 tot en met 90

    Die url ziet er dan als volgt uit:

    http://www.gahetna.nl/beeldbank-api/opensearch/?searchTerms=vierdaa...

    Om de gehele set van de vierdaagse te harvesten zal je dus die url zo op moeten bouwen dat je alle items oproept en vervolgens binnenhaalt. Je index start dan op 1 en eindigt op 74.

    Verwijderde gebruiker
  • super, bedankt voor de toelichting. Ik ga er mee aan de slag.

    Ernest Verhees
  • Na even zwoegen is het me gelukt om na bovenstaande toelichting de data over de Nijmeegse foto’s uit de Open Search API te krijgen op de manier die voor mijn doel het meest geschikt is: een excelbestand met van elke foto de beschrijving, fotograaf, jaartal, link naar Gahetna en de url van de foto.

    Hiermee kan bijvoorbeeld makkelijk dagelijks een foto gekozen worden om op een facebookpagina te zetten als Nijmegentoen (waar ik niet bij betrokken maar wel enthousiast over ben). Misschien kan dat ook wel door een gebruik van Open Search zoals het bedoelt is maar ik weet niet hoe en heb geen ict’er ter beschikking die het kan doen. Ik vermoed dat dit voor meer beheerders van vergelijkbare facebookpagina’s of lokale historische websites geldt: wel enigszins behendig met internet en standaard softwarepakketten maar geen programmeerkennis. Deze doelgroep zou volgens mij ook bedient moeten worden met Open Data dus daarom een uitleg van Open Search voor dummies.

    Alle suggesties en verbeteringen van deze handelingen zijn van harte welkom. Ik hoop en verwacht dat dit veel makkelijker kan. 

    Data als xml-bestanden importeren

    Door de url naar de dataset van Anefo aan te passen kun je een bepaald zoekresultaat krijgen. Zoals Tim al schrijft is het belangrijkste in het description document: …..gahetna.nl/beeldbank-api/opensearch/?searchTerms={searchTerms}&startIndex={startIndex?}&count={count?}

    Als je alle foto’s met Nijmegen in de beschrijving wilt hebben, krijg je als url: 

    http://www.gahetna.nl/beeldbank-api/opensearch/?searchTerms=Nijmegen&startIndex=1&count=100

    In plaats van Nijmegen kun je uiteraard elke andere zoekterm gebruiken. Als je meerdere zoektermen op wilt geven kan dat door middel van een +: bijvoorbeeld Nijmegen en vierdaagse als zoektermen: 

    http://www.gahetna.nl/beeldbank-api/opensearch/?searchTerms=Nijmegen+Vierdaagse&startIndex=1&count=100

    Op basis van het description document kun je zien in welke velden je ook specifiek kunt zoeken. Bijvoorbeeld alleen resultaten met alleen als Geografisch trefwoord Nijmegen:

    http://www.gahetna.nl/beeldbank-api/opensearch/?searchTerms= Geografisch_trefwoord:Nijmegen&startIndex=1&count=100

    Het is overigens het makkelijkste om de link op te slaan via de rechtermuisknop en dan Doel opslaan als…. waarna je een xml-document kunt opslaan. Met de link gewoon openen krijg je (in explorer) een rss-feed

    Zoals hierboven al aangegeven, krijg je maximaal 100 resultaten. Count kan dus maximaal 100 zijn en ik zie geen reden om dat niet altijd te doen. StartIndex geeft aan vanaf welk resultaat de volgende 100 resultaten moeten komen. Met StartIndex=11 krijg je resultaat 11 tot en met 110 en bij StartIndex=101 de resultaten  101 tot en met 200 enz.

    xml-documenten opslaan en samenvoegen

    Omdat je er dus maximaal 100 krijgt maar er waarschijnlijk veel meer treffers zijn, moet je dus de zoekvraag elke keer aanpassen door StartIndex te wijzigen naar 101, 201, 301 enz. Hoe vaak dit moet is afhankelijk van het totaal aantal resultaten die je in het eerste xml-document kunt zien in het veld: 

    1001

    In geval van Nijmegen waren er dit 1001 dus heb ik (die laatste heb ik laten zitten) 10 xml-documenten met ieder 100 fotobeschrijvingen. Het is natuurlijk fijner als die allemaal in 1 xml-document komen. Dit heb ik gedaan door via Kladblok bij een kopie van het eerste bestand (met de resultaten vanaf 1) de andere beschrijvingen te plakken, het gaat dan om alles dat tussen het eerste en het laatste staat.  Deze gekopieerde tekst moet onder het laatste worden geplakt. Ik heb dit dus 9x gedaan met als eindresultaat 1 xml document met 1000 fotobeschrijvingen.

    maar voor dit samenvoegen zijn vast wel handige trucjes ??

    xml-document openen in excel

    Dit xm-bestand kun je openen in je browser of met kladblok of Word maar echt lekker lezen is dat niet. Ik gebruik liever excel voor een goed overzicht van dit soort beschrijvingen en gelukkig kun je met excel ook xml bestanden openen.

    Als je dit doet (ik gebruik excel 2007) krijg je na het openen van het xml-bestand 3 opties:

    - als een xml-tabel

    - als een alleen lezen werkmap

    - het taakvenster van de xml gegevens bron gebruiken.

    Die laatste werkt het beste omdat er 2 “problemen” zijn met het xml-bestand: er zijn veel velden waar ik niets mee doe en er zijn veel velden met meerdere waarden. Door dat laatste krijg je de velden per foto bij de eerste 2 opties niet op 1 rij maar op een veelvoud aan rijen per foto. Bij sommige velden is het begrijpelijk dat er meerdere waarden zijn maar bij andere ook niet. Zo is twee keer gebruikt en is , waarvan je graag CC-BY-SA wilt gebruiken, ook standaard gevuld met webwinkel, webdisplay en bestelbaar ??

    Via de laatste optie van openen kun je veel problemen omzeilen doordat je kunt selecteren welke velden je wilt importeren. Na deze optie krijg je een menu rechts waarin je de velden kunt kiezen. Je kunt hierbij het beste alleen velden gebruiken die altijd én 1 keer gevuld zijn. Ik kwam daarbij uit op

    - description (is overigens gelijk aan titel)

    - ns5:creator

    - ns5: date

    - link

    - url

    Om voor creator unieke waarden te krijgen heb ik overigens in Kladblok eerst nog het xml-document moeten bewerken door hieruit [onbekend] uit te verwijderen (via zoeken en vervangen).

    De gekozen velden sleep je naar de het veld in de werkmap waarin je deze wilt hebben. Als je dit logischerwijs doet naar A1, B1, C1 enz kreeg ik ze echter niet mooi naast elkaar. Door ze trapsgewijs (A1, B2, C3 enz.) in te voeren, gaat het wel goed (zie printscreen). Je moet dan alleen nog alles goed naast elkaar zetten. 

    Eindresultaat is een leuk overzicht van foto’s in de Anefo collectie over een bepaalde plaats of onderwerp of iets mee te doen op je website, facebook of twitter als dat een keer uitkomt…..

    Ernest Verhees
  • Interessant draadje! Vooral omdat het weer de vraag blootlegt hoe 'open' open data op dit moment eigenlijk wel of niet is. Ondanks alle 'beloftes' van open data, lijkt het erop dat het de komende tijd nog sterk noodzakelijk blijft om ook zélf goede navigatie, gebruiksvriendelijke zoekmachines en zo meer aan te blijven bieden. Naast het werk maken van open data.

    Open data heeft de potentie om uiteindelijk (indirect) te zorgen voor een nóg groter publieksbereik dan we nu als instellingen zelf kunnen bewerkstelligen. Maar aan het benutten van die potentie komen we heden pas mondjesmaat toe. Blijft dus nog even een spannende ontwikkeling!

    Christian van der Ven
  • klein zijspoor, maar hierom was ik met de foto's van Anefo bezig: 1100 foto's van de vierdaagse van Nijmegen uit archief KNBLO als Open Dataset beschikbaar plus beschrijvingen in een csv-bestand, zie het blog op Open Cultuurdata.

    volgende stap, een webservice voor de metadata.

    Ernest Verhees
  • Mooie set, Ernest! Heb je trouwens al zicht op het (her)gebruik van de vorige set, met portretfoto's van militairen?

    Christian van der Ven
  • Ondertussen heeft de gemeente Amsterdam besloten om de bouwtekeningen gratis te laten inzien. Dit is een zeer verheugend feit dat architectuur historici nu een betere toegang krijgen voorgeschoteld om deze in te zien. Het is een onverteerbaar feit dat in veel gemeentelijke bouwarchieven zich blauwdrukken bevinden die allang volgens de archiefwet hadden moeten worden overgedragen aan gemeentelijke archiefdiensten. Nu vormt de vaak hoge legeskosten een enorme drempel die moet worden genomen. Amsterdam en ook Rotterdam geven hierin dus een juichend voorbeeld hoe het moet. De huidige aannemer is namelijk alleen geïnteresseerd in de tegenwoordige tekening. Den Haag rekent een hoogwaardig leges tarief van schrik niet € 29,50 voor een inzage, en bezoekersaantallen zijn dan ook zeer drastisch gedaald. Wel moet in die mededeling worden meegegeven dat hierbij de kosten voor een kopie wel zijn gedaald. Ik hoop dat de eerder genoemde gratis voorbeelden navolging zullen krijgen zodat historisch onderzoek kan worden voortgezet. De toepassing van scans kopen in het Stadsarchief in Amsterdam heeft men hoogst verbaasd wanneer men scans op verzoek kan laten maken, maar niet de verplichting heeft deze af te nemen, en deze vervolgens gratis kunnen worden bekeken bij het Stadsarchief zelf, en waar de mogelijkheid aanwezig is om daarvan kopieen te verkrijgen. Ik begrijp echt wel dat ergens de kosten moeten worden betaald, maar niet als een ieder dan zomaar dit kan bekijken, sorry maar de logica ontgaat mij volkomen. Blijf kritisch tegen alle vormen van legesvergoedingen als deze echter in strijd zijn met de Archiefwet en beschikbaar maken in al zijn vormen. In die ontwikkeling gaat het de komende jaren behoorlijk wringen! met groet Peter.

    Verwijderde gebruiker
  • @Peter van Dam bedankt voor de toevoeging en het goede nieuws van de gratis tekeningen; zou het kunnen dat je deze reactie bedoelde bij mijn verslag van de presentatie over het betalen van de Amsterdamse bouwvergunningen op de kvandagen ? daar sluit het in ieder geval wel goed bij aan

    Ernest Verhees

Trefwoorden