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 2011/09/04 14:19:46 UTC
svn commit: r1165003 - in /incubator/jena/Jena2/ARQ/trunk: ./ src-dev/dev/
src/arq/cmdline/ src/com/hp/hpl/jena/query/
src/com/hp/hpl/jena/sparql/core/assembler/ src/com/hp/hpl/jena/sparql/util/
src/org/openjena/riot/system/
Author: andy
Date: Sun Sep 4 12:19:45 2011
New Revision: 1165003
URL: http://svn.apache.org/viewvc?rev=1165003&view=rev
Log:
Support for setting contect objects on datasets and other things.
Added:
incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/sparql/util/MappingRegistry.java (with props)
Modified:
incubator/jena/Jena2/ARQ/trunk/D.ttl
incubator/jena/Jena2/ARQ/trunk/src-dev/dev/RunARQ.java
incubator/jena/Jena2/ARQ/trunk/src/arq/cmdline/CmdARQ.java
incubator/jena/Jena2/ARQ/trunk/src/arq/cmdline/ModSymbol.java
incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/query/ARQ.java
incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/sparql/core/assembler/AssemblerUtils.java
incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/sparql/core/assembler/DataSourceAssembler.java
incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/sparql/core/assembler/DatasetAssemblerVocab.java
incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/sparql/core/assembler/GraphStoreAssembler.java
incubator/jena/Jena2/ARQ/trunk/src/org/openjena/riot/system/PrefixMap.java
Modified: incubator/jena/Jena2/ARQ/trunk/D.ttl
URL: http://svn.apache.org/viewvc/incubator/jena/Jena2/ARQ/trunk/D.ttl?rev=1165003&r1=1165002&r2=1165003&view=diff
==============================================================================
Binary files - no diff available.
Modified: incubator/jena/Jena2/ARQ/trunk/src-dev/dev/RunARQ.java
URL: http://svn.apache.org/viewvc/incubator/jena/Jena2/ARQ/trunk/src-dev/dev/RunARQ.java?rev=1165003&r1=1165002&r2=1165003&view=diff
==============================================================================
--- incubator/jena/Jena2/ARQ/trunk/src-dev/dev/RunARQ.java (original)
+++ incubator/jena/Jena2/ARQ/trunk/src-dev/dev/RunARQ.java Sun Sep 4 12:19:45 2011
@@ -40,6 +40,7 @@ import com.hp.hpl.jena.iri.IRI ;
import com.hp.hpl.jena.iri.IRIFactory ;
import com.hp.hpl.jena.iri.Violation ;
import com.hp.hpl.jena.query.ARQ ;
+import com.hp.hpl.jena.query.Dataset ;
import com.hp.hpl.jena.query.Query ;
import com.hp.hpl.jena.query.QueryCancelledException ;
import com.hp.hpl.jena.query.QueryExecution ;
@@ -59,6 +60,8 @@ import com.hp.hpl.jena.sparql.algebra.Op
import com.hp.hpl.jena.sparql.core.DatasetGraph ;
import com.hp.hpl.jena.sparql.core.DatasetGraphFactory ;
import com.hp.hpl.jena.sparql.core.Var ;
+import com.hp.hpl.jena.sparql.core.assembler.AssemblerUtils ;
+import com.hp.hpl.jena.sparql.core.assembler.DatasetAssemblerVocab ;
import com.hp.hpl.jena.sparql.engine.ExecutionContext ;
import com.hp.hpl.jena.sparql.engine.QueryExecutionBase ;
import com.hp.hpl.jena.sparql.engine.binding.Binding ;
@@ -120,6 +123,12 @@ public class RunARQ
@SuppressWarnings("deprecation")
public static void main(String[] argv) throws Exception
{
+ ARQ.init();
+
+ Dataset ds = (Dataset)AssemblerUtils.build("D.ttl", DatasetAssemblerVocab.tDataset) ;
+ System.out.println(ds.asDatasetGraph().getContext()) ;
+ exit(0) ;
+
Node n = Node.createLiteral("9", null, XSDDatatype.XSDint) ;
System.out.println(FmtUtils.stringForNode(n, (PrefixMapping)null)) ;
exit(0) ;
Modified: incubator/jena/Jena2/ARQ/trunk/src/arq/cmdline/CmdARQ.java
URL: http://svn.apache.org/viewvc/incubator/jena/Jena2/ARQ/trunk/src/arq/cmdline/CmdARQ.java?rev=1165003&r1=1165002&r2=1165003&view=diff
==============================================================================
--- incubator/jena/Jena2/ARQ/trunk/src/arq/cmdline/CmdARQ.java (original)
+++ incubator/jena/Jena2/ARQ/trunk/src/arq/cmdline/CmdARQ.java Sun Sep 4 12:19:45 2011
@@ -20,7 +20,6 @@ public abstract class CmdARQ extends Cmd
protected CmdARQ(String[] argv)
{
super(argv) ;
- ModSymbol.addPrefixMapping(ARQ.arqSymbolPrefix, ARQ.arqNS) ;
addModule(modSymbol) ;
super.add(strictDecl, "--strict", "Operate in strict SPARQL mode (no extensions of any kind)") ;
super.modVersion.addClass(ARQ.class) ;
Modified: incubator/jena/Jena2/ARQ/trunk/src/arq/cmdline/ModSymbol.java
URL: http://svn.apache.org/viewvc/incubator/jena/Jena2/ARQ/trunk/src/arq/cmdline/ModSymbol.java?rev=1165003&r1=1165002&r2=1165003&view=diff
==============================================================================
--- incubator/jena/Jena2/ARQ/trunk/src/arq/cmdline/ModSymbol.java (original)
+++ incubator/jena/Jena2/ARQ/trunk/src/arq/cmdline/ModSymbol.java Sun Sep 4 12:19:45 2011
@@ -12,9 +12,8 @@ import java.util.Iterator ;
import org.openjena.atlas.io.IndentedWriter ;
import com.hp.hpl.jena.query.ARQ ;
-import com.hp.hpl.jena.shared.PrefixMapping ;
-import com.hp.hpl.jena.shared.impl.PrefixMappingImpl ;
import com.hp.hpl.jena.sparql.util.Context ;
+import com.hp.hpl.jena.sparql.util.MappingRegistry ;
import com.hp.hpl.jena.sparql.util.Symbol ;
public class ModSymbol implements ArgModuleGeneral
@@ -36,13 +35,6 @@ public class ModSymbol implements ArgMod
public void checkCommandLine(CmdArgModule cmdLine)
{}
- public static PrefixMapping symbolPrefixMapping = new PrefixMappingImpl() ;
-
- public static void addPrefixMapping(String prefix, String uri)
- {
- symbolPrefixMapping.setNsPrefix(prefix, uri) ;
- }
-
public void processArgs(CmdArgModule cmdLine)
{
if ( cmdLine.getValues(setDecl) == null || cmdLine.getValues(setDecl).size() == 0 )
@@ -59,8 +51,7 @@ public class ModSymbol implements ArgMod
String value = frags[1] ;
// Make it a long name.
- symbolName = symbolPrefixMapping.expandPrefix(symbolName) ;
-
+ symbolName = MappingRegistry.mapPrefixName(symbolName) ;
Symbol symbol = Symbol.create(symbolName) ;
context.set(symbol, value) ;
}
Modified: incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/query/ARQ.java
URL: http://svn.apache.org/viewvc/incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/query/ARQ.java?rev=1165003&r1=1165002&r2=1165003&view=diff
==============================================================================
--- incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/query/ARQ.java (original)
+++ incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/query/ARQ.java Sun Sep 4 12:19:45 2011
@@ -23,6 +23,7 @@ import com.hp.hpl.jena.sparql.mgt.Explai
import com.hp.hpl.jena.sparql.mgt.Explain.InfoLevel ;
import com.hp.hpl.jena.sparql.mgt.SystemInfo ;
import com.hp.hpl.jena.sparql.util.Context ;
+import com.hp.hpl.jena.sparql.util.MappingRegistry ;
import com.hp.hpl.jena.sparql.util.Symbol ;
/** ARQ - miscellaneous settings
@@ -397,7 +398,8 @@ public class ARQ
globalContext = defaultSettings() ;
StageBuilder.init() ;
ARQMgt.init() ; // After context and after PATH/NAME/VERSION/BUILD_DATE are set
-
+ MappingRegistry.addPrefixMapping(ARQ.arqSymbolPrefix, ARQ.arqNS) ;
+
// This is the pattern for any subsystem to register.
String NS = ARQ.PATH ;
Modified: incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/sparql/core/assembler/AssemblerUtils.java
URL: http://svn.apache.org/viewvc/incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/sparql/core/assembler/AssemblerUtils.java?rev=1165003&r1=1165002&r2=1165003&view=diff
==============================================================================
--- incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/sparql/core/assembler/AssemblerUtils.java (original)
+++ incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/sparql/core/assembler/AssemblerUtils.java Sun Sep 4 12:19:45 2011
@@ -6,22 +6,28 @@
package com.hp.hpl.jena.sparql.core.assembler;
-
import com.hp.hpl.jena.assembler.Assembler ;
import com.hp.hpl.jena.assembler.JA ;
import com.hp.hpl.jena.assembler.assemblers.AssemblerGroup ;
import com.hp.hpl.jena.query.ARQ ;
+import com.hp.hpl.jena.query.QueryExecution ;
+import com.hp.hpl.jena.query.QueryExecutionFactory ;
+import com.hp.hpl.jena.query.QuerySolution ;
+import com.hp.hpl.jena.query.QuerySolutionMap ;
+import com.hp.hpl.jena.query.ResultSet ;
import com.hp.hpl.jena.rdf.model.Model ;
import com.hp.hpl.jena.rdf.model.Resource ;
import com.hp.hpl.jena.rdf.model.ResourceFactory ;
import com.hp.hpl.jena.shared.PrefixMapping ;
import com.hp.hpl.jena.sparql.ARQException ;
import com.hp.hpl.jena.sparql.mgt.Explain.InfoLevel ;
+import com.hp.hpl.jena.sparql.util.Context ;
+import com.hp.hpl.jena.sparql.util.MappingRegistry ;
+import com.hp.hpl.jena.sparql.util.Symbol ;
import com.hp.hpl.jena.sparql.util.TypeNotUniqueException ;
import com.hp.hpl.jena.sparql.util.graph.GraphUtils ;
import com.hp.hpl.jena.util.FileManager ;
-
public class AssemblerUtils
{
// Wrappers for reading things form a file - assumes one of the thing per file.
@@ -31,7 +37,6 @@ public class AssemblerUtils
return pm ;
}
-
private static boolean initialized = false ;
static { ARQ.init(); init() ; }
@@ -87,6 +92,24 @@ public class AssemblerUtils
{ ARQ.setExecutionLogging(level) ; }
return Assembler.general.open(root) ;
}
+
+ public static void setContext(Resource r, Context context)
+ {
+ String qs = "PREFIX ja: <"+JA.getURI()+">\nSELECT * { ?x ja:context [ ja:cxtName ?name ; ja:cxtValue ?value ] }" ;
+ QuerySolutionMap qsm = new QuerySolutionMap() ;
+ qsm.add("x", r) ;
+ QueryExecution qExec = QueryExecutionFactory.create(qs, r.getModel(), qsm) ;
+ ResultSet rs = qExec.execSelect() ;
+ while ( rs.hasNext() )
+ {
+ QuerySolution soln = rs.next() ;
+ String name = soln.getLiteral("name").getLexicalForm() ;
+ String value = soln.getLiteral("value").getLexicalForm() ; // Works for numbers as well!
+ name = MappingRegistry.mapPrefixName(name) ;
+ Symbol symbol = Symbol.create(name) ;
+ context.set(symbol, value) ;
+ }
+ }
}
/*
Modified: incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/sparql/core/assembler/DataSourceAssembler.java
URL: http://svn.apache.org/viewvc/incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/sparql/core/assembler/DataSourceAssembler.java?rev=1165003&r1=1165002&r2=1165003&view=diff
==============================================================================
--- incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/sparql/core/assembler/DataSourceAssembler.java (original)
+++ incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/sparql/core/assembler/DataSourceAssembler.java Sun Sep 4 12:19:45 2011
@@ -46,8 +46,11 @@ public class DataSourceAssembler extends
// Non-expanding version.
//DataSource ds = DatasetFactory.create() ;
+
// Expanding version.
DatasetGraph dsg = DatasetGraphFactory.createMem() ;
+ AssemblerUtils.setContext(root, dsg.getContext()) ;
+
DataSource ds = DatasetFactory.create(dsg) ;
// -------- Default graph
Modified: incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/sparql/core/assembler/DatasetAssemblerVocab.java
URL: http://svn.apache.org/viewvc/incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/sparql/core/assembler/DatasetAssemblerVocab.java?rev=1165003&r1=1165002&r2=1165003&view=diff
==============================================================================
--- incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/sparql/core/assembler/DatasetAssemblerVocab.java (original)
+++ incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/sparql/core/assembler/DatasetAssemblerVocab.java Sun Sep 4 12:19:45 2011
@@ -26,6 +26,10 @@ public class DatasetAssemblerVocab
public static final Property pGraphAlt = ResourceFactory.createProperty(NS, "graphData") ;
public static final Property pIndex = ResourceFactory.createProperty(NS, "textIndex") ;
+
+ public static final Property pContext = ResourceFactory.createProperty(NS, "context") ;
+ public static final Property pCxtName = ResourceFactory.createProperty(NS, "cxtName") ;
+ public static final Property pCxtValue = ResourceFactory.createProperty(NS, "cxtValue") ;
}
/*
Modified: incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/sparql/core/assembler/GraphStoreAssembler.java
URL: http://svn.apache.org/viewvc/incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/sparql/core/assembler/GraphStoreAssembler.java?rev=1165003&r1=1165002&r2=1165003&view=diff
==============================================================================
--- incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/sparql/core/assembler/GraphStoreAssembler.java (original)
+++ incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/sparql/core/assembler/GraphStoreAssembler.java Sun Sep 4 12:19:45 2011
@@ -21,7 +21,7 @@ public class GraphStoreAssembler extends
public Object open(Assembler a, Resource root, Mode mode)
{
// Same vocabulary as datasets.
- // Have dispatched on type buy now so can just call the dataset code to build a DataSource.
+ // Have dispatched on type by now so can just call the dataset code to build a DataSource.
GraphStore gs = null ;
Object ds = super.open(a, root, mode) ;
Added: incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/sparql/util/MappingRegistry.java
URL: http://svn.apache.org/viewvc/incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/sparql/util/MappingRegistry.java?rev=1165003&view=auto
==============================================================================
--- incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/sparql/util/MappingRegistry.java (added)
+++ incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/sparql/util/MappingRegistry.java Sun Sep 4 12:19:45 2011
@@ -0,0 +1,43 @@
+/**
+ * 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 com.hp.hpl.jena.sparql.util;
+
+import org.openjena.riot.system.PrefixMap ;
+
+/** Assist with naming symbols by URI.
+ * This class keeps a prefix mapping so that subsystems can register their
+ * prefix and
+ */
+public class MappingRegistry
+{
+ private static PrefixMap mapping = new PrefixMap() ;
+
+ public static void addPrefixMapping(String prefix, String uri)
+ {
+ mapping.add(prefix, uri) ;
+ }
+
+ public static String mapPrefixName(String prefixName)
+ {
+ String x = mapping.expand(prefixName) ;
+ if ( x == null ) return prefixName ;
+ return x ;
+ }
+}
+
Propchange: incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/sparql/util/MappingRegistry.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Modified: incubator/jena/Jena2/ARQ/trunk/src/org/openjena/riot/system/PrefixMap.java
URL: http://svn.apache.org/viewvc/incubator/jena/Jena2/ARQ/trunk/src/org/openjena/riot/system/PrefixMap.java?rev=1165003&r1=1165002&r2=1165003&view=diff
==============================================================================
--- incubator/jena/Jena2/ARQ/trunk/src/org/openjena/riot/system/PrefixMap.java (original)
+++ incubator/jena/Jena2/ARQ/trunk/src/org/openjena/riot/system/PrefixMap.java Sun Sep 4 12:19:45 2011
@@ -108,6 +108,14 @@ public class PrefixMap
return null ;
}
+ /** Expand a prefix named, return null if it can't be expanded */
+ public String expand(String prefixedName)
+ {
+ int i = prefixedName.indexOf(':') ;
+ if ( i < 0 ) return null ;
+ return expand(prefixedName.substring(0,i),
+ prefixedName.substring(i+1)) ;
+ }
/** Expand a prefix, return null if it can't be expanded */
public String expand(String prefix, String localName)