Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Table of Contents

Purpose

Ensure that the import-export utility meets stakeholder requirements for phase 1:

  • Support transacting in RDF
  • Support allowing the option to include Binaries
  • Support references from exported resources to other exported resources
  • Support import into a non-existing Fedora container
  • Support export of resource and its "members" based on the ldp:contains predicate
  • The URIs of the round-tripped resources must be the same as the original URIs
  • Facilitate the evaluation of the utility with respect to:
    • Fixity of Binaries
    • Graph isomorphism of RDF resources
    • Performance
  • URI

Target Audience

  • Fedora committers responsible for developing and maintaining the utility
  • Fedora implementers who want to export their resources from a Fedora repository and import them into another repository, including but not limited to another Fedora repository
  • Fedora developers who want to customize and extend the utility to meet their organization’s particular needs

Components

  • Test RDF data sets that express inter-resource relationships and contain Binaries or stable external references   
  • A small set of fabricated, repeatable Binaries   
  • Scripts to generate additional RDF data sets   
  • Checksum comparison tool   
  • Test HTTP GET requests and SPARQL queries in vagrant environment
  • Performance tests and analysis tools  
    Tests  (WORK IN PROGRESS)

Testing

The ultimate goal of this document is to facilitate the evaluation of the Import and Export Tools utility with respect to:

  • Fixity of Binaries
  • Graph isomorphism of RDF resources
  • Performance

Resources for tests can be found in the following places

...

:

...

Concrete Tests to Perform at the Conclusion of Phase 1

  1. Using a baseline pre-import/export list of URIs and binary checksums for the plant patents test data, automate the verification of URIs and checksums for all resources post-export/import.
  2. Spot-check the RDF graphs of several items, comparing the individual triples for discrepancies (facilitated by conversion of the graph to N-Triples and sorting of the triples). Document the findings.
  3. Spot-check the results of a small set of Solr queries performed pre-export and post-reimport, to verify the results. Document the findings.

Long-Term Test Strategy and Goals

Test Cases (which will hopefully get automated in a future phase)

...

  1. Simple Export


    1. Goal: verify that data is exported to disk
    2. Setup: A new, clean fedora4 repository has been created, either manually on a system or via the use of vagrant.  Test data has been loaded into that repository.  The set should contain both RDF Resources and Non-RDF Resources. 
    3. Steps:
      1. Run the import-export tool on this repository specifying the location in the file system in which the data should be stored. 
    4. Verification:

...

    1.  Spot check the data to verify that binaries and descriptions are represented in the exported data.

...

    1.   
  1. Simple Import

...

    1. Goal: verify that the import-export tool will successfully import data that was previously exported via the tool. 
    2. Setup: A fedora4 system exists and contains some test data, which includes both RDF Resources and Non-RDF Resources. 
    3. Steps:
      1. Import data from a previously exported dataset using the import-export tool.  
      2. Ensure that the dataset is loaded correctly and that both binaries and descriptions were imported correctly. 
    4. Verification: 

...

    1. ?

...

  1. Complex Import

...

    1. Goal: verify that a fedora4 repository that contains complex relationships will produce the equivalent graph when exported and imported. 
    2. Setup: A fedora4 system that contains test data which has external references, cyclic references, and complex ldp:container relationships. 
      1. external reference:  the dataset contains Resources that have references to objects outside of the repository
      2. cyclic references:  <a> ldp:contains <b>  or <a> bf:relatedItem <b> and <b> bf:isReferencedBy <a>
      3. LDP containers:  direct (and indirect for phase 2?)
    3. Steps
      1. Export data from a fedora4 system that contains the above described complex relationships
      2. Import data into a fresh fedora4 system. 
      3. Ensure, via validation tool, that the new system's RDF graph is the same as the old

...

      1. system's
  1. Import / Export

...

    1. Export newly imported data and compare the filesystem trees to ensure that everything looks the same. 

  1. Binary Fixity test