ARK Resolver

Table of Contents

1 Background

2 Description

Implementation of a local Name Mapping Authority (see Background) for ARK identifiers.

3 Location

host: ark.lib.uchicago.edu
{source|executable}: /data/repository/ebin

4 Dependencies

configuration file: /usr/local/etc/yaws/yaws.conf

yaws.conf consists of the following:

logdir = /var/log/yaws
ebin_dir = /data/repository/ebin
<server ark.lib.uchicago.edu>
   port = 80
   listen = 128.135.53.128
   docroot = /data/repository/yaws/docroot
   appmods = </ark:/61001, ark>
   dir_listings = false
</server>

http://ark.lib.uchicago.edu/ark:/61001/bqrhbgxr1tp4x/ac/2014-005/mvol/0007/0001/0001/mvol-0007-0001-0001.dc.xml

5 Productionize

5.1 Appmod

erlc ark.erl

5.2 Service

yaws -D --heart

after changes to the appmod:

yaws --load ark 

the above should return:

[{module,ark}]

6 Notes

Observe differences in the version numbers in include file paths if developing on a different machine, e.g.,

-include("/usr/local/lib/erlang/lib/xmerl-1.3.7/include/xmerl.hrl").
-include("/usr/local/lib/erlang/lib/yaws-1.99/include/yaws_api.hrl").

as opposed to (for example)

-include("/usr/local/lib/erlang/lib/xmerl-1.3.8/include/xmerl.hrl").
-include("/usr/local/lib/erlang/lib/yaws-2.0/include/yaws_api.hrl").

Observe differences in location of SIP data, e.g.,

Prefix = "/data/repository/tr/", % mount -t nfs [host]:/export/repository /data/repository

as opposed to (for example)

Prefix = "/data/repository/ac/", 

The appmod must reside on the same server as ark.lib. Modify the ark.lib alias as needed or modify the URLs in the SIP data appropriately.

Author: Charles Blair (chas@hedwig.lib.uchicago.edu)

Date: 2015-05-06 Rev. 2016-09-22

Emacs 25.3.1 (Org mode 8.2.10)

Valid XHTML 1.0 Strict