Integration with other Websites and Services#

PUMA integrates well with other websites, content management systems, and reference managers. Furthermore, you can connect PUMA to your own software using one of our API (application programming interface) clients. The following list describes ways to integrate PUMA with various systems and technologies - ranging from code snippets to complete and powerful, easy-to-install plugins or API clients.


Gunnar Aastrand Grimnes created the Android application Bibsonomy Poster that allows posting with a single click from an Android device. The code repository can be found here.

Bookmark Exporter#

Thanks to Christian Schenk, you can export your PUMA bookmarks to other social bookmarking sites. Prerequisite is that the systems accept the Netscape Bookmark file format. The tool can be downloaded here.


Bookmarking web pages and publications is very easy with our PUMA browser plugins, adding three useful buttons to your browser's navigation bar. At the moment there are plugins available for Chrome/Chromium and for Firefox. We are working on a plugin for Safari. If you do not wish to install a plugin or if you use another browser, you might like the JavaScript Bookmarklets with similar functionality.

Chrome / Chromium#

Add three useful PUMA control buttons to your Chrome/Chromium browser by installing this add-on. One will be a quick link to your myPUMA page. The other two buttons enable you to store bookmarks and publications in PUMA by only clicking a button or by using keyboard shortcuts. You can find the description and the download on the Browser Add-ons & Bookmarklets page.



An interesting tool from Christian Schenk is the Confluence plugin. The plugin allows you to show a tag list/cloud and the most recent BibTeX posts on any page in Confluence.


Emacs is a powerful, customizable text editor. The package AUCTeX turns Emacs into a comfortable LaTeX environment. In our blog post we describe how to setup Emacs to automatically make use of BibTeX references stored in PUMA.


Add three useful PUMA control buttons to your Firefox browser by installing this add-on. One will be a quick link to your myPUMA page. The other two enable you to store bookmarks and publications in PUMA by only clicking a button or by using keyboard shortcuts. Please find description and download on the buttons page.


coming soon!


Jabref Plugin#

Extract Jabref-layouts from Jar-files#

On our developer page, you can download the currently available layouts as a JAR file. You can open this file using an unzip tool like WinZip. You will find the layouts under the path '\org\bibsonomy\layout\jabref'.

To use a layout, you have to extract its '.begin' and '.end' files in combination with the respective layout-file. For example, if you want to use the Harvard HTML JabRef layout, you have to extract the files 'harvard.layout', 'harvard.begin.layout' and 'harvard.end.layout'.


JSON feed#

For every PUMA page you can get a JSON feed of it by prepending json/ to the path part of the URL, e.g., to get the JSON feed for /tag/json, use the page /json/tag/json

This gives you an Exhibit compatible JSON feed including all bookmark and publication posts of the respective page. To include the JSON feed into your Exhibit, add a link to it into the header of your Exhibit HTML code.

<link href="http:///" type="application/jsonp" rel="exhibit/data" ex:jsonp-callback="cb" />

Have a look at this list of publications to see what is possible using JSON and Exhibit with only some lines of HTML.

Users of our existing JSON feed should note that the format was slightly changed:

  • The tags are now contained in the list with the key items and not tags.
  • The name of the tag is expressed using the key label and not name.
  • There are two more lists (types and properties) to allow easier Exhibit integration.


We're currently working on a module for Moodle.


BibSonomyAPI is a package of PHP scripts containing a RESTClient and some utilities that are useful for the development of PHP applications that shall interact with the PUMA REST API. The RESTClient maps functions provided by the BibSonomy REST API.

Further information and sources can be found at the BitBucket repository.


There is an API client (download here) to retrieve posts using the programming language Python. For example, the following code snippet retrieves a list of your publications:
bibsonomy = BibSonomy('YOUR_USERNAME', 'YOUR_APIKEY')
posts = bibsonomy.getPosts('bibtex')
# do something with the posts...
for post in posts:
print post.resource.title
The last two lines iterate over the retrieved posts and display the title for every post. Have a look at the various classes (Post, BibTeX, Tag, etc.) for more information about available attributes.


RSS is a family of formats to create feeds of frequently updated information. Follow our tutorial to learn how to subscribe to a particular RSS feed from PUMA. You can stay informed about recent post of particular tags, users, or groups.


coming soon!

Search Engine#

Sublime Text#

The text editor Sublime Text has a LaTeX type setting plugin called Latexing. The plugin offers integration with PUMA and is explained in a tutorial.


TeXlipse is the LaTeX development plugin for Eclipse. The TeXlipse PUMA extension adds PUMA support to that plugin to manage your references. Installation and usage are documented in this tutorial.


Tweet about your bookmarks and publications! Using a simple combination of Yahoo pipes and an IFTTT recipe, you can quickly setup tweeting your new posts automatically. Just follow the instructions in our blog post.


Our TYPO3 extension BibSonomy CSL allows you to create publication lists containing bibliographic references stored at PUMA or tag clouds from your PUMA tags. The extension helps researchers to easily organize publication lists in TYPO3, both for personal home pages or to list publications of a research group or project. With BibSonomy CSL you can display publication lists/tag clouds choosing one of many available bibliographic styles from the Citation Style Language (CSL). Individual styles can easily be added. Furthermore, you may choose to make documents (attached to the PUMA posts) available for download, to provide preview images and to reference BibTeX or Endnote. To install the extension please visit the official BibSonomy CSL page in the TYPO3 extension repository. The TYPO3 extension is an open source project.
For more information, read the tutorial about TYPO3 integration.


The open source project VuFind provides cataloguing, search, and repositorial facilities to libraries. PUMA can be added to a running VuFind replacing its favorites list, thus adding such benefits as tagging and filtering the favorite resources and offering various export formats. To install PUMA at your own institution or to connect it to your VuFind installation please contact the PUMA team.


For Wordpress there is a plugin to create publication lists from posts stored in PUMA. To render the list, you can choose one of many available bibliographic styles from the Citation Style Language (CSL). Individual styles can easily be added. The plugin allows the direct integration with PUMA: You can integrate publication lists into your blog posts or pages. It allows you to offer your documents (attached to your posts) for download and to render preview images.
For further information and the plugin download please visit the official plugin page at WordPress.
You can find detailed instructions for installation and usage here.
Take a look at some usage examples.


To integrate PUMA into a XWiki page, proceed as follows:
  1. Make sure the XWiki RSS Feed Plugin is installed in your XWiki instance by editing your xwiki.cfg file (it is installed by default).
  2. Edit the wiki page where you want to display PUMA data.
  3. Enter the following code activating the XWiki RSS macro
    where the feed parameter is linked to the RSS data you want to get displayed on that page.
  4. Save the page.
The PUMA data should then be displayed on your page.

If you want to customize the way each feed item gets displayed, you can use XWiki Velocity or Groovy Scripting features as shown in this Groovy example:

feed = xwiki.feed.getFeeds("")
for (entry in feed.entries) {
  desc = entry.getDescription().value

Example: Nepomuk publications

Your own Website#

There are several ways to incorporate PUMA content or links to PUMA into your own website. Many websites provide links or buttons on their web pages to allow visitors to share it easily in social networks or bookmarking services. You can add such a link for PUMA on your own website or blog using a short JavaScript snippet that can be found on the Browser Add-ons & Bookmarklets page.

Tag Clouds#

PUMA offers the possibility to integrate its tag clouds, for example for your publications, into your private website. For this purpose PUMA provides a JSON feed for tags which is processed by JavaScript snippets. At the moment this feature is only available for the BibTeX page, but will be extended to all pages offering tag clouds in the near future.
Have a look at the example and test the different arguments in the form. The tag cloud belongs to the following publication:

Andreas Hotho and Robert Jäschke and Christoph Schmitz and Gerd Stumme. PUMA: A Social Bookmark and Publication Sharing System. Proceedings of the Conceptual Structures Tool Interoperability Workshop, 2006.

Proceed as follows to integrate a tag cloud into your page:
  • Insert these lines into your HTML code where the tag cloud shall be shown:
<div id="tags">
  <div class="title">[{$jspwiki.projname}] Tags</div>
  <ul id="tagbox" class="tagcloud"></ul>
  • Include a reference to the processing JavaScript file (The JavaScript file can be found here):
<script type="text/javascript" src="tagCloud.js"></script>
  • If you want to format your tag cloud like in the example above, use this CSS file and include it as follows. If you do not like this particular style or it just does not fit to your existing website style, you can of course use your own stylesheets.
 <link rel="stylesheet" type="text/css" href="tagCloud.css" /> 
  • Finally, you need to activate the JavaScript function getTags(). You have to enter three arguments.
    • First, the URL providing the JSON feed. For example /json/tags/bibtex/1d28c9f535d0f24eadb9d342168836199 for all tags related to that publication.
    • The second argument is the limit of tags to retrieve.
    • Finally, the order of the tags. You can choose between an alphabetic order using the keyword alpha or a tagcount order using the keyword frequency.

      The following example retrieves 25 tags related to that publication in alphabetic order. The tag cloud will be filled in dynamically with the retrieved tags.
      getTags(/json/tags/bibtex/1d28c9f535d0f24eadb9d342168836199, 25, "alpha")

Post Lists#

Embed a list of posts (e.g. your own publications) on your own website in the same way they look in PUMA. Just include an iframe in your HTML code that looks like this:
<iframe name='my publications' 
        style='border: none;'>
      Unfortunately, your browser is not capable of showing embedded frames (iframes).
The URL can be any PUMA page, e.g. your user page or the page of your group. It is important to add the URL parameter format=embed. For example, displays all (up to 1000) publication posts of the user jaeschke that are tagged with "myown", sorted by year descending.


You can integrate PUMA content into the content management system of Zope.


Lists of posts can be displayed using the PUMA RSS feed on your Zope page. Have a look at the detailed description of the RDF Summary product of Zope.

Tag clouds#

In Zope, tag clouds can be created following our tutorial.