ESciDoc Services FledgedDataService

From MPDLMediaWiki
Jump to navigation Jump to search
eSciDoc SOA

SOAP and REST style interfaces
Service layers

Core services
Context Handler · Item Handler
Container Handler
Organizational Unit Handler
User Account Handler
Authentication
Content Model Handler
Semantic Store Handler

Intermediate services
Validation Service
Statistics Manager
Technical Metadata extraction
PIDManager
Basket Handler
Duplication detection
ImageHandler(Digilib)

Application services
Depositing
Searching
Search&Export
Control of Named Entities
Citation style Manager
RightsChecking
DataAcquisition
Transformation
Fledged Data
PID Cache
OAI-PMH

SOA Introduction

edit


ID (Label) FDS

Complete Name Fledged Data Service

Status In implementation

Description The Fledged Data Service provides functionalities for a repository to expose/ disseminate its data to the world in a standardized way.

Operations Overview[edit]

OAI Compliance[edit]

The Fledged Data Service supports the Open Archives Initiatives Protocol for Metadata Harvesting (OAI-PMH).
The xslt for the transformation of a record needs to be placed in the presentation part of the service (src/main/resources), and the path needs to be specified in the fds.properties file.
The properties file can be found in the presentation module of the Fledged Data Service under: src/main/resources/fds.properties

Verb: Identify[edit]

Gives back information on the Repository.
Parameter: None
Url: RepositoryBaseURL/fledgeddata/oai/?verb=Identify
Not supported: None

Verb: ListMetadataFormats[edit]

Gives back all metadata formats which are supported by the repository. All listed formats can be used as a parameter for a GetRecord request.
Parameter: None
Example: RepositoryBaseURL/fledgeddata/oai/?verb=ListMetadataFormats
Not supported: identifier

Verb: ListSets[edit]

Gives back a list of sets which are provided by the repository.
Parameter: None
Example: RepositoryBaseURL/fledgeddata/oai/?verb=ListSets
Not supported: resumptionToken

Verb: GetRecord[edit]

Gives back a specific record, specified in the identifier parameter.
Parameter: identifier, metadataPrefix
Example: RepositoryBaseURL/fledgeddata/oai/?verb=GetRecord&identifier=ID&metadataPrefix=oai_dc
Not supported: None

Verb: ListIdentifiers[edit]

Gives back the oai header for all records in the repository or, if set parameter is defined , all records of a set.
Parameter: metadataPrefix, set
Example: RepositoryBaseURL/fledgeddata/oai/?verb=ListIdentifiers&metadataPrefix=oai_dc&set=SETID
Not supported: from, until, resumptionToken

Verb: ListRecords[edit]

Gives back the metadata record of all records in the repository or, if set parameter is defined , all records of a set.
Parameter: metadataPrefix, set
Example: RepositoryBaseURL/fledgeddata/oai/?verb=ListRecords&metadataPrefix=oai_dc
Not supported: from, until, resumptionToken

Sitemap Creation[edit]

The sitemap functionality of the Fledged Data Service exploits the oai interface and creates a sitemap out of all items it retrieves with a ListIdentifiers call.
The interval of the sitemap creation can be configured in the fds properties file.
Example: RepositoryBaseURL/fledgeddata/sitemap.xml

Content Negotiation[edit]

[Planned feature] "Content negotiation is a mechanism defined in the HTTP specification that makes it possible to serve different versions of a document (or more generally, a resource representation) at the same URI ..." 1

Properties[edit]

If the FDS is included the following properties (fds.properties) can be set:

 appname=Fledged Data Service 
baseURL=http://localhost:8080/fledgeddata
oai.serviceUnavailable=false #(Optional): Forces the server to return a SC_SERVICE_UNAVAILABLE code to inform the user that it is currently being worked on.
oai.description= This is the description of the repository #(Optional): Describe your repository
oai.baseURL=http://localhost:8080/fledgeddata/oai #(Optional): Force OAI responses to include the specified baseURL instead of getting it from the HttpServletRequest. This may be necessary if your firewall/router/port-mapper is messing with the request in some way.
oai.repositoryIdentifier
oai.sampleIdentifier
oai.repositoryName=imeji
Repository.secondsToLive=[# of seconds] #(Optional): The number of seconds a resumptionToken is retained for reuse. The default is -1, which means that resumptionTokens are stateless and can be resent anytime.
Repository.harvestable=true #(Optional): If present and false, the ListRecords and ListIdentifiers verbs will send back an error condition. This might be useful if you want to provide access to the other verbs but want to discourage general harvesting.
Repository.granularity=YYYY-MM-DD #(Required): The supported level of datetime granularity for from/until parameters.
Repository.baseURL=http://yourInstanceUrl/imeji
Repository.nativeFormat.Name=imeji
Repository.nativeFormat.Schema=http://colab.mpdl.mpg.de/mediawiki/Imeji/item
Repository.nativeFormat.ns=http://imeji.org/terms
Identify.repositoryName=Imeji #(Required): Text to use as the Identify verb's repositoryName value.
Identify.adminEmail= Please enter admin email value #(Required): Text to use as the Identify verb's adminEmail value.
Identify.earliestDatestamp=[datetime stamp of earliest] #(Required): Text to use as the Identify verb's earliestDatestamp value.
Identify.deletedRecord=[no|transient|persistent] #(Required): Text to use as the Identify verb's deletedRecord value.
Sitemap.creationInterval=1440 #How often the sitemap xml is updated in min