Skip to end of metadata
Go to start of metadata

Author: Joseph R. McEnerney (

The purpose of this example is to illustrate XSLT based techniques that have been used successfully to ingest data from more than a dozen sources into VIVO at Cornell. Instead of a simplified ‘toy’ example, the source data used will display many of the data quality problems often found in practice. The goal is to transform this source data into RDF that conforms to a specific data model and can be loaded into a VIVO instance. The example is based on educational credentials and the central objects in the RDF data model are instances of the class vivo:EducationalTraining. In addition, we want to prevent duplication of Person and Organization RDF. Experience has taught us that this XSLT transform methodology performs well in terms of processing time and is scalable to tens of thousands of source data records.


This example expects the reader to have some familiarity with the following notions and technologies:

  1. VIVO via this wiki,, and the VIVO Project on GitHub
  3. XSLT 2.0 (Saxon 9.x he)XPATH 2.0
  4. SPARQL 1.1
  5. Unix/Linux Bash Shell Command Line

Use the following links to get to the various sections of this paper.



  • No labels