Planning | Description | Requirements | UI Mockup |  Triples Examples | Queries Examples

Table of Contents


Architectural Diagram of Virtual Collection GEM and Ontology GEMs

full sizefull size

Planned Stack



Development Status

Ok, best laid plans of mice and men.  Implementation is not following the Sprints - Planned Development Approach.  Here are where things are currently...

Infrastructure - Shared
RDF Models & Vocabularies
Write models and vocabularies that allow for generation of triples for data required for Use Case 1.1.
  • Models complete and passing rspec tests.  Pushed as a single GEM - ld4l-virtual_collection.
  • Splitting single GEM into one GEM per ontology used.  See architectural diagram above. OpenAnnotation & FOAF GEMS are complete and tested.  Working on ORE GEM.
  • Models use the ActiveTriples gem
Document models in Triples Examples wiki page to facilitate conversations with ontology group.outstanding issues
  • owner, contributors - Need to look into PROV ontology (per suggestion from Paolo)
  • lists - There are still discussions about whether to represent lists as ORE or Collections.  I plan to wait until I am further along and know more about the implications for implementation for each model.
Write rspec tests for models.
  • The test for the first model is close to being complete, but not sure what issues will arise in the final tests
  • The others should be quick to write since they are going to be very similar to the tests for the first model
Set up a temporary simple triplestore to hold triples generated by this use case.
  • Using SQLite3
Identify and set up a full-featured triplestore for long-term use.DEPENDENCY:  Waiting and see what Rebecca decides to use for her work.
Write code that persists model properties into a triplestore.
  • The persistence to the triplestore is handled by the ActiveTriples::Resource class. When RDF Models are complete, this will also be complete.
SOLR Index
Explore ActiveTriple support for SOLR
  • I have located some code in ActiveTriple gem's rspec tests that manipulates SOLR.  I need to explore this further.
Document expected queries in Queries Examples wiki page to facilitate conversations with ontology group.
  • The queries are currently defined as SPARQL queries, so they need to be rewritten as SOLR queries.
Write code that adds model properties' values to the  SOLR index. 
Write code that adds bibliographic reference data to the SOLR index. 
Infrastructure - Potentially Shared
netid to VIVO URI script
Write code that converts a Cornell netid into a VIVO URI.
  • I have information from Jim Blake about how to get the information from VIVO. It involves getting the information through a curl command and then parsing the returned result.
  • Need to write code to do the conversion.  (Was hoping for a webservice written by VIVO that did this.)
User Interface – NOT SHARED
Hook into Cornell shibboleth authentication system.I've spoken with CULIT developers about how Cornell does authentication and looked over code that is similar to what will need to be done.  No development work has been done in this are yet.
User Interface
Clone blacklight-cornell and check into GitHub

The clone runs locally on my machine and in my dev environment.


  • Should the code go into LD4L GitHub or Cornell GitHub.  It is a direct clone of the CULIT Discovery and Access system.
Modify cloned blacklight-cornell to implement the Mock UI
  • I've explored the code to see where some of the changes need to be made, but I haven't made any changes yet.  I want to get the cloned code in a source code repository before beginning to make modifications.
  • For details, see also the Use Case 1.1 - Requirements.  They are UI centric.
External Collaborations
ActiveTriples development
Make a connection with the ActiveTriples development team.

I have been corresponding with Tom Johnson (the developer of ActiveTriples).

Work with ActiveTriples development team to meet the goal of being able to use ActiveTriples in place of Fedora within a Hydra stack.I am exploring the code and engaging in conversations with Tom Johnson to understand his vision and current needs for development.  Once I grok where things are, I can start to see if there are shortcomings that limit our goal of ActiveTriples being easy to use in place of Fedora with in a Hydra stack.
Improve documentation by creating a reference guide for ActiveTriplesThere is very minimal doc at this point and I am having to read class and rspec code to figure out how things work.  A reference guide will be an extremely valuable tool for me and other developers.

Sprints - Planned Development Approach
Sprint 1:  Add a single work from an individual work page to a single supported virtual collection named My Virtual Collection.
  1. Limitation: Use current login scheme (will require multiple logins by user)  ? Is this workable at all ?
  2. UI: All pages get link to My Virtual Collections in the banner
  3. UI: Add new My Virtual Collections page
    1. LHS: List only My Virtual Collections
    2. LHS: Cannot create new virtual collections.  (Only a single collection named My Virtual Collection will be allowed for this sprint and it will be created automatically the first time the user adds a work.)
    3. LHS: List the one and only virtual collection named My Virtual Collection
      1. Name:  My Virtual Collection
      2. Description:  A collection of resources that interest me.
      3. Access:  Private
    4. LHS: Cannot delete My Virtual Collection
    5. LHS: (maybe) See information (aka metadata) for My Virtual Collection
    6. RHS: Show virtual collection My Virtual Collection
      1. Show title My Virtual Collection
      2. If item added, show add message.
      3. Show count of items and range of items displayed.
      4. Limitation:  Support only 20 per page. 
      5. Limitation:  No sorting.
      6. Handle case where collection has 0 items.
      7. Handle case when the number of items is less than 20 per page setting. 
      8. Handle case when number of items is more than 20 per page setting.
      9. Limitation: Cannot Move items
      10. Support deleting an item from My Virtual Collection
  4. UI: Work page gets new button to add the work to the one and only virtual collection named My Virtual Collection
    1. When added, the page forwards to My Virtual Collections page and shows the newly added item.
 Sprint 2: Use ActiveTriples instead ActiveFedora



Ontology Questions

NOTE:  Many of these questions have been answered.  I haven't had time to update the answers here.  Most of the Ontology Questions are on the Triples Examples page including answers and current state of the discussion.


Virtual Collection

UI Questions

NOTE:  Some of these questions have been answered.  I haven't had time to update these, so the questions may be stale.  Hopefully, I will update soon.


Status of Planning Process