Difference between revisions of "MD Store"
Jump to navigation
Jump to search
m (→Base URL) |
|||
Line 28: | Line 28: | ||
===Base URL=== | ===Base URL=== | ||
*Base | *Base URL of the core-service instance is appended with the URL of the new-service | ||
''<core-service-url>''/md-store | ''<core-service-url>''/md-store |
Revision as of 14:30, 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 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
- content-stream