Difference between revisions of "MD Store"

From MPDLMediaWiki
Jump to navigation Jump to search
Line 35: Line 35:


     http://coreservice.mpdl.mpg.de/md-store
     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 --[[User:Natasab|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===
===Interface Methods URL===

Revision as of 14:29, 12 July 2010

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

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]