Apache Marmotta Platform Core
Copyright 2012-2013 The Apache Software Foundation

This product includes software developed at
The Apache Software Foundation (http://www.apache.org/).

Apache Marmotta, Copyright 2012-2013 The Apache Software Foundation

This product also includes the following third-party components:

* D3.js, http://d3js.org

  Copyright (c) 2013 Michael Bostock

* Dracula Graph Library, http://www.graphdracula.net

  Copyright (c) 2013 Johann Philipp Strathausen

* strftime, http://hacks.bluesmoon.info/strftime

  Copyright (c) 2008 Philip S Tellis

* jQuery, http://jquery.com

  Copyright (c) 2013 jQuery Foundation

* Sgvizler, http://sgvizler.googlecode.com

  Copyright (c) 2011 Martin G. Skjæveland

