Our delightful little platform pulls lots of data from lots of places, ties our whole stack together, and lives comfortably at our GitHub.
Everyone likes JSON, but it’s not great for every purpose. Pointing from one JSON object to another is a good example (because we do that a lot). So we use JSON-LD.
No worries – it’s still JSON. It’s just got a couple of standardized fields.
Search is hard. Good thing smart people are working on it. Smart people like those at Lucene. They do search so we don’t have to.
Search is so complicated, in fact, that we don’t actually touch Lucene all that much. For that we turn to…
How does one do distributed search with a handsome, coherent API?
You certainly don’t write your own. We use elasticsearch.
Tech stuff may be hard, but the cat-wrangling, hair-pulling thunderdome of standards creation is a whole ‘nother thing.
We do a bit of this ourselves, but we let do other organizations do a lot of the heavy lifting. For that reason, you’ll see a whole bunch of namespaces scattered throughout. Here’s a de-acronymed list:
- dc: Dublin Core elements
- dcterms: Dublic Core terms
- dcmitype: Dublin Core Metadata Initiative types
- dpla: Hey, that’s us!
- edm: Europeana Data Model
- ore: Open Archives Initiative Object Reuse and Exchange
- rdf: Resource Description Framework
- rdfs: Resource Description Framework Schema
- skos: Simple Knowledge Organization System
- owl: Web Ontology Language