[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Gzz-commits] fenfire docs/pegboard/swamp_rdf_api--tjl/peg.rs...
From: |
Tuomas J. Lukka |
Subject: |
[Gzz-commits] fenfire docs/pegboard/swamp_rdf_api--tjl/peg.rs... |
Date: |
Sun, 13 Apr 2003 03:49:06 -0400 |
CVSROOT: /cvsroot/fenfire
Module name: fenfire
Changes by: Tuomas J. Lukka <address@hidden> 03/04/13 03:49:05
Modified files:
docs/pegboard/swamp_rdf_api--tjl: peg.rst
org/fenfire : Fen.java NodeContent.java Space.java
org/fenfire/impl: AbstractSpace.java ModularSpace.java
SimpleNodeContent.java simplenodecontent.test
org/fenfire/swamp: ConstGraph.java Graph.java Nodes.java
org/fenfire/swamp/impl: HashGraph.java StdObservedGraph.java
org/fenfire/vocab: FF.java
Added files:
org/fenfire/swamp: Literal.java
org/fenfire/swamp/impl: AbstractConstGraph.java
AbstractGraph.java StdLiteral.java
StdObservedConstGraph.java
Removed files:
org/fenfire/swamp: ObservableGraph.java ObservedGraph.java
org/fenfire/swamp/impl: StdObservableGraph.java
Log message:
Using swamp in fenfire
CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/docs/pegboard/swamp_rdf_api--tjl/peg.rst.diff?tr1=1.10&tr2=1.11&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/Fen.java.diff?tr1=1.2&tr2=1.3&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/NodeContent.java.diff?tr1=1.1&tr2=1.2&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/Space.java.diff?tr1=1.4&tr2=1.5&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/impl/AbstractSpace.java.diff?tr1=1.5&tr2=1.6&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/impl/ModularSpace.java.diff?tr1=1.2&tr2=1.3&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/impl/SimpleNodeContent.java.diff?tr1=1.1&tr2=1.2&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/impl/simplenodecontent.test.diff?tr1=1.1&tr2=1.2&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/swamp/Literal.java?rev=1.1
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/swamp/ConstGraph.java.diff?tr1=1.1&tr2=1.2&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/swamp/Graph.java.diff?tr1=1.2&tr2=1.3&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/swamp/Nodes.java.diff?tr1=1.1&tr2=1.2&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/swamp/impl/AbstractConstGraph.java?rev=1.1
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/swamp/impl/AbstractGraph.java?rev=1.1
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/swamp/impl/StdLiteral.java?rev=1.1
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/swamp/impl/StdObservedConstGraph.java?rev=1.1
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/swamp/impl/HashGraph.java.diff?tr1=1.3&tr2=1.4&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/swamp/impl/StdObservedGraph.java.diff?tr1=1.1&tr2=1.2&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/vocab/FF.java.diff?tr1=1.1&tr2=1.2&r1=text&r2=text
Patches:
Index: fenfire/docs/pegboard/swamp_rdf_api--tjl/peg.rst
diff -u fenfire/docs/pegboard/swamp_rdf_api--tjl/peg.rst:1.10
fenfire/docs/pegboard/swamp_rdf_api--tjl/peg.rst:1.11
--- fenfire/docs/pegboard/swamp_rdf_api--tjl/peg.rst:1.10 Sat Apr 12
06:39:12 2003
+++ fenfire/docs/pegboard/swamp_rdf_api--tjl/peg.rst Sun Apr 13 03:49:05 2003
@@ -3,8 +3,8 @@
=============================================================
:Author: Tuomas J. Lukka
-:Last-Modified: $Date: 2003/04/12 10:39:12 $
-:Revision: $Revision: 1.10 $
+:Last-Modified: $Date: 2003/04/13 07:49:05 $
+:Revision: $Revision: 1.11 $
:Status: Current, Partially preliminarily implemented (since in its own
package)
This document outlines the main issues in the Jena api
@@ -344,5 +344,8 @@
In an autogenerated implementation, ObservedGraph would also be generated
for efficiency.
+Literals
+--------
+For literals, we shall use immutable literal objects.
Index: fenfire/org/fenfire/Fen.java
diff -u fenfire/org/fenfire/Fen.java:1.2 fenfire/org/fenfire/Fen.java:1.3
--- fenfire/org/fenfire/Fen.java:1.2 Tue Apr 8 16:31:05 2003
+++ fenfire/org/fenfire/Fen.java Sun Apr 13 03:49:05 2003
@@ -7,7 +7,11 @@
public class Fen {
/** The RDF model of the graph structure part of this fen.
*/
- public com.hp.hpl.mesa.rdf.jena.model.Model model;
+ public org.fenfire.swamp.Graph graph;
+
+ /** The RDF model of the graph structure part of this fen.
+ */
+ public org.fenfire.swamp.ConstGraph constgraph;
/** The object managing the enfilade content for nodes.
*/
@@ -16,6 +20,30 @@
/** The transclusion index.
*/
public org.fenfire.index.Index enfiladeOverlap;
+
+ /** For use with recursed Fens: indicate
+ * that this Fen will not be used again
+ * and may be recycled.
+ */
+ public void close() {
+ txt._close();
+ constgraph.close();
+ }
+
+ /** Obtain a new Fen which observes.
+ * if the result of one of the methods
+ * that were called for the returned Fen changes
+ * through a structure change (i.e. a find() was
+ * done and one of the found objects is removed
+ * or an extra one is added), then Obs will be called.
+ * Null may be returned if the current Fen is not observable.
+ */
+ Fen getObserved(Obs o) {
+ Fen n = new Fen();
+ n.constgraph = n.graph = graph.getObservedGraph(o);
+ n.txt = txt._getObserved(n, o);
+ return n;
+ }
/** The set of xanadu links in use with this Fen.
*/
Index: fenfire/org/fenfire/NodeContent.java
diff -u fenfire/org/fenfire/NodeContent.java:1.1
fenfire/org/fenfire/NodeContent.java:1.2
--- fenfire/org/fenfire/NodeContent.java:1.1 Sun Apr 6 09:05:19 2003
+++ fenfire/org/fenfire/NodeContent.java Sun Apr 13 03:49:05 2003
@@ -9,11 +9,26 @@
/** Get the vstream in this node.
* Never returns <code>null</code>.
*/
- org.nongnu.alph.Enfilade1D get(com.hp.hpl.mesa.rdf.jena.model.RDFNode
node);
+ org.nongnu.alph.Enfilade1D get(Object resource);
+
+ /** Get the vstream in this node.
+ * Never returns <code>null</code>.
+ */
+ org.nongnu.alph.Enfilade1D get(Object resource, Obs o);
/** Set the vstream in this node.
*/
- void set(com.hp.hpl.mesa.rdf.jena.model.RDFNode node,
org.nongnu.alph.Enfilade1D vstream);
+ void set(Object resource,
+ org.nongnu.alph.Enfilade1D vstream);
+
+ NodeContent _getObserved(Fen obsFen,
+ Obs o);
+
+ /** For use with recursed Fens: indicate
+ * that this Fen will not be used again
+ * and may be recycled.
+ */
+ void _close();
}
Index: fenfire/org/fenfire/Space.java
diff -u fenfire/org/fenfire/Space.java:1.4 fenfire/org/fenfire/Space.java:1.5
--- fenfire/org/fenfire/Space.java:1.4 Fri Apr 4 18:25:06 2003
+++ fenfire/org/fenfire/Space.java Sun Apr 13 03:49:05 2003
@@ -14,7 +14,7 @@
*/
public interface Space {
-String rcsid = "$Id: Space.java,v 1.4 2003/04/04 23:25:06 mudyc Exp $";
+String rcsid = "$Id: Space.java,v 1.5 2003/04/13 07:49:05 tjl Exp $";
/** There are many plases where model is needed
* and this provides it.
@@ -119,7 +119,7 @@
* @deprecated Will be abstracted to an object that produces spans
* on request.
*/
- org.nongnu.storm.Mediaserver getMediaserver();
+ // org.nongnu.storm.Mediaserver getMediaserver();
/** Get the node representing the given mediaserver block
* in the same slice as node.
Index: fenfire/org/fenfire/impl/AbstractSpace.java
diff -u fenfire/org/fenfire/impl/AbstractSpace.java:1.5
fenfire/org/fenfire/impl/AbstractSpace.java:1.6
--- fenfire/org/fenfire/impl/AbstractSpace.java:1.5 Fri Apr 4 18:25:06 2003
+++ fenfire/org/fenfire/impl/AbstractSpace.java Sun Apr 13 03:49:05 2003
@@ -43,7 +43,7 @@
*/
public abstract class AbstractSpace implements Space{
-public static final String rcsid = "$Id: AbstractSpace.java,v 1.5 2003/04/04
23:25:06 mudyc Exp $";
+public static final String rcsid = "$Id: AbstractSpace.java,v 1.6 2003/04/13
07:49:05 tjl Exp $";
private static void pa(String s) {
System.out.println("AbstractSpace::"+s); }
protected ModularNodeTexter nodeTexter;
@@ -137,9 +137,11 @@
}
*/
+ /*
public org.nongnu.storm.Mediaserver getMediaserver() {
return null;
}
+ */
public RDFNode getMSBlockNode(String msid, RDFNode node) {
return null;
Index: fenfire/org/fenfire/impl/ModularSpace.java
diff -u fenfire/org/fenfire/impl/ModularSpace.java:1.2
fenfire/org/fenfire/impl/ModularSpace.java:1.3
--- fenfire/org/fenfire/impl/ModularSpace.java:1.2 Thu Mar 27 02:53:07 2003
+++ fenfire/org/fenfire/impl/ModularSpace.java Sun Apr 13 03:49:05 2003
@@ -39,7 +39,7 @@
* a DimManager.
*/
public class ModularSpace extends AbstractSpace {
-public static final String rcsid = "$Id: ModularSpace.java,v 1.2 2003/03/27
07:53:07 tjl Exp $";
+public static final String rcsid = "$Id: ModularSpace.java,v 1.3 2003/04/13
07:49:05 tjl Exp $";
private static void pa(String s) { System.out.println("ShortRDF"+s); }
/** Create a new ModularSpace and initialize it from a SliceVersion.
@@ -133,9 +133,11 @@
}}
+ /*
public org.nongnu.storm.Mediaserver getMediaserver() {
return null;
}
+ */
/*
public RDFNode getMSBlockNode(String msid, RDFNode node) {
Index: fenfire/org/fenfire/impl/SimpleNodeContent.java
diff -u fenfire/org/fenfire/impl/SimpleNodeContent.java:1.1
fenfire/org/fenfire/impl/SimpleNodeContent.java:1.2
--- fenfire/org/fenfire/impl/SimpleNodeContent.java:1.1 Sun Apr 6 09:05:19 2003
+++ fenfire/org/fenfire/impl/SimpleNodeContent.java Sun Apr 13 03:49:05 2003
@@ -2,7 +2,6 @@
package org.fenfire.impl;
import java.io.StringBufferInputStream;
-import com.hp.hpl.mesa.rdf.jena.model.*;
import org.nongnu.alph.Enfilade1D;
import org.nongnu.alph.xml.SpanReader;
@@ -10,7 +9,8 @@
import org.fenfire.*;
import org.fenfire.vocab.FF;
-import org.fenfire.util.ShortRDF;
+import org.fenfire.swamp.Nodes;
+import org.fenfire.swamp.Literal;
/** A trivial, NON-CACHING node content using FF.content.
@@ -19,7 +19,8 @@
*/
public class SimpleNodeContent implements NodeContent {
-public static final String rcsid = "$Id: SimpleNodeContent.java,v 1.1
2003/04/06 13:05:19 tjl Exp $";
+ public static boolean dbg = true;
+public static final String rcsid = "$Id: SimpleNodeContent.java,v 1.2
2003/04/13 07:49:05 tjl Exp $";
private static void pa(String s) { System.out.println("AlphContent: "+s); }
SpanReader spanReader = new SpanReader();
@@ -27,6 +28,7 @@
Enfilade1D.Maker enfMaker =
new org.nongnu.alph.impl.Enfilade1DImpl.Enfilade1DImplMaker();
+ Enfilade1D empty = enfMaker.makeEnfilade();
Fen fen;
@@ -39,18 +41,34 @@
this.fen = fen;
}
- public org.nongnu.alph.Enfilade1D get(RDFNode node) {
+ public NodeContent _getObserved(Fen obsFen,
+ Obs obs) {
+ // We don't need to use obs since the graph will do it for us.
+ return new SimpleNodeContent(obsFen);
+ }
+ public void _close() { }
+
+ public org.nongnu.alph.Enfilade1D get(Object node) {
+ return get(node, null);
+ }
+
+ public org.nongnu.alph.Enfilade1D get(Object node, Obs o) {
+ Object c = fen.constgraph.find1_11X(node, FF.content, o);
+ if(dbg) pa("Getting content: "+node+" "+c);
+ if(c == null) return empty;
+
+ if(!(c instanceof Literal)) {
+ if(dbg) pa("Was not literal: "+c);
+ throw new Error("Content not literal");
+ }
+
try {
- if(!((Resource)node).hasProperty(FF.content)) return null;
- // XXX Ambiguity!!
- Statement s = ((Resource)node).getProperty(FF.content);
- Literal lit = s.getLiteral();
- saxParser.parse(new StringBufferInputStream(lit.getString()),
spanReader);
+ saxParser.parse(new StringBufferInputStream(
+ ((Literal)c).getRawXMLString()), spanReader);
-
} catch (Exception e) {
pa("Exception!: "+e);
- throw new Error("getspan has an Exception!");
+ throw new Error("Get enfilade: parse Exception!");
}
Enfilade1D enf = enfMaker.makeEnfilade(spanReader.getSpans());
@@ -58,13 +76,8 @@
return enf;
}
- public void set(RDFNode node, org.nongnu.alph.Enfilade1D vstream) {
+ public void set(Object node, org.nongnu.alph.Enfilade1D vstream) {
String ser = SpanSerializer.serialize(vstream);
- ShortRDF.rmObj(fen.model, node, FF.content);
- try {
- fen.model.add((Resource)node, FF.content, ser, true);
- } catch(Exception e) {
- throw new Error("E");
- }
+ fen.graph.set1_11X(node, FF.content, Nodes.getRawXMLLiteral(ser));
}
}
Index: fenfire/org/fenfire/impl/simplenodecontent.test
diff -u fenfire/org/fenfire/impl/simplenodecontent.test:1.1
fenfire/org/fenfire/impl/simplenodecontent.test:1.2
--- fenfire/org/fenfire/impl/simplenodecontent.test:1.1 Sun Apr 6 09:05:19 2003
+++ fenfire/org/fenfire/impl/simplenodecontent.test Sun Apr 13 03:49:05 2003
@@ -5,12 +5,14 @@
from org import fenfire
from org.nongnu import alph, storm
+Nodes = fenfire.swamp.Nodes
+
import java
def setUp():
global snc, fen, enf1, enf2, node1, node2
fen = fenfire.Fen()
- fen.model = jena.mem.ModelMem()
+ fen.graph = fen.constgraph = fenfire.swamp.impl.HashGraph()
snc = fenfire.impl.SimpleNodeContent(fen)
fen.txt = snc
@@ -25,19 +27,19 @@
spm.makeTextSpan("zip"))
ns = storm.util.URN5Namespace()
- node1 = fen.model.createResource(ns.generateId())
- node2 = fen.model.createResource(ns.generateId())
+ node1 = Nodes.get(ns.generateId())
+ node2 = Nodes.get(ns.generateId())
def testPutGet():
snc.set(node1, enf1)
assert snc.get(node1).equals(enf1)
- assert snc.get(node2) == None
+ assert snc.get(node2).length() == 0
snc.set(node1, enf2)
assert snc.get(node1).equals(enf2)
- assert snc.get(node2) == None
+ assert snc.get(node2).length() == 0
-def testWhat():
- snc.set(node1, enf1)
- fen.model.getWriter("RDF/XML-ABBREV").write(fen.model,
- java.io.OutputStreamWriter(java.lang.System.out), None)
+#def testWhat():
+# snc.set(node1, enf1)
+# fen.model.getWriter("RDF/XML-ABBREV").write(fen.model,
+# java.io.OutputStreamWriter(java.lang.System.out), None)
Index: fenfire/org/fenfire/swamp/ConstGraph.java
diff -u fenfire/org/fenfire/swamp/ConstGraph.java:1.1
fenfire/org/fenfire/swamp/ConstGraph.java:1.2
--- fenfire/org/fenfire/swamp/ConstGraph.java:1.1 Thu Apr 10 07:56:52 2003
+++ fenfire/org/fenfire/swamp/ConstGraph.java Sun Apr 13 03:49:05 2003
@@ -2,10 +2,17 @@
package org.fenfire.swamp;
import java.util.Iterator;
+import org.fenfire.Obs;
public interface ConstGraph {
+ ConstGraph getObservedConstGraph(Obs o);
+
Object find1_11X(Object subject, Object predicate);
Iterator findN_11X_Iter(Object subject, Object predicate);
+ Object find1_11X(Object subject, Object predicate, Obs o);
+ Iterator findN_11X_Iter(Object subject, Object predicate, Obs o);
+
+ void close();
}
Index: fenfire/org/fenfire/swamp/Graph.java
diff -u fenfire/org/fenfire/swamp/Graph.java:1.2
fenfire/org/fenfire/swamp/Graph.java:1.3
--- fenfire/org/fenfire/swamp/Graph.java:1.2 Sat Apr 12 02:32:02 2003
+++ fenfire/org/fenfire/swamp/Graph.java Sun Apr 13 03:49:05 2003
@@ -5,6 +5,7 @@
/** A modifiable RDF graph.
*/
public interface Graph extends ConstGraph {
+ Graph getObservedGraph(org.fenfire.Obs o);
void set1_11X(Object subject, Object predicate, Object object);
// void rm_1XX(Object subject);
void rm_11X(Object subject, Object predicate);
Index: fenfire/org/fenfire/swamp/Nodes.java
diff -u fenfire/org/fenfire/swamp/Nodes.java:1.1
fenfire/org/fenfire/swamp/Nodes.java:1.2
--- fenfire/org/fenfire/swamp/Nodes.java:1.1 Thu Apr 10 07:56:52 2003
+++ fenfire/org/fenfire/swamp/Nodes.java Sun Apr 13 03:49:05 2003
@@ -18,4 +18,12 @@
* when serializing a space.
*/
// public static void appendToString(Object res, StringBuffer buf);
+
+
+ public static Literal getRawXMLLiteral(String s) {
+ return new org.fenfire.swamp.impl.StdLiteral(s, true);
+ }
+ public static Literal getStringLiteral(String s) {
+ return new org.fenfire.swamp.impl.StdLiteral(s, false);
+ }
}
Index: fenfire/org/fenfire/swamp/impl/HashGraph.java
diff -u fenfire/org/fenfire/swamp/impl/HashGraph.java:1.3
fenfire/org/fenfire/swamp/impl/HashGraph.java:1.4
--- fenfire/org/fenfire/swamp/impl/HashGraph.java:1.3 Sat Apr 12 06:39:12 2003
+++ fenfire/org/fenfire/swamp/impl/HashGraph.java Sun Apr 13 03:49:05 2003
@@ -13,7 +13,7 @@
* Relatively inefficient but a basic implementation
* that can be used as a reference.
*/
-public class HashGraph extends StdObservableGraph {
+public class HashGraph extends AbstractGraph {
/** Map: key = subject, value = (Map: key=predicate, value =
* (Set: r/l)).
Index: fenfire/org/fenfire/swamp/impl/StdObservedGraph.java
diff -u fenfire/org/fenfire/swamp/impl/StdObservedGraph.java:1.1
fenfire/org/fenfire/swamp/impl/StdObservedGraph.java:1.2
--- fenfire/org/fenfire/swamp/impl/StdObservedGraph.java:1.1 Sat Apr 12
06:39:12 2003
+++ fenfire/org/fenfire/swamp/impl/StdObservedGraph.java Sun Apr 13
03:49:05 2003
@@ -5,23 +5,23 @@
import org.fenfire.swamp.*;
import java.util.Iterator;
-public class StdObservedGraph implements ObservedGraph {
- ObservableGraph graph;
- Obs obs;
+public class StdObservedGraph extends StdObservedConstGraph implements Graph {
+ Graph graph;
- public StdObservedGraph(ObservableGraph graph, Obs obs) {
+ public StdObservedGraph(Graph graph, Obs obs) {
+ super(graph, obs);
this.graph = graph;
this.obs = obs;
}
- public void close() { }
-
- public Object find1_11X(Object subject, Object predicate) {
- return graph.find1_11X(subject, predicate, obs);
+ public void set1_11X(Object subject, Object predicate, Object object) {
+ graph.set1_11X(subject, predicate, object);
}
- public Iterator findN_11X_Iter(Object subject, Object predicate) {
- return graph.findN_11X_Iter(subject, predicate, obs);
+ public void rm_11X(Object subject, Object predicate) {
+ graph.rm_11X(subject, predicate);
+ }
+ public void rm_111(Object subject, Object predicate, Object object) {
+ graph.rm_111(subject, predicate, object);
}
-
}
Index: fenfire/org/fenfire/vocab/FF.java
diff -u fenfire/org/fenfire/vocab/FF.java:1.1
fenfire/org/fenfire/vocab/FF.java:1.2
--- fenfire/org/fenfire/vocab/FF.java:1.1 Sun Apr 6 09:05:19 2003
+++ fenfire/org/fenfire/vocab/FF.java Sun Apr 13 03:49:05 2003
@@ -1,16 +1,12 @@
+// (c) Tuomas J. Lukka
package org.fenfire.vocab;
-import com.hp.hpl.mesa.rdf.jena.model.*;
-import com.hp.hpl.mesa.rdf.jena.common.*;
+import org.fenfire.swamp.Nodes;
public class FF {
- static public Property content;
+ static public Object content;
static {
- try {
- content = new PropertyImpl("http://fenfire.org/ff#content");
- } catch (RDFException e) {
- throw new Error("Failed: "+e);
- }
+ content = Nodes.get("http://fenfire.org/ff#content");
}
}