You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@marmotta.apache.org by wi...@apache.org on 2014/10/28 10:16:14 UTC
[4/4] git commit: MARMOTTA-556: added hydra controls
MARMOTTA-556: added hydra controls
Project: http://git-wip-us.apache.org/repos/asf/marmotta/repo
Commit: http://git-wip-us.apache.org/repos/asf/marmotta/commit/b8d297a7
Tree: http://git-wip-us.apache.org/repos/asf/marmotta/tree/b8d297a7
Diff: http://git-wip-us.apache.org/repos/asf/marmotta/diff/b8d297a7
Branch: refs/heads/MARMOTTA-556
Commit: b8d297a79016717710eadb2781e72ef0e685074b
Parents: 718c304
Author: Sergio Fernández <wi...@apache.org>
Authored: Tue Oct 28 10:15:56 2014 +0100
Committer: Sergio Fernández <wi...@apache.org>
Committed: Tue Oct 28 10:15:56 2014 +0100
----------------------------------------------------------------------
.../platform/ldf/services/LdfServiceImpl.java | 29 ++++++++++++++++----
.../ldf/webservices/LdfWebServiceTest.java | 8 ------
2 files changed, 23 insertions(+), 14 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/marmotta/blob/b8d297a7/platform/marmotta-ldf/src/main/java/org/apache/marmotta/platform/ldf/services/LdfServiceImpl.java
----------------------------------------------------------------------
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
index f776e03..576560a 100644
--- 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
@@ -24,12 +24,12 @@ 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.model.vocabulary.RDF;
import org.openrdf.repository.RepositoryConnection;
import org.openrdf.repository.RepositoryException;
import org.openrdf.repository.RepositoryResult;
@@ -166,8 +166,8 @@ public class LdfServiceImpl implements LdfService {
//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);
+ 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);
@@ -175,11 +175,13 @@ public class LdfServiceImpl implements LdfService {
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);
+ model.add(fragment, RDF.type, HYDRA.Collection);
if (offset != 0 && limit != size) {
- model.add(fragment, RDF.TYPE, HYDRA.PagedCollection);
+ 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()));
@@ -189,7 +191,22 @@ public class LdfServiceImpl implements LdfService {
if (offset + limit < statements.size()) {
model.add(fragment, HYDRA.nextPage, vf.createURI(UriBuilder.fromUri(uri).queryParam("page", page+1).build().toASCIIString()));
}
- //TODO: hydra controls
+ 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;
http://git-wip-us.apache.org/repos/asf/marmotta/blob/b8d297a7/platform/marmotta-ldf/src/test/java/org/apache/marmotta/platform/ldf/webservices/LdfWebServiceTest.java
----------------------------------------------------------------------
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
index d37d6e0..c42c17f 100644
--- 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
@@ -1,22 +1,14 @@
package org.apache.marmotta.platform.ldf.webservices;
import com.jayway.restassured.RestAssured;
-import org.apache.commons.io.IOUtils;
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.api.prefix.PrefixService;
-import org.apache.marmotta.platform.core.api.triplestore.ContextService;
import org.apache.marmotta.platform.core.exception.io.MarmottaImportException;
import org.apache.marmotta.platform.core.test.base.JettyMarmotta;
-import org.apache.marmotta.platform.core.webservices.io.ImportWebService;
-import org.apache.marmotta.platform.core.webservices.prefix.PrefixWebService;
-import org.apache.marmotta.platform.core.webservices.triplestore.ContextWebService;
import org.junit.AfterClass;
-import org.junit.Assume;
import org.junit.BeforeClass;
import org.junit.Test;
-import org.openrdf.model.URI;
import org.openrdf.model.impl.ValueFactoryImpl;
import java.io.IOException;