Apache Marmotta, Copyright 2012-2013 The Apache Software Foundation

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

Portions of this software were originally based on the following:

    Copyright 2008-2012 Salzburg Research Forschungsgesellschaft mbH

These have been licensed to the Apache Software Foundation under a software grant.

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

* CodeMirror, http://codemirror.net

  Copyright (c) 2013 Marijn Haverbeke

* D2R Snorql, http://www4.wiwiss.fu-berlin.de/bizer/d2r-server/,

  Copyright (c) 2007 Richard Cyganiak

* script.aculo.us, http://script.aculo.us

  Copyright (c) 2010 Thomas Fuchs

* Prototype, http://prototypejs.org

  Copyright (c) 2010 Sam Stephenson

* SPARQL Flint Editor, http://github.com/TSO-Openup/FlintSparqlEditor

  Copyright (c) 2011 TSO Ltd

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

  Copyright (c) 2011 Martin G. Skjæveland

* MigLayout, http://www.migcalendar.com/miglayout

  Copyright (c) 2004 MiG InfoCom AB

* SwingBits, http://swingbits.sourceforge.net

  Copyright (c) 2006 EzWare

* ROME, http://rometools.jira.com

  Copyright (c) 2004 Sun Microsystems

* JSONLD-Java, http://github.com/tristan/jsonld-java

  Copyright (c) 2012, Deutsches Forschungszentrum für Künstliche Intelligenz GmbH

* JSON-LD Test Suite, http://json-ld.org/test-suite

  Public Domain (Creative Commons Zero license) without copyright

* ical4j test suite, http://ical4j.googlecode.com

  Copyright (c) 2011 Ben Fortuna

