-
Notifications
You must be signed in to change notification settings - Fork 36
Yaz and Metaproxy
- Ansible / Vagrant / VirtualBox for building a local VM Metaproxy server
- Metaproxy for Metaproxy integration
- YAZ v5.20.0 or higher for active conversion
The retrieval tool in YAZ is driven by an XML configuration, documented in the YAZ User's Guide and Reference.
Yaz can be installed from a package manager and the basic method for running a static conversion is using rdf-lookup
The retrieval tool in YAZ is driven by an XML configuration,
documented in the
YAZ User's Guide and Reference.
The YAZ conversion for RDF/XML is called rdf-lookup
, and the static
configuration looks like this:
<backend syntax="xml" name="rdf-lookup">
<xslt stylesheet="xsl/marc2bibframe2.xsl"/>
</rdf-lookup>
</backend>
With this configuration saved as record-conv.xml, you could perform an active conversion of a MARCXML file using the yaz-record-conv utility:
yaz-record-conv record-conv.xml test/data/marc.xml
Active conversion of records - resolving URIs for elements of the RDF/XML output from authoritative sources, like the Library of Congress Name Authority File, is achieved through a retrieval tool conversion in the YAZ toolkit.
The retrieval tool in YAZ is driven by an XML configuration,
documented in the
YAZ User's Guide and Reference.
The YAZ conversion for RDF/XML is called rdf-lookup
, and the
configuration looks like this:
<backend syntax="xml" name="rdf-lookup">
<xslt stylesheet="xsl/marc2bibframe2.xsl"/>
<rdf-lookup debug=1>
<namespace prefix="bf" href="http://id.loc.gov/ontologies/bibframe/" />
<namespace prefix="bflc" href="http://id.loc.gov/ontologies/bflc/"/>
<lookup xpath="//bf:contribution/bf:Contribution/bf:agent/bf:Agent">
<key field="bflc:name00MatchKey"/>
<key field="bflc:name01MatchKey"/>
<key field="bflc:name11MatchKey"/>
<server url="http://id.loc.gov/authorities/names/label/%s" method="HEAD"/>
</lookup>
</rdf-lookup>
</backend>
From the YAZ User's Guide:
The debug=1 attribute tells the filter to add XML comments to the key nodes that indicate what lookup it tried to do, how it went, and how long it took. The namespace prefix bf: is defined in the namespace tags. These namespaces are used in the xpath expressions in the lookup sections. The lookup tag specifies one tag to be looked up. The xpath attribute defines which node to modify. It may make use of the namespace definitions above. The server tag gives the URL to be used for the lookup. A %s in the string will get replaced by the key value. If there is no server tag, the one from the preceding lookup section is used, and if there is no previous section, the id.loc.gov address is used as a default. The default is to make a GET request, this example uses HEAD.
With this configuration saved as record-conv.xml, you could perform an active conversion of a MARCXML file using the yaz-record-conv utility:
yaz-record-conv record-conv.xml test/data/marc.xml
The rdf-lookup conversion support was first introduced in YAZ v5.19.0. YAZ 5.20.0 provided a significant performance improvement for HEAD requests, so using that version or higher is highly recommended.
Both the static and active conversions can be easily integrated into
Index Data's Metaproxy
metasearch gateway software as a record output format. A sample filter
configuration is in the metaproxy directory. With this
filter configuration, an SRU request to the server like
http://metaproxy.mylibrary.org/?version=1.1&operation=searchRetrieve&query=rec.id%3D13600108&recordSchema=bibframe2&startRecord=1&maximumRecords=1
would retrieve and display the requested record converted into
BIBFRAME triples in RDF/XML format. The
install-filters.sh script in that
directory would deploy the filters into a running Metaproxy
configuration.
In addition, we have provided a Vagrantfile and Ansible playbook to build a local Metaproxy VM using VirtualBox for testing, available in the deploy directory.