Library 2.0: Using XMP to create searchable archives

by

[norsk under]

I have been toying around with the idea of using Adobe’s XMP to create a really simple publishing system for archive material for quite some time — about three years. The essence of this is:

  • XMP embeds metadata in files
  • A collection of such files forms a database

Many people are familiar with EXIF metadata from their digital camera, XMP allows the insertion of metadata into all filetypes, according to different schema.

Benefits:

  • The schema system for metadata input in XMP is extremely flexible and extensible (it is RDF)
  • XMP can technically be embedded into any file format (though it is only commonly used in PDFs and graphics files)
  • The metadata can be read from source, so that publishing is as easy as putting the file itself on the web
  • XMP is a standard, and forms a solution to the metadata requirement of PDF/A
  • Embedding metadata into a data file creates a link between the data and its metadata — the context of the file is retained
  • Many operating systems support searching in this data on the desktop
  • A “distributed database” — a collection of files with XMP metadata — can be formed by gathering files in a directory on a server, by providing a collection of weblinks to different sites

The technical solution is to develop some kind of solution that can extract and parse the XMP metadata for a collection of files (much like the PHP function exif_read_data, but which works for more than just jpegs and tiffs). Such a solution would make it easy to produce bibliographic databases with online content; examples include: Master’s theses online, image databases, etc.

An example of this can be found here: One file and its XMP data. It will work on multiple files, but I haven’t worked on the view, it is raw (view the page source to see the raw RDF). If you’re interested, here is the PHP source: xmpextractor.php.txt — you might need to edit the regular expression to make it work with anything other than PDFs.

Note that using this to generate short lists of files will probably work OK, but several thousand files would create problems (but why else do we have caching?)

Edit: The regular expression has been edited to manage some variants on the PDF standard — this sounds clever, but it was as simple as adding [\'”].

—-

Jeg har lekt med idéen å bruke Adobes XMP å lage en enkel arkivpubliseringsystem i omtrent tre år nå. I bunn og grunn består denne idéen i:

  • at XMP baker metadata inn i filer
  • at en samling av disse filer danner en database

Mange er kjent med EXIF-metadata fra digitalfotoapparater, XMP gjør det mulig å bake metadata inn i alle filtyper etter ulike skjemaer.

Fordelene med dette er:

  • Skjemasystemet for metadatainnbaking i XMP er både fleksibelt og utvidbart (det er basert på RDF)
  • XMP kan teknisk sett bakes inn i en hvilken som helst filformat (selv om det er for tiden vanligst i PDF og grafikkfiler)
  • Metadata kan leses fra kilden, slik at publisering er så enkelt som å legge filer ut på nettet
  • XMP er standardisert, og er en løsning for krav om metadata i PDF/A-standarden
  • Innbaking av metadata i datafiler danner en uoppløselig lenke mellom data og dets metadata — konteksten mellom disse to oppretteholdes
  • Mange operativsystemer støtter søking i metadata fra skrivebordet
  • En fordelt database — en samling av filer med XMP metadata — kan lages ved å samle filer i en mappe på en filtjener, eller ved å legge ut en samling med weblenker

Den tekniske løsningen er å utvikle noe som kan trekke ut metadata og analysere dette (lik PHP-funksjonen exif_read_data, men at den leser mer enn bare jpeg eller tiff). En slik løsning ville muliggjør enkel produksjon av bibliografiske databaser med “fulltekst”. F. eks. masteroppgaver, billeddatabaser, osv.

Du finner et eksempel her: En fil og dens XMP data. Denne fungerer nok greit for opptil flere filer, men jeg har ikke jobbet med visningslaget: Det viser bare rå RDF (se sidekilde for å se dette). Hvis du er intressert se PHP-kilden her: xmpextractor.php.txt — denne må fikses på for at den skal kunne lese XMP-metadata fra annet en PDF-filer.

Merk at en slik løsning funker helt greit for små mengder filer, men større mengder filer ville gjort ting tregere (men det er nok derfor vi har cache-lager, eller?)

Red.: Det regulære uttrykket ble endret for å fange noen varianter av PDF-standarden — altså at ” ble endret til [\'”].

One Response to “Library 2.0: Using XMP to create searchable archives”

  1. Creating online archives the minimal way « Infonatives Says:

    […] database: the files themselves are the database. I presented a simple parser that retrieves XML metadata from PDFs in a previous post. Of course, the parser I wrote here is ludicrouly simple, and uses a very rough technique to […]

Comments are closed.


%d bloggers like this: