MD Store

From MPDLMediaWiki
Jump to navigation Jump to search

Introduction[edit]

The MD Store is a triple store for medatada storage and management. It allows the batch metadata update scenarios of eSciDoc resources.

The MD Store manages resources which are items or containers in an eSciDoc Repository. The MDStore is designed to be used independently from eSciDoc Repository (in case such a need arises) or in relation with another, non-eSciDoc repository.

Technology[edit]

  • The triple store technology is Jena SDB (TDB doesn't support transactions)

Interface[edit]

  • The MD Store has a REST interface. Methods can be grouped in two groups, such as:
    • CRUD-based methods
    • Task-oriented methods
  • CRUD-based methods
    • GET: retrieves the requested resource
    • POST: create a new resource
    • PUT: Updates a resource
    • DELETE: Deletes a resource
  • Task-oriented methods (to be discussed)
    • checkOrigin - to check the difference between the properties graph in MD-Store and origin repository ?
    • updateFromOrigin - to update the properties graph from the origin (input: single resource), shall it also try to e.g. delete a metadata graph in case when this is removed from the repository origin ?
    • CQL-enabled (SPARQL enabled) - search ?


URL definition[edit]

Base URL[edit]

  • Base URL of the core-service instance is appended with the URL of the new-service
    <core-service-url>/md-store 

e.g.

    http://coreservice.mpdl.mpg.de/md-store

Interface Methods URL[edit]

  • For retrieval of the complete resource from the MD store (properties + all metadata record graphs)
    <base-url>/<resource-id>


e.g.

     <base-url>/escidoc:1234
  • For all metadata records graph (NOTE: there can be several metadata records managed in the MD Store for a resource)
    <base-url>/<resource-id>/md-records 

e.g.

     <base-url>/escidoc:1234/md-records
  • For single metadata record graph
    <base-url>/<resource-id>/md-records/md-record/<md-record-id> 

e.g.

     <base-url>/escidoc:1234/md-records/md-record/escidoc


  • For properties graph
    <base-url>/<resource-id>/properties

e.g.

     <base-url>/escidoc:1234/properties

Data Model[edit]

  • The MD Store defines 2 rdf graphs:
    • Metadata graphs, where metadada triples are stored
    • Property graphs with following properties:
      • context-id
      • public-status
      • lock-status
      • content-model-id
      • last-modification-date
      • created-by
      • modified-by
      • version-status
    • Note: the names of the properties are same as in eSciDoc core. However, in case when eSciDoc Core is not used, these may be set-up by the external system

Questions[edit]

  • shall the interface methods understand the resource version-id?
  • three alternatives could be implemented:
    • content-stream
      • is indeed for binary content only (together with the item object, must be base-64 encoded, most probably not applicable)
    • md-record - good as in this case we could deal with items, containers ... even originally considered as cumbersome, may be good approach e.g.
      • create new MD-Profile (Externally-reference
    • externally-referenced component

Architecture[edit]

  • eSciDoc: The MD Store uses eSciDoc security management (AA)
    • It should be generic to enable other services to log in into MDstore