|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object com.hp.hpl.jena.graph.impl.GraphBase com.hp.hpl.jena.db.GraphRDB
public class GraphRDB
A persistent Graph implementation using a relational database for storage.
This graph stores data persistently in a relational database. It supports the full Graph interface and should operate just like a GraphMem.
Internally, each GraphRDB keeps a list of specialized graphs. For each operation, it works through the list of graphs attempting to perform the operation on each one.
The intention is that each type of specialized graph is optimized for a different type of triple. For example, one type of specialied graph might be optimized for storing triples in a particular ontology. The last specialized graph in the list is always a generic one that can handle any valid RDF triple.
The order of the specialized graphs is consistent and immutable after the graph is constructed. This aids optimization. For example, if a specialized graph is asked to perform an operatin on a triple, and it knows that it would have added it if asked, then it can advise the calling GraphRDB that the operaton is complete even though it doesn't know anything about other specialized graphs later in the list.
Field Summary | |
---|---|
static java.lang.String |
DEFAULT
The name used for the default graph. |
static int |
OPTIMIZE_ALL_REIFICATIONS_AND_HIDE_NOTHING
Optimize all triples representing part or all of a reified statement; this is the recommended option. |
static int |
OPTIMIZE_AND_HIDE_FULL_AND_PARTIAL_REIFICATIONS
Optimize and hide any triples representing part or all of a reified statement. |
static int |
OPTIMIZE_AND_HIDE_ONLY_FULL_REIFICATIONS
Optimize and hide only fully reified statements added via the Reifier interface, use only for backward-compatability with Jena1. |
Fields inherited from class com.hp.hpl.jena.graph.impl.GraphBase |
---|
TOSTRING_TRIPLE_BASE, TOSTRING_TRIPLE_LIMIT |
Fields inherited from interface com.hp.hpl.jena.graph.Graph |
---|
emptyGraph |
Constructor Summary | |
---|---|
GraphRDB(IDBConnection con,
java.lang.String graphID,
Graph requestedProperties,
int reificationBehaviour,
boolean isNew)
Construct a new GraphRDB |
Method Summary | |
---|---|
void |
add(java.util.List<Triple> triples)
Add a list of triples. |
void |
clear()
Remove all statements from this graph. |
void |
close()
Free all resources, any further use of this Graph is an error. |
com.hp.hpl.jena.db.impl.DBQueryHandler |
DBqueryHandler()
|
void |
delete(java.util.List<Triple> triples)
Delete a list of triples. |
BulkUpdateHandler |
getBulkUpdateHandler()
returns this Graph's bulk-update handler |
Capabilities |
getCapabilities()
Database graphs do not presently support the equivalence of plain string literals and xsd:string literals (and other typed literals in general). |
IDBConnection |
getConnection()
Return the connection |
boolean |
getDoDuplicateCheck()
Get the value of DoDuplicateCheck |
boolean |
getDoFastpath()
Get the value of DoFastpath. |
Node |
getNode()
Returns the Node for this model in the system properties graph. |
PrefixMapping |
getPrefixMapping()
returns this Graph's prefix mapping. |
com.hp.hpl.jena.util.iterator.ExtendedIterator<Triple> |
getPropertyTriples()
Returns triples that describe this graph in the system properties graph. |
boolean |
getQueryFullReified()
Get the value of QueryFullReified. |
boolean |
getQueryOnlyAsserted()
Get the value of QueryOnlyAsserted. |
boolean |
getQueryOnlyReified()
Get the value of QueryOnlyReified. |
Reifier |
getReifier()
returns this Graph's reifier. |
java.util.Iterator<com.hp.hpl.jena.db.impl.SpecializedGraph> |
getSpecializedGraphs()
Return an iterator over the specialized graphs for this graph |
TransactionHandler |
getTransactionHandler()
returns this Graph's transaction handler |
boolean |
graphBaseContains(Triple t)
|
com.hp.hpl.jena.util.iterator.ExtendedIterator<Triple> |
graphBaseFind(TripleMatch m)
|
int |
graphBaseSize()
|
boolean |
isClosed()
Answer true iff .close() has been called onn this Graph. |
void |
performAdd(Triple t)
|
void |
performDelete(Triple t)
|
QueryHandler |
queryHandler()
returns this Graph's query handler |
int |
reificationBehavior()
Return the reification behavior (GraphRDB) for this graph |
int |
reifierSize()
|
com.hp.hpl.jena.util.iterator.ExtendedIterator<Triple> |
reifierTriples(TripleMatch m)
|
void |
remove()
Remove this Graph entirely from the database. |
void |
setDoDuplicateCheck(boolean bool)
Set the value of DoDuplicateCheck. |
void |
setDoFastpath(boolean val)
Set the value of DoFastpath. |
void |
setDoImplicitJoin(boolean val)
Set the value of DoImplicitJoin. |
void |
setQueryFullReified(boolean opt)
Set the value of QueryFullReified. |
void |
setQueryOnlyAsserted(boolean opt)
Set the value of QueryOnlyAsserted. |
void |
setQueryOnlyReified(boolean opt)
Set the value of QueryOnlyReified. |
static ReificationStyle |
styleRDB(int behaviour)
Answer the reification style corresponding to the DB behaviour integer. |
static int |
styleRDB(ReificationStyle style)
Answer the integer representing the RDB reifier style given the Reifier style. |
Methods inherited from class com.hp.hpl.jena.graph.impl.GraphBase |
---|
add, contains, contains, delete, dependsOn, find, find, forTestingOnly_graphBaseFind, getEventManager, getStatisticsHandler, isEmpty, isIsomorphicWith, notifyAdd, notifyDelete, size, toString, toString |
Methods inherited from class java.lang.Object |
---|
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Methods inherited from interface com.hp.hpl.jena.graph.Graph |
---|
contains, contains, delete, dependsOn, find, find, getEventManager, getStatisticsHandler, isEmpty, isIsomorphicWith, size |
Methods inherited from interface com.hp.hpl.jena.graph.GraphAdd |
---|
add |
Field Detail |
---|
public static final java.lang.String DEFAULT
public static final int OPTIMIZE_ALL_REIFICATIONS_AND_HIDE_NOTHING
This is the best choice in almost every case. It optimizes all reified triples regardless of how they are added to the graph, provides a simple interface, and is quite efficient.
With this choice, if you do add(A)
then
contains(A)
will return true for all A.
public static final int OPTIMIZE_AND_HIDE_FULL_AND_PARTIAL_REIFICATIONS
This optimizes all triples but hides them so they are visible only via the reifier interface. There is no significant performance advantage in using this option and it is not recommended. It is included only for compatability with in-memory graphs.
Note that it will also cause unexpected behaviour, for example, if you do:
add(new Triple( s, RDF.predicate, o))
then that triple will be hidden and a subsequent call to contains
,
find
, or size
will not show it's presence. The only
way to see that statement is to use Reifier.getHiddenTriples
.
public static final int OPTIMIZE_AND_HIDE_ONLY_FULL_REIFICATIONS
This treats triples added through the Reifier interface as distinct from those added using the normal Graph.add function. Those added via the reifier interface will be optimized and hidden from view. Those added via Graph.add will not be optimized and will be visible.
Since many of the techniques for adding triple to Graphs use Graph.add, and that is never optimized, this is not usually a good choice. It is included only for backward compability with Jena 1. There is no performance advantage in using this option.
Constructor Detail |
---|
public GraphRDB(IDBConnection con, java.lang.String graphID, Graph requestedProperties, int reificationBehaviour, boolean isNew)
con
- an open connection to the databasegraphID
- is the name of a graph or GraphRDB.DEFAULTrequestedProperties
- a set of default properties.
(May be null, if non-null should be a superset of the properties
obtained by calling ModelRDB.getDefaultModelProperties ).reificationBehaviour
- specifies how this graph should handle reified triples.
The options are OPTIMIZE_ALL_REIFICATIONS_AND_HIDE_NOTHING
(strongly recommended), OPTIMIZE_AND_HIDE_FULL_AND_PARTIAL_REIFICATIONS
(included only for full compatability with all the options for in-memory Graphs),
OPTIMIZE_AND_HIDE_ONLY_FULL_REIFICATIONS (included only for compatability with older jena1-style usage).isNew
- is true if the graph doesn't already exist and
false otherwise. (If unsure, test for existance by using
IDBConnection.containsGraph ).Method Detail |
---|
public static int styleRDB(ReificationStyle style)
public static ReificationStyle styleRDB(int behaviour)
public Capabilities getCapabilities()
getCapabilities
in interface Graph
getCapabilities
in class com.hp.hpl.jena.graph.impl.GraphBase
Graph.getCapabilities()
public Node getNode()
public com.hp.hpl.jena.util.iterator.ExtendedIterator<Triple> getPropertyTriples()
public boolean isClosed()
Graph
isClosed
in interface Graph
isClosed
in class com.hp.hpl.jena.graph.impl.GraphBase
public void performAdd(Triple t)
performAdd
in interface com.hp.hpl.jena.graph.impl.GraphWithPerform
performAdd
in class com.hp.hpl.jena.graph.impl.GraphBase
public void add(java.util.List<Triple> triples)
triples
- List to be added. This is unchanged by the callpublic void performDelete(Triple t)
performDelete
in interface com.hp.hpl.jena.graph.impl.GraphWithPerform
performDelete
in class com.hp.hpl.jena.graph.impl.GraphBase
public void delete(java.util.List<Triple> triples)
triples
- List to be deleted. This is unchanged by the call.public int graphBaseSize()
graphBaseSize
in class com.hp.hpl.jena.graph.impl.GraphBase
public boolean graphBaseContains(Triple t)
graphBaseContains
in class com.hp.hpl.jena.graph.impl.GraphBase
public com.hp.hpl.jena.util.iterator.ExtendedIterator<Triple> graphBaseFind(TripleMatch m)
graphBaseFind
in class com.hp.hpl.jena.graph.impl.GraphBase
public com.hp.hpl.jena.util.iterator.ExtendedIterator<Triple> reifierTriples(TripleMatch m)
reifierTriples
in class com.hp.hpl.jena.graph.impl.GraphBase
public int reifierSize()
reifierSize
in class com.hp.hpl.jena.graph.impl.GraphBase
public BulkUpdateHandler getBulkUpdateHandler()
Graph
getBulkUpdateHandler
in interface Graph
getBulkUpdateHandler
in class com.hp.hpl.jena.graph.impl.GraphBase
public Reifier getReifier()
Graph
getReifier
in interface Graph
getReifier
in class com.hp.hpl.jena.graph.impl.GraphBase
public PrefixMapping getPrefixMapping()
Graph
getPrefixMapping
in interface Graph
getPrefixMapping
in class com.hp.hpl.jena.graph.impl.GraphBase
public TransactionHandler getTransactionHandler()
Graph
getTransactionHandler
in interface Graph
getTransactionHandler
in class com.hp.hpl.jena.graph.impl.GraphBase
public void close()
Graph
close
in interface Graph
close
in class com.hp.hpl.jena.graph.impl.GraphBase
public void remove()
public void clear()
public IDBConnection getConnection()
public int reificationBehavior()
public java.util.Iterator<com.hp.hpl.jena.db.impl.SpecializedGraph> getSpecializedGraphs()
public QueryHandler queryHandler()
Graph
queryHandler
in interface Graph
queryHandler
in class com.hp.hpl.jena.graph.impl.GraphBase
public com.hp.hpl.jena.db.impl.DBQueryHandler DBqueryHandler()
public boolean getDoDuplicateCheck()
public void setDoDuplicateCheck(boolean bool)
bool
- booleanpublic void setDoFastpath(boolean val)
val
- booleanpublic boolean getDoFastpath()
public void setQueryOnlyAsserted(boolean opt)
opt
- booleanpublic boolean getQueryOnlyAsserted()
public void setQueryOnlyReified(boolean opt)
opt
- booleanpublic boolean getQueryOnlyReified()
public void setQueryFullReified(boolean opt)
opt
- booleanpublic boolean getQueryFullReified()
public void setDoImplicitJoin(boolean val)
val
- boolean
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |