Plone for Education: Bibliographies
Sally KleinfeldtPlone Symposium Midwest
18 June 2014
CC BY Yuri Levchenko - http://www.flickr.com/photos/i8ipod/9280261014/ Wednesday, June 18, 14
Why Plone for Edu?
CC BY Bart Everson - www.flickr.com/photos/editor/6698208975/ Wednesday, June 18, 14
Fundamentals
Wednesday, June 18, 14
Fundamentals• Secure
Wednesday, June 18, 14
Fundamentals• Secure
• Robust permission system
Wednesday, June 18, 14
Fundamentals• Secure
• Robust permission system
• Accessible (Section 508)
Wednesday, June 18, 14
Fundamentals• Secure
• Robust permission system
• Accessible (Section 508)
• Scaleable (users, pages)
Wednesday, June 18, 14
Fundamentals• Secure
• Robust permission system
• Accessible (Section 508)
• Scaleable (users, pages)
• Diazo theming with HTML, CSS
Wednesday, June 18, 14
Fundamentals• Secure
• Robust permission system
• Accessible (Section 508)
• Scaleable (users, pages)
• Diazo theming with HTML, CSS
• Custom types and workflows
Wednesday, June 18, 14
Add-ons
Wednesday, June 18, 14
Add-ons• LDAP/Active Directory
integration
Wednesday, June 18, 14
Add-ons• LDAP/Active Directory
integration
• Subsites for departments, faculties
Wednesday, June 18, 14
Add-ons• LDAP/Active Directory
integration
• Subsites for departments, faculties
• Calendaring tools
Wednesday, June 18, 14
Add-ons• LDAP/Active Directory
integration
• Subsites for departments, faculties
• Calendaring tools
• Fundraising/CRM (Salesforce.com)
Wednesday, June 18, 14
Add-ons• LDAP/Active Directory
integration
• Subsites for departments, faculties
• Calendaring tools
• Fundraising/CRM (Salesforce.com)
• Faculty/Staff Directory
Wednesday, June 18, 14
Add-ons• LDAP/Active Directory
integration
• Subsites for departments, faculties
• Calendaring tools
• Fundraising/CRM (Salesforce.com)
• Faculty/Staff Directory
• Bibliographies
Wednesday, June 18, 14
Bibliographies for Plone since 2005
Wednesday, June 18, 14
CMFBibliographyAT
CC BY Moyan Brenn - http://www.flickr.com/photos/aigle_dore/6365101775/
Wednesday, June 18, 14
CMFBibliographyAT• Create and manage
bibliographic references
CC BY Moyan Brenn - http://www.flickr.com/photos/aigle_dore/6365101775/
Wednesday, June 18, 14
CMFBibliographyAT• Create and manage
bibliographic references
• Feature complete for its niche
CC BY Moyan Brenn - http://www.flickr.com/photos/aigle_dore/6365101775/
Wednesday, June 18, 14
CMFBibliographyAT• Create and manage
bibliographic references
• Feature complete for its niche
• Stable - not much change in 2 years
CC BY Moyan Brenn - http://www.flickr.com/photos/aigle_dore/6365101775/
Wednesday, June 18, 14
Details
Wednesday, June 18, 14
Details• Provides 16 different types of references as
AT content types, plus special folder
Wednesday, June 18, 14
Details• Provides 16 different types of references as
AT content types, plus special folder• Personal and aggregated lists
Wednesday, June 18, 14
Details• Provides 16 different types of references as
AT content types, plus special folder• Personal and aggregated lists• Schema follows BibTeX - LaTeX’s reference
management system
Wednesday, June 18, 14
Details• Provides 16 different types of references as
AT content types, plus special folder• Personal and aggregated lists• Schema follows BibTeX - LaTeX’s reference
management system• Supports several import and export formats,
easy to add new ones (Zope utilities)
Wednesday, June 18, 14
Exampleshttp://www.weigelworld.org/research/publications
Wednesday, June 18, 14
Exampleshttp://www.weigelworld.org/research/publications
Wednesday, June 18, 14
Exampleshttp://www.doaks.org/resources/seals/seals-bibliography
Wednesday, June 18, 14
Exampleshttp://www.upress.umn.edu/ (staging site)
Wednesday, June 18, 14
Editing
Wednesday, June 18, 14
Built-in Search
Wednesday, June 18, 14
Faceted Navigation
Wednesday, June 18, 14
Style Wars!
CC BY Jill Carlson - www.flickr.com/photos/jill_carlson/9704689913/ Wednesday, June 18, 14
Different Discipline Different Style
Wednesday, June 18, 14
Different Discipline Different Style
APA
Wednesday, June 18, 14
Different Discipline Different Style
APA
Wednesday, June 18, 14
Different Discipline Different Style
APA
CSE
Wednesday, June 18, 14
Different Discipline Different Style
APA
CSE
Wednesday, June 18, 14
Different Discipline Different Style
APA
CSE
MLA
Wednesday, June 18, 14
Different Discipline Different Style
APA
CSE
MLA
Wednesday, June 18, 14
Different Discipline Different Style
APA
CSE
MLA
Etc...
Wednesday, June 18, 14
Styles in Plone Bibliographies
Wednesday, June 18, 14
Styles in Plone Bibliographies
• Products.ATBiblioStyles adds support for Chicago, Harvard, APA, MLA styles
Wednesday, June 18, 14
Styles in Plone Bibliographies
• Products.ATBiblioStyles adds support for Chicago, Harvard, APA, MLA styles
• Python skills required to add new styles
Wednesday, June 18, 14
Examplehttp://www.es.utoronto.ca/Members/anderson/anderson_bib/
Wednesday, June 18, 14
Examplehttp://www.es.utoronto.ca/Members/anderson/anderson_bib/
Wednesday, June 18, 14
Not Enough!
CC BY Cherry Ride - http://www.flickr.com/photos/cherryride/5466972761/
Wednesday, June 18, 14
Not Enough!• A few styles is not
enough for serious academic use
CC BY Cherry Ride - http://www.flickr.com/photos/cherryride/5466972761/
Wednesday, June 18, 14
Not Enough!• A few styles is not
enough for serious academic use
• How to easily support hundreds of styles?
CC BY Cherry Ride - http://www.flickr.com/photos/cherryride/5466972761/
Wednesday, June 18, 14
Not Enough!• A few styles is not
enough for serious academic use
• How to easily support hundreds of styles?
• A problem all bibliographic tools have to solve
CC BY Cherry Ride - http://www.flickr.com/photos/cherryride/5466972761/
Wednesday, June 18, 14
CSL to the Rescue!
CC BY Scott Feldstein - http://www.flickr.com/photos/scottfeldstein/66034401/ Wednesday, June 18, 14
Citation Style Language
Thank you Lawrence Loewe and Symposium Midwest 2013!
Wednesday, June 18, 14
Citation Style Language
Wednesday, June 18, 14
Citation Style Language
• http://citationstyles.org/
Wednesday, June 18, 14
Citation Style Language
• http://citationstyles.org/ • XML syntax for defining bibliographic
styles
Wednesday, June 18, 14
Citation Style Language
• http://citationstyles.org/ • XML syntax for defining bibliographic
styles• 6,500+ styles available on crowd
sourced Github repository
Wednesday, June 18, 14
Citation Style Language
• http://citationstyles.org/ • XML syntax for defining bibliographic
styles• 6,500+ styles available on crowd
sourced Github repository• Styles can be browsed, previewed at
Zotero Style Repository
Wednesday, June 18, 14
Zotero Style Repository
Wednesday, June 18, 14
CSL Processors
CC BY Ray Larabie - http://www.flickr.com/photos/27117620@N06/6243443814/
Wednesday, June 18, 14
CSL Processors• citeproc-js
CC BY Ray Larabie - http://www.flickr.com/photos/27117620@N06/6243443814/
Wednesday, June 18, 14
CSL Processors• citeproc-js
• citeproc-hs
CC BY Ray Larabie - http://www.flickr.com/photos/27117620@N06/6243443814/
Wednesday, June 18, 14
CSL Processors• citeproc-js
• citeproc-hs
• citeproc-ruby
CC BY Ray Larabie - http://www.flickr.com/photos/27117620@N06/6243443814/
Wednesday, June 18, 14
CSL Processors• citeproc-js
• citeproc-hs
• citeproc-ruby
• citeproc-java
CC BY Ray Larabie - http://www.flickr.com/photos/27117620@N06/6243443814/
Wednesday, June 18, 14
CSL Processors• citeproc-js
• citeproc-hs
• citeproc-ruby
• citeproc-java
• citeproc-py
CC BY Ray Larabie - http://www.flickr.com/photos/27117620@N06/6243443814/
Wednesday, June 18, 14
CSL Processors
CC BY Ray Larabie - http://www.flickr.com/photos/27117620@N06/6243443814/
Wednesday, June 18, 14
CSL Processors• citeproc-py is... fluid
CC BY Ray Larabie - http://www.flickr.com/photos/27117620@N06/6243443814/
Wednesday, June 18, 14
CSL Processors• citeproc-py is... fluid
• Only about 60% complete
CC BY Ray Larabie - http://www.flickr.com/photos/27117620@N06/6243443814/
Wednesday, June 18, 14
CSL Processors• citeproc-py is... fluid
• Only about 60% complete
• Aimed at Python 3.x
CC BY Ray Larabie - http://www.flickr.com/photos/27117620@N06/6243443814/
Wednesday, June 18, 14
CSL Processors• citeproc-py is... fluid
• Only about 60% complete
• Aimed at Python 3.x
• citeproc-js - JavaScript CSL processor in wide use
CC BY Ray Larabie - http://www.flickr.com/photos/27117620@N06/6243443814/
Wednesday, June 18, 14
The Right Solution
Wednesday, June 18, 14
The Right Solution• Standard way to add citation styles
Wednesday, June 18, 14
The Right Solution• Standard way to add citation styles• Used by Zotero, reference management
system and Firefox plugin
Wednesday, June 18, 14
The Right Solution• Standard way to add citation styles• Used by Zotero, reference management
system and Firefox plugin• Add-ons for Drupal and Wordpress
Wednesday, June 18, 14
The Right Solution• Standard way to add citation styles• Used by Zotero, reference management
system and Firefox plugin• Add-ons for Drupal and Wordpress• Need add-on for Plone!
Wednesday, June 18, 14
Thank You to Our Sponsors
Wednesday, June 18, 14
Our Sponsors
Wednesday, June 18, 14
Our Sponsors
• Needed bibliography styling
Wednesday, June 18, 14
Our Sponsors
• Needed bibliography styling • Agreed to pool resources
Wednesday, June 18, 14
Our Sponsors
• Needed bibliography styling • Agreed to pool resources• Jazkarta chipped in too...
Wednesday, June 18, 14
Not Pseudo-APA Style
Wednesday, June 18, 14
But Real APA Style!
Wednesday, June 18, 14
collective.citationstyles
Wednesday, June 18, 14
collective.citationstyles
• Integration of CSL styles into Plone
Wednesday, June 18, 14
collective.citationstyles
• Integration of CSL styles into Plone• Control panel to upload style xml files
Wednesday, June 18, 14
collective.citationstyles
• Integration of CSL styles into Plone• Control panel to upload style xml files• Allow selection of site-wide “default” style
Wednesday, June 18, 14
collective.citationstyles
• Integration of CSL styles into Plone• Control panel to upload style xml files• Allow selection of site-wide “default” style• Allow editor selection of style per-context
Wednesday, June 18, 14
collective.citationstyles
• Integration of CSL styles into Plone• Control panel to upload style xml files• Allow selection of site-wide “default” style• Allow editor selection of style per-context• Handle actual rendering in-browser on
the client side
Wednesday, June 18, 14
collective.citationstyles
Wednesday, June 18, 14
collective.citationstylesIs Usable
• Can import CSL styles• Can select default style• Will render individual references• Will render Bibliography Folders
Wednesday, June 18, 14
Samples
CC-BY BartEverts: http://www.flickr.com/photos/barteverts/3068747619
Wednesday, June 18, 14
Citation Styles Control Panel
Wednesday, June 18, 14
Bibliography Folder: Selecting a Style
Wednesday, June 18, 14
Bibliography Folder: Displaying a Style
Wednesday, June 18, 14
Individual Reference: CSL + Custom View
Wednesday, June 18, 14
Things We’d Like to Add
Wednesday, June 18, 14
Things We’d Like to Add
• Editor style selection tab• Browser views for collections• Automatic processing of inline citations• Replacement of existing CMFBib views?
Wednesday, June 18, 14
CMFBibliographyATProblems
CC BY Stuart Seeger - http://www.flickr.com/photos/stuseeger/216598424/Wednesday, June 18, 14
CMFBibliographyATProblems
• Big, old fashioned, complicated
CC BY Stuart Seeger - http://www.flickr.com/photos/stuseeger/216598424/Wednesday, June 18, 14
CMFBibliographyATProblems
• Big, old fashioned, complicated
• CMF layer, Archetypes
CC BY Stuart Seeger - http://www.flickr.com/photos/stuseeger/216598424/Wednesday, June 18, 14
CMFBibliographyATProblems
• Big, old fashioned, complicated
• CMF layer, Archetypes
• Grew organically, new features pasted on
CC BY Stuart Seeger - http://www.flickr.com/photos/stuseeger/216598424/Wednesday, June 18, 14
CMFBibliographyATProblems
• Big, old fashioned, complicated
• CMF layer, Archetypes
• Grew organically, new features pasted on
• Not Collection friendly
CC BY Stuart Seeger - http://www.flickr.com/photos/stuseeger/216598424/Wednesday, June 18, 14
CMFBibliographyATProblems
• Big, old fashioned, complicated
• CMF layer, Archetypes
• Grew organically, new features pasted on
• Not Collection friendly
• Major rewrite would be huge
CC BY Stuart Seeger - http://www.flickr.com/photos/stuseeger/216598424/Wednesday, June 18, 14
CMFBibliographyATWay Forward
CC BY Dave Bleasdale - http://www.flickr.com/photos/sidelong/4564071208/
Wednesday, June 18, 14
CMFBibliographyATWay Forward
• Find sponsors
CC BY Dave Bleasdale - http://www.flickr.com/photos/sidelong/4564071208/
Wednesday, June 18, 14
CMFBibliographyATWay Forward
• Find sponsors• Schedule rewrite sprint
CC BY Dave Bleasdale - http://www.flickr.com/photos/sidelong/4564071208/
Wednesday, June 18, 14
Rewrite Sponsors
• Plone Foundation• German University Consortium• Jazkarta• Others?
Wednesday, June 18, 14
Rewrite Architecture• Take advantage of existing standards
• Display layer - use Javascript CSL processor
• Storage layer - use Dexterity types with MODS XML storage, the LOC standard bibutils works from
• Management layer - use Plone
Wednesday, June 18, 14
Rewrite Approach
• Inventory CMFBib + add-ons features• Prioritize features to re-implement• Implement each feature in the
appropriate layer
Wednesday, June 18, 14
Rewrite is Essential
• Archetypes is going away• Many academic sites use this tool
Wednesday, June 18, 14
Demo
Wednesday, June 18, 14
Discussion?
Wednesday, June 18, 14
The Moving Parts
Wednesday, June 18, 14
The Moving Parts
• Iterator
Wednesday, June 18, 14
The Moving Parts
• Iterator• An adapter
Wednesday, June 18, 14
The Moving Parts
• Iterator• An adapter• Iterates over context
Wednesday, June 18, 14
The Moving Parts
• Iterator• An adapter• Iterates over context• yields IBibliographicReferences
Wednesday, June 18, 14
The Moving Parts
• Iterator• An adapter• Iterates over context• yields IBibliographicReferences
Wednesday, June 18, 14
The Moving Parts
Wednesday, June 18, 14
The Moving Parts• Renderer
Wednesday, June 18, 14
The Moving Parts• Renderer
• a utility
Wednesday, June 18, 14
The Moving Parts• Renderer
• a utility• pass in
IBibliographicReference
Wednesday, June 18, 14
The Moving Parts• Renderer
• a utility• pass in
IBibliographicReference• extracts values
Wednesday, June 18, 14
The Moving Parts• Renderer
• a utility• pass in
IBibliographicReference• extracts values
• CMFBib -> CSL
Wednesday, June 18, 14
The Moving Parts• Renderer
• a utility• pass in
IBibliographicReference• extracts values
• CMFBib -> CSL• returns python dict
Wednesday, June 18, 14
The Moving Parts• Renderer
• a utility• pass in
IBibliographicReference• extracts values
• CMFBib -> CSL• returns python dict
Wednesday, June 18, 14
The Moving Parts
Wednesday, June 18, 14
The Moving Parts
• @@citations-json browser view
Wednesday, June 18, 14
The Moving Parts
• @@citations-json browser view• in any context
Wednesday, June 18, 14
The Moving Parts
• @@citations-json browser view• in any context• builds iterator
Wednesday, June 18, 14
The Moving Parts
• @@citations-json browser view• in any context• builds iterator• renders references
Wednesday, June 18, 14
The Moving Parts
• @@citations-json browser view• in any context• builds iterator• renders references• returns JSON
Wednesday, June 18, 14
The Moving Parts
• @@citations-json browser view• in any context• builds iterator• renders references• returns JSON
Wednesday, June 18, 14
The Moving Parts• citeproc-setup viewlet
• load citeproc-js core javascript• configure rendering engine• get bibliography item JSON via AJAX• replace standard CMFBibAT
representation with rendered view• No-JS and error fallback to standard
Wednesday, June 18, 14