Krikri/Heidrun Architecture diagram (PDF)
High-Level Components
Heidrun is a Ruby on Rails application, and most of its functionality is implemented through Krikri, a Rails engine.
Data Models
Metadata models used by Krikri are implemented using ActiveTriples, an ActiveModel-like interface for Resource Description Framework graphs. DPLA has produced the dpla_map gem, which implements ActiveTriples models for the DPLA Metadata Application Profile. A small number of Krikri models are implemented using ActiveRecord.
Metadata Harvesting, Mapping, and Enrichment
Krikri implements a number of harvesters used to bring metadata into Heidrun. Metadata mapping is implemented using a mapper, which uses the mapping domain specific language to instantiate DPLA MAP graphs.
Persistence and indexing
Graphs generated by the application are persisted in Apache Marmotta, a triple store that implements the Linked Data Platform 1.0 Recommendation. In our deployment, Marmotta stores its backend data in PostgreSQL, along with objects associated with ActiveRecord-based models.
Presentation
Blacklight