Keep Your Triples Together: Modeling a RESTtful, Layered Linked Data Store
Linked data (LD) is an increasingly important way for publishing structured data on the Web. Applications that represent their (meta) data as LD benefit from the flexibility, the semantic elaborateness and the simplicity of this approach. There are, however, several issues with such a solution in real-world scenarios, e.g., (i) mechanisms for writing LD such as SPARQL UPDATE are still under development, (ii) the generic, flexible nature of the used RDF data model makes the development of data- and user interfaces complex, and, (iii) descriptions of LD resources are treated as "atomic" entities, no mechanisms for accessing or delivering partial resource descriptions via HTTP are available. In this work, we introduce a model for a LD store that enforces structuring of its data in two dimensions: named graphs are used to separate logical aspects of the contained data into "horizontal" layers. Extraction functions are used to decompose these graphs into "vertical" records, collections of sub-graphs "centered" around some resource of interest. This model can be implemented using established technologies and formats from (Semantic) Web research and we discuss a prototypical implementation in this paper. Our prototype implements a REST interface for read/write access to the stored records. Further, clients can access partial records based on HTTP header settings. The higher structuredness of the data in such a store, when compared to arbitrary RDF graphs, brings practical advantages for implementing data or user interfaces. The strong data compartmentalization can be exploited in many ways, e.g., for more fine-grained access control or for concurrent write access to various layers of the store.