Apache Marmotta: 
Introduction 
Sebastian Schaffert
Who Am I 
Dr. Sebastian Schaffert 
Senior Researcher at Salzburg Research 
Chief Technology Officer at Redlink GmbH 
Committer at Apache Software Foundation 
… and starting 12/2014 Software Engineering Manager (SRE) @ Google 
sschaffert@apache.org 
http://linkedin.com/in/sebastianschaffert 
http://www.schaffert.eu
Agenda 
● Introduction to Apache Marmotta (Sebastian) 
– Overview 
– Installation 
– Development 
● Linked Data Platform (Sergio & Jakob) 
– Overview 
– Practical Usage 
● Semantic Media Management (Thomas) 
– Media Use Case 
– SPARQL-MM
Overview
What is Apache Marmotta? 
● Linked Data Server 
(implements Content Negotiation and LDP) 
● SPARQL Server 
(public SPARQL 1.1 query and update endpoint) 
● Linked Data Development Environment 
(collection of modules and libraries for building 
custom Linked Data applications) 
● Community of Open Source Linked Data 
Developers 
… all under business friendly Apache Open Source licence
Linked Data Server 
● easily offer your data as Linked Data on 
the Web 
● human-readable and machine-readable 
read-write data access based on HTTP 
content negotiation 
● reference implementation of the Linked 
Data Platform (see next presentation block)
SPARQL Server 
● full support of SPARQL 1.1 through HTTP 
web services 
● SPARQL 1.1 query and update endpoints 
● implements the SPARQL 1.1 protocol 
( supports any standard SPARQL clients) 
● fast native implementation of SPARQL in 
KiWi triple store 
● lightweight Squebi SPARQL explorer UI
Linked Data Development 
● modular server architecture allows 
combining exactly those functionalities 
needed for a use case 
(no need for reasoning? exclude reasoner ...) 
● collection of independent libraries for 
common Linked Data problems 
– access Linked Data resources (and even 
some that are not Linked Data) 
– simplified Linked Data query language 
(LDPath) 
– use only the triple store without the server
Community of Developers 
● discuss with people interested in getting-things- 
done in the Linked Data world 
● build applications that are useful without 
reimplementing the whole stack 
● thorough software engineering process 
under the roof of the Apache Software 
Foundation
Installation / Setup 
(we help you) 
https://github.com/wikier/apache-marmotta-tutorial-iswc2014
Sample Project 
● Requirements: 
– JDK 7/8 (https://java.com/de/download/) 
– Maven 3.x (http://maven.apache.org) 
– git (http://git-scm.com/) 
– curl (http://curl.haxx.se/) 
https://github.com/wikier/apache-marmotta-tutorial-iswc2014
Sample Project 
$ git clone git@github.com:wikier/apache-marmotta-tutorial-iswc2014.git 
$ cd apache-marmotta-tutorial-iswc2014 
$ mvn clean tomcat7:run 
… then point browser to http://localhost:8080 
https://github.com/wikier/apache-marmotta-tutorial-iswc2014
Apache Marmotta Platform
Apache Marmotta Platform 
● implemented as Java web application 
(deployed as marmotta.war file) 
● service oriented architecture using CDI 
(Java EE 6) 
● REST web services using JAX-RS 
(RestEasy) 
● CDI services found on classpath are 
automatically added to system
Architecture
Marmotta Core (required) 
● core platform functionalities: 
– Linked Data access 
– RDF import and export 
– Admin UI 
● platform glue code: 
– service and dependency injection 
– triple store 
– system configuration 
– logging
Marmotta Backends (one required) 
● choice of different triple store backends 
● KiWi (Marmotta Default) 
– based on relational database (PostgreSQL, MySQL, 
H2) 
– highly scalable 
● Sesame Native 
– based on Sesame Native RDF backend 
● BigData 
– based on BigData clustered triple store 
● Titan 
– based on Titan graph database (backed by HBase, 
Cassandra, or BerkeleyDB)
Marmotta SPARQL (optional) 
● SPARQL HTTP endpoint 
– supports SPARQL 1.1 protocol 
– query: …/sparql/select 
– update: …/sparql/update 
● SPARQL explorer UI (Squebi)
Marmotta LDCache (optional) 
● transparently access Linked Data 
resources from other servers as if they 
were local 
● support for wrapping some legacy data 
sources (e.g. Facebook Graph) 
● local triple cache, honors HTTP expiry and 
cache headers 
Note: 
SPARQL does NOT work well with LDCache, 
use LDPath instead!
Marmotta LDPath (optional) 
● query language specifically designed for 
querying the Linked Data Cloud 
● regular path based navigation starting at a 
resource and then following links 
● limited expressivity (compared to SPARQL) 
but full Linked Data support 
@prefix local: <http://localhost:8080/resource/> ; 
@prefix foaf: <http://xmlns.com/foaf/0.1/>; 
@prefix mao: <http://www.w3.org/ns/ma-ont#>; 
likes = local:likes / 
(foaf:primaryTopic / mao:title | foaf:name) 
:: xsd:string;
Marmotta Reasoner (optional) 
● implementation of rule-based sKWRL 
reasoner 
● Datalog-style rules over RDF triples, 
evaluated in forward-chaining procedure 
@prefix skos: <http://www.w3.org/2004/02/skos/core#> 
($1 skos:broaderTransitive $2) -> ($1 skos:broader $2) 
($1 skos:narrowerTransitive $2) -> ($1 skos:narrower $2) 
($1 skos:broaderTransitive $2), ($2 skos:broaderTransitive $3) 
-> ($1 skos:broaderTransitive $3) 
($1 skos:narrowerTransitive $2), ($2 skos:narrowerTransitive $3) 
-> ($1 skos:narrowerTransitive $3) 
($1 skos:broader $2) -> ($2 skos:narrower $1) 
($1 skos:narrower $2) -> ($2 skos:broader $1) 
($1 skos:broader $2) -> ($1 skos:related $2) 
($1 skos:narrower $2) -> ($1 skos:related $2) 
($1 skos:related $2) -> ($2 skos:related $1)
Marmotta Versioning (optional) 
● transaction-based versioning of all changes 
to the triple store 
● implementation of Memento protocol for 
exploring changes over time 
● snapshot/wayback functionality (i.e. 
possibility to query the state of the triple 
store at a given time in history)
Apache Marmotta Walkthrough 
(Demo)
Apache Marmotta Libraries
Apache Marmotta Libraries 
● provide implementations for common 
Linked Data problems (e.g. accessing 
resources) 
● standalone lightweight Java libraries that 
can be used outside the Marmotta platform
LDClient 
● library for accessing and retrieving Linked 
Data resources 
● includes all the standard code written again 
and again (HTTP retrieval, content 
negotiation, ...) 
● extensible (Java ServiceLoader) with 
custom wrappers for legacy data sources 
(included are RDF, RDFa, Facebook, Youtube, 
Freebase, Wikipedia, as well as base classes for 
mapping other formats like XML and JSON)
LDCache 
● library providing local caching functionality 
for (remote) Linked Data resources 
● builds on top of LDClient, so offers the 
same extensibility 
● Sesame Sail with transparent Linked Data 
access (i.e. Sesame API for Linked Data 
Cloud)
LDPath 
● library offering a standalone 
implementation of the LDPath query 
language 
● large function library for various scenarios 
(e.g. string, math, ...) 
● can be used with LDCache and LDClient 
● can be integrated in your own applications 
● supports different backends (Sesame, 
Jena, Clerezza)
Marmotta Loader 
● command line infrastructure for bulk-loading 
RDF data in various formats to 
different triple stores 
● supports most RDF serializations, directory 
imports, split-file imports, compressed files 
(.gz, .bzip2, .xy), archives (tar, zip) 
● provides progress indicator, statistics
KiWi Triplestore
KiWi Triplestore 
● Sesame SAIL: can be plugged into any 
Sesame application 
● based on relational database (supported: 
PostgreSQL, MySQL, H2) 
● integrates easily in existing enterprise 
infrastructure (database server, backups, 
clustering, …) 
● reliable transaction management (at the 
cost of performance) 
● supports very large datasets (e.g. 
Freebase with more than 2 billion triples)
KiWi Triplestore: SPARQL 
● translation of SPARQL queries into native 
SQL 
● generally very good performance for typical 
queries, even on big datasets 
● query performance can be optimized by 
proper index and memory configuration in 
the database 
● almost complete support for SPARQL 1.1 
(except some constructs exceeding the 
expressivity of SQL and some “bugs”)
KiWi Triplestore: Reasoner 
● rule-based sKWRL reasoner (see demo 
before) 
● fast forward chaining implementation of 
rule evaluation 
● truth maintenance for easy deletes/updates 
● future: might be implemented as stored 
procedures in database
KiWi Triplestore: Clustering 
● cluster-wide caching and synchronization 
based on Hazelcast or Infinispan 
● useful for load balancing of several 
instances of the same application (e.g. 
Marmotta Platform)
KiWi Triplestore: Versioning 
● transaction-based versioning of triple 
updates 
● undo transactions (applied in reverse 
order) 
● get a Sesame repository connection 
visiting any time of the triple store history
Thank You! 
Sebastian Schaffert 
sschaffert@apache.org 
supported by the European 
Commission FP7 project MICO 
(grant no. 610480)

More Related Content

PDF
Apache Marmotta (incubating)
PDF
Semantic Media Management with Apache Marmotta
PDF
Linked Media Management with Apache Marmotta
ODP
Linked Media and Data Using Apache Marmotta
PDF
Introduction to LDP in Apache Marmotta
PDF
Enabling access to Linked Media with SPARQL-MM
PDF
Geospatial Querying in Apache Marmotta - Apache Big Data North America 2016
PDF
Drupal and Apache Stanbol. What if you could reliably do autotagging?
Apache Marmotta (incubating)
Semantic Media Management with Apache Marmotta
Linked Media Management with Apache Marmotta
Linked Media and Data Using Apache Marmotta
Introduction to LDP in Apache Marmotta
Enabling access to Linked Media with SPARQL-MM
Geospatial Querying in Apache Marmotta - Apache Big Data North America 2016
Drupal and Apache Stanbol. What if you could reliably do autotagging?

What's hot (20)

PDF
Slides semantic web and Drupal 7 NYCCamp 2012
PDF
Geospatial querying in Apache Marmotta - ApacheCon Big Data Europe 2015
PDF
The Semantic Web and Drupal 7 - Loja 2013
PDF
Adventures in Linked Data Land (presentation by Richard Light)
PDF
Customizing CKAN
PDF
Towards a Commons RDF Library - ApacheCon Europe 2014
PDF
Eclipse RDF4J - Working with RDF in Java
ODP
Ckan tutorial odw2013 131109
PPTX
Publishing Linked Data 3/5 Semtech2011
PPTX
CKAN as an open-source data management solution for open data
ODP
ckan 2.0 Introduction (20140522 updated)
ODP
ckan 2.0 Introduction (20140618 updated)
PDF
Virtuoso RDF Triple Store Analysis Benchmark & mapping tools RDF / OO
PDF
Drupal 7 and RDF
PDF
Linked data tooling XML
PDF
Integrating Drupal with a Triple Store
PDF
Linked Data, Ontologies and Inference
PPTX
Semantics, rdf and drupal
PDF
EUDAT data architecture and interoperability aspects – Daan Broeder
Slides semantic web and Drupal 7 NYCCamp 2012
Geospatial querying in Apache Marmotta - ApacheCon Big Data Europe 2015
The Semantic Web and Drupal 7 - Loja 2013
Adventures in Linked Data Land (presentation by Richard Light)
Customizing CKAN
Towards a Commons RDF Library - ApacheCon Europe 2014
Eclipse RDF4J - Working with RDF in Java
Ckan tutorial odw2013 131109
Publishing Linked Data 3/5 Semtech2011
CKAN as an open-source data management solution for open data
ckan 2.0 Introduction (20140522 updated)
ckan 2.0 Introduction (20140618 updated)
Virtuoso RDF Triple Store Analysis Benchmark & mapping tools RDF / OO
Drupal 7 and RDF
Linked data tooling XML
Integrating Drupal with a Triple Store
Linked Data, Ontologies and Inference
Semantics, rdf and drupal
EUDAT data architecture and interoperability aspects – Daan Broeder

Similar to Apache Marmotta - Introduction (20)

PPT
Re-using Media on the Web: Media fragment re-mixing and playout
PPTX
Consuming Linked Data 4/5 Semtech2011
ODP
Publishing RDF SKOS with microservices
PDF
Cloud-based Linked Data Management for Self-service Application Development
PPTX
SPARQL and Linked Data Benchmarking
PDF
Querying Linked Data with SPARQL
PPTX
A Real-World Implementation of Linked Data
PPTX
Why do they call it Linked Data when they want to say...?
KEY
iServe Version 1
PPTX
Madrid SPARQL handson
PDF
Got bored by the relational database? Switch to a RDF store!
PPTX
Linked data demystified:Practical efforts to transform CONTENTDM metadata int...
PPTX
Strategies for Processing and Explaining Distributed Queries on Linked Data
PDF
DBpedia's Triple Pattern Fragments
PDF
Graphs, Stores and API
PDF
Intro to-technologies-Green-City-Hackathon-Athens
PPTX
Introduction to Polyglot Persistence
PDF
Database Technologies for Semantic Web
PPTX
Marklogic and the Linked Data Connection
PPTX
Linked Data, Labels, URIs
Re-using Media on the Web: Media fragment re-mixing and playout
Consuming Linked Data 4/5 Semtech2011
Publishing RDF SKOS with microservices
Cloud-based Linked Data Management for Self-service Application Development
SPARQL and Linked Data Benchmarking
Querying Linked Data with SPARQL
A Real-World Implementation of Linked Data
Why do they call it Linked Data when they want to say...?
iServe Version 1
Madrid SPARQL handson
Got bored by the relational database? Switch to a RDF store!
Linked data demystified:Practical efforts to transform CONTENTDM metadata int...
Strategies for Processing and Explaining Distributed Queries on Linked Data
DBpedia's Triple Pattern Fragments
Graphs, Stores and API
Intro to-technologies-Green-City-Hackathon-Athens
Introduction to Polyglot Persistence
Database Technologies for Semantic Web
Marklogic and the Linked Data Connection
Linked Data, Labels, URIs

More from Sebastian Schaffert (7)

PPTX
Knowledge and Media Technologies at Salzburg Research
PPTX
KiWi - a platform for Semantic Social Software
PDF
Semantic Search for Media Portals
PDF
KiWi - Knowledge in a Wiki
PDF
IkeWiki Tutorial
PDF
The KiWi Vision
PDF
Social Software und Web 2.0: Semantic Wikis, Social Tagging und eLearning 2.0
Knowledge and Media Technologies at Salzburg Research
KiWi - a platform for Semantic Social Software
Semantic Search for Media Portals
KiWi - Knowledge in a Wiki
IkeWiki Tutorial
The KiWi Vision
Social Software und Web 2.0: Semantic Wikis, Social Tagging und eLearning 2.0

Recently uploaded (20)

PDF
Cybersecurity: Understanding Threats, Attacks, and Protective Measures in the...
PPTX
PORTFOLIO SAMPLE…….………………………………. …pptx
PDF
karuna yoga vidya peetham school Unique Lineage.pdfTTC
PDF
Role of Data & Analytics in Modern Shopify App Development.pdf
PDF
Technical SEO Explained: How To Make Your Website Search-Friendly
PPT
SEMOGA BERMANFAAT MATERI DASAR KOMPUTER.ppt
PDF
B2B Marketing mba class material for study
PPTX
Internet_Addiction_Presentation_2025.pptx
PPTX
Going_to_Greece presentation Greek mythology
PDF
Lesson.-Reporting-and-Sharing-of-Findings.pdf
PPT
Comparison of 2 Population Kuch toh bhadwa chodi karwa raha
PPTX
LiFi Technology an effective way of Communication
PDF
Salesforce-Proxy-Statement-Supplement-May-2025.pdf
PPTX
امنية شبكات منهج (cisco networking).pptx
PPTX
Male_Genital_SystMale_Genital_System_Anatomy_Illustrated.pptxem_Presentation....
PPTX
DAT602-Database Design and Development-AT4).pptx
PPTX
Cyber Bullying - How to deal with Cyber bullying pptx
PPTX
Unguided-Transmission-Media-Wireless-Communication-Explained.pptx
DOCX
Audio to Video AI Technology Revolutiona
PPTX
DAY 1 - Introduction to Git.pptxttttttttttttttttttttttttttttt
Cybersecurity: Understanding Threats, Attacks, and Protective Measures in the...
PORTFOLIO SAMPLE…….………………………………. …pptx
karuna yoga vidya peetham school Unique Lineage.pdfTTC
Role of Data & Analytics in Modern Shopify App Development.pdf
Technical SEO Explained: How To Make Your Website Search-Friendly
SEMOGA BERMANFAAT MATERI DASAR KOMPUTER.ppt
B2B Marketing mba class material for study
Internet_Addiction_Presentation_2025.pptx
Going_to_Greece presentation Greek mythology
Lesson.-Reporting-and-Sharing-of-Findings.pdf
Comparison of 2 Population Kuch toh bhadwa chodi karwa raha
LiFi Technology an effective way of Communication
Salesforce-Proxy-Statement-Supplement-May-2025.pdf
امنية شبكات منهج (cisco networking).pptx
Male_Genital_SystMale_Genital_System_Anatomy_Illustrated.pptxem_Presentation....
DAT602-Database Design and Development-AT4).pptx
Cyber Bullying - How to deal with Cyber bullying pptx
Unguided-Transmission-Media-Wireless-Communication-Explained.pptx
Audio to Video AI Technology Revolutiona
DAY 1 - Introduction to Git.pptxttttttttttttttttttttttttttttt

Apache Marmotta - Introduction

  • 1. Apache Marmotta: Introduction Sebastian Schaffert
  • 2. Who Am I Dr. Sebastian Schaffert Senior Researcher at Salzburg Research Chief Technology Officer at Redlink GmbH Committer at Apache Software Foundation … and starting 12/2014 Software Engineering Manager (SRE) @ Google [email protected] http://linkedin.com/in/sebastianschaffert http://www.schaffert.eu
  • 3. Agenda ● Introduction to Apache Marmotta (Sebastian) – Overview – Installation – Development ● Linked Data Platform (Sergio & Jakob) – Overview – Practical Usage ● Semantic Media Management (Thomas) – Media Use Case – SPARQL-MM
  • 5. What is Apache Marmotta? ● Linked Data Server (implements Content Negotiation and LDP) ● SPARQL Server (public SPARQL 1.1 query and update endpoint) ● Linked Data Development Environment (collection of modules and libraries for building custom Linked Data applications) ● Community of Open Source Linked Data Developers … all under business friendly Apache Open Source licence
  • 6. Linked Data Server ● easily offer your data as Linked Data on the Web ● human-readable and machine-readable read-write data access based on HTTP content negotiation ● reference implementation of the Linked Data Platform (see next presentation block)
  • 7. SPARQL Server ● full support of SPARQL 1.1 through HTTP web services ● SPARQL 1.1 query and update endpoints ● implements the SPARQL 1.1 protocol ( supports any standard SPARQL clients) ● fast native implementation of SPARQL in KiWi triple store ● lightweight Squebi SPARQL explorer UI
  • 8. Linked Data Development ● modular server architecture allows combining exactly those functionalities needed for a use case (no need for reasoning? exclude reasoner ...) ● collection of independent libraries for common Linked Data problems – access Linked Data resources (and even some that are not Linked Data) – simplified Linked Data query language (LDPath) – use only the triple store without the server
  • 9. Community of Developers ● discuss with people interested in getting-things- done in the Linked Data world ● build applications that are useful without reimplementing the whole stack ● thorough software engineering process under the roof of the Apache Software Foundation
  • 10. Installation / Setup (we help you) https://github.com/wikier/apache-marmotta-tutorial-iswc2014
  • 11. Sample Project ● Requirements: – JDK 7/8 (https://java.com/de/download/) – Maven 3.x (http://maven.apache.org) – git (http://git-scm.com/) – curl (http://curl.haxx.se/) https://github.com/wikier/apache-marmotta-tutorial-iswc2014
  • 12. Sample Project $ git clone [email protected]:wikier/apache-marmotta-tutorial-iswc2014.git $ cd apache-marmotta-tutorial-iswc2014 $ mvn clean tomcat7:run … then point browser to http://localhost:8080 https://github.com/wikier/apache-marmotta-tutorial-iswc2014
  • 14. Apache Marmotta Platform ● implemented as Java web application (deployed as marmotta.war file) ● service oriented architecture using CDI (Java EE 6) ● REST web services using JAX-RS (RestEasy) ● CDI services found on classpath are automatically added to system
  • 16. Marmotta Core (required) ● core platform functionalities: – Linked Data access – RDF import and export – Admin UI ● platform glue code: – service and dependency injection – triple store – system configuration – logging
  • 17. Marmotta Backends (one required) ● choice of different triple store backends ● KiWi (Marmotta Default) – based on relational database (PostgreSQL, MySQL, H2) – highly scalable ● Sesame Native – based on Sesame Native RDF backend ● BigData – based on BigData clustered triple store ● Titan – based on Titan graph database (backed by HBase, Cassandra, or BerkeleyDB)
  • 18. Marmotta SPARQL (optional) ● SPARQL HTTP endpoint – supports SPARQL 1.1 protocol – query: …/sparql/select – update: …/sparql/update ● SPARQL explorer UI (Squebi)
  • 19. Marmotta LDCache (optional) ● transparently access Linked Data resources from other servers as if they were local ● support for wrapping some legacy data sources (e.g. Facebook Graph) ● local triple cache, honors HTTP expiry and cache headers Note: SPARQL does NOT work well with LDCache, use LDPath instead!
  • 20. Marmotta LDPath (optional) ● query language specifically designed for querying the Linked Data Cloud ● regular path based navigation starting at a resource and then following links ● limited expressivity (compared to SPARQL) but full Linked Data support @prefix local: <http://localhost:8080/resource/> ; @prefix foaf: <http://xmlns.com/foaf/0.1/>; @prefix mao: <http://www.w3.org/ns/ma-ont#>; likes = local:likes / (foaf:primaryTopic / mao:title | foaf:name) :: xsd:string;
  • 21. Marmotta Reasoner (optional) ● implementation of rule-based sKWRL reasoner ● Datalog-style rules over RDF triples, evaluated in forward-chaining procedure @prefix skos: <http://www.w3.org/2004/02/skos/core#> ($1 skos:broaderTransitive $2) -> ($1 skos:broader $2) ($1 skos:narrowerTransitive $2) -> ($1 skos:narrower $2) ($1 skos:broaderTransitive $2), ($2 skos:broaderTransitive $3) -> ($1 skos:broaderTransitive $3) ($1 skos:narrowerTransitive $2), ($2 skos:narrowerTransitive $3) -> ($1 skos:narrowerTransitive $3) ($1 skos:broader $2) -> ($2 skos:narrower $1) ($1 skos:narrower $2) -> ($2 skos:broader $1) ($1 skos:broader $2) -> ($1 skos:related $2) ($1 skos:narrower $2) -> ($1 skos:related $2) ($1 skos:related $2) -> ($2 skos:related $1)
  • 22. Marmotta Versioning (optional) ● transaction-based versioning of all changes to the triple store ● implementation of Memento protocol for exploring changes over time ● snapshot/wayback functionality (i.e. possibility to query the state of the triple store at a given time in history)
  • 25. Apache Marmotta Libraries ● provide implementations for common Linked Data problems (e.g. accessing resources) ● standalone lightweight Java libraries that can be used outside the Marmotta platform
  • 26. LDClient ● library for accessing and retrieving Linked Data resources ● includes all the standard code written again and again (HTTP retrieval, content negotiation, ...) ● extensible (Java ServiceLoader) with custom wrappers for legacy data sources (included are RDF, RDFa, Facebook, Youtube, Freebase, Wikipedia, as well as base classes for mapping other formats like XML and JSON)
  • 27. LDCache ● library providing local caching functionality for (remote) Linked Data resources ● builds on top of LDClient, so offers the same extensibility ● Sesame Sail with transparent Linked Data access (i.e. Sesame API for Linked Data Cloud)
  • 28. LDPath ● library offering a standalone implementation of the LDPath query language ● large function library for various scenarios (e.g. string, math, ...) ● can be used with LDCache and LDClient ● can be integrated in your own applications ● supports different backends (Sesame, Jena, Clerezza)
  • 29. Marmotta Loader ● command line infrastructure for bulk-loading RDF data in various formats to different triple stores ● supports most RDF serializations, directory imports, split-file imports, compressed files (.gz, .bzip2, .xy), archives (tar, zip) ● provides progress indicator, statistics
  • 31. KiWi Triplestore ● Sesame SAIL: can be plugged into any Sesame application ● based on relational database (supported: PostgreSQL, MySQL, H2) ● integrates easily in existing enterprise infrastructure (database server, backups, clustering, …) ● reliable transaction management (at the cost of performance) ● supports very large datasets (e.g. Freebase with more than 2 billion triples)
  • 32. KiWi Triplestore: SPARQL ● translation of SPARQL queries into native SQL ● generally very good performance for typical queries, even on big datasets ● query performance can be optimized by proper index and memory configuration in the database ● almost complete support for SPARQL 1.1 (except some constructs exceeding the expressivity of SQL and some “bugs”)
  • 33. KiWi Triplestore: Reasoner ● rule-based sKWRL reasoner (see demo before) ● fast forward chaining implementation of rule evaluation ● truth maintenance for easy deletes/updates ● future: might be implemented as stored procedures in database
  • 34. KiWi Triplestore: Clustering ● cluster-wide caching and synchronization based on Hazelcast or Infinispan ● useful for load balancing of several instances of the same application (e.g. Marmotta Platform)
  • 35. KiWi Triplestore: Versioning ● transaction-based versioning of triple updates ● undo transactions (applied in reverse order) ● get a Sesame repository connection visiting any time of the triple store history
  • 36. Thank You! Sebastian Schaffert [email protected] supported by the European Commission FP7 project MICO (grant no. 610480)