Plone for Education:
Bibliographies
Sally Kleinfeldt, Cris Ewing, Carlos de la Guardia
Plone Conference Brasilia
2 October 2013
CC BY Yuri Levchenko - http://www.flickr.com/photos/i8ipod/9280261014/
Why Plone?
CC BY Bart Everson - www.flickr.com/photos/editor/6698208975/
Fundamentals
Fundamentals
• Secure
Fundamentals
• Secure
• Robust permission system
Fundamentals
• Secure
• Robust permission system
• Accessible (Section 508)
Fundamentals
• Secure
• Robust permission system
• Accessible (Section 508)
• Scaleable (users, pages)
Fundamentals
• Secure
• Robust permission system
• Accessible (Section 508)
• Scaleable (users, pages)
• Diazo theming with HTML,
CSS
Fundamentals
• Secure
• Robust permission system
• Accessible (Section 508)
• Scaleable (users, pages)
• Diazo theming with HTML,
CSS
• Custom types and
workflows
Add-ons
Add-ons
• LDAP/Active Directory
integration
Add-ons
• LDAP/Active Directory
integration
• Subsites for departments,
faculties
Add-ons
• LDAP/Active Directory
integration
• Subsites for departments,
faculties
• Calendaring tools
Add-ons
• LDAP/Active Directory
integration
• Subsites for departments,
faculties
• Calendaring tools
• Fundraising/CRM
(Salesforce.com)
Add-ons
• LDAP/Active Directory
integration
• Subsites for departments,
faculties
• Calendaring tools
• Fundraising/CRM
(Salesforce.com)
• Faculty/Staff Directory
Add-ons
• LDAP/Active Directory
integration
• Subsites for departments,
faculties
• Calendaring tools
• Fundraising/CRM
(Salesforce.com)
• Faculty/Staff Directory
• Bibliographies
Bibliographies for
Plone since 2005
CMFBibliographyAT
CC BY Moyan Brenn - http://www.flickr.com/photos/aigle_dore/6365101775/
CMFBibliographyAT
• Create and manage
bibliographic
references
CC BY Moyan Brenn - http://www.flickr.com/photos/aigle_dore/6365101775/
CMFBibliographyAT
• Create and manage
bibliographic
references
• Feature complete
for its niche
CC BY Moyan Brenn - http://www.flickr.com/photos/aigle_dore/6365101775/
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/
Details
Details
• Provides 16 different types of references as
AT content types, plus special folder
Details
• Provides 16 different types of references as
AT content types, plus special folder
• Personal and aggregated lists
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
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)
Examples
http://www.weigelworld.org/research/publications
Examples
http://www.weigelworld.org/research/publications
Examples
http://www.doaks.org/resources/seals/seals-bibliography
Examples
http://www.upress.umn.edu/ (staging site)
Editing
Built-in Search
Style Wars!
CC BY Jill Carlson - www.flickr.com/photos/jill_carlson/9704689913/
Different Discipline
Different Style
Different Discipline
Different Style
APA
Different Discipline
Different Style
APA
Different Discipline
Different Style
APA
CSE
Different Discipline
Different Style
APA
CSE
Different Discipline
Different Style
APA
CSE
MLA
Different Discipline
Different Style
APA
CSE
MLA
Different Discipline
Different Style
APA
CSE
MLA
Etc...
Styles in Plone
Bibliographies
Styles in Plone
Bibliographies
• Products.ATBiblioStyles adds support for
Chicago, Harvard, APA, MLA styles
Styles in Plone
Bibliographies
• Products.ATBiblioStyles adds support for
Chicago, Harvard, APA, MLA styles
• Python skills required to add new styles
Example
http://www.es.utoronto.ca/Members/anderson/anderson_bib/
Example
http://www.es.utoronto.ca/Members/anderson/anderson_bib/
Not Enough!
CC BY Cherry Ride - http://www.flickr.com/photos/cherryride/5466972761/
Not Enough!
• A few styles is not
enough for serious
academic use
CC BY Cherry Ride - http://www.flickr.com/photos/cherryride/5466972761/
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/
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/
CSL to the Rescue!
CC BY Scott Feldstein - http://www.flickr.com/photos/scottfeldstein/66034401/
Citation Style
Language
Citation Style
Language
• http://citationstyles.org/
Citation Style
Language
• http://citationstyles.org/
• XML syntax for defining bibliographic
styles
Citation Style
Language
• http://citationstyles.org/
• XML syntax for defining bibliographic
styles
• 6,500+ styles available on crowd
sourced Github repository
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
Zotero Style
Repository
CSL Processors
CC BY Ray Larabie - http://www.flickr.com/photos/27117620@N06/6243443814/
CSL Processors
• citeproc-js
CC BY Ray Larabie - http://www.flickr.com/photos/27117620@N06/6243443814/
CSL Processors
• citeproc-js
• citeproc-hs
CC BY Ray Larabie - http://www.flickr.com/photos/27117620@N06/6243443814/
CSL Processors
• citeproc-js
• citeproc-hs
• citeproc-ruby
CC BY Ray Larabie - http://www.flickr.com/photos/27117620@N06/6243443814/
CSL Processors
• citeproc-js
• citeproc-hs
• citeproc-ruby
• citeproc-java
CC BY Ray Larabie - http://www.flickr.com/photos/27117620@N06/6243443814/
CSL Processors
• citeproc-js
• citeproc-hs
• citeproc-ruby
• citeproc-java
• citeproc-py
CC BY Ray Larabie - http://www.flickr.com/photos/27117620@N06/6243443814/
CSL Processors
CC BY Ray Larabie - http://www.flickr.com/photos/27117620@N06/6243443814/
CSL Processors
• citeproc-py is... fluid
CC BY Ray Larabie - http://www.flickr.com/photos/27117620@N06/6243443814/
CSL Processors
• citeproc-py is... fluid
• Only about 60%
complete
CC BY Ray Larabie - http://www.flickr.com/photos/27117620@N06/6243443814/
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/
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/
The Right Solution
The Right Solution
• Standard way to add citation styles
The Right Solution
• Standard way to add citation styles
• Used by Zotero, reference management
Firefox plugin
The Right Solution
• Standard way to add citation styles
• Used by Zotero, reference management
Firefox plugin
• Add-ons for Drupal and Wordpress
The Right Solution
• Standard way to add citation styles
• Used by Zotero, reference management
Firefox plugin
• Add-ons for Drupal and Wordpress
• Need add-on for Plone!
Thank You to
Our Sponsors
Our Sponsors
Our Sponsors
• Needed bibliography styling
Our Sponsors
• Needed bibliography styling
• Agreed to pool resources
collective.citationstyles
collective.citationstyles
• Integration of CSL styles into Plone
collective.citationstyles
• Integration of CSL styles into Plone
• Control panel to upload style xml files
collective.citationstyles
• Integration of CSL styles into Plone
• Control panel to upload style xml files
• Allow selection of site-wide “default” style
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
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
the moving parts
the moving parts
• Iterator
the moving parts
• Iterator
• An adapter
the moving parts
• Iterator
• An adapter
• Iterates over context
the moving parts
• Iterator
• An adapter
• Iterates over context
• yields IBibliographicReferences
the moving parts
• Iterator
• An adapter
• Iterates over context
• yields IBibliographicReferences
the moving parts
the moving parts
• Renderer
the moving parts
• Renderer
• a utility
the moving parts
• Renderer
• a utility
• pass in
IBibliographicReference
the moving parts
• Renderer
• a utility
• pass in
IBibliographicReference
• extracts values
the moving parts
• Renderer
• a utility
• pass in
IBibliographicReference
• extracts values
• CMFBib -> CSL
the moving parts
• Renderer
• a utility
• pass in
IBibliographicReference
• extracts values
• CMFBib -> CSL
• returns python dict
the moving parts
• Renderer
• a utility
• pass in
IBibliographicReference
• extracts values
• CMFBib -> CSL
• returns python dict
the moving parts
the moving parts
• @@citations-json browser view
the moving parts
• @@citations-json browser view
• in any context
the moving parts
• @@citations-json browser view
• in any context
• builds iterator
the moving parts
• @@citations-json browser view
• in any context
• builds iterator
• renders references
the moving parts
• @@citations-json browser view
• in any context
• builds iterator
• renders references
• returns JSON
the moving parts
• @@citations-json browser view
• in any context
• builds iterator
• renders references
• returns JSON
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
Samples
CC-BY BartEverts: http://www.flickr.com/photos/barteverts/3068747619
collective.citationstyles
Status
collective.citationstyles
Status
collective.citationstyles
Status
Usable
collective.citationstyles
Status
• can import CSL styles
Usable
collective.citationstyles
Status
• can import CSL styles
• can select default style
Usable
collective.citationstyles
Status
• can import CSL styles
• can select default style
• will render individual references
Usable
collective.citationstyles
Status
• can import CSL styles
• can select default style
• will render individual references
• will render Bibliography Folders
Usable
collective.citationstyles
Status
collective.citationstyles
Status
Not Feature Complete
collective.citationstyles
Status
• adding default styles (ootb)
• adding editor style selection tab
• adding browser views for collections
Not Feature Complete
collective.citationstyles
Status
collective.citationstyles
Status
Things We’d Like to See
collective.citationstyles
Status
• dynamic style selection for viewers
• automatic processing of inline citations
• replacement of existing CMFBib views?
Things We’d Like to See
CMFBibliographyAT
Problems
CC BY Stuart Seeger - http://www.flickr.com/photos/stuseeger/216598424/
CMFBibliographyAT
Problems
• Big, old fashioned,
complicated
CC BY Stuart Seeger - http://www.flickr.com/photos/stuseeger/216598424/
CMFBibliographyAT
Problems
• Big, old fashioned,
complicated
• CMF layer, Archetypes
CC BY Stuart Seeger - http://www.flickr.com/photos/stuseeger/216598424/
CMFBibliographyAT
Problems
• Big, old fashioned,
complicated
• CMF layer, Archetypes
• Not Collection friendly
CC BY Stuart Seeger - http://www.flickr.com/photos/stuseeger/216598424/
CMFBibliographyAT
Problems
• Big, old fashioned,
complicated
• CMF layer, Archetypes
• Not Collection friendly
• Major rewrite would be
huge
CC BY Stuart Seeger - http://www.flickr.com/photos/stuseeger/216598424/
CMFBibliographyAT
Way Forward
CC BY Dave Bleasdale - http://www.flickr.com/photos/sidelong/4564071208/
CMFBibliographyAT
Way Forward
• Find sponsors
CC BY Dave Bleasdale - http://www.flickr.com/photos/sidelong/4564071208/
CMFBibliographyAT
Way Forward
• Find sponsors
• Schedule rewrite sprint
CC BY Dave Bleasdale - http://www.flickr.com/photos/sidelong/4564071208/
Questions?
cris@crisewing.com
@crisewing

Plone for Education: Bibliographies