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 is part of the process for massive batch metadata update for eSciDoc objects.

Technologies[edit]

  • The triple store technology is Jena SDB (TDB doesn't support transactions)
  • eSciDoc: The MD Store uses eSciDoc security management (AA)
    • It should be generic to enable other services to log in into MDstore

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 (proposal 1) - base URL of the core-service is appended with the URL of the new-service
    <core-service-url>/md-store 

e.g.

    http://coreservice.mpdl.mpg.de/md-store
  • Base-URL (proposal 2) - separate URL for the new service is provided (independently of the core-service URL)
    <service-url>

e.g.

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


Logically, there is the following difference:

  • In Proposal 1, it is clear that the MD-store would be service bounded with the particular core-service
    • vote for Proposal 1 --Natasa 11:20, 12 July 2010 (UTC)
  • In proposal 2, the service may be considered as a single service for several different repositories
    • even in this case it would be possible to have something like repository-specific service, such as (variant of proposal 2):
      • pubman.mpdl.mpg.de/md-store
      • img.mpdl.mpg.de/md-store
      • etc..
      • but other issues may appear e.g. no clear way to distinguish if these are part of same repository or not

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
      • component-id
    • 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?

Architecture[edit]