Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.
Digitale Bibliothek Jakob Voss Webservices und Datenformate Digitale Bibliothek WS 2007/2008 Fachhochschule Hannover Infor...
Datenformate <ul><li>Unterscheidung notwendig </li></ul><ul><ul><li>Abstrakte Strukturierung (Datenmodell) </li></ul></ul>...
Kodierungsformen <ul><li>XML </li></ul><ul><li>SQL </li></ul><ul><li>RDF </li></ul><ul><li>JSON </li></ul><ul><li>... </li...
Feldbasierte Formate <ul><li>Einfach </li></ul><ul><ul><li>Titel : Zettelwirtschaft  </li></ul></ul><ul><ul><li>Autor : Kr...
Pica-Datenformat <ul><li>Internes (bibliografisches) Datenformat der CBS und LBS-Software </li></ul><ul><li>Struktur aus F...
Webservices <ul><li>Konkretes Beispiel </li></ul><ul><ul><li>Gegeben eine ISBN </li></ul></ul><ul><ul><li>Ist das Buch(?) ...
Datenverarbeitung <ul><li>Daten holen </li></ul><ul><ul><li>Screen Scraper </li></ul></ul><ul><ul><li>Gegebene API </li></...
Verfügbarkeit ermitteln mittels Screen Scraper <ul><li>Katalog der Bibliothek im Kurt-Schwitters-Forum </li></ul><ul><li>h...
Verfügbarkeit ermitteln mittels Screen Scraper <ul><li>use LWP::Simple; </li></ul><ul><li>my $opac = 'http://opc4.tib.uni-...
Verfügbarkeit ermitteln mittels Screen Scraper <ul><li>$ ./isbn-at-schwitters.pl 3-931659-29-1 </li></ul><ul><li>3-931659-...
Vorhandensein über- prüfen mittels SRU-API <ul><li>Gesamtkatalog Hannover </li></ul><ul><ul><li>http://gso.gbv.de/DB=2.92/...
Vorhandensein über- prüfen mittels SRU-API <ul><li>use PICA::Server; </li></ul><ul><li>my $isbn = shift @ARGV; </li></ul><...
Weitergabe über SeeAlso-API <ul><li>Basiert auf unAPI und OpenSearch Suggestions </li></ul><ul><li>Query-Format: </li></ul...
(OpenSearch Suggestions) SeeAlso Linkserver ISBN JSON Links JavaScript
(OpenSearch Suggestions) SeeAlso Wrapper Webservice ISBN JSON Verfügbarkeit JavaScript OPAC ISBN
Bibliothekarische Datenformate <ul><li>Bernhard Eversberg  (1989, 1994, 1999) : Was sind und was sollen Bibliothekarische ...
BibTeX <ul><li>Hilfsmittel zur Formatierung von Literaturangaben im Satzprogramm LaTeX </li></ul><ul><li>Existiert seit 19...
BibTeX <ul><li>@BOOK{knuth2book, </li></ul><ul><li>author = &quot;Donald E. Knuth&quot;, </li></ul><ul><li>title = &quot;S...
BibTeX <ul><li>Publikationstypen </li></ul><ul><ul><li>article, book, conference, inbook, misc... </li></ul></ul><ul><li>F...
Einige weitere Formate <ul><li>[Qualified] Dublin Core (DC) </li></ul><ul><li>Metadata Object Description Schema (MODS) </...
&quot;Semantische&quot; Datenformate <ul><li>Datenfelder als global definierte &quot;Properties&quot; mit einem festen URI...
&quot;Semantische&quot; Datenformate <ul><li>Datenformat => Ontologie </li></ul><ul><li>Semantic Web (&quot;Web 3.0&quot;)...
Nächste SlideShare
Wird geladen in …5
×

Webservices und Datenformate

3.103 Aufrufe

Veröffentlicht am

Veröffentlicht in: Technologie
  • Als Erste(r) kommentieren

  • Gehören Sie zu den Ersten, denen das gefällt!

Webservices und Datenformate

  1. 1. Digitale Bibliothek Jakob Voss Webservices und Datenformate Digitale Bibliothek WS 2007/2008 Fachhochschule Hannover Informationsmanagement (BA) 26. November 2007
  2. 2. Datenformate <ul><li>Unterscheidung notwendig </li></ul><ul><ul><li>Abstrakte Strukturierung (Datenmodell) </li></ul></ul><ul><ul><li>Konkrete Kodierung (Datenformat) </li></ul></ul><ul><li>Definiert durch Standards </li></ul><ul><li>Datenformate basieren aufeinander </li></ul>
  3. 3. Kodierungsformen <ul><li>XML </li></ul><ul><li>SQL </li></ul><ul><li>RDF </li></ul><ul><li>JSON </li></ul><ul><li>... </li></ul>
  4. 4. Feldbasierte Formate <ul><li>Einfach </li></ul><ul><ul><li>Titel : Zettelwirtschaft </li></ul></ul><ul><ul><li>Autor : Krajewski, Markus </li></ul></ul><ul><li>Pica+ </li></ul><ul><ul><li>021A : </li></ul></ul><ul><ul><ul><li>a : Zettelwirtschaft </li></ul></ul></ul><ul><ul><li>028A : </li></ul></ul><ul><ul><ul><li>d : Markus </li></ul></ul></ul><ul><ul><ul><li>a : Krajeski </li></ul></ul></ul>
  5. 5. Pica-Datenformat <ul><li>Internes (bibliografisches) Datenformat der CBS und LBS-Software </li></ul><ul><li>Struktur aus Feldern und Unterfeldern </li></ul><ul><li>Pica3 zur Katalogisierung und Pica+ intern </li></ul><ul><li>Details geregelt durch Katalogisierungsrichtlinien </li></ul><ul><li>Ähnliche Grundstruktur (!) wie MAB/MARC </li></ul>
  6. 6. Webservices <ul><li>Konkretes Beispiel </li></ul><ul><ul><li>Gegeben eine ISBN </li></ul></ul><ul><ul><li>Ist das Buch(?) an der FH ausleihbar? </li></ul></ul><ul><ul><li>Gibt es das Buch(?) in Hannover? </li></ul></ul>
  7. 7. Datenverarbeitung <ul><li>Daten holen </li></ul><ul><ul><li>Screen Scraper </li></ul></ul><ul><ul><li>Gegebene API </li></ul></ul><ul><li>Daten weitergeben </li></ul><ul><ul><li>Direkt in eigene Anwendung einbinden </li></ul></ul><ul><ul><li>Proprietäre API </li></ul></ul><ul><ul><li>Standardisierte API </li></ul></ul>
  8. 8. Verfügbarkeit ermitteln mittels Screen Scraper <ul><li>Katalog der Bibliothek im Kurt-Schwitters-Forum </li></ul><ul><li>http://opc4.tib.uni-hannover.de:8080/DB=11/ </li></ul><ul><li>Titeldaten Standort und Ausleihstatus </li></ul><ul><li>Raussuchen per Hand </li></ul>
  9. 9. Verfügbarkeit ermitteln mittels Screen Scraper <ul><li>use LWP::Simple; </li></ul><ul><li>my $opac = 'http://opc4.tib.uni-hannover.de:8080/DB=11'; </li></ul><ul><li>my $ikt = 1016; </li></ul><ul><li>my $regexp = '>Ausleihstatus: </strong></td><td[^>]+>([^>]+)<BR>([^>]+)<'; </li></ul><ul><li>my $isbn = shift @ARGV; </li></ul><ul><li>my @status; </li></ul><ul><li>if ($isbn) { </li></ul><ul><li>my $url = $opac . &quot;/CMD?ACT=SRCHA&IKT=&quot; . $ikt . &quot;&TRM=&quot; . $isbn; </li></ul><ul><li>my $html = get($url); </li></ul><ul><li>while ($html =~ m/$regexp/g) { </li></ul><ul><li>push @status, &quot;$isbn: $1, $2&quot;; </li></ul><ul><li>} </li></ul><ul><li>@status = (&quot;$isbn: nicht gefunden&quot;) unless @status; </li></ul><ul><li>print join(&quot; &quot;, @status) . &quot; &quot;; </li></ul><ul><li>} else { </li></ul><ul><li>print &quot;Usage: $0 ISBN &quot;; </li></ul><ul><li>} </li></ul>
  10. 10. Verfügbarkeit ermitteln mittels Screen Scraper <ul><li>$ ./isbn-at-schwitters.pl 3-931659-29-1 </li></ul><ul><li>3-931659-29-1: Ausleihbar, Bitte selbst am Standort Freihand dem Regal entnehmen </li></ul><ul><li>$ ./isbn-at-schwitters.pl 3-936931-16-X </li></ul><ul><li>3-936931-16-X: Praesenzexemplar, - </li></ul><ul><li>3-936931-16-X: Ausleihbar, z. Zt. ausgeliehen </li></ul><ul><li>3-936931-16-X: Ausleihbar, z. Zt. ausgeliehen </li></ul><ul><li>$ ./isbn-at-schwitters.pl 978-0-8050-8043-8 </li></ul><ul><li>978-0-8050-8043-8: beim Buchhandel bestellt, - </li></ul><ul><li>$ ./isbn-at-schwitters.pl 978-3-446-41208-8 </li></ul><ul><li>978-3-446-41208-8: Praesenzexemplar, - </li></ul><ul><li>$ ./isbn-at-schwitters.pl 978-3-937514-42-0 </li></ul><ul><li>978-3-937514-42-0: nicht gefunden </li></ul>
  11. 11. Vorhandensein über- prüfen mittels SRU-API <ul><li>Gesamtkatalog Hannover </li></ul><ul><ul><li>http://gso.gbv.de/DB=2.92/ </li></ul></ul><ul><li>SRU-Schnittstelle </li></ul><ul><ul><li>http://gso.gbv.de/sru/DB=2.92/ </li></ul></ul><ul><li>Titel- und Exemplardaten im PICA-Format </li></ul>
  12. 12. Vorhandensein über- prüfen mittels SRU-API <ul><li>use PICA::Server; </li></ul><ul><li>my $isbn = shift @ARGV; </li></ul><ul><li>my @status; </li></ul><ul><li>if ($isbn) { </li></ul><ul><li>my $server = PICA::Server->new( </li></ul><ul><li>SRU => &quot;http://gso.gbv.de/sru/DB=2.92/&quot; </li></ul><ul><li>); </li></ul><ul><li>$server->cqlQuery( 'pica.isb=' . $isbn, </li></ul><ul><li>Record => sub { </li></ul><ul><li>$record = shift; </li></ul><ul><li>my @bib = $record->values('101@$d'); </li></ul><ul><li>push @status, @bib; </li></ul><ul><li>} </li></ul><ul><li>); </li></ul><ul><li>@status = (&quot;$isbn: nicht gefunden&quot;) unless @status; </li></ul><ul><li>print join(&quot; &quot;, @status) . &quot; &quot;; </li></ul><ul><li>} else { print &quot;Usage: $0 ISBN &quot;; } </li></ul>
  13. 13. Weitergabe über SeeAlso-API <ul><li>Basiert auf unAPI und OpenSearch Suggestions </li></ul><ul><li>Query-Format: </li></ul><ul><ul><li>wie unAPI mit format=seealso&id=... </li></ul></ul><ul><li>Response-Format: </li></ul><ul><ul><li>OpenSearch Suggestions (JSON) </li></ul></ul><ul><ul><li>[&quot;..id..&quot;,[..titles..],[..descriptions..],[..urls..]] </li></ul></ul>
  14. 14. (OpenSearch Suggestions) SeeAlso Linkserver ISBN JSON Links JavaScript
  15. 15. (OpenSearch Suggestions) SeeAlso Wrapper Webservice ISBN JSON Verfügbarkeit JavaScript OPAC ISBN
  16. 16. Bibliothekarische Datenformate <ul><li>Bernhard Eversberg (1989, 1994, 1999) : Was sind und was sollen Bibliothekarische Datenformate? http://www.allegro-c.de/formate/ </li></ul><ul><li>MARC, MAB, PICA, Allegro ... </li></ul><ul><ul><li>Feldbasiert </li></ul></ul><ul><ul><li>Insellösungen (eigener Zeichensatz, eigene Werkzeuge, eigene Sonderwege...) </li></ul></ul><ul><ul><li>Definiert durch: Katalogisierungsrichtlinien </li></ul></ul><ul><ul><li>Nachteil: Ungenau (nicht formal) definiert, wenig Kontrolle, Werkzeuge, APIs... </li></ul></ul>
  17. 17. BibTeX <ul><li>Hilfsmittel zur Formatierung von Literaturangaben im Satzprogramm LaTeX </li></ul><ul><li>Existiert seit 1985 (sic!) </li></ul><ul><li>Trennung von Layout (Bibliographystyle) und Inhalten (Datensätze in .bib-files) </li></ul>
  18. 18. BibTeX <ul><li>@BOOK{knuth2book, </li></ul><ul><li>author = &quot;Donald E. Knuth&quot;, </li></ul><ul><li>title = &quot;Seminumerical Algorithms&quot;, </li></ul><ul><li>volume = 2, </li></ul><ul><li>series = &quot;The Art of Computer Programming&quot;, </li></ul><ul><li>publisher = &quot;Addison-Wesley&quot;, </li></ul><ul><li>address = &quot;Reading, Massachusetts&quot;, </li></ul><ul><li>edition = &quot;Second&quot;, </li></ul><ul><li>year = &quot;1981&quot;, </li></ul><ul><li>note = &quot;This is a full BOOK entry&quot;, </li></ul><ul><li>} </li></ul>
  19. 19. BibTeX <ul><li>Publikationstypen </li></ul><ul><ul><li>article, book, conference, inbook, misc... </li></ul></ul><ul><li>Felder </li></ul><ul><ul><li>author, title, journal, year, number, pages... </li></ul></ul><ul><li>Vor- und Nachteile </li></ul><ul><ul><li>robuster, etablierter und verbreiteter de-facto-Standard </li></ul></ul><ul><ul><li>Kein verbindliches Datenschema, kein Unicode etc. </li></ul></ul>
  20. 20. Einige weitere Formate <ul><li>[Qualified] Dublin Core (DC) </li></ul><ul><li>Metadata Object Description Schema (MODS) </li></ul><ul><li>Metadata Encoding and Transmission Standard (METS) </li></ul><ul><li>Text Encoding Initiative (TEI) </li></ul><ul><li>Encoded Archival Description (EAD) </li></ul><ul><li>ONIX International (Online Information Exchange) </li></ul><ul><li>EXIF, IPTC (XMP) </li></ul><ul><li>u.v.a.m. ! </li></ul>ONIX
  21. 21. &quot;Semantische&quot; Datenformate <ul><li>Datenfelder als global definierte &quot;Properties&quot; mit einem festen URI </li></ul><ul><ul><li>Beispiel: http://xmlns.com/foaf/0.1/name </li></ul></ul><ul><li>Ggf. zusätzliche Beschränkung auf bestimmte Datentypen </li></ul><ul><li>Ohne Validierung sind Datentypen witzlos! </li></ul>
  22. 22. &quot;Semantische&quot; Datenformate <ul><li>Datenformat => Ontologie </li></ul><ul><li>Semantic Web (&quot;Web 3.0&quot;) im Kommen </li></ul><ul><li>Übung: Bestehende Formate müssen durch Verwendung von RDF tauglich fürs Semantic-Web gemacht werden! </li></ul><ul><li>Bibliographic Ontology? </li></ul>

×