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) ;