Skip to content
This repository has been archived by the owner. It is now read-only.
Switch branches/tags

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time
XQuery utility to convert MARC/XML Bibliographic records to BIBFRAME resources.

This XQuery version was developed by the Library of Congress Network 
Development and MARC Standards Office.  This transformation is under 
development and does not at this time represent a canonical transformation 
of MARC Bib data to BIBFRAME resources. It is made available for 
evaluation and comment.

NOTE: The Python version of this code was split off into its own repository.

Xquery scripts are provided for MarkLogic, Saxon, and Zorba.

Parameters (HTTP for ml.xqy; external for saxon.xqy; external for zorba.xqy):

	marcxmluri 	- Path to MARC/XML file.  File can be retrieved over 
				  HTTP (begin http://) or from the filesystem. 
	baseuri 	- Base URI for generated resources. Default is
	serialization 	- rdfxml (default), rdfxml-raw, ntriples, json, exhibitJSON
			  rdfxml=flattened RDF/XML, everything has an identifier
			  rdfxml-raw=Verbose, cascaded output.
	usebnodes 	- true/false(default). Whether bnodes should identify resources instaed of http URIs. 

Specific Processor Notes

	ml.xqy - intended for the MarkLogic Database and Application 
		Server (  This expects an HTTP 
		application server.  Set up an application server with the location 
		of this package 
		as the root and (purely as an example) go to 


	saxon.xqy can be used with the Saxon XSLT and Xquery Processor.  This 
		has been tested using the Saxon processor in Eclipse and Oxygen. 
		This requires a saxon9he.jar version 9.5.x or earlier.  
		Saxon can be run from the command line or through either of the two 
		previously mentioned applications.  For more about Saxon see  
	java -cp /path/to/saxon9he.jar net.sf.saxon.Query saxon.xqy marcxmluri=/path/to/marc/xml/file baseuri=http://my-base-uri/ serialization=rdfxml

	saxon3.xqy can be used with the Saxon XSLT and XQuery processor version 9.6 or later and supports XQuery 3.0.
	zorba.xqy can be used with the Zorba Xquery processor.  
		For more about see  Run from the 
		command line with:
	zorba -i -f -q zorba.xqy -e marcxmluri:="http://location/of/marcxml.xml" -e serialization:="rdfxml" -e baseuri:="http://base/"

Exhibit Display

	To get the Exhibit display to work for the Xquery, set the serialization
	parameter to "exhibitJSON".
	The Exhibit JSON output should be saved as a file named
	in the html/data directory.  You can copy and paste this into 
	the correctly named file or, if running the command line, pipe the output 
	to html/data/data.json.
	Afterwards, simply open the exhibit.html file in a browser.
	Note:  For Zorba and Saxon, you will need to add a runtime parameter
	to the command to instruct the processor to omit the XML declaration.
	For Saxon, add: '!method=text'
	E.g.: java -cp /path/to/saxon9he.jar net.sf.saxon.Query saxon.xqy '!method=text' [ other params, as above ]
	For Zorba, add: -r
	E,g,: zorba -i -r -f -q zorba.xqy [ other params, as above ]

Changes (Generally see the commit history

	Jun 5 2013
		Removed Python tree, see

	Mar 1 2013
		Output data in closer alignment with vocabulary terms.
	Jan 11 2013
		Exhibit JSON output plus Exhibit display.
		Default serialization is flattened RDF/XML (original, 
			verbose version is "raw")
		Added additional support for 630, 730, 740, 830 relationships.
		Bug fixes to work through Stanford MARC files.

	Dec 21 2012
		(Some) Support for 7XXs
		Support for 880s
		Added HierarchicalGeorgraphic support
		Do something with 264.
	Dec 6 2012
		Initial publication.


Convert marc to BIBFRAME 1.0 - see lcnetdev/marc2bibframe2 for current release





No releases published


No packages published