Merge branch 'develop' into MARMOTTA-556
diff --git a/launchers/marmotta-webapp/pom.xml b/launchers/marmotta-webapp/pom.xml
index c9d0cd6..3847483 100644
--- a/launchers/marmotta-webapp/pom.xml
+++ b/launchers/marmotta-webapp/pom.xml
@@ -560,6 +560,11 @@
         </dependency>
         <dependency>
             <groupId>org.apache.marmotta</groupId>
+            <artifactId>marmotta-ldf</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.marmotta</groupId>
             <artifactId>marmotta-ldpath</artifactId>
             <version>${project.version}</version>
         </dependency>
diff --git a/platform/marmotta-core/src/main/java/org/apache/marmotta/platform/core/services/triplestore/ContextServiceImpl.java b/platform/marmotta-core/src/main/java/org/apache/marmotta/platform/core/services/triplestore/ContextServiceImpl.java
index 59d9fc2..b67ba5f 100644
--- a/platform/marmotta-core/src/main/java/org/apache/marmotta/platform/core/services/triplestore/ContextServiceImpl.java
+++ b/platform/marmotta-core/src/main/java/org/apache/marmotta/platform/core/services/triplestore/ContextServiceImpl.java
@@ -179,19 +179,19 @@
         if(uri == null) {
             return null;
         }
-    	if (!UriUtil.validate(uri)) {
-    		uri = configurationService.getBaseContext() + uri;
-    		if (!UriUtil.validate(uri)) {
-    			throw new URISyntaxException(uri, "not valid context uri");
-    		}
-    	}
+        if (!UriUtil.validate(uri)) {
+            uri = configurationService.getBaseContext() + uri;
+            if (!UriUtil.validate(uri)) {
+                throw new URISyntaxException(uri, "not valid context uri");
+            }
+        }
         try {
             RepositoryConnection conn = sesameService.getConnection();
             try {
                 conn.begin();
                 checkConnectionNamespace(conn);
                 ValueFactory valueFactory = conn.getValueFactory();
-				URI ctx = valueFactory.createURI(uri);
+                URI ctx = valueFactory.createURI(uri);
                 if (StringUtils.isNotBlank(label)) {
                     conn.add(ctx, RDFS.LABEL, Literals.createLiteral(valueFactory, label), ctx);
                 }
diff --git a/platform/marmotta-ldf/pom.xml b/platform/marmotta-ldf/pom.xml
new file mode 100644
index 0000000..9d589ad
--- /dev/null
+++ b/platform/marmotta-ldf/pom.xml
@@ -0,0 +1,264 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+        http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+
+    <parent>
+        <groupId>org.apache.marmotta</groupId>
+        <artifactId>marmotta-parent</artifactId>
+        <version>3.3.0-SNAPSHOT</version>
+        <relativePath>../../parent</relativePath>
+    </parent>
+
+    <artifactId>marmotta-ldf</artifactId>
+    <packaging>jar</packaging>
+
+    <name>Apache Marmotta Platform: Linked Data Fragments</name>
+    <description>Provides support for the Linked Data Fragments.</description>
+
+    <build>
+        <pluginManagement>
+            <plugins>
+                <plugin> <!-- generate JRebel Configuration -->
+                    <groupId>org.zeroturnaround</groupId>
+                    <artifactId>jrebel-maven-plugin</artifactId>
+                    <version>1.1.3</version>
+                    <executions>
+                        <execution>
+                            <id>generate-rebel-xml</id>
+                            <phase>process-resources</phase>
+                            <goals>
+                                <goal>generate</goal>
+                            </goals>
+                        </execution>
+                    </executions>
+                    <configuration>
+                        <relativePath>../../</relativePath>
+                        <rootPath>$${rebel.root}</rootPath>
+                        <classpath>
+                            <resources>
+                                <resource><!-- default resource --></resource>
+                                <resource><directory>src/main/resources</directory></resource>
+                            </resources>
+                        </classpath>
+                    </configuration>
+                </plugin>
+            </plugins>
+        </pluginManagement>
+
+        <plugins>
+
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-surefire-plugin</artifactId>
+            </plugin>
+
+            <plugin>
+                <groupId>org.apache.marmotta</groupId>
+                <artifactId>buildinfo-maven-plugin</artifactId>
+                <configuration>
+                    <systemProperties>
+                        <systemProperty>user.name</systemProperty>
+                        <systemProperty>user.timezone</systemProperty>
+                        <systemProperty>java.vm.vendor</systemProperty>
+                        <systemProperty>java.vm.version</systemProperty>
+                        <systemProperty>java.vm.name</systemProperty>
+                        <systemProperty>java.runtime.version</systemProperty>
+                        <systemProperty>os.name</systemProperty>
+                        <systemProperty>os.version</systemProperty>
+                        <systemProperty>os.arch</systemProperty>
+                    </systemProperties>
+                </configuration>
+                <executions>
+                    <execution>
+                        <phase>process-resources</phase>
+                        <goals>
+                            <goal>extract</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-javadoc-plugin</artifactId>
+                <executions>
+                    <!--
+                    <execution>
+                        <id>aggregate</id>
+                        <goals>
+                            <goal>aggregate</goal>
+                        </goals>
+                        <phase>site</phase>
+                    </execution>
+                    -->
+                    <execution>
+                        <!-- configure how the REST API documentation will be produced -->
+                        <id>restapi</id>
+                        <configuration>
+                            <doclet>com.lunatech.doclets.jax.jaxrs.JAXRSDoclet</doclet>
+
+                            <name>REST API</name>
+                            <description>REST API for Marmotta Webservices</description>
+
+                            <outputDirectory>${project.build.outputDirectory}/doc</outputDirectory>
+                            <reportOutputDirectory>${project.build.outputDirectory}/web/doc</reportOutputDirectory>
+                            <destDir>rest</destDir>
+
+                            <docletArtifact>
+                                <groupId>com.lunatech.jax-doclets</groupId>
+                                <artifactId>doclets</artifactId>
+                                <version>${jax.doclets.version}</version>
+                            </docletArtifact>
+                            <additionalparam>
+                                -jaxrscontext {BASE}
+                                -charset UTF-8
+                            </additionalparam>
+
+                            <!--
+                                                        <stylesheetfile>${project.parent.basedir}/config/doc/doclet.css</stylesheetfile>
+                            -->
+
+                            <header><![CDATA[<!--###BEGIN_CONTENT###--><div class="javadoc">]]></header>
+                            <footer><![CDATA[</div><!--###END_CONTENT###-->]]></footer>
+                            <encoding>UTF-8</encoding>
+                            <detectOfflineLinks>false</detectOfflineLinks>
+
+                            <!-- For the project-reports page -->
+                        </configuration>
+                        <goals>
+                            <goal>javadoc</goal>
+                        </goals>
+                        <phase>generate-resources</phase>
+                    </execution>
+                </executions>
+            </plugin>
+
+            <plugin>
+                <groupId>org.apache.rat</groupId>
+                <artifactId>apache-rat-plugin</artifactId>
+            </plugin>
+
+        </plugins>
+
+    </build>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.marmotta</groupId>
+            <artifactId>marmotta-core</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.openrdf.sesame</groupId>
+            <artifactId>sesame-rio-api</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.jboss.resteasy</groupId>
+            <artifactId>resteasy-cdi</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.jboss.resteasy</groupId>
+            <artifactId>resteasy-jackson2-provider</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>com.fasterxml.jackson.core</groupId>
+            <artifactId>jackson-core</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>com.fasterxml.jackson.core</groupId>
+            <artifactId>jackson-databind</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>com.fasterxml.jackson.jaxrs</groupId>
+            <artifactId>jackson-jaxrs-json-provider</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>com.fasterxml.jackson.module</groupId>
+            <artifactId>jackson-module-jaxb-annotations</artifactId>
+        </dependency>
+        
+        <!-- testing -->
+        <dependency>
+            <groupId>org.apache.marmotta</groupId>
+            <artifactId>marmotta-core</artifactId>
+            <version>${project.version}</version>
+            <type>test-jar</type>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.eclipse.jetty</groupId>
+            <artifactId>jetty-server</artifactId>
+            <version>${jetty.version}</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.eclipse.jetty</groupId>
+            <artifactId>jetty-servlet</artifactId>
+            <version>${jetty.version}</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>junit</groupId>
+            <artifactId>junit</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.jboss.weld.se</groupId>
+            <artifactId>weld-se-core</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>javax.el</groupId>
+            <artifactId>javax.el-api</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>com.h2database</groupId>
+            <artifactId>h2</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>com.jayway.restassured</groupId>
+            <artifactId>rest-assured</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.hamcrest</groupId>
+            <artifactId>hamcrest-library</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.hamcrest</groupId>
+            <artifactId>hamcrest-core</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.marmotta</groupId>
+            <artifactId>marmotta-sesame-matchers</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.openrdf.sesame</groupId>
+            <artifactId>sesame-sail-memory</artifactId>
+            <scope>test</scope>
+        </dependency>
+
+    </dependencies>
+
+</project>
diff --git a/platform/marmotta-ldf/src/main/java/org/apache/marmotta/platform/ldf/api/LdfService.java b/platform/marmotta-ldf/src/main/java/org/apache/marmotta/platform/ldf/api/LdfService.java
new file mode 100644
index 0000000..2b4cd0a
--- /dev/null
+++ b/platform/marmotta-ldf/src/main/java/org/apache/marmotta/platform/ldf/api/LdfService.java
@@ -0,0 +1,88 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.marmotta.platform.ldf.api;
+
+import org.openrdf.model.Model;
+import org.openrdf.model.Resource;
+import org.openrdf.model.URI;
+import org.openrdf.model.Value;
+import org.openrdf.repository.RepositoryException;
+
+/**
+ * Linked Media Fragments service
+ *
+ * @author Sergio Fernández
+ */
+public interface LdfService {
+
+    final static int PAGE_SIZE = 100;
+
+    /**
+     * Gets a fragment matching the specified triple fragment pattern
+     * specified (null values are wildcards).
+     *
+     * @param subject fragment subject
+     * @param predicate fragmnent predicate
+     * @param object fragment object
+     * @param page number of page (starting with 1)
+     * @return fragment
+     */
+    Model getFragment(String subject, String predicate, String object, int page, java.net.URI uri) throws RepositoryException, IllegalArgumentException;
+
+    /**
+     * Gets a fragment matching the specified triple fragment pattern
+     * specified (null values are wildcards).
+     *
+     * @param subject fragment subject
+     * @param predicate fragmnent predicate
+     * @param object fragment object
+     * @param page number of page (starting with 1)
+     * @param uri uri requested
+     * @return fragment
+     */
+    Model getFragment(URI subject, URI predicate, Value object, int page, java.net.URI uri) throws RepositoryException, IllegalArgumentException;
+
+    /**
+     * Gets a fragment matching the specified quad fragment pattern
+     * specified (null values are wildcards).
+     *
+     * @param subject fragment subject
+     * @param predicate fragmnent predicate
+     * @param object fragment object
+     * @param context named graph
+     * @param page number of page (starting with 1)
+     * @param uri uri requested
+     * @return fragment
+     */
+    Model getFragment(String subject, String predicate, String object, String context, int page, java.net.URI uri) throws RepositoryException, IllegalArgumentException;
+
+    /**
+     * Gets a fragment matching the specified quad fragment pattern
+     * specified (null values are wildcards).
+     *
+     * @param subject fragment subject
+     * @param predicate fragmnent predicate
+     * @param object fragment object
+     * @param context named graph
+     * @param page number of page (starting with 1)
+     * @param uri uri requested
+     * @return fragment
+     */
+    Model getFragment(URI subject, URI predicate, Value object, Resource context, int page, java.net.URI uri) throws RepositoryException, IllegalArgumentException;
+
+}
diff --git a/platform/marmotta-ldf/src/main/java/org/apache/marmotta/platform/ldf/logging/LdfLoggingModule.java b/platform/marmotta-ldf/src/main/java/org/apache/marmotta/platform/ldf/logging/LdfLoggingModule.java
new file mode 100644
index 0000000..54a6495
--- /dev/null
+++ b/platform/marmotta-ldf/src/main/java/org/apache/marmotta/platform/ldf/logging/LdfLoggingModule.java
@@ -0,0 +1,55 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.marmotta.platform.ldf.logging;
+
+import ch.qos.logback.classic.Level;
+import org.apache.marmotta.platform.core.logging.BaseLoggingModule;
+
+import javax.enterprise.context.ApplicationScoped;
+import java.util.Collection;
+import java.util.Collections;
+
+/**
+ * Logging Module for LDF
+ *
+ * @author Sergio Fernández
+ */
+@ApplicationScoped
+public class LdfLoggingModule extends BaseLoggingModule {
+
+    @Override
+    public String getId() {
+        return "ldf";
+    }
+
+    @Override
+    public String getName() {
+        return "LDF";
+    }
+
+    @Override
+    public Collection<String> getPackages() {
+        return Collections.singleton("org.apache.marmotta.platform.ldf");
+    }
+
+    @Override
+    public Level getDefaultLevel() {
+        return Level.DEBUG;
+    }
+
+}
diff --git a/platform/marmotta-ldf/src/main/java/org/apache/marmotta/platform/ldf/services/LdfServiceImpl.java b/platform/marmotta-ldf/src/main/java/org/apache/marmotta/platform/ldf/services/LdfServiceImpl.java
new file mode 100644
index 0000000..576560a
--- /dev/null
+++ b/platform/marmotta-ldf/src/main/java/org/apache/marmotta/platform/ldf/services/LdfServiceImpl.java
@@ -0,0 +1,222 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.marmotta.platform.ldf.services;
+
+import com.google.common.collect.FluentIterable;
+import org.apache.commons.lang3.StringUtils;
+import org.apache.marmotta.commons.sesame.repository.ResultUtils;
+import org.apache.marmotta.commons.vocabulary.XSD;
+import org.apache.marmotta.platform.core.api.triplestore.SesameService;
+import org.apache.marmotta.platform.ldf.api.LdfService;
+import org.apache.marmotta.platform.ldf.vocab.HYDRA;
+import org.apache.marmotta.platform.ldf.vocab.RDF;
+import org.apache.marmotta.platform.ldf.vocab.SSD;
+import org.apache.marmotta.platform.ldf.vocab.VOID;
+import org.openrdf.model.*;
+import org.openrdf.model.impl.TreeModel;
+import org.openrdf.model.impl.ValueFactoryImpl;
+import org.openrdf.repository.RepositoryConnection;
+import org.openrdf.repository.RepositoryException;
+import org.openrdf.repository.RepositoryResult;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import javax.inject.Inject;
+import javax.ws.rs.core.UriBuilder;
+import java.net.URISyntaxException;
+import java.util.Comparator;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * Linked Media Fragments service implementation
+ *
+ * @author Sergio Fernández
+ */
+public class LdfServiceImpl implements LdfService {
+
+    private static final Logger log = LoggerFactory.getLogger(LdfServiceImpl.class);
+
+    @Inject
+    private SesameService sesameService;
+
+    @Override
+    public Model getFragment(String subjectStr, String predicateStr, String objectStr, int page, java.net.URI uri) throws RepositoryException, IllegalArgumentException {
+        return getFragment(subjectStr, predicateStr, objectStr, null, page, uri);
+    }
+
+    @Override
+    public Model getFragment(URI subject, URI predicate, Value object, int page, java.net.URI uri) throws RepositoryException, IllegalArgumentException {
+        return getFragment(subject, predicate, object, null, page, uri);
+    }
+
+    @Override
+    public Model getFragment(String subjectStr, String predicateStr, String objectStr, String contextStr, int page, java.net.URI uri) throws RepositoryException, IllegalArgumentException {
+        final ValueFactoryImpl vf = new ValueFactoryImpl();
+
+        URI subject = null;
+        if (StringUtils.isNotBlank(subjectStr)) {
+            try {
+                new java.net.URI(subjectStr);
+                subject = vf.createURI(subjectStr);
+            } catch (URISyntaxException e) {
+                log.error("invalid subject '{}': {}", subjectStr, e.getMessage());
+            }
+        }
+
+        URI predicate = null;
+        if (StringUtils.isNotBlank(predicateStr)) {
+            try {
+                new java.net.URI(predicateStr);
+                predicate = vf.createURI(predicateStr);
+            } catch (URISyntaxException e) {
+                log.error("invalid predicate '{}': {}", predicateStr, e.getMessage());
+            }
+        }
+
+        Value object = null;
+        if (StringUtils.isNotBlank(objectStr)) {
+            try {
+                new java.net.URI(objectStr);
+                object = vf.createURI(objectStr);
+            } catch (URISyntaxException e) {
+                object = vf.createLiteral(objectStr);
+            }
+        }
+
+        URI context = null;
+        if (StringUtils.isNotBlank(contextStr)) {
+            try {
+                new java.net.URI(contextStr);
+                context = vf.createURI(contextStr);
+            } catch (URISyntaxException e) {
+                log.error("invalid context '{}': {}", contextStr, e.getMessage());
+            }
+        }
+
+        return getFragment(subject, predicate, object, context, page, uri);
+    }
+
+    @Override
+    public Model getFragment(URI subject, URI predicate, Value object, Resource context, int page, java.net.URI uri) throws RepositoryException, IllegalArgumentException {
+        final RepositoryConnection conn = sesameService.getConnection();
+        try {
+            conn.begin();
+
+            //first get the triple fragment for ordering by a fixed criteria
+            //TODO: do this effectively
+            final RepositoryResult<Statement> results = conn.getStatements(subject, predicate, object, true, context);
+            final List<Statement> statements = FluentIterable.from(ResultUtils.iterable(results)).toSortedList(new Comparator<Statement>() {
+                @Override
+                public int compare(Statement s1, Statement s2) {
+                    int subjectComparison = s1.getSubject().stringValue().compareTo(s2.getSubject().stringValue());
+                    int predicatedComparison = s1.getPredicate().stringValue().compareTo(s2.getPredicate().stringValue());
+                    if (subjectComparison != 0) {
+                        return subjectComparison;
+                    } else if (predicatedComparison != 0) {
+                        return predicatedComparison;
+                    } else if ((s1.getObject() instanceof Literal) && (s2.getObject() instanceof Resource)) {
+                        return 1;
+                    } else if ((s1.getObject() instanceof Resource) && (s2.getObject() instanceof Literal)) {
+                        return -1;
+                    } else {
+                        return s1.getObject().stringValue().compareTo(s2.getObject().stringValue());
+                    }
+                }
+            });
+            if (!results.isClosed()) {
+                //ResultUtils in theory closes the RepositoryResult connection...
+                results.close();
+            }
+
+            //then filter
+            final int size = statements.size();
+            final int offset = LdfService.PAGE_SIZE * (page - 1);
+
+            if (offset > size) {
+                throw new IllegalArgumentException("page " + page + " can't be generated, empty fragment");
+            }
+
+            final Model model = new TreeModel();
+            final ValueFactoryImpl vf = new ValueFactoryImpl();
+
+            final int limit = LdfService.PAGE_SIZE < size - offset ? LdfService.PAGE_SIZE : size - offset;
+            List<Statement> filteredStatements = statements.subList(offset, limit);
+            if (filteredStatements.isEmpty()) {
+                throw new IllegalArgumentException("empty fragment");
+            }
+
+            //add the fragment
+            model.addAll(filteredStatements);
+
+            //and add ldf metadata
+            URI dataset = vf.createURI(UriBuilder.fromUri(uri).replaceQuery(null).build().toASCIIString());
+            model.add(dataset, RDF.type, VOID.Dataset);
+            model.add(dataset, RDF.type, HYDRA.Collection);
+            if (context != null) {
+                model.add(dataset, VOID.inDataset, context);
+                model.add(dataset, SSD.namedGraph, context);
+            }
+
+            Resource fragment = vf.createBNode(String.format("fragment-%tFT%<tH-%<tM-%<tS.%<tL", new Date()));
+            model.add(dataset, VOID.subset, fragment);
+            model.add(fragment, RDF.type, HYDRA.Collection);
+            if (offset != 0 && limit != size) {
+                model.add(fragment, RDF.type, HYDRA.PagedCollection);
+            }
+            model.add(fragment, VOID.triples, vf.createLiteral(Integer.toString(filteredStatements.size()), XSD.Integer));
+
+            //and add hydra controls
+            model.add(fragment, HYDRA.totalItems, vf.createLiteral(Integer.toString(filteredStatements.size()), XSD.Integer));
+            model.add(fragment, HYDRA.itemsPerPage, vf.createLiteral(Integer.toString(LdfService.PAGE_SIZE), XSD.Integer));
+            model.add(fragment, HYDRA.firstPage, vf.createURI(UriBuilder.fromUri(uri).queryParam("page", 1).build().toASCIIString()));
+            if (offset > 0) {
+                model.add(fragment, HYDRA.previousPage, vf.createURI(UriBuilder.fromUri(uri).queryParam("page", page-1).build().toASCIIString()));
+            }
+            if (offset + limit < statements.size()) {
+                model.add(fragment, HYDRA.nextPage, vf.createURI(UriBuilder.fromUri(uri).queryParam("page", page+1).build().toASCIIString()));
+            }
+            Resource triplePattern = vf.createBNode("triplePattern");
+            model.add(dataset, HYDRA.search, triplePattern);
+            model.add(triplePattern, HYDRA.template, vf.createLiteral(dataset.stringValue() + "{?subject,predicate,object}"));
+            Resource subjectMapping = vf.createBNode("subjectMapping");
+            model.add(triplePattern, HYDRA.mapping, subjectMapping);
+            model.add(subjectMapping, HYDRA.variable, vf.createLiteral("subject"));
+            model.add(subjectMapping, HYDRA.property, RDF.subject);
+            Resource predicateMapping = vf.createBNode("predicateMapping");
+            model.add(triplePattern, HYDRA.mapping, predicateMapping);
+            model.add(predicateMapping, HYDRA.variable, vf.createLiteral("predicate"));
+            model.add(predicateMapping, HYDRA.property, RDF.predicate);
+            Resource objectMapping = vf.createBNode("objectMapping");
+            model.add(triplePattern, HYDRA.mapping, objectMapping);
+            model.add(objectMapping, HYDRA.variable, vf.createLiteral("object"));
+            model.add(objectMapping, HYDRA.property, RDF.object);
+
+
+            return model;
+
+        } finally {
+            conn.commit();
+            if(conn.isOpen()) {
+                conn.close();
+            }
+        }
+
+    }
+
+}
diff --git a/platform/marmotta-ldf/src/main/java/org/apache/marmotta/platform/ldf/vocab/HYDRA.java b/platform/marmotta-ldf/src/main/java/org/apache/marmotta/platform/ldf/vocab/HYDRA.java
new file mode 100644
index 0000000..3bc261d
--- /dev/null
+++ b/platform/marmotta-ldf/src/main/java/org/apache/marmotta/platform/ldf/vocab/HYDRA.java
@@ -0,0 +1,600 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.marmotta.platform.ldf.vocab;
+
+import org.openrdf.model.URI;
+import org.openrdf.model.ValueFactory;
+import org.openrdf.model.impl.ValueFactoryImpl;
+
+/**
+ * Namespace Hydra.
+ * Prefix: {@code <http://www.w3.org/ns/hydra/core#>}
+ */
+public class HYDRA {
+
+    /** {@code http://www.w3.org/ns/hydra/core#} **/
+    public static final String NAMESPACE = "http://www.w3.org/ns/hydra/core#";
+
+    /** {@code hydra} **/
+    public static final String PREFIX = "hydra";
+
+    /**
+     * ApiDocumentation
+     * <p>
+     * {@code http://www.w3.org/ns/hydra/core#ApiDocumentation}.
+     * <p>
+     * The Hydra API documentation class
+     *
+     * @see <a href="http://www.w3.org/ns/hydra/core#ApiDocumentation">ApiDocumentation</a>
+     */
+    public static final URI ApiDocumentation;
+
+    /**
+     * apiDocumentation
+     * <p>
+     * {@code http://www.w3.org/ns/hydra/core#apiDocumentation}.
+     * <p>
+     * A link to the API documentation
+     *
+     * @see <a href="http://www.w3.org/ns/hydra/core#apiDocumentation">apiDocumentation</a>
+     */
+    public static final URI apiDocumentation;
+
+    /**
+     * Hydra Class
+     * <p>
+     * {@code http://www.w3.org/ns/hydra/core#Class}.
+     * <p>
+     * The class of Hydra classes. Hydra classes and their instances are
+     * dereferenceable resources.
+     *
+     * @see <a href="http://www.w3.org/ns/hydra/core#Class">Class</a>
+     */
+    public static final URI Class;
+
+    /**
+     * Collection
+     * <p>
+     * {@code http://www.w3.org/ns/hydra/core#Collection}.
+     * <p>
+     * A collection holding references to a number of related resources.
+     *
+     * @see <a href="http://www.w3.org/ns/hydra/core#Collection">Collection</a>
+     */
+    public static final URI Collection;
+
+    /**
+     * CreateResourceOperation
+     * <p>
+     * {@code http://www.w3.org/ns/hydra/core#CreateResourceOperation}.
+     * <p>
+     * A CreateResourceOperation is a HTTP operation which expects an input
+	 * of the type specified by hydra:expects and creates a resource of the
+	 * type specified by hydra:returns.
+     *
+     * @see <a href="http://www.w3.org/ns/hydra/core#CreateResourceOperation">CreateResourceOperation</a>
+     */
+    public static final URI CreateResourceOperation;
+
+    /**
+     * DeleteResourceOperation
+     * <p>
+     * {@code http://www.w3.org/ns/hydra/core#DeleteResourceOperation}.
+     * <p>
+     * A DeleteResourceOperation is a HTTP operation that deletes a resource.
+     *
+     * @see <a href="http://www.w3.org/ns/hydra/core#DeleteResourceOperation">DeleteResourceOperation</a>
+     */
+    public static final URI DeleteResourceOperation;
+
+    /**
+     * description
+     * <p>
+     * {@code http://www.w3.org/ns/hydra/core#description}.
+     * <p>
+     * A description.
+     *
+     * @see <a href="http://www.w3.org/ns/hydra/core#description">description</a>
+     */
+    public static final URI description;
+
+    /**
+     * entrypoint
+     * <p>
+     * {@code http://www.w3.org/ns/hydra/core#entrypoint}.
+     * <p>
+     * A link to main entry point of the Web API
+     *
+     * @see <a href="http://www.w3.org/ns/hydra/core#entrypoint">entrypoint</a>
+     */
+    public static final URI entrypoint;
+
+    /**
+     * Error
+     * <p>
+     * {@code http://www.w3.org/ns/hydra/core#Error}.
+     * <p>
+     * A runtime error, used to report information beyond the returned status
+	 * code.
+     *
+     * @see <a href="http://www.w3.org/ns/hydra/core#Error">Error</a>
+     */
+    public static final URI Error;
+
+    /**
+     * expects
+     * <p>
+     * {@code http://www.w3.org/ns/hydra/core#expects}.
+     * <p>
+     * The information expected by the Web API.
+     *
+     * @see <a href="http://www.w3.org/ns/hydra/core#expects">expects</a>
+     */
+    public static final URI expects;
+
+    /**
+     * first page
+     * <p>
+     * {@code http://www.w3.org/ns/hydra/core#firstPage}.
+     * <p>
+     * The first page of an interlinked set of PagedCollections
+     *
+     * @see <a href="http://www.w3.org/ns/hydra/core#firstPage">firstPage</a>
+     */
+    public static final URI firstPage;
+
+    /**
+     * freetext query
+     * <p>
+     * {@code http://www.w3.org/ns/hydra/core#freetextQuery}.
+     * <p>
+     * A property representing a freetext query.
+     *
+     * @see <a href="http://www.w3.org/ns/hydra/core#freetextQuery">freetextQuery</a>
+     */
+    public static final URI freetextQuery;
+
+    /**
+     * IRI Template
+     * <p>
+     * {@code http://www.w3.org/ns/hydra/core#IriTemplate}.
+     * <p>
+     * The class of IRI templates.
+     *
+     * @see <a href="http://www.w3.org/ns/hydra/core#IriTemplate">IriTemplate</a>
+     */
+    public static final URI IriTemplate;
+
+    /**
+     * IriTemplateMapping
+     * <p>
+     * {@code http://www.w3.org/ns/hydra/core#IriTemplateMapping}.
+     * <p>
+     * A mapping from an IRI template variable to a property.
+     *
+     * @see <a href="http://www.w3.org/ns/hydra/core#IriTemplateMapping">IriTemplateMapping</a>
+     */
+    public static final URI IriTemplateMapping;
+
+    /**
+     * items per page
+     * <p>
+     * {@code http://www.w3.org/ns/hydra/core#itemsPerPage}.
+     * <p>
+     * The maximum number of items referenced by each single PagedCollection
+	 * in a set of interlinked PagedCollections.
+     *
+     * @see <a href="http://www.w3.org/ns/hydra/core#itemsPerPage">itemsPerPage</a>
+     */
+    public static final URI itemsPerPage;
+
+    /**
+     * last page
+     * <p>
+     * {@code http://www.w3.org/ns/hydra/core#lastPage}.
+     * <p>
+     * The last page of an interlinked set of PagedCollections
+     *
+     * @see <a href="http://www.w3.org/ns/hydra/core#lastPage">lastPage</a>
+     */
+    public static final URI lastPage;
+
+    /**
+     * Link
+     * <p>
+     * {@code http://www.w3.org/ns/hydra/core#Link}.
+     * <p>
+     * The class of properties representing links.
+     *
+     * @see <a href="http://www.w3.org/ns/hydra/core#Link">Link</a>
+     */
+    public static final URI Link;
+
+    /**
+     * mapping
+     * <p>
+     * {@code http://www.w3.org/ns/hydra/core#mapping}.
+     * <p>
+     * A variable-to-property mapping of the IRI template.
+     *
+     * @see <a href="http://www.w3.org/ns/hydra/core#mapping">mapping</a>
+     */
+    public static final URI mapping;
+
+    /**
+     * member
+     * <p>
+     * {@code http://www.w3.org/ns/hydra/core#member}.
+     * <p>
+     * A member of the collection
+     *
+     * @see <a href="http://www.w3.org/ns/hydra/core#member">member</a>
+     */
+    public static final URI member;
+
+    /**
+     * method
+     * <p>
+     * {@code http://www.w3.org/ns/hydra/core#method}.
+     * <p>
+     * The HTTP method.
+     *
+     * @see <a href="http://www.w3.org/ns/hydra/core#method">method</a>
+     */
+    public static final URI method;
+
+    /**
+     * next page
+     * <p>
+     * {@code http://www.w3.org/ns/hydra/core#nextPage}.
+     * <p>
+     * The page following the current instance in an interlinked set of
+	 * PagedCollections
+     *
+     * @see <a href="http://www.w3.org/ns/hydra/core#nextPage">nextPage</a>
+     */
+    public static final URI nextPage;
+
+    /**
+     * Operation
+     * <p>
+     * {@code http://www.w3.org/ns/hydra/core#Operation}.
+     * <p>
+     * An operation.
+     *
+     * @see <a href="http://www.w3.org/ns/hydra/core#Operation">Operation</a>
+     */
+    public static final URI Operation;
+
+    /**
+     * operation
+     * <p>
+     * {@code http://www.w3.org/ns/hydra/core#operation}.
+     * <p>
+     * An operation supported by the Hydra resource
+     *
+     * @see <a href="http://www.w3.org/ns/hydra/core#operation">operation</a>
+     */
+    public static final URI operation;
+
+    /**
+     * PagedCollection
+     * <p>
+     * {@code http://www.w3.org/ns/hydra/core#PagedCollection}.
+     * <p>
+     * A PagedCollection is a subclass of Collection with the only difference
+	 * that its members are sorted and only a subset of all members are
+	 * returned in a single PagedCollection. To get the other members, the
+	 * nextPage/previousPage properties have to be used.
+     *
+     * @see <a href="http://www.w3.org/ns/hydra/core#PagedCollection">PagedCollection</a>
+     */
+    public static final URI PagedCollection;
+
+    /**
+     * previous page
+     * <p>
+     * {@code http://www.w3.org/ns/hydra/core#previousPage}.
+     * <p>
+     * The page preceding the current instance in an interlinked set of
+	 * PagedCollections
+     *
+     * @see <a href="http://www.w3.org/ns/hydra/core#previousPage">previousPage</a>
+     */
+    public static final URI previousPage;
+
+    /**
+     * property
+     * <p>
+     * {@code http://www.w3.org/ns/hydra/core#property}.
+     * <p>
+     * A property
+     *
+     * @see <a href="http://www.w3.org/ns/hydra/core#property">property</a>
+     */
+    public static final URI property;
+
+    /**
+     * ready-only
+     * <p>
+     * {@code http://www.w3.org/ns/hydra/core#readonly}.
+     * <p>
+     * True if the property is read-only, false otherwise.
+     *
+     * @see <a href="http://www.w3.org/ns/hydra/core#readonly">readonly</a>
+     */
+    public static final URI readonly;
+
+    /**
+     * ReplaceResourceOperation
+     * <p>
+     * {@code http://www.w3.org/ns/hydra/core#ReplaceResourceOperation}.
+     * <p>
+     * A ReplaceResourceOperation is a HTTP operation which overwrites a
+	 * resource. It expects data of the type specified in hydra:expects and
+	 * results in a resource of the type specified by hydra:returns.
+     *
+     * @see <a href="http://www.w3.org/ns/hydra/core#ReplaceResourceOperation">ReplaceResourceOperation</a>
+     */
+    public static final URI ReplaceResourceOperation;
+
+    /**
+     * required
+     * <p>
+     * {@code http://www.w3.org/ns/hydra/core#required}.
+     * <p>
+     * True if the property is required, false otherwise.
+     *
+     * @see <a href="http://www.w3.org/ns/hydra/core#required">required</a>
+     */
+    public static final URI required;
+
+    /**
+     * Hydra Resource
+     * <p>
+     * {@code http://www.w3.org/ns/hydra/core#Resource}.
+     * <p>
+     * The class of dereferenceable resources.
+     *
+     * @see <a href="http://www.w3.org/ns/hydra/core#Resource">Resource</a>
+     */
+    public static final URI Resource;
+
+    /**
+     * returns
+     * <p>
+     * {@code http://www.w3.org/ns/hydra/core#returns}.
+     * <p>
+     * The information returned by the Web API on success
+     *
+     * @see <a href="http://www.w3.org/ns/hydra/core#returns">returns</a>
+     */
+    public static final URI returns;
+
+    /**
+     * search
+     * <p>
+     * {@code http://www.w3.org/ns/hydra/core#search}.
+     * <p>
+     * A IRI template that can be used to query a collection
+     *
+     * @see <a href="http://www.w3.org/ns/hydra/core#search">search</a>
+     */
+    public static final URI search;
+
+    /**
+     * status code
+     * <p>
+     * {@code http://www.w3.org/ns/hydra/core#statusCode}.
+     * <p>
+     * The HTTP status code
+     *
+     * @see <a href="http://www.w3.org/ns/hydra/core#statusCode">statusCode</a>
+     */
+    public static final URI statusCode;
+
+    /**
+     * Status code description
+     * <p>
+     * {@code http://www.w3.org/ns/hydra/core#StatusCodeDescription}.
+     * <p>
+     * Additional information about a status code that might be returned.
+     *
+     * @see <a href="http://www.w3.org/ns/hydra/core#StatusCodeDescription">StatusCodeDescription</a>
+     */
+    public static final URI StatusCodeDescription;
+
+    /**
+     * status codes
+     * <p>
+     * {@code http://www.w3.org/ns/hydra/core#statusCodes}.
+     * <p>
+     * Additional information about status codes that might be returned by
+	 * the Web API
+     *
+     * @see <a href="http://www.w3.org/ns/hydra/core#statusCodes">statusCodes</a>
+     */
+    public static final URI statusCodes;
+
+    /**
+     * supported classes
+     * <p>
+     * {@code http://www.w3.org/ns/hydra/core#supportedClass}.
+     * <p>
+     * A class known to be supported by the Web API
+     *
+     * @see <a href="http://www.w3.org/ns/hydra/core#supportedClass">supportedClass</a>
+     */
+    public static final URI supportedClass;
+
+    /**
+     * supported operation
+     * <p>
+     * {@code http://www.w3.org/ns/hydra/core#supportedOperation}.
+     * <p>
+     * An operation supported by instances of the specific Hydra class or the
+	 * target of the Hydra link
+     *
+     * @see <a href="http://www.w3.org/ns/hydra/core#supportedOperation">supportedOperation</a>
+     */
+    public static final URI supportedOperation;
+
+    /**
+     * supported properties
+     * <p>
+     * {@code http://www.w3.org/ns/hydra/core#supportedProperty}.
+     * <p>
+     * The properties known to be supported by a Hydra class
+     *
+     * @see <a href="http://www.w3.org/ns/hydra/core#supportedProperty">supportedProperty</a>
+     */
+    public static final URI supportedProperty;
+
+    /**
+     * Supported Property
+     * <p>
+     * {@code http://www.w3.org/ns/hydra/core#SupportedProperty}.
+     * <p>
+     * A property known to be supported by a Hydra class.
+     *
+     * @see <a href="http://www.w3.org/ns/hydra/core#SupportedProperty">SupportedProperty</a>
+     */
+    public static final URI SupportedProperty;
+
+    /**
+     * template
+     * <p>
+     * {@code http://www.w3.org/ns/hydra/core#template}.
+     * <p>
+     * An IRI template as defined by RFC6570.
+     *
+     * @see <a href="http://www.w3.org/ns/hydra/core#template">template</a>
+     */
+    public static final URI template;
+
+    /**
+     * Templated Link
+     * <p>
+     * {@code http://www.w3.org/ns/hydra/core#TemplatedLink}.
+     * <p>
+     * A templated link.
+     *
+     * @see <a href="http://www.w3.org/ns/hydra/core#TemplatedLink">TemplatedLink</a>
+     */
+    public static final URI TemplatedLink;
+
+    /**
+     * title
+     * <p>
+     * {@code http://www.w3.org/ns/hydra/core#title}.
+     * <p>
+     * A title, often used along with a description.
+     *
+     * @see <a href="http://www.w3.org/ns/hydra/core#title">title</a>
+     */
+    public static final URI title;
+
+    /**
+     * total items
+     * <p>
+     * {@code http://www.w3.org/ns/hydra/core#totalItems}.
+     * <p>
+     * The total number of items referenced by a collection or a set of
+	 * interlinked PagedCollections.
+     *
+     * @see <a href="http://www.w3.org/ns/hydra/core#totalItems">totalItems</a>
+     */
+    public static final URI totalItems;
+
+    /**
+     * variable
+     * <p>
+     * {@code http://www.w3.org/ns/hydra/core#variable}.
+     * <p>
+     * An IRI template variable
+     *
+     * @see <a href="http://www.w3.org/ns/hydra/core#variable">variable</a>
+     */
+    public static final URI variable;
+
+    /**
+     * write-only
+     * <p>
+     * {@code http://www.w3.org/ns/hydra/core#writeonly}.
+     * <p>
+     * True if the property is write-only, false otherwise.
+     *
+     * @see <a href="http://www.w3.org/ns/hydra/core#writeonly">writeonly</a>
+     */
+    public static final URI writeonly;
+
+    static {
+        ValueFactory factory = ValueFactoryImpl.getInstance();
+
+        ApiDocumentation = factory.createURI(HYDRA.NAMESPACE, "ApiDocumentation");
+        apiDocumentation = factory.createURI(HYDRA.NAMESPACE, "apiDocumentation");
+        Class = factory.createURI(HYDRA.NAMESPACE, "Class");
+        Collection = factory.createURI(HYDRA.NAMESPACE, "Collection");
+        CreateResourceOperation = factory.createURI(HYDRA.NAMESPACE, "CreateResourceOperation");
+        DeleteResourceOperation = factory.createURI(HYDRA.NAMESPACE, "DeleteResourceOperation");
+        description = factory.createURI(HYDRA.NAMESPACE, "description");
+        entrypoint = factory.createURI(HYDRA.NAMESPACE, "entrypoint");
+        Error = factory.createURI(HYDRA.NAMESPACE, "Error");
+        expects = factory.createURI(HYDRA.NAMESPACE, "expects");
+        firstPage = factory.createURI(HYDRA.NAMESPACE, "firstPage");
+        freetextQuery = factory.createURI(HYDRA.NAMESPACE, "freetextQuery");
+        IriTemplate = factory.createURI(HYDRA.NAMESPACE, "IriTemplate");
+        IriTemplateMapping = factory.createURI(HYDRA.NAMESPACE, "IriTemplateMapping");
+        itemsPerPage = factory.createURI(HYDRA.NAMESPACE, "itemsPerPage");
+        lastPage = factory.createURI(HYDRA.NAMESPACE, "lastPage");
+        Link = factory.createURI(HYDRA.NAMESPACE, "Link");
+        mapping = factory.createURI(HYDRA.NAMESPACE, "mapping");
+        member = factory.createURI(HYDRA.NAMESPACE, "member");
+        method = factory.createURI(HYDRA.NAMESPACE, "method");
+        nextPage = factory.createURI(HYDRA.NAMESPACE, "nextPage");
+        Operation = factory.createURI(HYDRA.NAMESPACE, "Operation");
+        operation = factory.createURI(HYDRA.NAMESPACE, "operation");
+        PagedCollection = factory.createURI(HYDRA.NAMESPACE, "PagedCollection");
+        previousPage = factory.createURI(HYDRA.NAMESPACE, "previousPage");
+        property = factory.createURI(HYDRA.NAMESPACE, "property");
+        readonly = factory.createURI(HYDRA.NAMESPACE, "readonly");
+        ReplaceResourceOperation = factory.createURI(HYDRA.NAMESPACE, "ReplaceResourceOperation");
+        required = factory.createURI(HYDRA.NAMESPACE, "required");
+        Resource = factory.createURI(HYDRA.NAMESPACE, "Resource");
+        returns = factory.createURI(HYDRA.NAMESPACE, "returns");
+        search = factory.createURI(HYDRA.NAMESPACE, "search");
+        statusCode = factory.createURI(HYDRA.NAMESPACE, "statusCode");
+        StatusCodeDescription = factory.createURI(HYDRA.NAMESPACE, "StatusCodeDescription");
+        statusCodes = factory.createURI(HYDRA.NAMESPACE, "statusCodes");
+        supportedClass = factory.createURI(HYDRA.NAMESPACE, "supportedClass");
+        supportedOperation = factory.createURI(HYDRA.NAMESPACE, "supportedOperation");
+        supportedProperty = factory.createURI(HYDRA.NAMESPACE, "supportedProperty");
+        SupportedProperty = factory.createURI(HYDRA.NAMESPACE, "SupportedProperty");
+        template = factory.createURI(HYDRA.NAMESPACE, "template");
+        TemplatedLink = factory.createURI(HYDRA.NAMESPACE, "TemplatedLink");
+        title = factory.createURI(HYDRA.NAMESPACE, "title");
+        totalItems = factory.createURI(HYDRA.NAMESPACE, "totalItems");
+        variable = factory.createURI(HYDRA.NAMESPACE, "variable");
+        writeonly = factory.createURI(HYDRA.NAMESPACE, "writeonly");
+    }
+
+    private HYDRA() {
+        //static access only
+    }
+
+}
diff --git a/platform/marmotta-ldf/src/main/java/org/apache/marmotta/platform/ldf/vocab/RDF.java b/platform/marmotta-ldf/src/main/java/org/apache/marmotta/platform/ldf/vocab/RDF.java
new file mode 100644
index 0000000..7fd8043
--- /dev/null
+++ b/platform/marmotta-ldf/src/main/java/org/apache/marmotta/platform/ldf/vocab/RDF.java
@@ -0,0 +1,268 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.marmotta.platform.ldf.vocab;
+
+import org.openrdf.model.URI;
+import org.openrdf.model.ValueFactory;
+import org.openrdf.model.impl.ValueFactoryImpl;
+
+/**
+ * The RDF Concepts Vocabulary (RDF).
+ * <p>
+ * This is the RDF Schema for the RDF vocabulary terms in the RDF
+ * Namespace, defined in RDF 1.1 Concepts..
+ * <p>
+ * Namespace 22-rdf-syntax-ns.
+ * Prefix: {@code <http://www.w3.org/1999/02/22-rdf-syntax-ns#>}
+ */
+public class RDF {
+
+    /** {@code http://www.w3.org/1999/02/22-rdf-syntax-ns#} **/
+    public static final String NAMESPACE = "http://www.w3.org/1999/02/22-rdf-syntax-ns#";
+
+    /** {@code 22-rdf-syntax-ns} **/
+    public static final String PREFIX = "22-rdf-syntax-ns";
+
+    /**
+     * Alt
+     * <p>
+     * {@code http://www.w3.org/1999/02/22-rdf-syntax-ns#Alt}.
+     * <p>
+     * The class of containers of alternatives.
+     *
+     * @see <a href="http://www.w3.org/1999/02/22-rdf-syntax-ns#Alt">Alt</a>
+     */
+    public static final URI Alt;
+
+    /**
+     * Bag
+     * <p>
+     * {@code http://www.w3.org/1999/02/22-rdf-syntax-ns#Bag}.
+     * <p>
+     * The class of unordered containers.
+     *
+     * @see <a href="http://www.w3.org/1999/02/22-rdf-syntax-ns#Bag">Bag</a>
+     */
+    public static final URI Bag;
+
+    /**
+     * first
+     * <p>
+     * {@code http://www.w3.org/1999/02/22-rdf-syntax-ns#first}.
+     * <p>
+     * The first item in the subject RDF list.
+     *
+     * @see <a href="http://www.w3.org/1999/02/22-rdf-syntax-ns#first">first</a>
+     */
+    public static final URI first;
+
+    /**
+     * HTML
+     * <p>
+     * {@code http://www.w3.org/1999/02/22-rdf-syntax-ns#HTML}.
+     * <p>
+     * The datatype of RDF literals storing fragments of HTML content
+     *
+     * @see <a href="http://www.w3.org/1999/02/22-rdf-syntax-ns#HTML">HTML</a>
+     */
+    public static final URI HTML;
+
+    /**
+     * langString
+     * <p>
+     * {@code http://www.w3.org/1999/02/22-rdf-syntax-ns#langString}.
+     * <p>
+     * The datatype of language-tagged string values
+     *
+     * @see <a href="http://www.w3.org/1999/02/22-rdf-syntax-ns#langString">langString</a>
+     */
+    public static final URI langString;
+
+    /**
+     * List
+     * <p>
+     * {@code http://www.w3.org/1999/02/22-rdf-syntax-ns#List}.
+     * <p>
+     * The class of RDF Lists.
+     *
+     * @see <a href="http://www.w3.org/1999/02/22-rdf-syntax-ns#List">List</a>
+     */
+    public static final URI List;
+
+    /**
+     * nil
+     * <p>
+     * {@code http://www.w3.org/1999/02/22-rdf-syntax-ns#nil}.
+     * <p>
+     * The empty list, with no items in it. If the rest of a list is nil then
+	 * the list has no more items in it.
+     *
+     * @see <a href="http://www.w3.org/1999/02/22-rdf-syntax-ns#nil">nil</a>
+     */
+    public static final URI nil;
+
+    /**
+     * object
+     * <p>
+     * {@code http://www.w3.org/1999/02/22-rdf-syntax-ns#object}.
+     * <p>
+     * The object of the subject RDF statement.
+     *
+     * @see <a href="http://www.w3.org/1999/02/22-rdf-syntax-ns#object">object</a>
+     */
+    public static final URI object;
+
+    /**
+     * PlainLiteral
+     * <p>
+     * {@code http://www.w3.org/1999/02/22-rdf-syntax-ns#PlainLiteral}.
+     * <p>
+     * The class of plain (i.e. untyped) literal values, as used in RIF and
+	 * OWL 2
+     *
+     * @see <a href="http://www.w3.org/1999/02/22-rdf-syntax-ns#PlainLiteral">PlainLiteral</a>
+     */
+    public static final URI PlainLiteral;
+
+    /**
+     * predicate
+     * <p>
+     * {@code http://www.w3.org/1999/02/22-rdf-syntax-ns#predicate}.
+     * <p>
+     * The predicate of the subject RDF statement.
+     *
+     * @see <a href="http://www.w3.org/1999/02/22-rdf-syntax-ns#predicate">predicate</a>
+     */
+    public static final URI predicate;
+
+    /**
+     * Property
+     * <p>
+     * {@code http://www.w3.org/1999/02/22-rdf-syntax-ns#Property}.
+     * <p>
+     * The class of RDF properties.
+     *
+     * @see <a href="http://www.w3.org/1999/02/22-rdf-syntax-ns#Property">Property</a>
+     */
+    public static final URI Property;
+
+    /**
+     * rest
+     * <p>
+     * {@code http://www.w3.org/1999/02/22-rdf-syntax-ns#rest}.
+     * <p>
+     * The rest of the subject RDF list after the first item.
+     *
+     * @see <a href="http://www.w3.org/1999/02/22-rdf-syntax-ns#rest">rest</a>
+     */
+    public static final URI rest;
+
+    /**
+     * Seq
+     * <p>
+     * {@code http://www.w3.org/1999/02/22-rdf-syntax-ns#Seq}.
+     * <p>
+     * The class of ordered containers.
+     *
+     * @see <a href="http://www.w3.org/1999/02/22-rdf-syntax-ns#Seq">Seq</a>
+     */
+    public static final URI Seq;
+
+    /**
+     * Statement
+     * <p>
+     * {@code http://www.w3.org/1999/02/22-rdf-syntax-ns#Statement}.
+     * <p>
+     * The class of RDF statements.
+     *
+     * @see <a href="http://www.w3.org/1999/02/22-rdf-syntax-ns#Statement">Statement</a>
+     */
+    public static final URI Statement;
+
+    /**
+     * subject
+     * <p>
+     * {@code http://www.w3.org/1999/02/22-rdf-syntax-ns#subject}.
+     * <p>
+     * The subject of the subject RDF statement.
+     *
+     * @see <a href="http://www.w3.org/1999/02/22-rdf-syntax-ns#subject">subject</a>
+     */
+    public static final URI subject;
+
+    /**
+     * type
+     * <p>
+     * {@code http://www.w3.org/1999/02/22-rdf-syntax-ns#type}.
+     * <p>
+     * The subject is an instance of a class.
+     *
+     * @see <a href="http://www.w3.org/1999/02/22-rdf-syntax-ns#type">type</a>
+     */
+    public static final URI type;
+
+    /**
+     * value
+     * <p>
+     * {@code http://www.w3.org/1999/02/22-rdf-syntax-ns#value}.
+     * <p>
+     * Idiomatic property used for structured values.
+     *
+     * @see <a href="http://www.w3.org/1999/02/22-rdf-syntax-ns#value">value</a>
+     */
+    public static final URI value;
+
+    /**
+     * XMLLiteral
+     * <p>
+     * {@code http://www.w3.org/1999/02/22-rdf-syntax-ns#XMLLiteral}.
+     * <p>
+     * The datatype of XML literal values.
+     *
+     * @see <a href="http://www.w3.org/1999/02/22-rdf-syntax-ns#XMLLiteral">XMLLiteral</a>
+     */
+    public static final URI XMLLiteral;
+
+    static {
+        ValueFactory factory = ValueFactoryImpl.getInstance();
+
+        Alt = factory.createURI(RDF.NAMESPACE, "Alt");
+        Bag = factory.createURI(RDF.NAMESPACE, "Bag");
+        first = factory.createURI(RDF.NAMESPACE, "first");
+        HTML = factory.createURI(RDF.NAMESPACE, "HTML");
+        langString = factory.createURI(RDF.NAMESPACE, "langString");
+        List = factory.createURI(RDF.NAMESPACE, "List");
+        nil = factory.createURI(RDF.NAMESPACE, "nil");
+        object = factory.createURI(RDF.NAMESPACE, "object");
+        PlainLiteral = factory.createURI(RDF.NAMESPACE, "PlainLiteral");
+        predicate = factory.createURI(RDF.NAMESPACE, "predicate");
+        Property = factory.createURI(RDF.NAMESPACE, "Property");
+        rest = factory.createURI(RDF.NAMESPACE, "rest");
+        Seq = factory.createURI(RDF.NAMESPACE, "Seq");
+        Statement = factory.createURI(RDF.NAMESPACE, "Statement");
+        subject = factory.createURI(RDF.NAMESPACE, "subject");
+        type = factory.createURI(RDF.NAMESPACE, "type");
+        value = factory.createURI(RDF.NAMESPACE, "value");
+        XMLLiteral = factory.createURI(RDF.NAMESPACE, "XMLLiteral");
+    }
+
+    private RDF() {
+        //static access only
+    }
+
+}
diff --git a/platform/marmotta-ldf/src/main/java/org/apache/marmotta/platform/ldf/vocab/SSD.java b/platform/marmotta-ldf/src/main/java/org/apache/marmotta/platform/ldf/vocab/SSD.java
new file mode 100644
index 0000000..9c15375
--- /dev/null
+++ b/platform/marmotta-ldf/src/main/java/org/apache/marmotta/platform/ldf/vocab/SSD.java
@@ -0,0 +1,582 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.marmotta.platform.ldf.vocab;
+
+import org.openrdf.model.URI;
+import org.openrdf.model.ValueFactory;
+import org.openrdf.model.impl.ValueFactoryImpl;
+
+/**
+ * Namespace Sparql-service-description.
+ * Prefix: {@code <http://www.w3.org/ns/sparql-service-description#>}
+ */
+public class SSD {
+
+    /** {@code http://www.w3.org/ns/sparql-service-description#} **/
+    public static final String NAMESPACE = "http://www.w3.org/ns/sparql-service-description#";
+
+    /** {@code sparql-service-description} **/
+    public static final String PREFIX = "sparql-service-description";
+
+    /**
+     * Aggregate
+     * <p>
+     * {@code http://www.w3.org/ns/sparql-service-description#Aggregate}.
+     * <p>
+     * An instance of sd:Aggregate represents an aggregate that may be used
+	 * in a SPARQL aggregate query (for instance in a HAVING clause or SELECT
+	 * expression) besides the standard list of supported aggregates COUNT,
+	 * SUM, MIN, MAX, AVG, GROUP_CONCAT, and SAMPLE.
+     *
+     * @see <a href="http://www.w3.org/ns/sparql-service-description#Aggregate">Aggregate</a>
+     */
+    public static final URI Aggregate;
+
+    /**
+     * available graph descriptions
+     * <p>
+     * {@code http://www.w3.org/ns/sparql-service-description#availableGraphs}.
+     * <p>
+     * Relates an instance of sd:Service to a description of the graphs which
+	 * are allowed in the construction of a dataset either via the SPARQL
+	 * Protocol, with FROM/FROM NAMED clauses in a query, or with USING/USING
+	 * NAMED in an update request, if the service limits the scope of dataset
+	 * construction.
+     *
+     * @see <a href="http://www.w3.org/ns/sparql-service-description#availableGraphs">availableGraphs</a>
+     */
+    public static final URI availableGraphs;
+
+    /**
+     * Basic Federated Query
+     * <p>
+     * {@code http://www.w3.org/ns/sparql-service-description#BasicFederatedQuery}.
+     * <p>
+     * sd:BasicFederatedQuery, when used as the object of the sd:feature
+	 * property, indicates that the SPARQL service supports basic federated
+	 * query using the SERVICE keyword as defined by SPARQL 1.1 Federation
+	 * Extensions.
+     *
+     * @see <a href="http://www.w3.org/ns/sparql-service-description#BasicFederatedQuery">BasicFederatedQuery</a>
+     */
+    public static final URI BasicFederatedQuery;
+
+    /**
+     * Dataset
+     * <p>
+     * {@code http://www.w3.org/ns/sparql-service-description#Dataset}.
+     * <p>
+     * An instance of sd:Dataset represents a RDF Dataset comprised of a
+	 * default graph and zero or more named graphs.
+     *
+     * @see <a href="http://www.w3.org/ns/sparql-service-description#Dataset">Dataset</a>
+     */
+    public static final URI Dataset;
+
+    /**
+     * default dataset description
+     * <p>
+     * {@code http://www.w3.org/ns/sparql-service-description#defaultDataset}.
+     * <p>
+     * Relates an instance of sd:Service to a description of the default
+	 * dataset available when no explicit dataset is specified in the query,
+	 * update request or via protocol parameters.
+     *
+     * @see <a href="http://www.w3.org/ns/sparql-service-description#defaultDataset">defaultDataset</a>
+     */
+    public static final URI defaultDataset;
+
+    /**
+     * default entailment regime
+     * <p>
+     * {@code http://www.w3.org/ns/sparql-service-description#defaultEntailmentRegime}.
+     * <p>
+     * Relates an instance of sd:Service with a resource representing an
+	 * entailment regime used for basic graph pattern matching. This property
+	 * is intended for use when a single entailment regime by default applies
+	 * to all graphs in the default dataset of the service. In situations
+	 * where a different entailment regime applies to a specific graph in the
+	 * dataset, the sd:entailmentRegime property should be used to indicate
+	 * this fact in the description of that graph.
+     *
+     * @see <a href="http://www.w3.org/ns/sparql-service-description#defaultEntailmentRegime">defaultEntailmentRegime</a>
+     */
+    public static final URI defaultEntailmentRegime;
+
+    /**
+     * default graph
+     * <p>
+     * {@code http://www.w3.org/ns/sparql-service-description#defaultGraph}.
+     * <p>
+     * Relates an instance of sd:Dataset to the description of its default
+	 * graph.
+     *
+     * @see <a href="http://www.w3.org/ns/sparql-service-description#defaultGraph">defaultGraph</a>
+     */
+    public static final URI defaultGraph;
+
+    /**
+     * default supported entailment profile
+     * <p>
+     * {@code http://www.w3.org/ns/sparql-service-description#defaultSupportedEntailmentProfile}.
+     * <p>
+     * Relates an instance of sd:Service with a resource representing a
+	 * supported profile of the default entailment regime (as declared by
+	 * sd:defaultEntailmentRegime).
+     *
+     * @see <a href="http://www.w3.org/ns/sparql-service-description#defaultSupportedEntailmentProfile">defaultSupportedEntailmentProfile</a>
+     */
+    public static final URI defaultSupportedEntailmentProfile;
+
+    /**
+     * Dereferences URIs
+     * <p>
+     * {@code http://www.w3.org/ns/sparql-service-description#DereferencesURIs}.
+     * <p>
+     * sd:DereferencesURIs, when used as the object of the sd:feature
+	 * property, indicates that a SPARQL service will dereference URIs used
+	 * in FROM/FROM NAMED and USING/USING NAMED clauses and use the resulting
+	 * RDF in the dataset during query evaluation.
+     *
+     * @see <a href="http://www.w3.org/ns/sparql-service-description#DereferencesURIs">DereferencesURIs</a>
+     */
+    public static final URI DereferencesURIs;
+
+    /**
+     * Empty Graphs
+     * <p>
+     * {@code http://www.w3.org/ns/sparql-service-description#EmptyGraphs}.
+     * <p>
+     * sd:EmptyGraphs, when used as the object of the sd:feature property,
+	 * indicates that the underlying graph store supports empty graphs. A
+	 * graph store that supports empty graphs MUST NOT remove graphs that are
+	 * left empty after triples are removed from them.
+     *
+     * @see <a href="http://www.w3.org/ns/sparql-service-description#EmptyGraphs">EmptyGraphs</a>
+     */
+    public static final URI EmptyGraphs;
+
+    /**
+     * endpoint
+     * <p>
+     * {@code http://www.w3.org/ns/sparql-service-description#endpoint}.
+     * <p>
+     * The SPARQL endpoint of an sd:Service that implements the SPARQL
+	 * Protocol service. The object of the sd:endpoint property is an IRI.
+     *
+     * @see <a href="http://www.w3.org/ns/sparql-service-description#endpoint">endpoint</a>
+     */
+    public static final URI endpoint;
+
+    /**
+     * Entailment Profile
+     * <p>
+     * {@code http://www.w3.org/ns/sparql-service-description#EntailmentProfile}.
+     * <p>
+     * An instance of sd:EntailmentProfile represents a profile of an
+	 * entailment regime. An entailment profile MAY impose restrictions on
+	 * what constitutes valid RDF with respect to entailment.
+     *
+     * @see <a href="http://www.w3.org/ns/sparql-service-description#EntailmentProfile">EntailmentProfile</a>
+     */
+    public static final URI EntailmentProfile;
+
+    /**
+     * Entailment Regime
+     * <p>
+     * {@code http://www.w3.org/ns/sparql-service-description#EntailmentRegime}.
+     * <p>
+     * An instance of sd:EntailmentRegime represents an entailment regime
+	 * used in basic graph pattern matching (as described by SPARQL 1.1 Query
+	 * Language).
+     *
+     * @see <a href="http://www.w3.org/ns/sparql-service-description#EntailmentRegime">EntailmentRegime</a>
+     */
+    public static final URI EntailmentRegime;
+
+    /**
+     * entailment regime
+     * <p>
+     * {@code http://www.w3.org/ns/sparql-service-description#entailmentRegime}.
+     * <p>
+     * Relates a named graph description with a resource representing an
+	 * entailment regime used for basic graph pattern matching over that
+	 * graph.
+     *
+     * @see <a href="http://www.w3.org/ns/sparql-service-description#entailmentRegime">entailmentRegime</a>
+     */
+    public static final URI entailmentRegime;
+
+    /**
+     * extension aggregate
+     * <p>
+     * {@code http://www.w3.org/ns/sparql-service-description#extensionAggregate}.
+     * <p>
+     * Relates an instance of sd:Service to an aggregate that may be used in
+	 * a SPARQL aggregate query (for instance in a HAVING clause or SELECT
+	 * expression) besides the standard list of supported aggregates COUNT,
+	 * SUM, MIN, MAX, AVG, GROUP_CONCAT, and SAMPLE
+     *
+     * @see <a href="http://www.w3.org/ns/sparql-service-description#extensionAggregate">extensionAggregate</a>
+     */
+    public static final URI extensionAggregate;
+
+    /**
+     * extension function
+     * <p>
+     * {@code http://www.w3.org/ns/sparql-service-description#extensionFunction}.
+     * <p>
+     * Relates an instance of sd:Service to a function that may be used in a
+	 * SPARQL SELECT expression or a FILTER, HAVING, GROUP BY, ORDER BY, or
+	 * BIND clause.
+     *
+     * @see <a href="http://www.w3.org/ns/sparql-service-description#extensionFunction">extensionFunction</a>
+     */
+    public static final URI extensionFunction;
+
+    /**
+     * Feature
+     * <p>
+     * {@code http://www.w3.org/ns/sparql-service-description#Feature}.
+     * <p>
+     * An instance of sd:Feature represents a feature of a SPARQL service.
+	 * Specific types of features include functions, aggregates, languages,
+	 * and entailment regimes and profiles. This document defines five
+	 * instances of sd:Feature: sd:DereferencesURIs, sd:UnionDefaultGraph,
+	 * sd:RequiresDataset, sd:EmptyGraphs, and sd:BasicFederatedQuery.
+     *
+     * @see <a href="http://www.w3.org/ns/sparql-service-description#Feature">Feature</a>
+     */
+    public static final URI Feature;
+
+    /**
+     * feature
+     * <p>
+     * {@code http://www.w3.org/ns/sparql-service-description#feature}.
+     * <p>
+     * Relates an instance of sd:Service with a resource representing a
+	 * supported feature.
+     *
+     * @see <a href="http://www.w3.org/ns/sparql-service-description#feature">feature</a>
+     */
+    public static final URI feature;
+
+    /**
+     * Function
+     * <p>
+     * {@code http://www.w3.org/ns/sparql-service-description#Function}.
+     * <p>
+     * An instance of sd:Function represents a function that may be used in a
+	 * SPARQL SELECT expression or a FILTER, HAVING, GROUP BY, ORDER BY, or
+	 * BIND clause.
+     *
+     * @see <a href="http://www.w3.org/ns/sparql-service-description#Function">Function</a>
+     */
+    public static final URI Function;
+
+    /**
+     * graph
+     * <p>
+     * {@code http://www.w3.org/ns/sparql-service-description#graph}.
+     * <p>
+     * Relates a named graph to its graph description.
+     *
+     * @see <a href="http://www.w3.org/ns/sparql-service-description#graph">graph</a>
+     */
+    public static final URI graph;
+
+    /**
+     * Graph
+     * <p>
+     * {@code http://www.w3.org/ns/sparql-service-description#Graph}.
+     * <p>
+     * An instance of sd:Graph represents the description of an RDF graph.
+     *
+     * @see <a href="http://www.w3.org/ns/sparql-service-description#Graph">Graph</a>
+     */
+    public static final URI Graph;
+
+    /**
+     * Graph Collection
+     * <p>
+     * {@code http://www.w3.org/ns/sparql-service-description#GraphCollection}.
+     * <p>
+     * An instance of sd:GraphCollection represents a collection of zero or
+	 * more named graph descriptions. Each named graph description belonging
+	 * to an sd:GraphCollection MUST be linked with the sd:namedGraph
+	 * predicate.
+     *
+     * @see <a href="http://www.w3.org/ns/sparql-service-description#GraphCollection">GraphCollection</a>
+     */
+    public static final URI GraphCollection;
+
+    /**
+     * input format
+     * <p>
+     * {@code http://www.w3.org/ns/sparql-service-description#inputFormat}.
+     * <p>
+     * Relates an instance of sd:Service to a format that is supported for
+	 * parsing RDF input; for example, via a SPARQL 1.1 Update LOAD
+	 * statement, or when URIs are dereferenced in FROM/FROM
+	 * NAMED/USING/USING NAMED clauses.
+     *
+     * @see <a href="http://www.w3.org/ns/sparql-service-description#inputFormat">inputFormat</a>
+     */
+    public static final URI inputFormat;
+
+    /**
+     * Language
+     * <p>
+     * {@code http://www.w3.org/ns/sparql-service-description#Language}.
+     * <p>
+     * An instance of sd:Language represents one of the SPARQL languages,
+	 * including specific configurations providing particular features or
+	 * extensions. This document defines three instances of sd:Language:
+	 * sd:SPARQL10Query, sd:SPARQL11Query, and sd:SPARQL11Update.
+     *
+     * @see <a href="http://www.w3.org/ns/sparql-service-description#Language">Language</a>
+     */
+    public static final URI Language;
+
+    /**
+     * language extension
+     * <p>
+     * {@code http://www.w3.org/ns/sparql-service-description#languageExtension}.
+     * <p>
+     * Relates an instance of sd:Service to a resource representing an
+	 * implemented extension to the SPARQL Query or Update language.
+     *
+     * @see <a href="http://www.w3.org/ns/sparql-service-description#languageExtension">languageExtension</a>
+     */
+    public static final URI languageExtension;
+
+    /**
+     * name
+     * <p>
+     * {@code http://www.w3.org/ns/sparql-service-description#name}.
+     * <p>
+     * Relates a named graph to the name by which it may be referenced in a
+	 * FROM/FROM NAMED clause. The object of the sd:name property is an IRI.
+     *
+     * @see <a href="http://www.w3.org/ns/sparql-service-description#name">name</a>
+     */
+    public static final URI name;
+
+    /**
+     * named graph
+     * <p>
+     * {@code http://www.w3.org/ns/sparql-service-description#namedGraph}.
+     * <p>
+     * Relates an instance of sd:GraphCollection (or its subclass sd:Dataset)
+	 * to the description of one of its named graphs. The description of such
+	 * a named graph MUST include the sd:name property and MAY include the
+	 * sd:graph property.
+     *
+     * @see <a href="http://www.w3.org/ns/sparql-service-description#namedGraph">namedGraph</a>
+     */
+    public static final URI namedGraph;
+
+    /**
+     * Named Graph
+     * <p>
+     * {@code http://www.w3.org/ns/sparql-service-description#NamedGraph}.
+     * <p>
+     * An instance of sd:NamedGraph represents a named graph having a name
+	 * (via sd:name) and an optional graph description (via sd:graph).
+     *
+     * @see <a href="http://www.w3.org/ns/sparql-service-description#NamedGraph">NamedGraph</a>
+     */
+    public static final URI NamedGraph;
+
+    /**
+     * property feature
+     * <p>
+     * {@code http://www.w3.org/ns/sparql-service-description#propertyFeature}.
+     * <p>
+     * Relates an instance of sd:Service to a resource representing an
+	 * implemented feature that extends the SPARQL Query or Update language
+	 * and that is accessed by using the named property.
+     *
+     * @see <a href="http://www.w3.org/ns/sparql-service-description#propertyFeature">propertyFeature</a>
+     */
+    public static final URI propertyFeature;
+
+    /**
+     * Requires Dataset
+     * <p>
+     * {@code http://www.w3.org/ns/sparql-service-description#RequiresDataset}.
+     * <p>
+     * sd:RequiresDataset, when used as the object of the sd:feature
+	 * property, indicates that the SPARQL service requires an explicit
+	 * dataset declaration (based on either FROM/FROM NAMED clauses in a
+	 * query, USING/USING NAMED clauses in an update, or the appropriate
+	 * SPARQL Protocol parameters).
+     *
+     * @see <a href="http://www.w3.org/ns/sparql-service-description#RequiresDataset">RequiresDataset</a>
+     */
+    public static final URI RequiresDataset;
+
+    /**
+     * result format
+     * <p>
+     * {@code http://www.w3.org/ns/sparql-service-description#resultFormat}.
+     * <p>
+     * Relates an instance of sd:Service to a format that is supported for
+	 * serializing query results.
+     *
+     * @see <a href="http://www.w3.org/ns/sparql-service-description#resultFormat">resultFormat</a>
+     */
+    public static final URI resultFormat;
+
+    /**
+     * Service
+     * <p>
+     * {@code http://www.w3.org/ns/sparql-service-description#Service}.
+     * <p>
+     * An instance of sd:Service represents a SPARQL service made available
+	 * via the SPARQL Protocol.
+     *
+     * @see <a href="http://www.w3.org/ns/sparql-service-description#Service">Service</a>
+     */
+    public static final URI Service;
+
+    /**
+     * SPARQL 1.0 Query
+     * <p>
+     * {@code http://www.w3.org/ns/sparql-service-description#SPARQL10Query}.
+     * <p>
+     * sd:SPARQL10Query is an sd:Language representing the SPARQL 1.0 Query
+	 * language.
+     *
+     * @see <a href="http://www.w3.org/ns/sparql-service-description#SPARQL10Query">SPARQL10Query</a>
+     */
+    public static final URI SPARQL10Query;
+
+    /**
+     * SPARQL 1.1 Query
+     * <p>
+     * {@code http://www.w3.org/ns/sparql-service-description#SPARQL11Query}.
+     * <p>
+     * sd:SPARQL11Query is an sd:Language representing the SPARQL 1.1 Query
+	 * language.
+     *
+     * @see <a href="http://www.w3.org/ns/sparql-service-description#SPARQL11Query">SPARQL11Query</a>
+     */
+    public static final URI SPARQL11Query;
+
+    /**
+     * SPARQL 1.1 Update
+     * <p>
+     * {@code http://www.w3.org/ns/sparql-service-description#SPARQL11Update}.
+     * <p>
+     * sd:SPARQLUpdate is an sd:Language representing the SPARQL 1.1 Update
+	 * language.
+     *
+     * @see <a href="http://www.w3.org/ns/sparql-service-description#SPARQL11Update">SPARQL11Update</a>
+     */
+    public static final URI SPARQL11Update;
+
+    /**
+     * supported entailment profile
+     * <p>
+     * {@code http://www.w3.org/ns/sparql-service-description#supportedEntailmentProfile}.
+     * <p>
+     * Relates a named graph description with a resource representing a
+	 * supported profile of the entailment regime (as declared by
+	 * sd:entailmentRegime) used for basic graph pattern matching over that
+	 * graph.
+     *
+     * @see <a href="http://www.w3.org/ns/sparql-service-description#supportedEntailmentProfile">supportedEntailmentProfile</a>
+     */
+    public static final URI supportedEntailmentProfile;
+
+    /**
+     * supported language
+     * <p>
+     * {@code http://www.w3.org/ns/sparql-service-description#supportedLanguage}.
+     * <p>
+     * Relates an instance of sd:Service to a SPARQL language (e.g. Query and
+	 * Update) that it implements.
+     *
+     * @see <a href="http://www.w3.org/ns/sparql-service-description#supportedLanguage">supportedLanguage</a>
+     */
+    public static final URI supportedLanguage;
+
+    /**
+     * Union Default Graph
+     * <p>
+     * {@code http://www.w3.org/ns/sparql-service-description#UnionDefaultGraph}.
+     * <p>
+     * sd:UnionDefaultGraph, when used as the object of the sd:feature
+	 * property, indicates that the default graph of the dataset used during
+	 * query and update evaluation (when an explicit dataset is not
+	 * specified) is comprised of the union of all the named graphs in that
+	 * dataset.
+     *
+     * @see <a href="http://www.w3.org/ns/sparql-service-description#UnionDefaultGraph">UnionDefaultGraph</a>
+     */
+    public static final URI UnionDefaultGraph;
+
+    static {
+        ValueFactory factory = ValueFactoryImpl.getInstance();
+
+        Aggregate = factory.createURI(SSD.NAMESPACE, "Aggregate");
+        availableGraphs = factory.createURI(SSD.NAMESPACE, "availableGraphs");
+        BasicFederatedQuery = factory.createURI(SSD.NAMESPACE, "BasicFederatedQuery");
+        Dataset = factory.createURI(SSD.NAMESPACE, "Dataset");
+        defaultDataset = factory.createURI(SSD.NAMESPACE, "defaultDataset");
+        defaultEntailmentRegime = factory.createURI(SSD.NAMESPACE, "defaultEntailmentRegime");
+        defaultGraph = factory.createURI(SSD.NAMESPACE, "defaultGraph");
+        defaultSupportedEntailmentProfile = factory.createURI(SSD.NAMESPACE, "defaultSupportedEntailmentProfile");
+        DereferencesURIs = factory.createURI(SSD.NAMESPACE, "DereferencesURIs");
+        EmptyGraphs = factory.createURI(SSD.NAMESPACE, "EmptyGraphs");
+        endpoint = factory.createURI(SSD.NAMESPACE, "endpoint");
+        EntailmentProfile = factory.createURI(SSD.NAMESPACE, "EntailmentProfile");
+        EntailmentRegime = factory.createURI(SSD.NAMESPACE, "EntailmentRegime");
+        entailmentRegime = factory.createURI(SSD.NAMESPACE, "entailmentRegime");
+        extensionAggregate = factory.createURI(SSD.NAMESPACE, "extensionAggregate");
+        extensionFunction = factory.createURI(SSD.NAMESPACE, "extensionFunction");
+        Feature = factory.createURI(SSD.NAMESPACE, "Feature");
+        feature = factory.createURI(SSD.NAMESPACE, "feature");
+        Function = factory.createURI(SSD.NAMESPACE, "Function");
+        graph = factory.createURI(SSD.NAMESPACE, "graph");
+        Graph = factory.createURI(SSD.NAMESPACE, "Graph");
+        GraphCollection = factory.createURI(SSD.NAMESPACE, "GraphCollection");
+        inputFormat = factory.createURI(SSD.NAMESPACE, "inputFormat");
+        Language = factory.createURI(SSD.NAMESPACE, "Language");
+        languageExtension = factory.createURI(SSD.NAMESPACE, "languageExtension");
+        name = factory.createURI(SSD.NAMESPACE, "name");
+        namedGraph = factory.createURI(SSD.NAMESPACE, "namedGraph");
+        NamedGraph = factory.createURI(SSD.NAMESPACE, "NamedGraph");
+        propertyFeature = factory.createURI(SSD.NAMESPACE, "propertyFeature");
+        RequiresDataset = factory.createURI(SSD.NAMESPACE, "RequiresDataset");
+        resultFormat = factory.createURI(SSD.NAMESPACE, "resultFormat");
+        Service = factory.createURI(SSD.NAMESPACE, "Service");
+        SPARQL10Query = factory.createURI(SSD.NAMESPACE, "SPARQL10Query");
+        SPARQL11Query = factory.createURI(SSD.NAMESPACE, "SPARQL11Query");
+        SPARQL11Update = factory.createURI(SSD.NAMESPACE, "SPARQL11Update");
+        supportedEntailmentProfile = factory.createURI(SSD.NAMESPACE, "supportedEntailmentProfile");
+        supportedLanguage = factory.createURI(SSD.NAMESPACE, "supportedLanguage");
+        UnionDefaultGraph = factory.createURI(SSD.NAMESPACE, "UnionDefaultGraph");
+    }
+
+    private SSD() {
+        //static access only
+    }
+
+}
diff --git a/platform/marmotta-ldf/src/main/java/org/apache/marmotta/platform/ldf/vocab/VOID.java b/platform/marmotta-ldf/src/main/java/org/apache/marmotta/platform/ldf/vocab/VOID.java
new file mode 100644
index 0000000..1affb0a
--- /dev/null
+++ b/platform/marmotta-ldf/src/main/java/org/apache/marmotta/platform/ldf/vocab/VOID.java
@@ -0,0 +1,435 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.marmotta.platform.ldf.vocab;
+
+import org.openrdf.model.URI;
+import org.openrdf.model.ValueFactory;
+import org.openrdf.model.impl.ValueFactoryImpl;
+
+/**
+ * Namespace Void.
+ * Prefix: {@code <http://rdfs.org/ns/void#>}
+ */
+public class VOID {
+
+    /** {@code http://rdfs.org/ns/void#} **/
+    public static final String NAMESPACE = "http://rdfs.org/ns/void#";
+
+    /** {@code void} **/
+    public static final String PREFIX = "void";
+
+    /**
+     * class
+     * <p>
+     * {@code http://rdfs.org/ns/void#class}.
+     * <p>
+     * The rdfs:Class that is the rdf:type of all entities in a class-based
+     * partition.
+     *
+     * @see <a href="http://rdfs.org/ns/void#class">class</a>
+     */
+    //public static final URI class;
+
+    /**
+     * classes
+     * <p>
+     * {@code http://rdfs.org/ns/void#classes}.
+     * <p>
+     * The total number of distinct classes in a void:Dataset. In other
+     * words, the number of distinct resources occuring as objects of
+     * rdf:type triples in the dataset.
+     *
+     * @see <a href="http://rdfs.org/ns/void#classes">classes</a>
+     */
+    public static final URI classes;
+
+    /**
+     * class partition
+     * <p>
+     * {@code http://rdfs.org/ns/void#classPartition}.
+     * <p>
+     * A subset of a void:Dataset that contains only the entities of a
+     * certain rdfs:Class.
+     *
+     * @see <a href="http://rdfs.org/ns/void#classPartition">classPartition</a>
+     */
+    public static final URI classPartition;
+
+    /**
+     * Data Dump
+     * <p>
+     * {@code http://rdfs.org/ns/void#dataDump}.
+     * <p>
+     * An RDF dump, partial or complete, of a void:Dataset.
+     *
+     * @see <a href="http://rdfs.org/ns/void#dataDump">dataDump</a>
+     */
+    public static final URI dataDump;
+
+    /**
+     * dataset
+     * <p>
+     * {@code http://rdfs.org/ns/void#Dataset}.
+     * <p>
+     * A set of RDF triples that are published, maintained or aggregated by a
+     * single provider.
+     *
+     * @see <a href="http://rdfs.org/ns/void#Dataset">Dataset</a>
+     */
+    public static final URI Dataset;
+
+    /**
+     * dataset description
+     * <p>
+     * {@code http://rdfs.org/ns/void#DatasetDescription}.
+     * <p>
+     * A web resource whose foaf:primaryTopic or foaf:topics include
+     * void:Datasets.
+     *
+     * @see <a href="http://rdfs.org/ns/void#DatasetDescription">DatasetDescription</a>
+     */
+    public static final URI DatasetDescription;
+
+    /**
+     * distinct objects
+     * <p>
+     * {@code http://rdfs.org/ns/void#distinctObjects}.
+     * <p>
+     * The total number of distinct objects in a void:Dataset. In other
+     * words, the number of distinct resources that occur in the object
+     * position of triples in the dataset. Literals are included in this
+     * count.
+     *
+     * @see <a href="http://rdfs.org/ns/void#distinctObjects">distinctObjects</a>
+     */
+    public static final URI distinctObjects;
+
+    /**
+     * distinct subjects
+     * <p>
+     * {@code http://rdfs.org/ns/void#distinctSubjects}.
+     * <p>
+     * The total number of distinct subjects in a void:Dataset. In other
+     * words, the number of distinct resources that occur in the subject
+     * position of triples in the dataset.
+     *
+     * @see <a href="http://rdfs.org/ns/void#distinctSubjects">distinctSubjects</a>
+     */
+    public static final URI distinctSubjects;
+
+    /**
+     * number of documents
+     * <p>
+     * {@code http://rdfs.org/ns/void#documents}.
+     * <p>
+     * The total number of documents, for datasets that are published as a
+     * set of individual documents, such as RDF/XML documents or
+     * RDFa-annotated web pages. Non-RDF documents, such as web pages in HTML
+     * or images, are usually not included in this count. This property is
+     * intended for datasets where the total number of triples or entities is
+     * hard to determine. void:triples or void:entities should be preferred
+     * where practical.
+     *
+     * @see <a href="http://rdfs.org/ns/void#documents">documents</a>
+     */
+    public static final URI documents;
+
+    /**
+     * number of entities
+     * <p>
+     * {@code http://rdfs.org/ns/void#entities}.
+     * <p>
+     * The total number of entities that are described in a void:Dataset.
+     *
+     * @see <a href="http://rdfs.org/ns/void#entities">entities</a>
+     */
+    public static final URI entities;
+
+    /**
+     * example resource of dataset
+     * <p>
+     * {@code http://rdfs.org/ns/void#exampleResource}.
+     *
+     * @see <a href="http://rdfs.org/ns/void#exampleResource">exampleResource</a>
+     */
+    public static final URI exampleResource;
+
+    /**
+     * feature
+     * <p>
+     * {@code http://rdfs.org/ns/void#feature}.
+     *
+     * @see <a href="http://rdfs.org/ns/void#feature">feature</a>
+     */
+    public static final URI feature;
+
+    /**
+     * in dataset
+     * <p>
+     * {@code http://rdfs.org/ns/void#inDataset}.
+     * <p>
+     * Points to the void:Dataset that a document is a part of.
+     *
+     * @see <a href="http://rdfs.org/ns/void#inDataset">inDataset</a>
+     */
+    public static final URI inDataset;
+
+    /**
+     * a link predicate
+     * <p>
+     * {@code http://rdfs.org/ns/void#linkPredicate}.
+     *
+     * @see <a href="http://rdfs.org/ns/void#linkPredicate">linkPredicate</a>
+     */
+    public static final URI linkPredicate;
+
+    /**
+     * linkset
+     * <p>
+     * {@code http://rdfs.org/ns/void#Linkset}.
+     * <p>
+     * A collection of RDF links between two void:Datasets.
+     *
+     * @see <a href="http://rdfs.org/ns/void#Linkset">Linkset</a>
+     */
+    public static final URI Linkset;
+
+    /**
+     * Objects Target
+     * <p>
+     * {@code http://rdfs.org/ns/void#objectsTarget}.
+     * <p>
+     * The dataset describing the objects of the triples contained in the
+     * Linkset.
+     *
+     * @see <a href="http://rdfs.org/ns/void#objectsTarget">objectsTarget</a>
+     */
+    public static final URI objectsTarget;
+
+    /**
+     * open search description
+     * <p>
+     * {@code http://rdfs.org/ns/void#openSearchDescription}.
+     * <p>
+     * An OpenSearch description document for a free-text search service over
+     * a void:Dataset.
+     *
+     * @see <a href="http://rdfs.org/ns/void#openSearchDescription">openSearchDescription</a>
+     */
+    public static final URI openSearchDescription;
+
+    /**
+     * number of properties
+     * <p>
+     * {@code http://rdfs.org/ns/void#properties}.
+     * <p>
+     * The total number of distinct properties in a void:Dataset. In other
+     * words, the number of distinct resources that occur in the predicate
+     * position of triples in the dataset.
+     *
+     * @see <a href="http://rdfs.org/ns/void#properties">properties</a>
+     */
+    public static final URI properties;
+
+    /**
+     * property
+     * <p>
+     * {@code http://rdfs.org/ns/void#property}.
+     * <p>
+     * The rdf:Property that is the predicate of all triples in a
+     * property-based partition.
+     *
+     * @see <a href="http://rdfs.org/ns/void#property">property</a>
+     */
+    public static final URI property;
+
+    /**
+     * property partition
+     * <p>
+     * {@code http://rdfs.org/ns/void#propertyPartition}.
+     * <p>
+     * A subset of a void:Dataset that contains only the triples of a certain
+     * rdf:Property.
+     *
+     * @see <a href="http://rdfs.org/ns/void#propertyPartition">propertyPartition</a>
+     */
+    public static final URI propertyPartition;
+
+    /**
+     * root resource
+     * <p>
+     * {@code http://rdfs.org/ns/void#rootResource}.
+     * <p>
+     * A top concept or entry point for a void:Dataset that is structured in
+     * a tree-like fashion. All resources in a dataset can be reached by
+     * following links from its root resources in a small number of steps.
+     *
+     * @see <a href="http://rdfs.org/ns/void#rootResource">rootResource</a>
+     */
+    public static final URI rootResource;
+
+    /**
+     * has a SPARQL endpoint at
+     * <p>
+     * {@code http://rdfs.org/ns/void#sparqlEndpoint}.
+     *
+     * @see <a href="http://rdfs.org/ns/void#sparqlEndpoint">sparqlEndpoint</a>
+     */
+    public static final URI sparqlEndpoint;
+
+    /**
+     * Subjects Target
+     * <p>
+     * {@code http://rdfs.org/ns/void#subjectsTarget}.
+     * <p>
+     * The dataset describing the subjects of triples contained in the
+     * Linkset.
+     *
+     * @see <a href="http://rdfs.org/ns/void#subjectsTarget">subjectsTarget</a>
+     */
+    public static final URI subjectsTarget;
+
+    /**
+     * has subset
+     * <p>
+     * {@code http://rdfs.org/ns/void#subset}.
+     *
+     * @see <a href="http://rdfs.org/ns/void#subset">subset</a>
+     */
+    public static final URI subset;
+
+    /**
+     * Target
+     * <p>
+     * {@code http://rdfs.org/ns/void#target}.
+     * <p>
+     * One of the two datasets linked by the Linkset.
+     *
+     * @see <a href="http://rdfs.org/ns/void#target">target</a>
+     */
+    public static final URI target;
+
+    /**
+     * technical feature
+     * <p>
+     * {@code http://rdfs.org/ns/void#TechnicalFeature}.
+     * <p>
+     * A technical feature of a void:Dataset, such as a supported RDF
+     * serialization format.
+     *
+     * @see <a href="http://rdfs.org/ns/void#TechnicalFeature">TechnicalFeature</a>
+     */
+    public static final URI TechnicalFeature;
+
+    /**
+     * number of triples
+     * <p>
+     * {@code http://rdfs.org/ns/void#triples}.
+     * <p>
+     * The total number of triples contained in a void:Dataset.
+     *
+     * @see <a href="http://rdfs.org/ns/void#triples">triples</a>
+     */
+    public static final URI triples;
+
+    /**
+     * has an URI look-up endpoint at
+     * <p>
+     * {@code http://rdfs.org/ns/void#uriLookupEndpoint}.
+     * <p>
+     * Defines a simple URI look-up protocol for accessing a dataset.
+     *
+     * @see <a href="http://rdfs.org/ns/void#uriLookupEndpoint">uriLookupEndpoint</a>
+     */
+    public static final URI uriLookupEndpoint;
+
+    /**
+     * has URI regular expression pattern
+     * <p>
+     * {@code http://rdfs.org/ns/void#uriRegexPattern}.
+     * <p>
+     * Defines a regular expression pattern matching URIs in the dataset.
+     *
+     * @see <a href="http://rdfs.org/ns/void#uriRegexPattern">uriRegexPattern</a>
+     */
+    public static final URI uriRegexPattern;
+
+    /**
+     * URI space
+     * <p>
+     * {@code http://rdfs.org/ns/void#uriSpace}.
+     * <p>
+     * A URI that is a common string prefix of all the entity URIs in a
+     * void:Dataset.
+     *
+     * @see <a href="http://rdfs.org/ns/void#uriSpace">uriSpace</a>
+     */
+    public static final URI uriSpace;
+
+    /**
+     * vocabulary
+     * <p>
+     * {@code http://rdfs.org/ns/void#vocabulary}.
+     * <p>
+     * A vocabulary that is used in the dataset.
+     *
+     * @see <a href="http://rdfs.org/ns/void#vocabulary">vocabulary</a>
+     */
+    public static final URI vocabulary;
+
+    static {
+        ValueFactory factory = ValueFactoryImpl.getInstance();
+
+        //class = factory.createURI(VOID.NAMESPACE, "class");
+        classes = factory.createURI(VOID.NAMESPACE, "classes");
+        classPartition = factory.createURI(VOID.NAMESPACE, "classPartition");
+        dataDump = factory.createURI(VOID.NAMESPACE, "dataDump");
+        Dataset = factory.createURI(VOID.NAMESPACE, "Dataset");
+        DatasetDescription = factory.createURI(VOID.NAMESPACE, "DatasetDescription");
+        distinctObjects = factory.createURI(VOID.NAMESPACE, "distinctObjects");
+        distinctSubjects = factory.createURI(VOID.NAMESPACE, "distinctSubjects");
+        documents = factory.createURI(VOID.NAMESPACE, "documents");
+        entities = factory.createURI(VOID.NAMESPACE, "entities");
+        exampleResource = factory.createURI(VOID.NAMESPACE, "exampleResource");
+        feature = factory.createURI(VOID.NAMESPACE, "feature");
+        inDataset = factory.createURI(VOID.NAMESPACE, "inDataset");
+        linkPredicate = factory.createURI(VOID.NAMESPACE, "linkPredicate");
+        Linkset = factory.createURI(VOID.NAMESPACE, "Linkset");
+        objectsTarget = factory.createURI(VOID.NAMESPACE, "objectsTarget");
+        openSearchDescription = factory.createURI(VOID.NAMESPACE, "openSearchDescription");
+        properties = factory.createURI(VOID.NAMESPACE, "properties");
+        property = factory.createURI(VOID.NAMESPACE, "property");
+        propertyPartition = factory.createURI(VOID.NAMESPACE, "propertyPartition");
+        rootResource = factory.createURI(VOID.NAMESPACE, "rootResource");
+        sparqlEndpoint = factory.createURI(VOID.NAMESPACE, "sparqlEndpoint");
+        subjectsTarget = factory.createURI(VOID.NAMESPACE, "subjectsTarget");
+        subset = factory.createURI(VOID.NAMESPACE, "subset");
+        target = factory.createURI(VOID.NAMESPACE, "target");
+        TechnicalFeature = factory.createURI(VOID.NAMESPACE, "TechnicalFeature");
+        triples = factory.createURI(VOID.NAMESPACE, "triples");
+        uriLookupEndpoint = factory.createURI(VOID.NAMESPACE, "uriLookupEndpoint");
+        uriRegexPattern = factory.createURI(VOID.NAMESPACE, "uriRegexPattern");
+        uriSpace = factory.createURI(VOID.NAMESPACE, "uriSpace");
+        vocabulary = factory.createURI(VOID.NAMESPACE, "vocabulary");
+    }
+
+    private VOID() {
+        //static access only
+    }
+
+}
diff --git a/platform/marmotta-ldf/src/main/java/org/apache/marmotta/platform/ldf/webservices/LdfWebService.java b/platform/marmotta-ldf/src/main/java/org/apache/marmotta/platform/ldf/webservices/LdfWebService.java
new file mode 100644
index 0000000..5a838c0
--- /dev/null
+++ b/platform/marmotta-ldf/src/main/java/org/apache/marmotta/platform/ldf/webservices/LdfWebService.java
@@ -0,0 +1,134 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.marmotta.platform.ldf.webservices;
+
+import org.apache.commons.lang3.StringUtils;
+import org.apache.marmotta.commons.http.ContentType;
+import org.apache.marmotta.commons.http.MarmottaHttpUtils;
+import org.apache.marmotta.platform.core.api.config.ConfigurationService;
+import org.apache.marmotta.platform.core.api.exporter.ExportService;
+import org.apache.marmotta.platform.ldf.api.LdfService;
+import org.openrdf.model.Model;
+import org.openrdf.repository.RepositoryException;
+import org.openrdf.rio.RDFFormat;
+import org.openrdf.rio.RDFHandlerException;
+import org.openrdf.rio.Rio;
+
+import javax.enterprise.context.ApplicationScoped;
+import javax.inject.Inject;
+import javax.ws.rs.*;
+import javax.ws.rs.core.*;
+import java.io.IOException;
+import java.io.OutputStream;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+/**
+ * Linked Data Fragments web service implementation
+ *
+ * @author Sergio Fernández
+ */
+@ApplicationScoped
+@Path(LdfWebService.PATH)
+public class LdfWebService {
+
+    public static final String PATH = "/fragments";
+
+    @Inject
+    private LdfService ldfService;
+
+    @Inject
+    private ConfigurationService configurationService;
+
+    @Inject
+    private ExportService exportService;
+
+    private static final String UUID_PATTERN = "{uuid:[^#?]+}";
+
+    @GET
+    public Response getFragment(@QueryParam("subject") @DefaultValue("") final String subject,
+                                @QueryParam("predicate") @DefaultValue("") final String predicate,
+                                @QueryParam("object") @DefaultValue("") final String object,
+                                @QueryParam("page") @DefaultValue("1") final String page,
+                                @HeaderParam("Accept") final String accept,
+                                @Context final UriInfo uriInfo) {
+        return getFragment(subject, predicate, object, null, Integer.parseInt(page), accept, uriInfo);
+    }
+
+    @GET
+    @Path(UUID_PATTERN)
+    public Response getFragment(@QueryParam("subject") @DefaultValue("") final String subject,
+                                @QueryParam("predicate") @DefaultValue("") final String predicate,
+                                @QueryParam("object") @DefaultValue("") final String object,
+                                @QueryParam("page") @DefaultValue("1") final String page,
+                                @PathParam("uuid") final String uuid,
+                                @HeaderParam("Accept") final String accept,
+                                @Context final UriInfo uriInfo) {
+        final String context = buildContextUri(uuid);
+        return getFragment(subject, predicate, object, context, Integer.parseInt(page), accept, uriInfo);
+    }
+
+    private Response getFragment(final String subject,
+                                 final String predicate,
+                                 final String object,
+                                 final String context,
+                                 final int page,
+                                 final String accept,
+                                 final UriInfo uriInfo) {
+
+        final Model fragment;
+        try {
+            fragment = ldfService.getFragment(subject, predicate, object, context, page, uriInfo.getRequestUri());
+        } catch (RepositoryException e) {
+            return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(e.getMessage()).build();
+        } catch (IllegalArgumentException e) {
+            return Response.status(Response.Status.BAD_REQUEST).entity(e.getMessage()).build();
+        }
+
+        final RDFFormat format = getFormat(accept);
+        StreamingOutput stream = new StreamingOutput() {
+            @Override
+            public void write(OutputStream outputStream) throws IOException, WebApplicationException {
+                try {
+                    Rio.write(fragment, outputStream, format);
+                } catch (RDFHandlerException e) {
+                    throw new WebApplicationException(e);
+                }
+            }
+        };
+        return Response.ok(stream).build();
+    }
+
+    private RDFFormat getFormat(String accept) {
+        List<ContentType> acceptedTypes = MarmottaHttpUtils.parseAcceptHeader(accept);
+        List<ContentType> offeredTypes  = MarmottaHttpUtils.parseStringList(exportService.getProducedTypes());
+        offeredTypes.removeAll(Collections.unmodifiableList(Arrays.asList(new ContentType("text", "html"), new ContentType("application", "xhtml+xml"))));
+        final ContentType bestType = MarmottaHttpUtils.bestContentType(offeredTypes, acceptedTypes);
+        return Rio.getWriterFormatForMIMEType(bestType.getMime());
+    }
+
+    private String buildContextUri(String uuid) {
+        if (StringUtils.isNotBlank(uuid)) {
+            return configurationService.getBaseUri() + ConfigurationService.CONTEXT_PATH + "/" + uuid;
+        } else {
+            return null;
+        }
+    }
+
+}
diff --git a/platform/marmotta-ldf/src/main/resources/META-INF/beans.xml b/platform/marmotta-ldf/src/main/resources/META-INF/beans.xml
new file mode 100644
index 0000000..6a9575d
--- /dev/null
+++ b/platform/marmotta-ldf/src/main/resources/META-INF/beans.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+    Licensed to the Apache Software Foundation (ASF) under one
+    or more contributor license agreements. See the NOTICE file
+    distributed with this work for additional information
+    regarding copyright ownership. The ASF licenses this file
+    to you under the Apache License, Version 2.0 (the
+    "License"); you may not use this file except in compliance
+    with the License.  You may obtain a copy of the License at
+
+        http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+
+-->
+<beans
+        xmlns="http://java.sun.com/xml/ns/javaee"
+        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+        xsi:schemaLocation="
+      http://java.sun.com/xml/ns/javaee
+      http://java.sun.com/xml/ns/javaee/beans_1_0.xsd">
+
+</beans>
diff --git a/platform/marmotta-ldf/src/main/resources/kiwi-module.properties b/platform/marmotta-ldf/src/main/resources/kiwi-module.properties
new file mode 100644
index 0000000..ee47136
--- /dev/null
+++ b/platform/marmotta-ldf/src/main/resources/kiwi-module.properties
@@ -0,0 +1,28 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+name=LDF
+weight = 60
+container = Query and Update
+container.weight = 12
+
+baseurl=/ldf
+
+subtitle = Linked Data Fragments
+
+webservices=org.apache.marmotta.platform.ldf.webservices.LdfWebService
diff --git a/platform/marmotta-ldf/src/test/java/org/apache/marmotta/platform/ldf/webservices/LdfWebServiceTest.java b/platform/marmotta-ldf/src/test/java/org/apache/marmotta/platform/ldf/webservices/LdfWebServiceTest.java
new file mode 100644
index 0000000..c42c17f
--- /dev/null
+++ b/platform/marmotta-ldf/src/test/java/org/apache/marmotta/platform/ldf/webservices/LdfWebServiceTest.java
@@ -0,0 +1,89 @@
+package org.apache.marmotta.platform.ldf.webservices;
+
+import com.jayway.restassured.RestAssured;
+import org.apache.commons.lang3.RandomStringUtils;
+import org.apache.marmotta.platform.core.api.config.ConfigurationService;
+import org.apache.marmotta.platform.core.api.importer.ImportService;
+import org.apache.marmotta.platform.core.exception.io.MarmottaImportException;
+import org.apache.marmotta.platform.core.test.base.JettyMarmotta;
+import org.junit.AfterClass;
+import org.junit.BeforeClass;
+import org.junit.Test;
+import org.openrdf.model.impl.ValueFactoryImpl;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.URISyntaxException;
+
+import static com.jayway.restassured.RestAssured.expect;
+
+/**
+ * LDF Webservice test
+ *
+ * @author Sergio Fernández
+ */
+public class LdfWebServiceTest {
+
+    private static JettyMarmotta marmotta;
+
+    @BeforeClass
+    public static void setUp() {
+        marmotta = new JettyMarmotta("/marmotta",  LdfWebService.class);
+
+        RestAssured.baseURI = "http://localhost";
+        RestAssured.port = marmotta.getPort();
+        RestAssured.basePath = marmotta.getContext();
+
+    }
+
+    @AfterClass
+    public static void tearDown() {
+        marmotta.shutdown();
+    }
+
+    @Test
+    public void testEmptyContext() throws IOException, InterruptedException {
+        expect().
+            statusCode(400).
+        when().
+            get(LdfWebService.PATH + "/empty");
+    }
+
+    @Test
+    public void testFragment() throws IOException, InterruptedException, URISyntaxException, MarmottaImportException {
+        final String ctx = RandomStringUtils.random(8, true, false);
+        final String uri = "http://www.wikier.org/foaf#wikier";
+
+        // 1. check is empty
+        expect().
+            statusCode(400).
+        when().
+            get(LdfWebService.PATH + "/" + ctx);
+
+        // 2. import some data
+        final ConfigurationService configurationService = marmotta.getService(ConfigurationService.class);
+        final ImportService importService = marmotta.getService(ImportService.class);
+        final InputStream is = this.getClass().getClassLoader().getResourceAsStream("wikier.rdf");
+        final ValueFactoryImpl vf = new ValueFactoryImpl();
+        importService.importData(is, "application/rdf+xml", null, vf.createURI(configurationService.getBaseContext() + ctx));
+
+        // 3. request a fragment
+        expect().
+            statusCode(200).
+        given().
+            queryParam("subject", uri).
+        when().
+            get(LdfWebService.PATH + "/" + ctx);
+
+        // 4. test wrong page
+        expect().
+            statusCode(400).
+        given().
+            queryParam("subject", uri).
+            queryParam("page", 100).
+        when().
+            get(LdfWebService.PATH + "/" + ctx);
+
+    }
+
+}
diff --git a/platform/marmotta-ldf/src/test/resources/wikier.rdf b/platform/marmotta-ldf/src/test/resources/wikier.rdf
new file mode 100644
index 0000000..6edb4b9
--- /dev/null
+++ b/platform/marmotta-ldf/src/test/resources/wikier.rdf
@@ -0,0 +1,899 @@
+<?xml version="1.0" encoding="utf-8"?>
+<rdf:RDF
+    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+    xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
+    xmlns:owl="http://www.w3.org/2002/07/owl#"
+    xmlns:foaf="http://xmlns.com/foaf/0.1/"
+    xmlns:doap="http://usefulinc.com/ns/doap#"
+    xmlns:sioc="http://rdfs.org/sioc/ns#"
+    xmlns:sioct="http://rdfs.org/sioc/types#"
+    xmlns:dc="http://purl.org/dc/elements/1.1/"
+    xmlns:dct="http://purl.org/dc/terms/"
+    xmlns:mvcb="http://webns.net/mvcb/"
+    xmlns:rss="http://purl.org/rss/1.0/"
+    xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#"
+    xmlns:contact="http://www.w3.org/2000/10/swap/pim/contact#"
+    xmlns:air="http://www.daml.org/2001/10/html/airport-ont#"
+    xmlns:wn="http://xmlns.com/wordnet/1.6/"
+    xmlns:uranai="http://kota.s12.xrea.com/vocab/uranai#"
+    xmlns:rel="http://purl.org/vocab/relationship/"
+    xmlns:session="http://redfoot.net/2005/session#"
+    xmlns:cert="http://www.w3.org/ns/auth/cert#"
+    xmlns:wot="http://xmlns.com/wot/0.1/"
+    xml:base="http://www.wikier.org/foaf"
+    xml:lang="en"
+>
+
+  <foaf:Document rdf:about="">
+    <rdfs:label>Wikier's FOAF document</rdfs:label>
+    <rdfs:comment>Document with Friend-of-a-Friend description of Wikier</rdfs:comment>
+    <foaf:maker rdf:resource="http://www.wikier.org/foaf#wikier"/>
+    <dct:license rdf:resource="http://creativecommons.org/licenses/by-sa/3.0/" />
+    <foaf:primaryTopic rdf:resource="http://www.wikier.org/foaf#wikier"/>
+    <dct:created>2005-05-14</dct:created>
+    <dct:modified>2014-02-15</dct:modified>
+    <mvcb:generatorAgent rdf:resource="http://rdfohloh.wikier.org/project/emacs"/>
+    <mvcb:errorReportsTo rdf:resource="mailto:sergio@wikier.org" />
+  </foaf:Document>
+
+  <foaf:Person rdf:about="http://www.wikier.org/foaf#wikier">
+    <foaf:name xml:lang="es">Sergio Fernández</foaf:name>
+    <foaf:title>Mr</foaf:title>
+    <foaf:firstName xml:lang="es">Sergio</foaf:firstName>
+    <foaf:surname xml:lang="es">Fernández</foaf:surname>
+    <foaf:gender>male</foaf:gender>
+    <foaf:birthday>1981-10-07</foaf:birthday>
+    <foaf:nick>Wikier</foaf:nick>
+    <session:hexdigest>30e97da6ad2d5be1086a64f3fc44a03a6fecadb3</session:hexdigest>
+    <foaf:phone rdf:resource="tel:+34-667-981919" />
+    <uranai:bloodtype>O-</uranai:bloodtype>
+    <rdfs:comment>This URI indentifies me as a person. Feel free to use it when making statements about me as a person</rdfs:comment>
+    <rdfs:comment xml:lang="es">Esta URI me identifica como persona. Úsala para referirte a mi como persona</rdfs:comment>
+    <foaf:isDescribedIn rdf:resource="http://www.wikier.org/foaf.rdf" />
+
+    <foaf:mbox rdf:resource="mailto:sergio@wikier.org" />
+    <foaf:mbox_sha1sum>d0fd987214f56f70b4c47fb96795f348691f93ab</foaf:mbox_sha1sum>
+
+    <foaf:mbox rdf:resource="mailto:wikier@asturlinux.org" />
+    <foaf:mbox_sha1sum>119222cf3a2893a375cc4f884a0138155c771415</foaf:mbox_sha1sum>
+
+    <foaf:mbox rdf:resource="mailto:sergio.fernandez@salzburgresearch.at" />
+    <foaf:mbox_sha1sum>fe6d23dc07ca84b1c487eb20d816aa4caf12ee84</foaf:mbox_sha1sum>
+
+    <foaf:mbox rdf:resource="mailto:wikier@apache.org" />
+    <foaf:mbox_sha1sum>762842c4b57e9657fe68badcc5439d3053d85f05</foaf:mbox_sha1sum>
+
+    <!-- 
+        some old addresses I don't use anymore... 
+        even some are no longer under my control
+        but identify me at some point
+    -->
+    <foaf:mbox_sha1sum>3bb939b9fe7a4e45ec9d65d64074c3b2a4ce317d</foaf:mbox_sha1sum> <!-- @fundacionctic.org -->
+    <foaf:mbox_sha1sum>749774803c4b05dba1b2401d3f53acd4bbf78b9f</foaf:mbox_sha1sum> <!-- @hotmail.com -->
+    <foaf:mbox_sha1sum>a087165d16083deb201734af4dec2d64a40236fc</foaf:mbox_sha1sum> <!-- @petra.euitio.uniovi.es -->
+
+    <foaf:homepage rdf:resource="http://www.wikier.org" dct:title="Wikier.org" />
+    
+    <foaf:workplaceHomepage rdf:resource="http://www.redlink.co" dct:title="Redlink GmbH" />
+    <foaf:workplaceHomepage rdf:resource="http://www.salzburgresearch.at" dct:title="Salzburg Research" />
+
+    <foaf:schoolHomepage rdf:resource="http://www.uniovi.es" dct:title="University of Oviedo" />
+
+    <foaf:depiction>
+      <foaf:Image rdf:about="http://www.wikier.org/stuff/sergio.jpg">
+        <dct:title>Sergio Fernández</dct:title>
+        <dct:format>image/jpg</dct:format>
+      </foaf:Image>
+    </foaf:depiction>
+    
+    <owl:sameAs rdf:resource="http://rdf.freebase.com/ns/m.07zqbwz" />
+    <owl:sameAs rdf:resource="http://www.wikier.org/foaf.rdf#wikier" />
+    <owl:sameAs rdf:resource="http://www.advogato.org/person/wikier/foaf.rdf#me" />
+    <owl:sameAs rdf:resource="http://apassant.net/home/2007/12/flickrdf/data/people/7787294@N06" />
+    <owl:sameAs rdf:resource="http://www.deri.ie/about/team/member/Sergio_Fernández#me" />
+    <owl:sameAs rdf:resource="http://semanticweb.org/id/Sergio_Fernández" />
+    <owl:sameAs rdf:resource="http://community.linkeddata.org/dataspace/person/Wikier#this" />
+    <owl:sameAs rdf:resource="http://rdfohloh.wikier.org/user/17685#person" />
+    <owl:sameAs rdf:resource="http://data.semanticweb.org/person/sergio-fernandez" />
+    <owl:sameAs rdf:resource="http://identi.ca/user/41516" />
+    <owl:sameAs rdf:resource="http://alpha.libre.fm/user/wikier#me" />
+    <owl:sameAs rdf:resource="http://semantictweet.com/Wikier#me" />
+    <owl:sameAs rdf:resource="http://tagora.ecs.soton.ac.uk/delicious/Wikier" />
+    <owl:sameAs rdf:resource="http://smob.wikier.org/me" />
+    <owl:differentFrom rdf:resource="http://www.eswc2006.org/people/#sergio-fernandez" />
+    <owl:differentFrom rdf:resource="http://dbpedia.org/resource/Sergio_Fernandez" />
+
+    <foaf:openid rdf:resource="http://openid.blogs.es/Wikier" />
+    <cert:key rdf:resource="http://www.wikier.org/foaf#pk" />
+
+    <foaf:based_near rdf:resource="http://dbpedia.org/resource/Salzburg" />
+
+    <contact:nearestAirport>
+      <air:Airport rdf:about="http://dig.csail.mit.edu/2006/wikdt/airports?iata=SZG#item">
+        <air:iataCode>SZG</air:iataCode>
+        <dct:title>W. A. Mozart Airport</dct:title>
+      </air:Airport>
+    </contact:nearestAirport>
+    
+    <foaf:interest rdf:resource="http://www.w3.org/2001/sw/" dct:title="Semantic Web" />
+    <foaf:interest rdf:resource="http://www.w3.org/RDF/" dct:title="Resource Description Framework (RDF)" />
+    <foaf:interest rdf:resource="http://linkeddata.org/" dct:title="Linked Data" />
+    <foaf:interest rdf:resource="http://www.sioc-project.org/" dct:title="SIOC" />
+    <foaf:interest rdf:resource="http://dbpedia.org/resource/Social_web" dct:title="Social Web" />
+    <foaf:interest rdf:resource="http://tools.ietf.org/html/rfc2616" dct:title="HTTP" />
+    <foaf:interest rdf:resource="http://www.w3.org/WAI/" dct:title="Web Accessility" />
+    <foaf:interest rdf:resource="http://www.fsf.org/" dct:title="Free Software" />
+    <foaf:interest rdf:resource="http://www.python.org/" dct:title="Python" />
+
+    <foaf:weblog> 
+      <sioc:Forum rdf:about="http://www.wikier.org/blog">
+        <dct:title>Wikier.org blog</dct:title>
+        <sioc:has_owner rdf:resource="http://www.wikier.org/blog#wikier" />
+        <rss:channel rdf:resource="http://www.wikier.org/blog/rss" />
+        <rdf:type rdf:resource="http://rdfs.org/sioc/types#Weblog" />
+      </sioc:Forum> 
+    </foaf:weblog>
+
+    <foaf:account>
+      <sioc:UserAccount rdf:about="http://www.wikier.org/blog#wikier">
+        <sioc:name>wikier</sioc:name>
+      </sioc:UserAccount>
+    </foaf:account>
+
+    <foaf:account> 
+      <sioc:UserAccount rdf:about="#sourceforge"> 
+        <sioc:name>wikier</sioc:name>
+        <foaf:accountServiceHomepage rdf:resource="http://sourceforge.net/" />
+        <foaf:page rdf:resource="http://sourceforge.net/users/wikier/" />
+      </sioc:UserAccount> 
+    </foaf:account>
+
+    <foaf:account> 
+      <sioc:UserAccount rdf:about="#advogato"> 
+        <sioc:name>wikier</sioc:name>
+        <foaf:accountServiceHomepage rdf:resource="http://www.advogato.org/" />
+        <foaf:page rdf:resource="http://www.advogato.org/person/wikier/" />
+        <rdfs:seeAlso rdf:resource="http://www.advogato.org/person/wikier/foaf.rdf" />
+      </sioc:UserAccount> 
+    </foaf:account>
+
+    <foaf:account> 
+      <sioc:UserAccount rdf:about="#delicious"> 
+        <sioc:name>Wikier</sioc:name>
+        <foaf:accountServiceHomepage rdf:resource="http://delicious.com/" />
+        <foaf:page rdf:resource="http://delicious.com/Wikier" />
+        <owl:sameAs rdf:resource="http://tagora.ecs.soton.ac.uk/account/delicious/Wikier" />
+        <rdfs:seeAlso rdf:resource="http://tagora.ecs.soton.ac.uk/delicious/Wikier/rdf" />
+      </sioc:UserAccount> 
+    </foaf:account>
+
+    <foaf:account>
+      <sioc:UserAccount rdf:about="#flickr"> 
+        <sioc:name>wikier</sioc:name>
+        <sioc:id>7787294@N06</sioc:id>
+        <foaf:accountServiceHomepage rdf:resource="http://www.flickr.com/" />
+        <foaf:page rdf:resource="http://www.flickr.com/people/wikier/" />
+        <rdfs:seeAlso rdf:resource="http://apassant.net/home/2007/12/flickrdf/data/people/7787294@N06" />
+      </sioc:UserAccount> 
+    </foaf:account>
+
+    <foaf:account> 
+      <sioc:UserAccount rdf:about="#linkedin">
+        <sioc:id>12286431</sioc:id>
+        <foaf:accountServiceHomepage rdf:resource="http://www.linkedin.com/" />
+        <foaf:page rdf:resource="http://www.linkedin.com/in/sergiofernandez" />
+      </sioc:UserAccount>
+    </foaf:account>
+
+    <foaf:account>
+      <sioc:UserAccount rdf:about="#freenode">
+        <sioc:name>Wikier</sioc:name>
+        <foaf:accountServiceHomepage rdf:resource="http://www.freenode.net/irc_servers.shtml" />
+        <owl:sameAs rdf:resource="irc://freenode/Wikier,isuser" />
+        <owl:sameAs rdf:resource="http://irc.sioc-project.org/users/Wikier#user" />
+        <rdfs:seeAlso rdf:resource="http://irc.sioc-project.org/users/Wikier" />
+      </sioc:UserAccount>
+    </foaf:account>
+
+    <foaf:account>
+      <sioc:UserAccount rdf:about="#lastfm"> 
+        <sioc:name>Wikier</sioc:name>
+        <foaf:accountServiceHomepage rdf:resource="http://www.last.fm/" />
+        <foaf:page rdf:resource="http://www.last.fm/user/Wikier/" />
+        <owl:sameAs rdf:resource="http://dbtune.org/last-fm/wikier" />
+        <rdfs:seeAlso rdf:resource="http://dbtune.org/last-fm/wikier.rdf" />
+        <rdfs:seeAlso rdf:resource="http://ws.audioscrobbler.com/1.0/user/wikier/profile.xml" />
+      </sioc:UserAccount> 
+    </foaf:account>
+
+    <foaf:account>
+      <sioc:UserAccount rdf:about="#twitter"> 
+        <sioc:name>Wikier</sioc:name>
+        <sioc:id>6417242</sioc:id>
+        <foaf:accountServiceHomepage rdf:resource="http://twitter.com/" />
+        <foaf:page rdf:resource="http://twitter.com/Wikier" />
+        <owl:sameAs rdf:resource="http://rdfohloh.wikier.org/user/17685" />
+        <rdfs:seeAlso rdf:resource="http://rdfohloh.wikier.org/user/17685/rdf" />
+      </sioc:UserAccount> 
+    </foaf:account>
+
+    <foaf:account>
+      <sioc:UserAccount rdf:about="#twine"> 
+        <sioc:name>wikier</sioc:name>
+        <foaf:accountServiceHomepage rdf:resource="http://www.twine.com/" />
+        <foaf:page rdf:resource="http://www.twine.com/user/wikier" />
+        <owl:sameAs rdf:resource="http://www.twine.com/user/wikier" />
+        <rdfs:seeAlso rdf:resource="http://www.twine.com/user/wikier?rdf" />
+      </sioc:UserAccount> 
+    </foaf:account>
+
+    <foaf:account>
+      <sioc:UserAccount rdf:about="#ohloh"> 
+        <sioc:name>wikier</sioc:name>
+        <sioc:id>17685</sioc:id>
+        <foaf:accountServiceHomepage rdf:resource="http://www.ohloh.net/" />
+        <foaf:page rdf:resource="http://www.ohloh.net/accounts/17685" />
+        <owl:sameAs rdf:resource="http://rdfohloh.wikier.org/user/17685" />
+        <rdfs:seeAlso rdf:resource="http://rdfohloh.wikier.org/user/17685/rdf" />
+      </sioc:UserAccount> 
+    </foaf:account>
+
+    <foaf:account>
+      <sioc:UserAccount rdf:about="#facebook">
+        <sioc:name>wikier</sioc:name>
+        <foaf:accountServiceHomepage rdf:resource="http://www.facebook.com/" />
+        <foaf:page rdf:resource="http://www.facebook.com/wikier" />
+        <owl:sameAs rdf:resource="http://sam.tw.rpi.edu/data/face/resource/556663893#me" />
+        <rdfs:seeAlso rdf:resource="http://sam.tw.rpi.edu/data/face/resource/556663893" />
+	<owl:sameAs rdf:resource="http://www.matthew-rowe.com/FoafGeneratorRedux/files/foaf-556663893.rdf#me" />
+	<rdfs:seeAlso rdf:resource="http://www.matthew-rowe.com/FoafGeneratorRedux/files/foaf-556663893.rdf" />
+        <rdfs:seeAlso rdf:resource="http://graph.facebook.com/wikier" />
+      </sioc:UserAccount> 
+    </foaf:account>
+
+    <foaf:jabberID>wikier@jabber.org</foaf:jabberID>
+    <foaf:msnChatID>sergio@wikier.org</foaf:msnChatID>
+
+    <foaf:account> 
+      <sioc:UserAccount rdf:about="#skype">
+        <sioc:name>sergio.fernandez.lopez</sioc:name>
+        <foaf:accountServiceHomepage rdf:resource="http://www.skype.com/" />
+        <rdfs:seeAlso rdf:resource="http://mystatus.skype.com/sergio.fernandez.lopez.xml" />
+        <owl:sameAs rdf:resource="skype://sergio.fernandez.lopez" />
+      </sioc:UserAccount>
+    </foaf:account>
+
+    <foaf:account> 
+      <sioc:UserAccount rdf:about="#friendfeed">
+        <sioc:name>wikier</sioc:name>
+        <foaf:accountServiceHomepage rdf:resource="http://friendfeed.com/" />
+        <foaf:page rdf:resource="http://friendfeed.com/wikier" />
+      </sioc:UserAccount>
+    </foaf:account>
+
+    <foaf:account> 
+      <sioc:UserAccount rdf:about="#slideshare">
+        <sioc:name>Wikier</sioc:name>
+        <foaf:accountServiceHomepage rdf:resource="http://www.slideshare.net/" />
+        <foaf:page rdf:resource="http://www.slideshare.net/Wikier" />
+      </sioc:UserAccount>
+    </foaf:account>
+
+    <foaf:account> 
+      <sioc:UserAccount rdf:about="#rememberthemilk">
+        <sioc:name>wikier</sioc:name>
+        <foaf:accountServiceHomepage rdf:resource="http://www.rememberthemilk.com/" />
+        <foaf:page rdf:resource="http://www.rememberthemilk.com/home/wikier/" />
+      </sioc:UserAccount>
+    </foaf:account>
+
+    <foaf:account> 
+      <sioc:UserAccount rdf:about="#identica">
+        <sioc:name>wikier</sioc:name>
+        <sioc:id>41516</sioc:id>
+        <foaf:accountServiceHomepage rdf:resource="http://identi.ca/" />
+        <foaf:page rdf:resource="http://identi.ca/wikier" />
+        <rdfs:seeAlso rdf:resource="http://identi.ca/wikier/foaf" />
+      </sioc:UserAccount>
+    </foaf:account>
+
+    <foaf:account> 
+      <sioc:UserAccount rdf:about="#tripit">
+        <sioc:name>wikier</sioc:name>
+        <foaf:accountServiceHomepage rdf:resource="http://www.tripit.com/" />
+        <foaf:page rdf:resource="http://www.tripit.com/people/wikier" />
+      </sioc:UserAccount>
+    </foaf:account>
+
+    <foaf:account> 
+      <sioc:UserAccount rdf:about="#librefm">
+        <sioc:name>wikier</sioc:name>
+        <foaf:accountServiceHomepage rdf:resource="http://libre.fm/" />
+        <foaf:page rdf:resource="http://alpha.libre.fm/user/wikier" />
+        <owl:sameAs rdf:resource="http://alpha.libre.fm/user/wikier#acct" />
+	    <rdfs:seeAlso rdf:resource="http://alpha.libre.fm/rdf.php?fmt=xml&amp;page=/user/wikier" />
+      </sioc:UserAccount>
+    </foaf:account>
+
+    <foaf:account> 
+      <sioc:UserAccount rdf:about="#mendeley">
+        <foaf:accountServiceHomepage rdf:resource="http://www.mendeley.com/" />
+        <foaf:page rdf:resource="http://www.mendeley.com/profiles/sergio-fernandez/" />
+      </sioc:UserAccount>
+    </foaf:account>
+
+    <foaf:account> 
+      <sioc:UserAccount rdf:about="#w3c">
+        <sioc:name>fsergio</sioc:name>
+        <foaf:accountServiceHomepage rdf:resource="http://www.w3.org/" />
+        <foaf:page rdf:resource="http://esw.w3.org/User:Fsergio" />
+        <foaf:page rdf:resource="http://www.w3.org/2001/sw/wiki/User:Fsergio" />
+        <owl:sameAs rdf:resource="http://w3.org/2001/sw/wiki/Special:URIResolver/User-3AFsergio" />
+      </sioc:UserAccount>
+    </foaf:account>
+
+    <foaf:account> 
+      <sioc:UserAccount rdf:about="#bitbucket">
+        <sioc:name>wikier</sioc:name>
+        <foaf:accountServiceHomepage rdf:resource="http://bitbucket.org/" />
+        <foaf:page rdf:resource="http://bitbucket.org/wikier" />
+        <foaf:page rdf:resource="http://hg.wikier.org/" />
+      </sioc:UserAccount>
+    </foaf:account>
+
+    <foaf:account> 
+      <sioc:UserAccount rdf:about="#github">
+        <sioc:name>wikier</sioc:name>
+        <foaf:accountServiceHomepage rdf:resource="http://github.com" />
+        <foaf:page rdf:resource="http://github.com/wikier" />
+      </sioc:UserAccount>
+    </foaf:account>
+
+    <!-- knows -->
+
+    <foaf:knows>
+      <foaf:Person rdf:about="http://berrueta.net/foaf.rdf#me">
+        <foaf:name>Diego Berrueta</foaf:name>
+        <foaf:mbox_sha1sum>98a99390f2fe9395041bddc41e933f50e59a5ecb</foaf:mbox_sha1sum>
+        <foaf:nick>berrueta</foaf:nick>
+        <rdfs:seeAlso rdf:resource="http://berrueta.net/foaf.rdf" />
+        <foaf:homepage rdf:resource="http://berrueta.net/" />
+      </foaf:Person>
+    </foaf:knows>
+
+    <foaf:knows>
+      <foaf:Person rdf:about="ttp://www.ifrade.es/#frade">
+        <foaf:name>Iván Frade</foaf:name>
+        <foaf:nick>frade</foaf:nick>
+        <foaf:nick>asjas</foaf:nick>
+        <foaf:mbox_sha1sum>84d076726727b596b08198e26ef37e4817353e97</foaf:mbox_sha1sum>
+        <foaf:homepage rdf:resource="http://www.ifrade.es/"/>
+        <rdfs:seeAlso rdf:resource="http://frade.no-ip.info:2080/~ivan/foaf.rdf" />
+      </foaf:Person>
+    </foaf:knows>
+
+    <foaf:knows>
+      <foaf:Person rdf:about="http://www.di.uniovi.es/~labra/labraFoaf.rdf#me">
+        <foaf:name>José Emilio Labra</foaf:name>
+        <foaf:mbox_sha1sum>3d0a8f16ce3d560ca75e16d36f6ded63599c60a7</foaf:mbox_sha1sum>
+        <rdfs:seeAlso rdf:resource="http://www.di.uniovi.es/~labra/labraFoaf.rdf" />
+        <foaf:homepage rdf:resource="ttp://www.di.uniovi.es/~labra/"/>
+      </foaf:Person>
+    </foaf:knows>
+
+    <foaf:knows>
+      <foaf:Person>
+        <foaf:name>Ruben Sánchez</foaf:name>
+        <foaf:mbox_sha1sum>bdb8f18a6f68dcbd15099401eea8e7706e4dadca</foaf:mbox_sha1sum>
+        <foaf:nick>cheto</foaf:nick>
+      </foaf:Person>
+    </foaf:knows>
+
+    <foaf:knows>
+      <foaf:Person rdf:about="http://www.w3c.es/Personal/Martin/foaf.rdf#me">
+        <foaf:name>Martín Álvarez</foaf:name>
+        <foaf:mbox_sha1sum>3d23bbb5b37a688d9c7fa781844d52d248b47ceb</foaf:mbox_sha1sum>
+        <rdfs:seeAlso rdf:resource="http://www.w3c.es/Personal/Martin/foaf.rdf" />
+        <foaf:homepage rdf:resource="http://www.w3c.es/Personal/Martin/" />
+      </foaf:Person>
+    </foaf:knows>
+
+    <foaf:knows>
+      <foaf:Person rdf:about="http://www.w3.org/People/Josema/#josema">
+        <foaf:name>Jose Manuel Alonso</foaf:name>
+        <foaf:mbox_sha1sum>eab0c0e0b0f26d41d2a3a3e74fb4ca67ad089bbe</foaf:mbox_sha1sum>
+        <foaf:homepage rdf:resource="http://www.w3.org/People/Josema/" />
+      </foaf:Person>
+    </foaf:knows>
+
+    <foaf:knows>
+      <foaf:Person rdf:about="http://petra.euitio.uniovi.es/~i1637566/foaf.rdf#me">
+        <foaf:name>Jose María Álvarez</foaf:name>
+        <foaf:mbox_sha1sum>135a617c9e2e37003e1c38be6c21ce7af433552f</foaf:mbox_sha1sum>
+        <rdfs:seeAlso rdf:resource="http://petra.euitio.uniovi.es/~i1637566/foaf.rdf" />
+        <foaf:homepage rdf:resource="http://petra.euitio.uniovi.es/~i1637566/" />
+      </foaf:Person>
+    </foaf:knows>
+
+    <foaf:knows>
+      <foaf:Person rdf:about="http://www.kagueto.net/files/foaf.rdf#me">
+        <foaf:name>Miguel García</foaf:name>
+        <foaf:mbox_sha1sum>0363c58a9ec61db68e3fa37cfcd38b301deaab97</foaf:mbox_sha1sum>
+        <foaf:nick>kagueto</foaf:nick>
+        <rdfs:seeAlso rdf:resource="http://www.kagueto.net/files/foaf.rdf" />
+        <foaf:homepage rdf:resource="http://www.kagueto.net/" />
+      </foaf:Person>
+    </foaf:knows>
+
+    <foaf:knows>
+      <foaf:Person rdf:about="http://criptonita.com/~nacho/foaf.rdf#me">
+        <foaf:name>Nacho Barrientos</foaf:name>
+        <foaf:nick>chipi</foaf:nick>
+        <foaf:mbox_sha1sum>6b31c41e80d36cc08a489462c0c2c37d7de8d2e5</foaf:mbox_sha1sum>
+        <foaf:homepage rdf:resource="http://criptonita.com/~nacho" />
+        <rdfs:seeAlso rdf:resource="http://criptonita.com/~nacho/foaf.rdf" />
+      </foaf:Person>
+    </foaf:knows>
+
+    <foaf:knows>
+      <foaf:Person rdf:about="http://aleasoft.hopto.org/~alvaro/weblog/foaf.rdf#me">
+        <foaf:name>Álvaro Alea</foaf:name>
+        <foaf:nick>aleasoft</foaf:nick>
+        <foaf:mbox_sha1sum>eb6d13cb99da7b9895030f4c2f22286a18d23442</foaf:mbox_sha1sum>
+        <rdfs:seeAlso rdf:resource="http://aleasoft.hopto.org/~alvaro/weblog/foaf.rdf" />
+        <foaf:homepage rdf:resource="http://www.asturlinux.org/~alvaro/" />
+      </foaf:Person>
+    </foaf:knows>
+
+    <foaf:knows>
+      <foaf:Person rdf:about="http://www.asturlinux.org/~jsmanrique/foaf.rdf#me">
+        <foaf:name>José Manrique López</foaf:name>
+        <foaf:mbox_sha1sum>bd6566af7b3bfa28f917aa545bf4174661817d79</foaf:mbox_sha1sum>
+        <foaf:nick>jsmanrique</foaf:nick>
+        <rdfs:seeAlso rdf:resource="http://www.asturlinux.org/~jsmanrique/foaf.rdf" />
+        <foaf:homepage rdf:resource="http://www.jsmanrique.es/" />
+      </foaf:Person>
+    </foaf:knows>
+
+    <foaf:knows>
+      <foaf:Person rdf:about="http://xtrasgu.org/foaf.rdf#xtrasgu">
+        <foaf:name>Pablo López</foaf:name>
+        <foaf:mbox_sha1sum>97d9756f1281858d0e9e4489003073e4986546ce</foaf:mbox_sha1sum>
+        <foaf:nick>xtrasgu</foaf:nick>
+        <foaf:homepage rdf:resource="http://xtrasgu.org/" />
+        <rdfs:seeAlso rdf:resource="http://xtrasgu.org/foaf.rdf" />
+      </foaf:Person>
+    </foaf:knows>
+
+    <foaf:knows>
+      <foaf:Person rdf:about="http://www.beaufour.dk/#beaufour">
+        <foaf:name>Allan Beaufour</foaf:name>
+        <foaf:mbox_sha1sum>16f6c8cfe4360977908a3c28072adcbc7ef15a75</foaf:mbox_sha1sum>
+        <foaf:homepage rdf:resource="http://www.beaufour.dk/" />
+      </foaf:Person>
+    </foaf:knows>
+
+    <foaf:knows>
+      <foaf:Person rdf:about="http://eikeon.com/foaf.rdf#eikeon">
+        <foaf:name>Daniel Krech</foaf:name>
+        <foaf:mbox_sha1sum>3665f4f2370ddd6358da4062f3293f6dc7f39b7c</foaf:mbox_sha1sum>
+        <foaf:nick>eikeon</foaf:nick>
+        <rdfs:seeAlso rdf:resource="http://eikeon.com/foaf.rdf" />
+        <foaf:homepage rdf:resource="http://eikeon.com/" />
+      </foaf:Person>
+    </foaf:knows>
+
+    <foaf:knows>
+      <foaf:Person rdf:about="http://captsolo.net/semweb/foaf-captsolo.rdf#Uldis_Bojars">
+        <foaf:name>Uldis Bojars</foaf:name>
+        <foaf:mbox_sha1sum>56e6f2903933a611708ebac456d45e454ddb8838</foaf:mbox_sha1sum>
+        <foaf:nick>CaptSolo</foaf:nick>
+        <rdfs:seeAlso rdf:resource="http://captsolo.net/semweb/foaf-captsolo.rdf" />
+        <foaf:homepage rdf:resource="http://captsolo.net/" />
+      </foaf:Person>
+    </foaf:knows>
+
+    <foaf:knows>
+      <foaf:Person rdf:about="http://www.johnbreslin.com/foaf/foaf.rdf#me">
+        <foaf:name>John Breslin</foaf:name>
+        <foaf:mbox_sha1sum>9a6b7eefc08fd755d51dd9321aecfcc87992e9a2</foaf:mbox_sha1sum>
+        <foaf:nick>Cloud</foaf:nick>
+        <rdfs:seeAlso rdf:resource="http://www.johnbreslin.com/foaf/foaf.rdf"/>
+        <foaf:homepage rdf:resource="http://www.johnbreslin.com/"/>
+      </foaf:Person>
+    </foaf:knows>
+
+    <foaf:knows>
+      <foaf:Person rdf:about="http://www.koalazoo.es/foaf.rdf#me">
+        <foaf:name>Roberto Rodríguez</foaf:name>
+        <foaf:mbox_sha1sum>0ca8d97a347deaf776a0d0967dba48c571c3dd09</foaf:mbox_sha1sum>
+        <foaf:nick>koalazoo</foaf:nick>
+        <foaf:nick>Robers</foaf:nick>
+        <foaf:nick>McMan</foaf:nick>
+        <foaf:homepage rdf:resource="http://www.koalazoo.es/" />
+        <rdfs:seeAlso rdf:resource="http://www.koalazoo.es/foaf.rdf" />
+      </foaf:Person>
+    </foaf:knows>
+
+    <foaf:knows>
+      <foaf:Person rdf:about="http://iminguez.com/foaf.rdf#me">
+        <foaf:name>Iván Mínguez</foaf:name>
+        <foaf:nick>Pyro</foaf:nick>
+        <foaf:mbox_sha1sum>057048f30557d8e26f71fdec6ef43542166ca932</foaf:mbox_sha1sum>
+        <rdfs:seeAlso rdf:resource="http://iminguez.com/foaf.rdf" />
+        <foaf:homepage rdf:resource="http://iminguez.com/" />
+      </foaf:Person>
+    </foaf:knows>
+
+    <foaf:knows>
+      <foaf:Person rdf:about="http://www.talkdigger.com/foaf/fgiasson">
+        <foaf:name>Frédérick Giasson</foaf:name>
+        <foaf:nick>fgiasson</foaf:nick>
+        <foaf:mbox_sha1sum>bb81ecaac6992f832ea69313bd04d4fd9e2e4e0f</foaf:mbox_sha1sum>
+        <foaf:homepage rdf:resource="htp://fgiasson.com/" />
+        <rdfs:seeAlso rdf:resource="http://www.talkdigger.com/foaf/fgiasson" />
+      </foaf:Person>
+    </foaf:knows>
+
+    <foaf:knows>
+      <foaf:Person rdf:about="http://apassant.net/foaf.rdf#alex">
+        <foaf:name>Alexandre Passant</foaf:name>
+        <foaf:nick>terraces</foaf:nick>
+        <foaf:mbox_sha1sum>528b95cc44060ceea571d7498a9fd2c7e3ca8a4c</foaf:mbox_sha1sum>
+        <foaf:homepage rdf:resource="http://apassant.net/" />
+        <rdfs:seeAlso rdf:resource="http://apassant.net/foaf.rdf" />
+      </foaf:Person>
+    </foaf:knows>
+
+    <foaf:knows>
+      <foaf:Person rdf:about="http://www.ivan-herman.net/me">
+        <foaf:name>Ivan Herman</foaf:name>
+        <foaf:mbox_sha1sum>5ac8032d5f6012aa1775ea2f63e1676bafd5e80b</foaf:mbox_sha1sum>
+        <foaf:homepage rdf:resource="http://www.ivan-herman.net/" />
+        <rdfs:seeAlso rdf:resource="http://www.ivan-herman.net/foaf.rdf" />
+      </foaf:Person>
+    </foaf:knows>
+
+    <foaf:knows>
+      <foaf:Person rdf:about="http://tuukka.iki.fi/tuukka#person">
+        <foaf:name>Tuukka Hastrup</foaf:name>
+        <foaf:nick>tuukkah</foaf:nick>
+        <foaf:mbox_sha1sum>ab0acba1373e6822d3a2b1a62cd9f85d57855551</foaf:mbox_sha1sum>
+        <foaf:homepage rdf:resource="http://tuukka.iki.fi/" />
+        <rdfs:seeAlso rdf:resource="http://tuukka.iki.fi/tuukka" />
+      </foaf:Person>
+    </foaf:knows>
+
+    <foaf:knows>
+      <foaf:Person rdf:about="http://www.deri.ie/about/team/member/Darragh_Grealish#me">
+        <foaf:name>Darragh Grealish</foaf:name>
+        <foaf:mbox_sha1sum>3e12d72604e533b05b2f241fb8a8f0ca3a22dcfb</foaf:mbox_sha1sum>
+        <rdfs:seeAlso rdf:resource="http://www.deri.ie/fileadmin/scripts/foaf.php?id=312" />
+      </foaf:Person>
+    </foaf:knows>
+
+    <foaf:knows>
+      <foaf:Person rdf:about="http://www.deri.ie/about/team/member/Doug_Foxvog#me">
+        <foaf:name>Doug Foxvog</foaf:name>
+        <foaf:mbox_sha1sum>8c9a61823f1b41bca5c409a631d442181b8160b6</foaf:mbox_sha1sum>
+        <foaf:homepage rdf:resource="http://www.foxvog.org/doug/" />
+        <rdfs:seeAlso rdf:resource="http://www.deri.ie/fileadmin/scripts/foaf.php?id=78" />
+      </foaf:Person>
+    </foaf:knows>
+
+    <foaf:knows>
+      <foaf:Person rdf:about="http://richard.cyganiak.de/foaf.rdf#cygri">
+        <foaf:name>Richard Cyganiak</foaf:name>
+        <foaf:nick>cygri</foaf:nick>
+        <foaf:mbox_sha1sum>bb3df3cf988e2d5fc234840d9dc9d4a6eaf822bd</foaf:mbox_sha1sum>
+        <foaf:homepage rdf:resource="http://richard.cyganiak.de/" />
+        <foaf:weblog rdf:resource="http://dowhatimean.net/" />
+        <rdfs:seeAlso rdf:resource="http://richard.cyganiak.de/foaf.rdf" />
+      </foaf:Person>
+    </foaf:knows>
+
+    <foaf:knows>
+      <foaf:Person rdf:about="http://www.ifomis.org/people/holger/foaf.rdf#holger">
+        <foaf:name>Holger Stenzhorn</foaf:name>
+        <foaf:mbox_sha1sum>174ccf605f8a39a16c1c2a42db0936e638144524</foaf:mbox_sha1sum>
+        <foaf:homepage rdf:resource="http://www.ifomis.org/people/holger/" />
+        <rdfs:seeAlso rdf:resource="http://www.ifomis.org/people/holger/foaf.rdf" />
+      </foaf:Person>
+    </foaf:knows>
+
+    <foaf:knows>
+      <foaf:Person rdf:about="http://www.polleres.net/foaf.rdf#me">
+        <foaf:name>Axel Polleres</foaf:name>
+        <foaf:mbox_sha1sum>35a8d4858ba240996a6f71836d93fbfdcd2b4843</foaf:mbox_sha1sum>
+        <foaf:homepage rdf:resource="http://www.polleres.net/" />
+        <rdfs:seeAlso rdf:resource="http://www.polleres.net/foaf.rdf" />
+      </foaf:Person>
+    </foaf:knows>
+
+    <foaf:knows>
+      <foaf:Person rdf:about="http://danbri.org/foaf.rdf#danbri">
+        <foaf:name>Dan Brickley</foaf:name>
+        <foaf:mbox_sha1sum>6e80d02de4cb3376605a34976e31188bb16180d0</foaf:mbox_sha1sum>
+        <foaf:homepage rdf:resource="http://danbri.org/" />
+        <rdfs:seeAlso rdf:resource="http://danbri.org/foaf.rdf" />
+      </foaf:Person>
+    </foaf:knows>
+
+    <foaf:knows>
+      <foaf:Person rdf:about="http://www.fundacionctic.org/web/contenidos/es/personal/personal_0007.html#polo">
+        <foaf:name>Luis Polo</foaf:name>
+        <foaf:mbox_sha1sum>0d890d1a9d0f725d244e1bb099fee0d89df074a5</foaf:mbox_sha1sum>
+        <foaf:homepage rdf:resource="http://www.fundacionctic.org/web/contenidos/es/personal/personal_0007.html" />
+      </foaf:Person>
+    </foaf:knows>
+
+    <foaf:knows>
+      <foaf:Person rdf:about="http://www.tudorgroza.org/res/foaf.rdf#me">
+        <foaf:name>Tudor Groza</foaf:name>
+        <foaf:mbox_sha1sum>75691f9b8834cf1e1552893d01c7bc0dca6136ee</foaf:mbox_sha1sum>
+        <foaf:homepage rdf:resource="http://www.tudorgroza.org/" />
+        <rdfs:seeAlso rdf:resource="http://www.tudorgroza.org/res/foaf.rdf" />
+      </foaf:Person>
+    </foaf:knows>
+
+    <foaf:knows>
+      <foaf:Person rdf:about="http://harth.org/andreas/foaf#ah">
+        <foaf:name>Andreas Harth</foaf:name>
+        <foaf:mbox_sha1sum>349ba1da7307ffb78517ae557ade1dd5177a6dbb</foaf:mbox_sha1sum>
+        <foaf:homepage rdf:resource="http://www.harth.org/andreas/" />
+        <rdfs:seeAlso rdf:resource="http://harth.org/andreas/foaf.rdf" />
+      </foaf:Person>
+    </foaf:knows>
+
+    <foaf:knows>
+      <foaf:Person rdf:about="http://www.dayures.net/foaf.rdf#tejo">
+        <foaf:name>Carlos Tejo</foaf:name>
+        <foaf:mbox_sha1sum>3794a7355903654b1ea0aeca4d57fa7aea2c6bf9</foaf:mbox_sha1sum>
+        <foaf:homepage rdf:resource="http://www.dayures.net/" />
+        <rdfs:seeAlso rdf:resource="http://www.dayures.net/foaf.rdf" />
+      </foaf:Person>
+    </foaf:knows>
+
+    <foaf:knows>
+      <foaf:Person rdf:about="http://myopenlink.net/dataspace/person/kidehen%23this">
+        <foaf:name>Kingsley Idehen</foaf:name>
+        <foaf:mbox_sha1sum>349f4bf50f11185d3503b14f1a6ccfc425116b12</foaf:mbox_sha1sum>
+        <foaf:homepage rdf:resource="http://www.openlinksw.com/blog/~kidehen/" />
+        <rdfs:seeAlso rdf:resource="http://myopenlink.net/dataspace/kidehen/about.rdf" />
+      </foaf:Person>
+    </foaf:knows>
+
+    <foaf:knows>
+      <foaf:Person rdf:about="http://www.bizer.de#chris">
+        <foaf:name>Chris Bizer</foaf:name>
+        <foaf:mbox_sha1sum>50c02ff93e7d477ace450e3fbddd63d228fb23f3</foaf:mbox_sha1sum>
+        <foaf:homepage rdf:resource="http://www.bizer.de/" />
+        <rdfs:seeAlso rdf:resource="http://www4.wiwiss.fu-berlin.de/bizer/foaf.rdf" />
+      </foaf:Person>
+    </foaf:knows>
+
+    <foaf:knows>
+      <foaf:Person rdf:about="http://tomheath.com/id/me">
+        <foaf:name>Tom Heath</foaf:name>
+        <foaf:mbox_sha1sum>02085a0d20a5f574c1ce6cfe42bba6e85cfe07cf</foaf:mbox_sha1sum>
+        <foaf:homepage rdf:resource="hhttp://tomheath.com/" />
+        <rdfs:seeAlso rdf:resource="http://tomheath.com/home/rdf" />
+      </foaf:Person>
+    </foaf:knows>
+
+    <foaf:knows>
+      <foaf:Person rdf:about="http://www.leobard.net/rdf/foaf.xml#me">
+        <foaf:name>Leo Sauermann</foaf:name>
+        <foaf:mbox_sha1sum>eaa363e2b75a11db14e62afb8995340a198e8b9e</foaf:mbox_sha1sum>
+        <foaf:homepage rdf:resource="http://www.dfki.de/~sauermann" />
+        <rdfs:seeAlso rdf:resource="http://www.leobard.net/rdf/foaf.xml" />
+      </foaf:Person>
+    </foaf:knows>
+
+    <foaf:knows>
+      <foaf:Person rdf:about="http://sw-app.org/mic.xhtml#i">
+        <foaf:name>Michael Hausenblas</foaf:name>
+        <foaf:mbox_sha1sum>636480acf3cca05e96e612e5e6da6090efd5c71f</foaf:mbox_sha1sum>
+        <foaf:homepage rdf:resource="http://sw-app.org/" />
+        <rdfs:seeAlso rdf:resource="http://www.w3.org/2007/08/pyRdfa/extract?uri=http%3A//sw-app.org/mic.xhtml" />
+        <rdfs:seeAlso rdf:resource="http://community.linkeddata.org/dataspace/mhausenblas/about.rdf" />
+      </foaf:Person>
+    </foaf:knows>
+
+    <foaf:knows>
+      <foaf:Person rdf:about="http://www.cs.vu.nl/~pmika/foaf.rdf#me">
+        <foaf:name>Peter Mika</foaf:name>
+        <foaf:mbox_sha1sum>ffe33bbe8be2a2123f0adb793e61a6d84ae9a739</foaf:mbox_sha1sum>
+        <foaf:homepage rdf:resource="http://www.cs.vu.nl/~pmika/" />
+        <rdfs:seeAlso rdf:resource="http://www.cs.vu.nl/~pmika/foaf.rdf" />
+      </foaf:Person>
+    </foaf:knows>
+
+    <foaf:knows>
+      <foaf:Person rdf:about="http://www.ibiblio.org/hhalpin#">
+        <foaf:name>Harry Halpin</foaf:name>
+        <foaf:mbox_sha1sum>c5e75a0dd882184416c8680f5c402a261314bb79</foaf:mbox_sha1sum>
+        <foaf:homepage rdf:resource="http://www.ibiblio.org/hhalpin/" />
+        <rdfs:seeAlso rdf:resource="http://www.ibiblio.org/hhalpin/foaf.rdf" />
+      </foaf:Person>
+    </foaf:knows>
+
+    <foaf:knows>
+      <foaf:Person rdf:about="http://www.dcs.shef.ac.uk/~mrowe/foaf.rdf#me">
+        <foaf:name>Matthew Rowe</foaf:name>
+        <foaf:mbox_sha1sum>bd2cda94c756832460fd7c8f6de5c3d2525bbdba</foaf:mbox_sha1sum>
+        <foaf:homepage rdf:resource="http://www.dcs.shef.ac.uk/~mrowe/" />
+        <rdfs:seeAlso rdf:resource="http://www.dcs.shef.ac.uk/~mrowe/foaf.rdf" />
+      </foaf:Person>
+    </foaf:knows>
+
+    <foaf:knows>
+      <foaf:Person rdf:about="http://www.postsubmeta.net/foaf#TK">
+        <foaf:name>Thomas Krennwallner</foaf:name>
+        <foaf:mbox_sha1sum>f6b70e5044bffbefe6703e8523be6c96ad8354dc</foaf:mbox_sha1sum>
+        <foaf:homepage rdf:resource="http://www.postsubmeta.net/" />
+        <rdfs:seeAlso rdf:resource="http://www.postsubmeta.net/foaf.rdf" />
+      </foaf:Person>
+    </foaf:knows>
+
+    <foaf:knows>
+      <foaf:Person rdf:about="http://bblfish.net/people/henry/card#me">
+        <foaf:name>Henry Story</foaf:name>
+        <foaf:mbox_sha1sum>38cf68e5c4f300648b81c8ee7a99912ee825ae01</foaf:mbox_sha1sum>
+        <foaf:homepage rdf:resource="http://bblfish.net/" />
+        <rdfs:seeAlso rdf:resource="http://bblfish.net/people/henry/card" />
+      </foaf:Person>
+    </foaf:knows>
+
+    <!-- projects -->
+
+    <foaf:pastProject>
+      <doap:Project rdf:about="http://swaml.berlios.de/doap#swaml"> 
+        <doap:name>SWAML</doap:name>
+        <doap:description>Semantic Web Archive of Mailing Lists</doap:description>
+        <doap:homepage rdf:resource="http://swaml.berlios.de/" />
+        <rdfs:seeAlso rdf:resource="http://swaml.berlios.de/doap.rdf" />
+      </doap:Project>
+    </foaf:pastProject>
+
+    <foaf:pastProject>
+      <doap:Project> 
+        <doap:name>SIOC</doap:name>
+        <doap:description>Semantically-Interlinked Online Communities</doap:description>
+        <doap:homepage rdf:resource="http://sioc-project.org/" />
+        <rdfs:seeAlso rdf:resource="http://sioc-project.org/sioc/site" />
+      </doap:Project>
+    </foaf:pastProject>
+
+    <foaf:pastProject>
+      <doap:Project rdf:about="#semradar"> 
+        <doap:name>SemRadar</doap:name>
+        <doap:description>a semantic metadata detector for Mozilla Firefox</doap:description>
+        <doap:homepage rdf:resource="http://sioc-project.org/firefox" />
+        <rdfs:seeAlso rdf:resource="http://rdfohloh.wikier.org/project/semradar/rdf" />
+      </doap:Project>
+    </foaf:pastProject>
+
+    <foaf:pastProject>
+      <doap:Project rdf:about="http://futil.berlios.de/doap#futil"> 
+        <doap:name>Futil</doap:name>
+        <doap:description>FOAF Utils</doap:description>
+        <doap:homepage rdf:resource="http://futil.berlios.de/" />
+        <rdfs:seeAlso rdf:resource="http://futil.berlios.de/resources/doap.rdf" />
+      </doap:Project>
+    </foaf:pastProject>
+
+    <foaf:pastProject>
+      <doap:Project rdf:about="http://vapour.sourceforge.net/doap#vapour"> 
+        <doap:name>Vapour</doap:name>
+        <doap:description>a web-based validator tool to check best practices for publishing RDF vocabularies</doap:description>
+        <doap:homepage rdf:resource="http://vapour.sourceforge.net/" />
+        <rdfs:seeAlso rdf:resource="http://vapour.sourceforge.net/resources/doap.rdf" />
+      </doap:Project>
+    </foaf:pastProject>
+
+    <foaf:pastProject>
+      <doap:Project> 
+        <doap:name>MyMobileWeb</doap:name>
+        <doap:homepage rdf:resource="http://mymobileweb.morfeo-project.org/" />
+        <rdfs:seeAlso rdf:resource="http://rdfohloh.wikier.org/project/mymobileweb/rdf" />
+      </doap:Project>
+    </foaf:pastProject>
+
+    <foaf:pastProject>
+      <doap:Project> 
+        <doap:name>EzWeb</doap:name>
+        <doap:homepage rdf:resource="http://ezweb.morfeo-project.org/" />
+      </doap:Project>
+    </foaf:pastProject>
+
+    <foaf:pastProject>
+      <doap:Project rdf:about="http://sparql-wrapper.sourceforge.net/doap#sparql-wrapper"> 
+        <doap:name>SPARQL Endpoint interface to Python</doap:name>
+        <doap:homepage rdf:resource="http://sparql-wrapper.sourceforge.net/" />
+        <rdfs:seeAlso rdf:resource="http://sparql-wrapper.sourceforge.net/resources/doap.rdf" />
+      </doap:Project>
+    </foaf:pastProject>
+
+    <foaf:pastProject>
+      <doap:Project rdf:about="http://neologism.deri.ie/doap#neologism"> 
+        <doap:name>Neologism</doap:name>
+        <doap:homepage rdf:resource="http://neologism.deri.ie/" />
+        <rdfs:seeAlso rdf:resource="http://neologism.deri.ie/resources/doap.rdf" />
+      </doap:Project>
+    </foaf:pastProject>
+
+    <foaf:pastProject>
+      <doap:Project rdf:about="http://rdfohloh.wikier.org/about#rdfohloh"> 
+        <doap:name>RDFohloh</doap:name>
+        <doap:homepage rdf:resource="http://rdfohloh.wikier.org/" />
+        <rdfs:seeAlso rdf:resource="http://www.w3.org/2007/08/pyRdfa/extract?uri=http://rdfohloh.wikier.org/about" />
+      </doap:Project>
+    </foaf:pastProject>
+
+    <foaf:pastProject>
+      <doap:Project> 
+        <doap:name>ONTORULE</doap:name>
+        <doap:shortdesc>ONTOlogies meet business RULEs</doap:shortdesc>
+        <doap:homepage rdf:resource="http://ontorule-project.eu/" />
+        <owl:sameAs rdf:resource="http://ontorule-project.eu/meta#ontorule" />
+        <rdfs:seeAlso rdf:resource="http://ontorule-project.eu/meta" />
+      </doap:Project>
+    </foaf:pastProject>
+
+    <foaf:pastProject>
+      <doap:Project rdf:about="http://rdfohloh.wikier.org/project/djubby"> 
+        <doap:name>djubby</doap:name>
+        <doap:shortdesc>A Pubby clone for Django, a Linked Data frontend for SPARQL endpoints</doap:shortdesc>
+        <doap:homepage rdf:resource="http://djubby.googlecode.com/" />
+        <rdfs:seeAlso rdf:resource="http://rdfohloh.wikier.org/project/djubby/rdf" />
+        <rdfs:seeAlso rdf:resource="http://pypi.python.org/pypi?:action=doap&amp;name=djubby" />
+      </doap:Project>
+    </foaf:pastProject>
+
+    <foaf:pastProject>
+      <foaf:Project rdf:about="http://trioo.wikier.org/trioo"> 
+        <rdfs:label>trioo</rdfs:label>
+        <foaf:homepage rdf:resource="http://trioo.wikier.org/" />
+        <rdfs:seeAlso rdf:resource="http://www.w3.org/2007/08/pyRdfa/extract?uri=http://trioo.wikier.org/" />
+      </foaf:Project>
+    </foaf:pastProject>
+
+    <foaf:pastProject>
+      <doap:Project rdf:about="http://rdfohloh.wikier.org/project/lmf"> 
+        <doap:name>LMF</doap:name>
+        <doap:description>Linked Media Framework</doap:description>
+        <doap:homepage rdf:resource="http://lmf.googlecode.com" />
+        <rdfs:seeAlso rdf:resource="http://rdfohloh.wikier.org/project/lmf.rdf" />
+      </doap:Project>
+    </foaf:pastProject>
+
+    <foaf:currentProject>
+      <doap:Project rdf:about="http://rdfohloh.wikier.org/project/marmotta"> 
+        <doap:name>Apache Marmotta</doap:name>
+        <doap:description>Apache Marmotta</doap:description>
+        <doap:homepage rdf:resource="http://marmotta.apache.org" />
+        <rdfs:seeAlso rdf:resource="http://marmotta.apache.org/doap.rdf" />
+        <rdfs:seeAlso rdf:resource="http://rdfohloh.wikier.org/project/marmotta.rdf" />
+      </doap:Project>
+    </foaf:currentProject>
+
+    <wot:hasKey>
+      <wot:PubKey>
+        <wot:hex_id>5531369F</wot:hex_id>
+        <wot:fingerprint>48B33394FA7F07D2A37FF197F21D21375531369F</wot:fingerprint>
+        <wot:pubkeyAddress rdf:resource="http://www.wikier.org/stuff/5531369F.asc" />
+      </wot:PubKey>
+    </wot:hasKey>
+
+  </foaf:Person>
+
+  <cert:RSAPublicKey rdf:about="#pk">
+    <cert:modulus rdf:datatype="http://www.w3.org/2001/XMLSchema#hexBinary">a1cf91184a0aaee6417ff8a965d13c3b28dc301ef30aefd4d7566277dea2cd0d43c19f1d27c04255c64e42855ba97ba8c50f6c27c313273bbd7bd27cb5a632ee29b0b1a47be9b5b2e54e9906c979660981ee9412cc648a693bf911b560c0c830ea14e7f520fc971d3c7805ecad905218722fd23790f1cfc2f0ddd3842ee5c0f09c025d75cb7a86ff86288783b40ecc4595fccb95801f788eb50a5d357d0b70d48e0d2c07406e495df145646f6e6e2832f310aa237b46147d61165e3ceadbc3cf92ed5aba95226a8d7190237dcb54ef80a595412bd96dba5d90f468fb8e32dc2a9704cb2927503d1f6cfd1463f53d087e2888ef12263764b64b5bd5f691e9f469</cert:modulus>
+    <cert:exponent rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">65537</cert:exponent>
+    <rdfs:label>A9:6A:3A:DF:42:B3:B2:5E:BD:BD:54:ED:45:85:E8:0E:1F:F0:EA:09</rdfs:label>
+    <dct:valid rdf:datatype="urn:iso:std:iso:8601#timeInterval">P1Y/2012-04-30</dct:valid>
+  </cert:RSAPublicKey>
+
+</rdf:RDF>
+
diff --git a/platform/marmotta-ldp/pom.xml b/platform/marmotta-ldp/pom.xml
index d2053de..2dcd3fe 100644
--- a/platform/marmotta-ldp/pom.xml
+++ b/platform/marmotta-ldp/pom.xml
@@ -28,7 +28,7 @@
     <artifactId>marmotta-ldp</artifactId>
     <packaging>jar</packaging>
 
-    <name>Apache Marmotta Platform: LDP</name>
+    <name>Apache Marmotta Platform: Linked Data Platform 1.0</name>
     <description>
         Provides support for the current working draft of the
         Linked Data Platform 1.0 specification.
diff --git a/platform/marmotta-sparql/pom.xml b/platform/marmotta-sparql/pom.xml
index 8a837bb..7342136 100644
--- a/platform/marmotta-sparql/pom.xml
+++ b/platform/marmotta-sparql/pom.xml
@@ -28,7 +28,7 @@
     <artifactId>marmotta-sparql</artifactId>
     <packaging>jar</packaging>
 
-    <name>Apache Marmotta Platform: SPARQL Endpoint</name>
+    <name>Apache Marmotta Platform: SPARQL 1.1</name>
     <description>
         Provides support for SPARQL 1.1 Queries and Updates and offers different 
         UIs for exploring SPARQL results.
diff --git a/platform/pom.xml b/platform/pom.xml
index 6d9d9ea..565b6a5 100644
--- a/platform/pom.xml
+++ b/platform/pom.xml
@@ -70,20 +70,20 @@
         <module>backends</module>
         <module>ldcache</module>
 
-        <!-- LDP -->
-        <module>marmotta-ldp</module>
-
         <!-- generic modules -->
-        <module>marmotta-ldpath</module>
-        <module>marmotta-security</module>
         <module>marmotta-sparql</module>
-        <module>marmotta-user</module>
+        <module>marmotta-ldp</module>
+        <module>marmotta-ldpath</module>
+        <module>marmotta-ldf</module>
 
-        <module>marmotta-versioning-common</module>
+        <!-- security modules -->
+        <module>marmotta-security</module>
+        <module>marmotta-user</module>
 
         <!-- KiWi backend specific modules -->
         <module>marmotta-reasoner-kiwi</module>
         <module>marmotta-versioning-kiwi</module>
+        <module>marmotta-versioning-common</module>
 
         <!-- Cloud Integration -->
         <module>marmotta-zookeeper</module>