Fork me on GitHub

SCF JournalStream

A Drupal 7 module for curating collections of papers, articles, etc.

The SCF JournalStream project is a group of modules that creates a moderated workflow for curating collections of content. It is part of the soon to be released Science Collaboration Framework. The primary usage scenario is within the academic and medical research context but can be applied to any use case needing a publishing/moderation workflow. The module has a few contrib dependencies but can run as-is out of the box.

The module is made up of 4 major components:

The general workflow is as follows: Query components and Import components programatically import content into topic queues. Topic Queues are simple "buckets" of content that hold collections of content (papers, web articles, etc.) awaiting moderation. Topic queues are then moderated and published as collections. The original use case was for publishing a "Papers of the Week" collection, where editors reviewed journal articles imported from pubmed (via the Biblio Module) and published a curated collection each week.

This module comes bundled with Pubmed integration (via the biblio module) and a custom node type called Web Resources used for saving any resource on the web accessible via URL.

Figure 1-1: Workflow of the JournalStream Module
SCF JournalStream Diagram

Instructions for use:

  1. Create a new "Topic Queue" node.
    This will serve as a repository for all articles, papers, etc imported via the query.
  2. Create a new "Topic Query" node.
    The scf_collections module includes a "Biblio Topic Query" node type that queries pubmed. Associate the Topic Node created in step 1 to the Topic Query Node.
  3. Execute the Topic Query
    This is typically achieved via cron. The included "Biblio Topic Query" will run via cron and populate the associated Topic Queues.
  4. Moderate and Publish
    After executing the Topic Query in step 3, the imported content will be present in its associated Topic Queue. All content that is flagged as accepted will be published to a new collection node.

Developing Topic Queries

The module comes with a fully functional example query interface module named scf_biblio_query. This module will query pubmed and import articles into the assigned Topic Queue. Developing a custom Topic Query is simple and primarily relies on just 1 hook. After a custom module imports (and saves) nodes they need to be passed to the scf_collections_add_to_queue function. Ex:

    
      //An array of NIDS created by the topic query
      $queue_nids = array(100,101,102); 
      //The NID of the topic queue to insert NIDS into
      $topic_queue = 2; 
      scf_collections_add_to_queue($queue_nids,$topic_queue);
    
    

Running Ad-hoc Pubmed Queries

Included within the package is the SCF Biblio Import module. This module facilitates importing Pubmed articles into a topic queue via Pubmed ID. When enabled, each queue will contain a tab allowing for bulk import via file or form.

Bookmarking Web Resources

Bundled with the SCF Web Resource module is the SCF Web Resource Bookmarklet. This creates a browser bookmarklet that, when triggered, adds the current page URL to the Topic Queues "Not Reviewed" queue.

The SCF Web Resources module also provides a simple API for saving URL's as Web Resource nodes. The code below demonstrates:

To Use:

  1. Install and enable the SCF Web Resource and SCF Web Resource Bookmarklet module.
  2. Create a Topic Queue Node.
  3. View the created Topic Queue and click the bookmarklet tab.
  4. Drag the "Add to Queue" link to your browser toolbar.
  5. Visit a web page that you would like to queue for moderation and click the "Add to Queue" bookmarklet.
    
      $url = 'http://en.wikipedia.org/wiki/Api';
      $nid = scf_web_resource_import_by_url($url);
      //The $nid variable will be set to the newly inserted Node ID.
    
    

Contact

http://sciencecollaboration.org/contact

Download

You can download this project in either zip or tar formats.

You can also clone the project with Git by running:

$ git clone git://github.com/scf/journalstream