You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jena.apache.org by an...@apache.org on 2012/02/15 11:15:16 UTC
svn commit: r1244422 - in /incubator/jena/Jena2/Fuseki/trunk: ./ Data/
pages-update/ src/main/java/org/apache/jena/fuseki/
src/main/java/org/apache/jena/fuseki/server/
src/main/java/org/apache/jena/fuseki/servlets/
Author: andy
Date: Wed Feb 15 10:15:15 2012
New Revision: 1244422
URL: http://svn.apache.org/viewvc?rev=1244422&view=rev
Log:
Example configurations.
Added:
incubator/jena/Jena2/Fuseki/trunk/Data/test_abox.ttl
incubator/jena/Jena2/Fuseki/trunk/Data/test_data_rdfs.ttl
incubator/jena/Jena2/Fuseki/trunk/Data/test_tbox.ttl
incubator/jena/Jena2/Fuseki/trunk/config-examples.ttl
incubator/jena/Jena2/Fuseki/trunk/config-tdb.ttl
Removed:
incubator/jena/Jena2/Fuseki/trunk/config_tdb.ttl
Modified:
incubator/jena/Jena2/Fuseki/trunk/assembly-dist.xml
incubator/jena/Jena2/Fuseki/trunk/config.ttl
incubator/jena/Jena2/Fuseki/trunk/pages-update/sparql.jsp
incubator/jena/Jena2/Fuseki/trunk/src/main/java/org/apache/jena/fuseki/HttpNames.java
incubator/jena/Jena2/Fuseki/trunk/src/main/java/org/apache/jena/fuseki/server/FusekiConfig.java
incubator/jena/Jena2/Fuseki/trunk/src/main/java/org/apache/jena/fuseki/server/SPARQLServer.java
incubator/jena/Jena2/Fuseki/trunk/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_REST.java
incubator/jena/Jena2/Fuseki/trunk/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_Upload.java
Added: incubator/jena/Jena2/Fuseki/trunk/Data/test_abox.ttl
URL: http://svn.apache.org/viewvc/incubator/jena/Jena2/Fuseki/trunk/Data/test_abox.ttl?rev=1244422&view=auto
==============================================================================
--- incubator/jena/Jena2/Fuseki/trunk/Data/test_abox.ttl (added)
+++ incubator/jena/Jena2/Fuseki/trunk/Data/test_abox.ttl Wed Feb 15 10:15:15 2012
@@ -0,0 +1,5 @@
+@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
+@prefix : <http://example/ns#> .
+
+:x rdf:type :A .
+
Added: incubator/jena/Jena2/Fuseki/trunk/Data/test_data_rdfs.ttl
URL: http://svn.apache.org/viewvc/incubator/jena/Jena2/Fuseki/trunk/Data/test_data_rdfs.ttl?rev=1244422&view=auto
==============================================================================
--- incubator/jena/Jena2/Fuseki/trunk/Data/test_data_rdfs.ttl (added)
+++ incubator/jena/Jena2/Fuseki/trunk/Data/test_data_rdfs.ttl Wed Feb 15 10:15:15 2012
@@ -0,0 +1,12 @@
+@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
+@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
+
+@prefix : <http://example/ns#> .
+
+:A a rdfs:Class .
+:B a rdfs:Class .
+
+:A rdfs:subClassOf :B .
+
+:x rdf:type :A .
+
Added: incubator/jena/Jena2/Fuseki/trunk/Data/test_tbox.ttl
URL: http://svn.apache.org/viewvc/incubator/jena/Jena2/Fuseki/trunk/Data/test_tbox.ttl?rev=1244422&view=auto
==============================================================================
--- incubator/jena/Jena2/Fuseki/trunk/Data/test_tbox.ttl (added)
+++ incubator/jena/Jena2/Fuseki/trunk/Data/test_tbox.ttl Wed Feb 15 10:15:15 2012
@@ -0,0 +1,9 @@
+@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
+@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
+
+@prefix : <http://example/ns#> .
+
+:A a rdfs:Class .
+:B a rdfs:Class .
+
+:A rdfs:subClassOf :B .
Modified: incubator/jena/Jena2/Fuseki/trunk/assembly-dist.xml
URL: http://svn.apache.org/viewvc/incubator/jena/Jena2/Fuseki/trunk/assembly-dist.xml?rev=1244422&r1=1244421&r2=1244422&view=diff
==============================================================================
--- incubator/jena/Jena2/Fuseki/trunk/assembly-dist.xml (original)
+++ incubator/jena/Jena2/Fuseki/trunk/assembly-dist.xml Wed Feb 15 10:15:15 2012
@@ -59,7 +59,7 @@ Assumes jar made and onejar has been ass
<includes>
<include>log4j.properties</include>
<include>fuseki-server</include>
- <include>tdb.ttl</include>
+ <include>config*.ttl</include>
<include>s-*</include>
<include>pages-update/*</include>
<include>pages-publish/*</include>
Added: incubator/jena/Jena2/Fuseki/trunk/config-examples.ttl
URL: http://svn.apache.org/viewvc/incubator/jena/Jena2/Fuseki/trunk/config-examples.ttl?rev=1244422&view=auto
==============================================================================
--- incubator/jena/Jena2/Fuseki/trunk/config-examples.ttl (added)
+++ incubator/jena/Jena2/Fuseki/trunk/config-examples.ttl Wed Feb 15 10:15:15 2012
@@ -0,0 +1,121 @@
+@prefix : <#> .
+@prefix fuseki: <http://jena.apache.org/fuseki#> .
+@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
+## A collection of example configurations
+
+@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
+@prefix tdb: <http://jena.hpl.hp.com/2008/tdb#> .
+@prefix ja: <http://jena.hpl.hp.com/2005/11/Assembler#> .
+
+[] rdf:type fuseki:Server ;
+ # Timeout - server-wide default: milliseconds.
+ # Format 1: "1000" -- 1 second timeout
+ # Format 2: "10000,60000" -- 10s timeout to first result, then 60s timeout to for rest of query.
+ # See java doc for ARQ.queryTimeout
+ # ja:context [ ja:cxtName "arq:queryTimeout" ; ja:cxtValue "10000" ] ;
+
+ # ja:loadClass "your.code.Class" ;
+
+ fuseki:services (
+ <#service1>
+ <#service2>
+ <#service3>
+ ) .
+
+# Custom code.
+# For each declaration, static "Class.init()" will be called.
+[] ja:loadClass "com.hp.hpl.jena.tdb.TDB" .
+
+# TDB
+tdb:DatasetTDB rdfs:subClassOf ja:RDFDataset .
+tdb:GraphTDB rdfs:subClassOf ja:Model .
+
+## ---------------------------------------------------------------
+## Updatable in-memory dataset.
+
+<#service1> rdf:type fuseki:Service ;
+ # URI of the dataset -- http://host:port/ds
+ fuseki:name "ds" ;
+
+ # SPARQL query services e.g. http://host:port/ds/sparql?query=...
+ fuseki:serviceQuery "sparql" ;
+ fuseki:serviceQuery "query" ;
+ # SPARQL Update service -- http://host:port/ds/update?request=...
+ fuseki:serviceUpdate "update" ; # SPARQL query service -- /ds/update
+
+ # Upload service -- http://host:port/ds/upload?graph=default or ?graph=URI or ?default
+ # followed by a multipart body, each part being RDF syntax.
+ # Syntax determined by the file name extension.
+ fuseki:serviceUpload "upload" ; # Non-SPARQL upload service
+
+ # SPARQL Graph store protocol (read and write)
+ # GET, PUT, POST DELETE to http://host:port/ds/data?graph= or ?default=
+ fuseki:serviceReadWriteGraphStore "data" ;
+
+ # A separate read-only graph store endpoint:
+ fuseki:serviceReadGraphStore "get" ; # Graph store protocol (read only) -- /ds/get
+ # ... (special case) and as both /ds?default and /ds/?default
+ fuseki:serviceReadGraphStore "" ;
+
+ fuseki:dataset <#emptyDataset> ;
+ .
+
+## In-memory, initially empty.
+<#emptyDataset> rdf:type ja:RDFDataset .
+
+## ---------------------------------------------------------------
+## Read-only access to a small books database.
+
+<#service2> rdf:type fuseki:Service ;
+ fuseki:name "books" ; # http://host:port/books
+ fuseki:serviceQuery "query" ; # SPARQL query service
+ fuseki:serviceReadGraphStore "get" ; # SPARQL Graph store protocol (read only)
+ fuseki:dataset <#books> ;
+ # Configuration
+ .
+
+<#books> rdf:type ja:RDFDataset ;
+ rdfs:label "Books" ;
+ ja:defaultGraph
+ [ rdfs:label "books.ttl" ;
+ a ja:MemoryModel ;
+ ja:content [ja:externalContent <file:Data/books.ttl> ] ;
+ ] ;
+ .
+## ---------------------------------------------------------------
+## TDB dataset with only SPARQL query.
+
+<#service3> rdf:type fuseki:Service ;
+ fuseki:name "inf" ; # http://host/inf
+ fuseki:serviceQuery "sparql" ; # SPARQL query service
+ fuseki:dataset <#dataset> ;
+ .
+
+<#dataset> rdf:type ja:RDFDataset ;
+ ja:defaultGraph <#model_inf_2> ;
+ .
+
+# ---- RDFS Inference models
+# Thiese must be incorporate in a dataset in order to use them.
+# All in one file.
+
+<#model_inf_1> rdfs:label "Inf-1" ;
+ ja:baseModel
+ [ a ja:MemoryModel ;
+ ja:content [ja:externalContent <file:Data/test_data_rdfs.ttl>] ;
+ ] ;
+ ja:reasoner
+ [ ja:reasonerURL <http://jena.hpl.hp.com/2003/RDFSExptRuleReasoner> ]
+ .
+
+# Separate ABox and TBox
+
+<#model_inf_2> rdfs:label "Inf-2" ;
+ ja:baseModel
+ [ a ja:MemoryModel ;
+ ja:content [ja:externalContent <file:Data/test_abox.ttl>] ;
+ ja:content [ja:externalContent <file:Data/test_tbox.ttl>] ;
+ ] ;
+ ja:reasoner
+ [ ja:reasonerURL <http://jena.hpl.hp.com/2003/RDFSExptRuleReasoner> ]
+ .
Added: incubator/jena/Jena2/Fuseki/trunk/config-tdb.ttl
URL: http://svn.apache.org/viewvc/incubator/jena/Jena2/Fuseki/trunk/config-tdb.ttl?rev=1244422&view=auto
==============================================================================
--- incubator/jena/Jena2/Fuseki/trunk/config-tdb.ttl (added)
+++ incubator/jena/Jena2/Fuseki/trunk/config-tdb.ttl Wed Feb 15 10:15:15 2012
@@ -0,0 +1,51 @@
+## Example of a TDB dataset published using Fuseki
+
+@prefix : <#> .
+@prefix fuseki: <http://jena.apache.org/fuseki#> .
+@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
+@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
+@prefix tdb: <http://jena.hpl.hp.com/2008/tdb#> .
+@prefix ja: <http://jena.hpl.hp.com/2005/11/Assembler#> .
+
+[] rdf:type fuseki:Server ;
+ # Timeout - server-wide default: milliseconds.
+ # Format 1: "1000" -- 1 second timeout
+ # Format 2: "10000,60000" -- 10s timeout to first result, then 60s timeout to for rest of query.
+ # See java doc for ARQ.queryTimeout
+ # ja:context [ ja:cxtName "arq:queryTimeout" ; ja:cxtValue "10000" ] ;
+ # ja:loadClass "your.code.Class" ;
+
+ fuseki:services (
+ <#service_tdb_all>
+ ) .
+
+# TDB
+[] ja:loadClass "com.hp.hpl.jena.tdb.TDB" .
+tdb:DatasetTDB rdfs:subClassOf ja:RDFDataset .
+tdb:GraphTDB rdfs:subClassOf ja:Model .
+
+## ---------------------------------------------------------------
+## Updatable TDB dataset with all servcies enabled.
+
+<#service_tdb_all> rdf:type fuseki:Service ;
+ rdfs:label "TDB Service" ;
+ fuseki:name "ds" ;
+ fuseki:serviceQuery "query" ;
+ fuseki:serviceQuery "sparql" ;
+ fuseki:serviceUpdate "update" ;
+ fuseki:serviceUpload "upload" ;
+ fuseki:serviceReadWriteGraphStore "data" ;
+ # A separate read-only graph store endpoint:
+ fuseki:serviceReadGraphStore "get" ;
+ fuseki:dataset <#tdb_dataset> ;
+ .
+## ---------------------------------------------------------------
+## TDB dataset with all
+
+<#tdb_dataset> rdf:type tdb:DatasetTDB ;
+ tdb:location "DB" ;
+## # Query timeout on this dataset (milliseconds)
+## ja:context [ ja:cxtName "arq:queryTimeout" ; ja:cxtValue "1000" ] ;
+## # Default graph for query is the (read-only) union of all named graphs.
+ tdb:unionDefaultGraph true ;
+ .
Modified: incubator/jena/Jena2/Fuseki/trunk/config.ttl
URL: http://svn.apache.org/viewvc/incubator/jena/Jena2/Fuseki/trunk/config.ttl?rev=1244422&r1=1244421&r2=1244422&view=diff
==============================================================================
Binary files - no diff available.
Modified: incubator/jena/Jena2/Fuseki/trunk/pages-update/sparql.jsp
URL: http://svn.apache.org/viewvc/incubator/jena/Jena2/Fuseki/trunk/pages-update/sparql.jsp?rev=1244422&r1=1244421&r2=1244422&view=diff
==============================================================================
--- incubator/jena/Jena2/Fuseki/trunk/pages-update/sparql.jsp (original)
+++ incubator/jena/Jena2/Fuseki/trunk/pages-update/sparql.jsp Wed Feb 15 10:15:15 2012
@@ -17,7 +17,7 @@
<p><b>SPARQL Query</b></p>
<div class="moreindent">
- <form action="<%= ds%>/query" method="post" accept-charset="UTF-8">
+ <form action="<%= ds%>/sparql" method="post" accept-charset="UTF-8">
<textarea style="background-color: #F0F0F0;" name="query" cols="70" rows="10"></textarea>
<br/>
Modified: incubator/jena/Jena2/Fuseki/trunk/src/main/java/org/apache/jena/fuseki/HttpNames.java
URL: http://svn.apache.org/viewvc/incubator/jena/Jena2/Fuseki/trunk/src/main/java/org/apache/jena/fuseki/HttpNames.java?rev=1244422&r1=1244421&r2=1244422&view=diff
==============================================================================
--- incubator/jena/Jena2/Fuseki/trunk/src/main/java/org/apache/jena/fuseki/HttpNames.java (original)
+++ incubator/jena/Jena2/Fuseki/trunk/src/main/java/org/apache/jena/fuseki/HttpNames.java Wed Feb 15 10:15:15 2012
@@ -71,10 +71,12 @@ public class HttpNames
public static final String HEADER_IFMODSINCE = "If-Modified-Since";
public static final String HEADER_LASTMOD = "Last-Modified";
+ // Names for services in the default configuration
public static final String ServiceQuery = "/query" ;
public static final String ServiceQueryAlt = "/sparql" ;
public static final String ServiceUpdate = "/update" ;
public static final String ServiceData = "/data" ;
+ public static final String ServiceData1 = "" ;
public static final String ServiceUpload = "/upload" ;
// Posisble values of fields.
Modified: incubator/jena/Jena2/Fuseki/trunk/src/main/java/org/apache/jena/fuseki/server/FusekiConfig.java
URL: http://svn.apache.org/viewvc/incubator/jena/Jena2/Fuseki/trunk/src/main/java/org/apache/jena/fuseki/server/FusekiConfig.java?rev=1244422&r1=1244421&r2=1244422&view=diff
==============================================================================
--- incubator/jena/Jena2/Fuseki/trunk/src/main/java/org/apache/jena/fuseki/server/FusekiConfig.java (original)
+++ incubator/jena/Jena2/Fuseki/trunk/src/main/java/org/apache/jena/fuseki/server/FusekiConfig.java Wed Feb 15 10:15:15 2012
@@ -97,10 +97,13 @@ public class FusekiConfig
sDesc.updateEP.add(HttpNames.ServiceUpdate) ;
sDesc.uploadEP.add(HttpNames.ServiceUpload) ;
sDesc.readWriteGraphStoreEP.add(HttpNames.ServiceData) ;
+ sDesc.readWriteGraphStoreEP.add(HttpNames.ServiceData1) ;
}
else
+ {
sDesc.readGraphStoreEP.add(HttpNames.ServiceData) ;
-
+ sDesc.readGraphStoreEP.add(HttpNames.ServiceData1) ;
+ }
ServerConfig config = new ServerConfig() ;
config.services = Arrays.asList(sDesc) ;
config.port = 3030 ;
Modified: incubator/jena/Jena2/Fuseki/trunk/src/main/java/org/apache/jena/fuseki/server/SPARQLServer.java
URL: http://svn.apache.org/viewvc/incubator/jena/Jena2/Fuseki/trunk/src/main/java/org/apache/jena/fuseki/server/SPARQLServer.java?rev=1244422&r1=1244421&r2=1244422&view=diff
==============================================================================
--- incubator/jena/Jena2/Fuseki/trunk/src/main/java/org/apache/jena/fuseki/server/SPARQLServer.java (original)
+++ incubator/jena/Jena2/Fuseki/trunk/src/main/java/org/apache/jena/fuseki/server/SPARQLServer.java Wed Feb 15 10:15:15 2012
@@ -300,6 +300,14 @@ public class SPARQLServer
{
for ( String pathSpec : pathSpecs )
{
+ if ( pathSpec.equals("") )
+ {
+ // "" is special -- add as "base" and "base/"
+ addServlet(context, servlet, datasetPath+"/", enableCompression) ;
+ addServlet(context, servlet, datasetPath, enableCompression) ;
+ continue ;
+ }
+
if ( pathSpec.endsWith("/") )
pathSpec = pathSpec.substring(0, pathSpec.length()-1) ;
if ( pathSpec.startsWith("/") )
Modified: incubator/jena/Jena2/Fuseki/trunk/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_REST.java
URL: http://svn.apache.org/viewvc/incubator/jena/Jena2/Fuseki/trunk/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_REST.java?rev=1244422&r1=1244421&r2=1244422&view=diff
==============================================================================
--- incubator/jena/Jena2/Fuseki/trunk/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_REST.java (original)
+++ incubator/jena/Jena2/Fuseki/trunk/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_REST.java Wed Feb 15 10:15:15 2012
@@ -406,6 +406,9 @@ public abstract class SPARQL_REST extend
return Target.createDefault(dsg) ;
// Named graph
+ if ( uri.equals(HttpNames.valueDefault ) )
+ // But "named" default
+ return Target.createDefault(dsg) ;
// Strictly, a bit naughthy on the URI resolution. But more sensible.
// Base is dataset.
Modified: incubator/jena/Jena2/Fuseki/trunk/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_Upload.java
URL: http://svn.apache.org/viewvc/incubator/jena/Jena2/Fuseki/trunk/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_Upload.java?rev=1244422&r1=1244421&r2=1244422&view=diff
==============================================================================
--- incubator/jena/Jena2/Fuseki/trunk/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_Upload.java (original)
+++ incubator/jena/Jena2/Fuseki/trunk/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_Upload.java Wed Feb 15 10:15:15 2012
@@ -109,7 +109,7 @@ public class SPARQL_Upload extends SPARQ
if (item.isFormField())
{
// Graph name.
- String value = Streams.asString(stream) ;
+ String value = Streams.asString(stream, "UTF-8") ;
if ( fieldName.equals(HttpNames.paramGraph) )
{
graphName = value ;
@@ -133,13 +133,12 @@ public class SPARQL_Upload extends SPARQ
gn = Node.createURI(graphName) ;
}
}
- // Add file type?
+ else if ( fieldName.equals(HttpNames.paramDefaultGraphURI) )
+ graphName = null ;
else
+ // Add file type?
log.info(format("[%d] Upload: Field="+fieldName+" - ignored")) ;
- //System.out.println("Form field " + fieldName + " with value " + Streams.asString(stream) + " detected.");
} else {
-// System.out.println("File field " + fieldName + " with file name "
-// + item.getName() + " detected.");
// Process the input stream
name = item.getName() ;
if ( name == null || name.equals("") || name.equals("UNSET FILE NAME") )
@@ -152,11 +151,12 @@ public class SPARQL_Upload extends SPARQ
if ( lang == null )
lang = Lang.guess(name) ;
if ( lang == null )
- // Desparate.
+ // Desperate.
lang = Lang.RDFXML ;
String base = "http://example/upload-base/" ;
// We read into a in-memory graph, then (if successful) update the dataset.
+ // This isolates errors.
Sink<Triple> sink = new SinkTriplesToGraph(graphTmp) ;
LangRIOT parser = RiotReader.createParserTriples(stream, lang, base, sink) ;
parser.getProfile().setHandler(errorHandler) ;