git clone https://@opensourceprojects.eu/git/p/timbus/dpes/preservation-identifier/server timbus-dpes-preservation-identifier-server



File Date Author Commit
.settings 2014-05-30 Rudolf Mayer Rudolf Mayer [9bc551] Merge branch 'master' of https://opensourceproj...
WEB-INF 2014-05-27 Johannes Binder Johannes Binder [6c1155] Startup issue fix
resources 2014-12-03 Johannes Binder Johannes Binder [8eb76c] Update to be compatible with the current reason...
src 2014-12-18 Johannes Binder Johannes Binder [c87b86] Removed test results from the reasoner service ...
test 2014-12-18 Johannes Binder Johannes Binder [c87b86] Removed test results from the reasoner service ...
.classpath 2014-05-30 Rudolf Mayer Rudolf Mayer [9bc551] Merge branch 'master' of https://opensourceproj...
.gitignore 2014-10-21 Johannes Binder Johannes Binder [ea2180] Ignoring catalog files
.project 2014-05-30 Rudolf Mayer Rudolf Mayer [9bc551] Merge branch 'master' of https://opensourceproj...
README.md 2014-08-07 Johannes Binder Johannes Binder [8797c8] Merge remote-tracking branch 'origin/master'
build.xml 2014-01-13 Johannes Binder Johannes Binder [55c1a6] Refactor the logic out of the service
deployOnKronos.sh 2014-05-27 Rudolf Mayer Rudolf Mayer [bee689] Merge branch 'master' of https://opensourceproj...
deployOnTestbed.sh 2014-05-27 Johannes Binder Johannes Binder [f8f754] Deployment script for the testbed
license_header.txt 2014-01-13 Johannes Binder Johannes Binder [36cbed] Add Maven support
pom.xml 2014-10-21 Johannes Binder Johannes Binder [ea2180] Ignoring catalog files
settings.xml 2014-05-27 Rudolf Mayer Rudolf Mayer [c1a61f] Merge branch 'master' of https://opensourceproj...
updateDeps.sh 2014-04-14 Johannes Binder Johannes Binder [810fc2] Library update

Read Me

PreservationIdentifier-Server

A webservice that for a given system context model and a set of resources under risk generates alternative system context models
where resources under risk are replaced by other (compatible) resources.
At the moment the only supported resources are tools.

Usage

There are three ways to publish this webservice

  1. in a tomcat. all you need to do is copy/symlink the project root into your tomcat/webapps folder
  2. using the java endpoint, by running PreservationIdentifierServer (e.g. by ant PreservationIdentifierServer)
    you can modify the service URL by passing a CLI argument with the URL
  3. use "mvn clean tomcat:redeploy" to deploy on the official server

The webservice is hosted on: http://kronos.ifs.tuwien.ac.at:8080/pi/preservationIdentifier and can be invoked from there.

A limit of alternatives can be specified in the pi.properties file (use the key: "limit"). The location of the
properties file is shown in the logs when receiving a request.
To enable/disable the usage of the dependency reasoner service the "useDependencyReasoner" of the properties file can be set to true/false.

Dependencies

  • JDK >= 1.7
  • Maven >= 2

Supported individuals

The affectedResource can be specified as IRI or fragment. The fragment or label of this individual needs to match
to individuals of the kblib, which can be checked in http://kronos.ifs.tuwien.ac.at:8080/kbserver/.
- individuals of type SystemSoftware that are defined in the passed ontology or in direct imports thereof
- individuals of type File that are defined in a TIMBUS compliant way, i.e. specifying an objectCharacteristics property,
which specifies a Format that in turn specifies a FormatRegistry that contains the Pronom ID of the format

Development

To update to a new dependency resolver service version (SOAP) the WSDL needs to be redownloaded into the resources/wsdls directory.

FAQ

  • Alternatives are not returned for every risk.

    Only individuals of type SystemSoftware that are defined in the passed ontology or in direct imports thereof are considered.
    Risks are silently skipped if the individual could not be found.

  • The knowledgebase is unavailable.

    Have a look at the kbgen project to rebuild the knowledgebase or obtain a copy.

  • The query runs forever and stops eventually with an exception.

    Make sure that no self-signed certificates are imported in the ontology that is passed.
    If there are such:

    • download the certificate (e.g. in firefox)
    • create a keystore:
      keytool -import -file [cacert.pem] -alias [alias] -keystore [keystore.ts] -storepass [password]
    • load the keystore:
      System.setProperty("javax.net.ssl.trustStore", "/tmp/pi/keystore.ts");