80 |
|
|
81 |
Quite likely code generation will be used. |
Quite likely code generation will be used. |
82 |
|
|
83 |
|
However, we shall also provide less efficient but more comfortable |
84 |
|
versions which take null as the wildcard. |
85 |
|
|
86 |
|
- The non-OO approach is not nice for some code. Could we use OO instead? |
87 |
|
|
88 |
|
RESOLVED: No. Need for speed. |
89 |
|
|
90 |
|
HOWEVER, it's pretty simple to build an OO API on top for the less |
91 |
|
speed-sensitive locations :: |
92 |
|
|
93 |
|
class OONode { |
94 |
|
Graph g; |
95 |
|
Object node; |
96 |
|
... |
97 |
|
} |
98 |
|
|
99 |
|
and use it as :: |
100 |
|
|
101 |
|
person = OONode(thePersonNode); |
102 |
|
name = person.getProperty(nameProperty); |
103 |
|
|
104 |
|
- What should the RDF model/graph/thing be called? You know, the |
105 |
|
set of triples? |
106 |
|
|
107 |
|
RESOLVED: Graph. A nice word, and has images with it that may |
108 |
|
help us leave the word "space" behind. |
109 |
|
|
110 |
|
- how should the methods in Graph be named? |
111 |
|
|
112 |
|
Open. I'm still flexible about this. |
113 |
|
|
114 |
|
- What should the resource mapper and its methods be called? RMap? |
115 |
|
Nodes? |
116 |
|
|
117 |
|
Still open, under consideration. |
118 |
|
|
119 |
Problems with jena |
Problems with jena |
120 |
================== |
================== |
137 |
|
|
138 |
Efficiency is also important: in order for Fenfire to work properly, |
Efficiency is also important: in order for Fenfire to work properly, |
139 |
*ALL* searches within memory must be O(1). Jena makes no guarantees, |
*ALL* searches within memory must be O(1). Jena makes no guarantees, |
140 |
since its goal is to support different implementations of Model. |
since its goal is to support different implementations of Graph. |
141 |
For us, the different implementations do not matter so much as raw |
For us, the different implementations do not matter so much as raw |
142 |
efficiency of the memory-based implementation. This is quite different |
efficiency of the memory-based implementation. This is quite different |
143 |
from most RDF uses, since the usual scenario is that there is not too much |
from most RDF uses, since the usual scenario is that there is not too much |
191 |
To avoid this, we'll drop the semantics (subject,predicate,object) for now |
To avoid this, we'll drop the semantics (subject,predicate,object) for now |
192 |
and name all methods according to a general scheme. :: |
and name all methods according to a general scheme. :: |
193 |
|
|
194 |
public interface ConstFirstOrderModel { |
public interface ConstFirstOrderGraph { |
195 |
public Object find1_11X(Object subject, Object predicate); |
public Object find1_11X(Object subject, Object predicate); |
196 |
public Object find1_X11(Object predicate, Object subject); |
public Object find1_X11(Object predicate, Object subject); |
197 |
... |
... |
199 |
... |
... |
200 |
} |
} |
201 |
|
|
202 |
public interface FirstOrderModel extends ConstFirstOrderModel { |
public interface FirstOrderGraph extends ConstFirstOrderGraph { |
203 |
public void set1_11X(Object subject, Object predicate, Object object); |
public void set1_11X(Object subject, Object predicate, Object object); |
204 |
public void set1_X11(Object subject, Object predicate, Object object); |
public void set1_X11(Object subject, Object predicate, Object object); |
205 |
... |
... |