Class GraphPersistenceWrapper
The Graph Persistence Wrapper is a wrapper around another Graph that can be used to batch persistence actions with the ability to Flush/Discard changes as desired.
Inherited Members
Namespace: VDS.RDF
Assembly: dotNetRdf.dll
Syntax
public class GraphPersistenceWrapper : ITransactionalGraph, IGraph, INodeFactory, IDisposable, ITripleIndex, IEquatable<IGraph>
Remarks
When disposed any outstanding changes are always flushed so if you make changes which you don't want to persist be sure to call the Discard() method before disposing of the Graph.
Implementors who wish to make persistent graphs should extend this class and override the SupportsTriplePersistence property and the PersistInsertedTriples(), PersistDeletedTriples() and PersistGraph() methods. If you return true for the property then the PersistInsertedTriples() and PersistDeletedTriples() methods will be invoked to do persistence on batches of Triples. If your persistence mechanism requires persisting the entire graph at once return false for the property and override the PersistGraph() method appropriately.
Warning
Note that the wrapper does not automatically dispose of the wrapped graph when the wrapper is Dispose, this is by design since disposing of the wrapped Graph can have unintended consequences.
Constructors
| Edit this page View SourceGraphPersistenceWrapper(bool)
Creates a new Graph Persistence Wrapper around a new Graph with the given always queue setting.
Declaration
public GraphPersistenceWrapper(bool alwaysQueueActions)
Parameters
| Type | Name | Description |
|---|---|---|
| bool | alwaysQueueActions | Whether to always queue actions. |
Remarks
The alwaysQueueActions setting when enabled will cause the wrapper to queue Asserts and Retracts for persistence regardless of whether the relevant Triples already exist (i.e. normally if a Triple exists is cannot be asserted again and if it doesn't exist it cannot be retracted). This is useful for creating derived wrappers which operate in write-only mode i.e. append mode for an existing graph that may be too large to reasonably load into memory.
GraphPersistenceWrapper(IGraph)
Creates a new Graph Persistence Wrapper around the given Graph.
Declaration
public GraphPersistenceWrapper(IGraph g)
Parameters
| Type | Name | Description |
|---|---|---|
| IGraph | g | Graph. |
GraphPersistenceWrapper(IGraph, bool)
Creates a new Graph Persistence Wrapper around the given Graph with the given always queue setting.
Declaration
public GraphPersistenceWrapper(IGraph g, bool alwaysQueueActions)
Parameters
| Type | Name | Description |
|---|---|---|
| IGraph | g | Graph. |
| bool | alwaysQueueActions | Whether to always queue actions. |
Remarks
The alwaysQueueActions setting when enabled will cause the wrapper to queue Asserts and Retracts for persistence regardless of whether the relevant Triples already exist (i.e. normally if a Triple exists is cannot be asserted again and if it doesn't exist it cannot be retracted). This is useful for creating derived wrappers which operate in write-only mode i.e. append mode for an existing graph that may be too large to reasonably load into memory.
GraphPersistenceWrapper(IRefNode)
Creates a new Graph Persistence Wrapper around a new Graph.
Declaration
public GraphPersistenceWrapper(IRefNode graphName = null)
Parameters
| Type | Name | Description |
|---|---|---|
| IRefNode | graphName | The name to assign to the new graph. |
Fields
| Edit this page View Source_g
Underlying Graph this is a wrapper around.
Declaration
protected readonly IGraph _g
Field Value
| Type | Description |
|---|---|
| IGraph |
Properties
| Edit this page View SourceAllNodes
Gets the unique Subject, Predicate and Object nodes of the asserted triples in the Graph.
Declaration
public IEnumerable<INode> AllNodes { get; }
Property Value
| Type | Description |
|---|---|
| IEnumerable<INode> |
AllQuotedNodes
Gets the unique subject, predicate and object nodes of the quoted triples in the graph.
Declaration
public IEnumerable<INode> AllQuotedNodes { get; }
Property Value
| Type | Description |
|---|---|
| IEnumerable<INode> |
BaseUri
Gets/Sets the Base URI of the Graph.
Declaration
public Uri BaseUri { get; set; }
Property Value
| Type | Description |
|---|---|
| Uri |
IsEmpty
Gets whether the Graph is empty.
Declaration
public bool IsEmpty { get; }
Property Value
| Type | Description |
|---|---|
| bool |
LanguageTagValidation
Get or set the type of validation to apply to language tags when creating language-tagged literal nodes.
Declaration
public LanguageTagValidationMode LanguageTagValidation { get; set; }
Property Value
| Type | Description |
|---|---|
| LanguageTagValidationMode |
Name
Gets the name of the graph.
Declaration
public IRefNode Name { get; }
Property Value
| Type | Description |
|---|---|
| IRefNode |
NamespaceMap
Gets the Namespace Map for the Graph.
Declaration
public INamespaceMapper NamespaceMap { get; }
Property Value
| Type | Description |
|---|---|
| INamespaceMapper |
Nodes
Gets the unique Subject and Object nodes of the Graph.
Declaration
public IEnumerable<INode> Nodes { get; }
Property Value
| Type | Description |
|---|---|
| IEnumerable<INode> |
Remarks
This property returns only nodes that appear in the Subject or Object position in asserted triples. To retrieve a list of all INode instances in a graph including those in Predicate position in a triple, use the AllNodes property.
NormalizeLiteralValues
Get or set whether to normalize literal values.
Declaration
public bool NormalizeLiteralValues { get; set; }
Property Value
| Type | Description |
|---|---|
| bool |
QuotedNodes
Gets the unique subject and object nodes of the quoted triples in the graph.
Declaration
public IEnumerable<INode> QuotedNodes { get; }
Property Value
| Type | Description |
|---|---|
| IEnumerable<INode> |
QuotedTriples
Gets the quoted triples in the graph.
Declaration
public IEnumerable<Triple> QuotedTriples { get; }
Property Value
| Type | Description |
|---|---|
| IEnumerable<Triple> |
SupportsTriplePersistence
Used to indicate whether the persistence mechansim can persist batches of Triples.
Declaration
protected virtual bool SupportsTriplePersistence { get; }
Property Value
| Type | Description |
|---|---|
| bool |
Remarks
If true then the PersistInsertedTriples() and PersistDeletedTriples() methods are used to persist changes when the Flush() method is called. If false then the PersistGraph() method will be invoked instead.
Triples
Gets the Triple Collection for the Graph.
Declaration
public BaseTripleCollection Triples { get; }
Property Value
| Type | Description |
|---|---|
| BaseTripleCollection |
UriFactory
Get or set the factory to use when creating URIs.
Declaration
public IUriFactory UriFactory { get; set; }
Property Value
| Type | Description |
|---|---|
| IUriFactory |
Methods
| Edit this page View SourceAssert(IEnumerable<Triple>)
Asserts Triples in the Graph.
Declaration
public bool Assert(IEnumerable<Triple> ts)
Parameters
| Type | Name | Description |
|---|---|---|
| IEnumerable<Triple> | ts | Triples. |
Returns
| Type | Description |
|---|---|
| bool |
Assert(Triple)
Asserts a Triple in the Graph.
Declaration
public virtual bool Assert(Triple t)
Parameters
| Type | Name | Description |
|---|---|---|
| Triple | t | Triple. |
Returns
| Type | Description |
|---|---|
| bool |
AttachEventHandlers(BaseTripleCollection)
Helper method for attaching the necessary event Handlers to a Triple Collection.
Declaration
protected void AttachEventHandlers(BaseTripleCollection tripleCollection)
Parameters
| Type | Name | Description |
|---|---|---|
| BaseTripleCollection | tripleCollection | Triple Collection. |
Remarks
May be useful if you replace the Triple Collection after instantiation e.g. as done in SparqlView's.
Clear()
Clears the Graph.
Declaration
public void Clear()
ContainsQuotedTriple(Triple)
Gets whether a given triple is quoted in this graph.
Declaration
public bool ContainsQuotedTriple(Triple t)
Parameters
| Type | Name | Description |
|---|---|---|
| Triple | t | Triple to test. |
Returns
| Type | Description |
|---|---|
| bool | True if the triple is quoted in this graph, false otherwise. |
ContainsTriple(Triple)
Gets whether a given triple is asserted in this Graph.
Declaration
public virtual bool ContainsTriple(Triple t)
Parameters
| Type | Name | Description |
|---|---|---|
| Triple | t | Triple to test. |
Returns
| Type | Description |
|---|---|
| bool | True if the triple is asserted in this graph, false otherwise. |
CreateBlankNode()
Creates a new Blank Node.
Declaration
public IBlankNode CreateBlankNode()
Returns
| Type | Description |
|---|---|
| IBlankNode |
CreateBlankNode(string)
Creates a new Blank Node with the given Node ID.
Declaration
public IBlankNode CreateBlankNode(string nodeId)
Parameters
| Type | Name | Description |
|---|---|---|
| string | nodeId | Node ID. |
Returns
| Type | Description |
|---|---|
| IBlankNode |
CreateGraphLiteralNode()
Creates a new Graph Literal Node.
Declaration
public IGraphLiteralNode CreateGraphLiteralNode()
Returns
| Type | Description |
|---|---|
| IGraphLiteralNode |
CreateGraphLiteralNode(IGraph)
Creates a new Graph Literal Node with the given sub-graph.
Declaration
public IGraphLiteralNode CreateGraphLiteralNode(IGraph subgraph)
Parameters
| Type | Name | Description |
|---|---|---|
| IGraph | subgraph | Sub-graph. |
Returns
| Type | Description |
|---|---|
| IGraphLiteralNode |
CreateLiteralNode(string)
Creates a new Literal Node.
Declaration
public ILiteralNode CreateLiteralNode(string literal)
Parameters
| Type | Name | Description |
|---|---|---|
| string | literal | Value. |
Returns
| Type | Description |
|---|---|
| ILiteralNode |
CreateLiteralNode(string, string)
Creates a new Literal Node with the given Language.
Declaration
public ILiteralNode CreateLiteralNode(string literal, string langSpec)
Parameters
| Type | Name | Description |
|---|---|---|
| string | literal | Value. |
| string | langSpec | Language. |
Returns
| Type | Description |
|---|---|
| ILiteralNode |
CreateLiteralNode(string, Uri)
Creates a new Literal Node with the given Datatype.
Declaration
public ILiteralNode CreateLiteralNode(string literal, Uri datatype)
Parameters
| Type | Name | Description |
|---|---|---|
| string | literal | Value. |
| Uri | datatype | Datatype URI. |
Returns
| Type | Description |
|---|---|
| ILiteralNode |
CreateTripleNode(Triple)
Creates a node that quotes the given triple.
Declaration
public ITripleNode CreateTripleNode(Triple triple)
Parameters
| Type | Name | Description |
|---|---|---|
| Triple | triple | The triple to be the quoted value of the created node. |
Returns
| Type | Description |
|---|---|
| ITripleNode |
CreateUriNode()
Creates a new URI Node that references the Graphs Base URI.
Declaration
public IUriNode CreateUriNode()
Returns
| Type | Description |
|---|---|
| IUriNode |
CreateUriNode(string)
Creates a new URI Node from a QName.
Declaration
public IUriNode CreateUriNode(string qName)
Parameters
| Type | Name | Description |
|---|---|---|
| string | qName | QName. |
Returns
| Type | Description |
|---|---|
| IUriNode |
CreateUriNode(Uri)
Creates a new URI Node.
Declaration
public IUriNode CreateUriNode(Uri uri)
Parameters
| Type | Name | Description |
|---|---|---|
| Uri | uri | URI. |
Returns
| Type | Description |
|---|---|
| IUriNode |
CreateVariableNode(string)
Creates a new Variable Node.
Declaration
public IVariableNode CreateVariableNode(string varName)
Parameters
| Type | Name | Description |
|---|---|---|
| string | varName | Variable Name. |
Returns
| Type | Description |
|---|---|
| IVariableNode |
DetachEventHandlers(BaseTripleCollection)
Helper method for detaching the necessary event Handlers from a Triple Collection.
Declaration
protected void DetachEventHandlers(BaseTripleCollection tripleCollection)
Parameters
| Type | Name | Description |
|---|---|---|
| BaseTripleCollection | tripleCollection | Triple Collection. |
Remarks
May be useful if you replace the Triple Collection after instantiation e.g. as done in SparqlView's.
Difference(IGraph)
Computes the Difference between this Graph the given Graph.
Declaration
public GraphDiffReport Difference(IGraph g)
Parameters
| Type | Name | Description |
|---|---|---|
| IGraph | g | Graph. |
Returns
| Type | Description |
|---|---|
| GraphDiffReport |
Remarks
Produces a report which shows the changes that must be made to this Graph to produce the given Graph.
Discard()
Discards all changes which have yet to be persisted so that they are not persisted to the underlying storage.
Declaration
public void Discard()
Dispose()
Disposes of the persistence wrapper and in doing so persists any changes to the underlying storage.
Declaration
public void Dispose()
Dispose(bool)
Disposes of the persistence wrapper and in doing so persists any changes to the underlying storage.
Declaration
protected void Dispose(bool disposing)
Parameters
| Type | Name | Description |
|---|---|---|
| bool | disposing | Whether the method was called from Dispose() or the destructor. |
Equals(IGraph)
Determines whether this graph is equal to another graph.
Declaration
public bool Equals(IGraph other)
Parameters
| Type | Name | Description |
|---|---|---|
| IGraph | other | Object to test. |
Returns
| Type | Description |
|---|---|
| bool |
Equals(IGraph, out Dictionary<INode, INode>)
Determines whether this Graph is equal to the given Graph.
Declaration
public bool Equals(IGraph g, out Dictionary<INode, INode> mapping)
Parameters
| Type | Name | Description |
|---|---|---|
| IGraph | g | Graph to test for equality. |
| Dictionary<INode, INode> | mapping | Mapping of Blank Nodes iff the Graphs are equal and contain some Blank Nodes. |
Returns
| Type | Description |
|---|---|
| bool |
Remarks
The algorithm used to determine Graph equality is based in part on a Iterative Vertex Classification Algorithm described in a Technical Report from HP by Jeremy J Carroll -. Matching RDF Graphs
Graph Equality is determined according to the following algorithm:.
- If the given Graph is null Graphs are not equal
- If the given Graph is this Graph (as determined by Reference Equality) then Graphs are equal
- If the Graphs have a different number of Triples they are not equal
- Declare a list of Triples which are the Triples of the given Graph called OtherTriples
- Declare two dictionaries of Nodes to Integers which are called LocalClassification and OtherClassification
- For Each Triple in this Graph
- If it is a Ground Triple and cannot be found and removed from OtherTriples then Graphs are not equal since the Triple does not exist in both Graphs
- If it contains Blank Nodes track the number of usages of this Blank Node in LocalClassification
- If there are any Triples remaining in OtherTriples which are Ground Triples then Graphs are not equal since this Graph does not contain them
- If all the Triples from both Graphs were Ground Triples and there were no Blank Nodes then the Graphs are equal
- Iterate over the remaining Triples in OtherTriples and populate the OtherClassification
- If the count of the two classifications is different the Graphs are not equal since there are differing numbers of Blank Nodes in the Graph
- Now build two additional dictionaries of Integers to Integers which are called LocalDegreeClassification and OtherDegreeClassification. Iterate over LocalClassification and OtherClassification such that the corresponding degree classifications contain a mapping of the number of Blank Nodes with a given degree
- If the count of the two degree classifications is different the Graphs are not equal since there are not the same range of Blank Node degrees in both Graphs
- For All classifications in LocalDegreeClassification there must be a matching classification in OtherDegreeClassification else the Graphs are not equal
- Then build a possible mapping using the following rules:
- Any Blank Node used only once should be mapped to an equivalent Blank Node in the other Graph. If this is not possible then the Graphs are not equal
- Any Blank Node with a unique degree should be mapped to an equivalent Blank Node in the other Graph. If this is not possible then the Graphs are not equal
- Keep a copy of the mapping up to this point as a Base Mapping for use as a fallback in later steps
- Build up lists of dependent pairs of Blank Nodes for both Graphs
- Use these lists to determine if there are any independent nodes not yet mapped. These should be mapped to equivalent Blank Nodes in the other Graph, if this is not possible the Graphs are not equal
- Use the Dependencies and existing mappings to generate a possible mapping
- If a Complete Possible Mapping (there is a Mapping for each Blank Node from this Graph to the Other Graph) then test this mapping. If it succeeds then the Graphs are equal
- Otherwise we now fallback to the Base Mapping and use it as a basis for Brute Forcing the possible solution space and testing every possibility until either a mapping works or we find the Graphs to be non-equal
~GraphPersistenceWrapper()
Destructor for the wrapper to ensure that Dispose() is called and thus that persistence happens
Declaration
protected ~GraphPersistenceWrapper()
Flush()
Flushes all changes which have yet to be persisted to the underlying storage.
Declaration
public void Flush()
GetBlankNode(string)
Attempts to get the Blank Node with the given ID.
Declaration
public IBlankNode GetBlankNode(string nodeId)
Parameters
| Type | Name | Description |
|---|---|---|
| string | nodeId | Node ID. |
Returns
| Type | Description |
|---|---|
| IBlankNode | The Node if it exists or null. |
GetLiteralNode(string)
Attempts to get the Literal Node with the given Value.
Declaration
public ILiteralNode GetLiteralNode(string literal)
Parameters
| Type | Name | Description |
|---|---|---|
| string | literal | Value. |
Returns
| Type | Description |
|---|---|
| ILiteralNode | The Node if it exists or null. |
GetLiteralNode(string, string)
Attempts to get the Literal Node with the given Value and Language.
Declaration
public ILiteralNode GetLiteralNode(string literal, string langspec)
Parameters
| Type | Name | Description |
|---|---|---|
| string | literal | Value. |
| string | langspec | Language. |
Returns
| Type | Description |
|---|---|
| ILiteralNode | The Node if it exists or null. |
GetLiteralNode(string, Uri)
Attempts to get the Literal Node with the given Value and Datatype.
Declaration
public ILiteralNode GetLiteralNode(string literal, Uri datatype)
Parameters
| Type | Name | Description |
|---|---|---|
| string | literal | Value. |
| Uri | datatype | Datatype URI. |
Returns
| Type | Description |
|---|---|
| ILiteralNode | The Node if it exists or null otherwise. |
GetNextBlankNodeID()
Gets the next available Blank Node ID.
Declaration
public string GetNextBlankNodeID()
Returns
| Type | Description |
|---|---|
| string |
GetQuoted(Uri)
Selects all quoted triples which have a Uri Node with the given Uri.
Declaration
public IEnumerable<Triple> GetQuoted(Uri uri)
Parameters
| Type | Name | Description |
|---|---|---|
| Uri | uri | Uri. |
Returns
| Type | Description |
|---|---|
| IEnumerable<Triple> |
GetQuoted(INode)
Selects all quoted triples which contain the given Node.
Declaration
public IEnumerable<Triple> GetQuoted(INode n)
Parameters
| Type | Name | Description |
|---|---|---|
| INode | n | Node. |
Returns
| Type | Description |
|---|---|
| IEnumerable<Triple> |
GetQuotedWithObject(Uri)
Selects all quoted triples where the Object is a Uri Node with the given Uri.
Declaration
public IEnumerable<Triple> GetQuotedWithObject(Uri u)
Parameters
| Type | Name | Description |
|---|---|---|
| Uri | u | Uri. |
Returns
| Type | Description |
|---|---|
| IEnumerable<Triple> |
GetQuotedWithObject(INode)
Selects all quoted triples where the Object is a given Node.
Declaration
public IEnumerable<Triple> GetQuotedWithObject(INode n)
Parameters
| Type | Name | Description |
|---|---|---|
| INode | n | Node. |
Returns
| Type | Description |
|---|---|
| IEnumerable<Triple> |
GetQuotedWithPredicate(Uri)
Selects all quoted triples where the Predicate is a Uri Node with the given Uri.
Declaration
public IEnumerable<Triple> GetQuotedWithPredicate(Uri u)
Parameters
| Type | Name | Description |
|---|---|---|
| Uri | u | Uri. |
Returns
| Type | Description |
|---|---|
| IEnumerable<Triple> |
GetQuotedWithPredicate(INode)
Selects all quoted triples where the Predicate is a given Node.
Declaration
public IEnumerable<Triple> GetQuotedWithPredicate(INode n)
Parameters
| Type | Name | Description |
|---|---|---|
| INode | n | Node. |
Returns
| Type | Description |
|---|---|
| IEnumerable<Triple> |
GetQuotedWithPredicateObject(INode, INode)
Selects all quoted triples with the given Predicate and Object.
Declaration
public IEnumerable<Triple> GetQuotedWithPredicateObject(INode pred, INode obj)
Parameters
| Type | Name | Description |
|---|---|---|
| INode | pred | Predicate. |
| INode | obj | Object. |
Returns
| Type | Description |
|---|---|
| IEnumerable<Triple> |
GetQuotedWithSubject(Uri)
Selects all quoted triples where the Subject is a Uri Node with the given Uri.
Declaration
public IEnumerable<Triple> GetQuotedWithSubject(Uri u)
Parameters
| Type | Name | Description |
|---|---|---|
| Uri | u | Uri. |
Returns
| Type | Description |
|---|---|
| IEnumerable<Triple> |
GetQuotedWithSubject(INode)
Selects all quoted triples where the Subject is a given Node.
Declaration
public IEnumerable<Triple> GetQuotedWithSubject(INode n)
Parameters
| Type | Name | Description |
|---|---|---|
| INode | n | Node. |
Returns
| Type | Description |
|---|---|
| IEnumerable<Triple> |
GetQuotedWithSubjectObject(INode, INode)
Selects all quoted triples with the given Subject and Object.
Declaration
public IEnumerable<Triple> GetQuotedWithSubjectObject(INode subj, INode obj)
Parameters
| Type | Name | Description |
|---|---|---|
| INode | subj | Subject. |
| INode | obj | Object. |
Returns
| Type | Description |
|---|---|
| IEnumerable<Triple> |
GetQuotedWithSubjectPredicate(INode, INode)
Selects all quoted triples with the given Subject and Predicate.
Declaration
public IEnumerable<Triple> GetQuotedWithSubjectPredicate(INode subj, INode pred)
Parameters
| Type | Name | Description |
|---|---|---|
| INode | subj | Subject. |
| INode | pred | Predicate. |
Returns
| Type | Description |
|---|---|
| IEnumerable<Triple> |
GetTripleNode(Triple)
Selects the Triple Node with the given Triple value if it exists in the graph.
Declaration
public ITripleNode GetTripleNode(Triple triple)
Parameters
| Type | Name | Description |
|---|---|---|
| Triple | triple | Triple. |
Returns
| Type | Description |
|---|---|
| ITripleNode | The triple node if it exists in the graph or else null. |
GetTriples(Uri)
Gets all the Triples involving the given URI.
Declaration
public IEnumerable<Triple> GetTriples(Uri uri)
Parameters
| Type | Name | Description |
|---|---|---|
| Uri | uri | The URI to find Triples involving. |
Returns
| Type | Description |
|---|---|
| IEnumerable<Triple> | Zero/More Triples. |
GetTriples(INode)
Gets all the Triples involving the given Node.
Declaration
public IEnumerable<Triple> GetTriples(INode n)
Parameters
| Type | Name | Description |
|---|---|---|
| INode | n | The Node to find Triples involving. |
Returns
| Type | Description |
|---|---|
| IEnumerable<Triple> | Zero/More Triples. |
GetTriplesWithObject(Uri)
Gets all the Triples with the given URI as the Object.
Declaration
public IEnumerable<Triple> GetTriplesWithObject(Uri u)
Parameters
| Type | Name | Description |
|---|---|---|
| Uri | u | The URI to find Triples with it as the Object. |
Returns
| Type | Description |
|---|---|
| IEnumerable<Triple> | Zero/More Triples. |
GetTriplesWithObject(INode)
Gets all the Triples with the given Node as the Object.
Declaration
public IEnumerable<Triple> GetTriplesWithObject(INode n)
Parameters
| Type | Name | Description |
|---|---|---|
| INode | n | The Node to find Triples with it as the Object. |
Returns
| Type | Description |
|---|---|
| IEnumerable<Triple> |
GetTriplesWithPredicate(Uri)
Gets all the Triples with the given Uri as the Predicate.
Declaration
public IEnumerable<Triple> GetTriplesWithPredicate(Uri u)
Parameters
| Type | Name | Description |
|---|---|---|
| Uri | u | The Uri to find Triples with it as the Predicate. |
Returns
| Type | Description |
|---|---|
| IEnumerable<Triple> | Zero/More Triples. |
GetTriplesWithPredicate(INode)
Gets all the Triples with the given Node as the Predicate.
Declaration
public IEnumerable<Triple> GetTriplesWithPredicate(INode n)
Parameters
| Type | Name | Description |
|---|---|---|
| INode | n | The Node to find Triples with it as the Predicate. |
Returns
| Type | Description |
|---|---|
| IEnumerable<Triple> |
GetTriplesWithPredicateObject(INode, INode)
Selects all Triples with the given Predicate and Object.
Declaration
public IEnumerable<Triple> GetTriplesWithPredicateObject(INode pred, INode obj)
Parameters
| Type | Name | Description |
|---|---|---|
| INode | pred | Predicate. |
| INode | obj | Object. |
Returns
| Type | Description |
|---|---|
| IEnumerable<Triple> |
GetTriplesWithSubject(Uri)
Gets all the Triples with the given Uri as the Subject.
Declaration
public IEnumerable<Triple> GetTriplesWithSubject(Uri u)
Parameters
| Type | Name | Description |
|---|---|---|
| Uri | u | The Uri to find Triples with it as the Subject. |
Returns
| Type | Description |
|---|---|
| IEnumerable<Triple> | Zero/More Triples. |
GetTriplesWithSubject(INode)
Gets all the Triples with the given Node as the Subject.
Declaration
public IEnumerable<Triple> GetTriplesWithSubject(INode n)
Parameters
| Type | Name | Description |
|---|---|---|
| INode | n | The Node to find Triples with it as the Subject. |
Returns
| Type | Description |
|---|---|
| IEnumerable<Triple> | Zero/More Triples. |
GetTriplesWithSubjectObject(INode, INode)
Selects all Triples with the given Subject and Object.
Declaration
public IEnumerable<Triple> GetTriplesWithSubjectObject(INode subj, INode obj)
Parameters
| Type | Name | Description |
|---|---|---|
| INode | subj | Subject. |
| INode | obj | Object. |
Returns
| Type | Description |
|---|---|
| IEnumerable<Triple> |
GetTriplesWithSubjectPredicate(INode, INode)
Selects all Triples with the given Subject and Predicate.
Declaration
public IEnumerable<Triple> GetTriplesWithSubjectPredicate(INode subj, INode pred)
Parameters
| Type | Name | Description |
|---|---|---|
| INode | subj | Subject. |
| INode | pred | Predicate. |
Returns
| Type | Description |
|---|---|
| IEnumerable<Triple> |
GetUriNode(string)
Returns the UriNode with the given QName if it exists.
Declaration
public IUriNode GetUriNode(string qname)
Parameters
| Type | Name | Description |
|---|---|---|
| string | qname | The QName of the Node to select. |
Returns
| Type | Description |
|---|---|
| IUriNode |
GetUriNode(Uri)
Returns the UriNode with the given Uri if it exists.
Declaration
public IUriNode GetUriNode(Uri uri)
Parameters
| Type | Name | Description |
|---|---|---|
| Uri | uri | The Uri of the Node to select. |
Returns
| Type | Description |
|---|---|
| IUriNode | Either the UriNode Or null if no Node with the given Uri exists. |
HasSubGraph(IGraph)
Checks whether this Graph has the given Graph as a sub-graph.
Declaration
public bool HasSubGraph(IGraph g)
Parameters
| Type | Name | Description |
|---|---|---|
| IGraph | g | Graph. |
Returns
| Type | Description |
|---|---|
| bool |
HasSubGraph(IGraph, out Dictionary<INode, INode>)
Checks whether this Graph has the given Graph as a sub-graph.
Declaration
public bool HasSubGraph(IGraph g, out Dictionary<INode, INode> mapping)
Parameters
| Type | Name | Description |
|---|---|---|
| IGraph | g | Graph. |
| Dictionary<INode, INode> | mapping | Mapping of Blank Nodes. |
Returns
| Type | Description |
|---|---|
| bool |
IsSubGraphOf(IGraph)
Checks whether this Graph is a sub-graph of the given Graph.
Declaration
public bool IsSubGraphOf(IGraph g)
Parameters
| Type | Name | Description |
|---|---|---|
| IGraph | g | Graph. |
Returns
| Type | Description |
|---|---|
| bool |
IsSubGraphOf(IGraph, out Dictionary<INode, INode>)
Checks whether this Graph is a sub-graph of the given Graph.
Declaration
public bool IsSubGraphOf(IGraph g, out Dictionary<INode, INode> mapping)
Parameters
| Type | Name | Description |
|---|---|---|
| IGraph | g | Graph. |
| Dictionary<INode, INode> | mapping | Mapping of Blank Nodes. |
Returns
| Type | Description |
|---|---|
| bool |
Merge(IGraph)
Merges another Graph into the current Graph.
Declaration
public virtual void Merge(IGraph g)
Parameters
| Type | Name | Description |
|---|---|---|
| IGraph | g | Graph to Merge into this Graph. |
Remarks
The Graph on which you invoke this method will preserve its Blank Node IDs while the Blank Nodes from the Graph being merged in will be given new IDs as required in the scope of this Graph.
Merge(IGraph, bool)
Merges another Graph into the current Graph.
Declaration
public virtual void Merge(IGraph g, bool keepOriginalGraphUri)
Parameters
| Type | Name | Description |
|---|---|---|
| IGraph | g | Graph to Merge into this Graph. |
| bool | keepOriginalGraphUri | Indicates that the Merge should preserve the Graph URIs of Nodes so they refer to the Graph they originated in. |
Remarks
The Graph on which you invoke this method will preserve its Blank Node IDs while the Blank Nodes from the Graph being merged in will be given new IDs as required in the scope of this Graph.
The Graph will raise the MergeRequested event before the Merge operation which gives any event handlers the oppurtunity to cancel this event. When the Merge operation is completed the Merged event is raised.
OnTripleAsserted(object, TripleEventArgs)
Event Handler which handles the Triple Added event from the underlying Triple Collection by raising the Graph's TripleAsserted event.
Declaration
protected virtual void OnTripleAsserted(object sender, TripleEventArgs args)
Parameters
| Type | Name | Description |
|---|---|---|
| object | sender | Sender. |
| TripleEventArgs | args | Triple Event Arguments. |
OnTripleRetracted(object, TripleEventArgs)
Event Handler which handles the Triple Removed event from the underlying Triple Collection by raising the Graph's Triple Retracted event.
Declaration
protected virtual void OnTripleRetracted(object sender, TripleEventArgs args)
Parameters
| Type | Name | Description |
|---|---|---|
| object | sender | Sender. |
| TripleEventArgs | args | Triple Event Arguments. |
PersistDeletedTriples(IEnumerable<Triple>)
Persists deleted Triples to the underlying Storage.
Declaration
protected virtual void PersistDeletedTriples(IEnumerable<Triple> ts)
Parameters
| Type | Name | Description |
|---|---|---|
| IEnumerable<Triple> | ts |
PersistGraph()
Persists the entire Graph to the underlying Storage.
Declaration
protected virtual void PersistGraph()
PersistInsertedTriples(IEnumerable<Triple>)
Persists inserted Triples to the underlying Storage.
Declaration
protected virtual void PersistInsertedTriples(IEnumerable<Triple> ts)
Parameters
| Type | Name | Description |
|---|---|---|
| IEnumerable<Triple> | ts | Triples. |
RaiseClearRequested()
Helper method for raising the Clear Requested event and returning whether any of the Event Handlers cancelled the operation.
Declaration
protected bool RaiseClearRequested()
Returns
| Type | Description |
|---|---|
| bool | True if the operation can continue, false if it should be aborted. |
RaiseCleared()
Helper method for raising the Cleared event.
Declaration
protected void RaiseCleared()
RaiseGraphChanged()
Helper method for raising the Changed event.
Declaration
protected void RaiseGraphChanged()
RaiseGraphChanged(TripleEventArgs)
Helper method for raising the Changed event.
Declaration
protected void RaiseGraphChanged(TripleEventArgs args)
Parameters
| Type | Name | Description |
|---|---|---|
| TripleEventArgs | args | Triple Event Arguments. |
RaiseMergeRequested()
Helper method for raising the Merge Requested event and returning whether any of the Event Handlers cancelled the operation.
Declaration
protected bool RaiseMergeRequested()
Returns
| Type | Description |
|---|---|
| bool | True if the operation can continue, false if it should be aborted. |
RaiseMerged()
Helper method for raising the Merged event.
Declaration
protected void RaiseMerged()
RaiseTripleAsserted(Triple)
Helper method for raising the Triple Asserted event manually.
Declaration
protected void RaiseTripleAsserted(Triple t)
Parameters
| Type | Name | Description |
|---|---|---|
| Triple | t | Triple. |
RaiseTripleAsserted(TripleEventArgs)
Helper method for raising the Triple Asserted event manually.
Declaration
protected void RaiseTripleAsserted(TripleEventArgs args)
Parameters
| Type | Name | Description |
|---|---|---|
| TripleEventArgs | args | Triple Event Arguments. |
RaiseTripleRetracted(Triple)
Helper method for raising the Triple Retracted event manually.
Declaration
protected void RaiseTripleRetracted(Triple t)
Parameters
| Type | Name | Description |
|---|---|---|
| Triple | t | Triple. |
RaiseTripleRetracted(TripleEventArgs)
Helper method for raising the Triple Retracted event manually.
Declaration
protected void RaiseTripleRetracted(TripleEventArgs args)
Parameters
| Type | Name | Description |
|---|---|---|
| TripleEventArgs | args |
ResolveQName(string)
Helper function for Resolving QNames to URIs.
Declaration
public Uri ResolveQName(string qname)
Parameters
| Type | Name | Description |
|---|---|---|
| string | qname | QName to resolve to a Uri. |
Returns
| Type | Description |
|---|---|
| Uri |
Retract(IEnumerable<Triple>)
Retracts Triples from the Graph.
Declaration
public bool Retract(IEnumerable<Triple> ts)
Parameters
| Type | Name | Description |
|---|---|---|
| IEnumerable<Triple> | ts | Triples. |
Returns
| Type | Description |
|---|---|
| bool |
Retract(Triple)
Retracts a Triple from the Graph.
Declaration
public virtual bool Retract(Triple t)
Parameters
| Type | Name | Description |
|---|---|---|
| Triple | t | Triple. |
Returns
| Type | Description |
|---|---|
| bool |
Unstar()
Converts an graph containing quoted triples into to a graph with no quoted triples by applying the unstar operation described in https://w3c.github.io/rdf-star/cg-spec/2021-12-17.html#mapping.
Declaration
public void Unstar()
Remarks
The unstar operation modifies the graph in-place by calls to Assert(Triple) an Retract(Triple).
Events
| Edit this page View SourceChanged
Event which is raised when the Graph contents change
Declaration
public event GraphEventHandler Changed
Event Type
| Type | Description |
|---|---|
| GraphEventHandler |
ClearRequested
Event which is raised just before the Graph is cleared of its contents
Declaration
public event CancellableGraphEventHandler ClearRequested
Event Type
| Type | Description |
|---|---|
| CancellableGraphEventHandler |
Cleared
Event which is raised after the Graph is cleared of its contents
Declaration
public event GraphEventHandler Cleared
Event Type
| Type | Description |
|---|---|
| GraphEventHandler |
MergeRequested
Event which is raised when a Merge operation is requested on the Graph
Declaration
public event CancellableGraphEventHandler MergeRequested
Event Type
| Type | Description |
|---|---|
| CancellableGraphEventHandler |
Merged
Event which is raised when a Merge operation is completed on the Graph
Declaration
public event GraphEventHandler Merged
Event Type
| Type | Description |
|---|---|
| GraphEventHandler |
TripleAsserted
Event which is raised when a Triple is asserted in the Graph
Declaration
public event TripleEventHandler TripleAsserted
Event Type
| Type | Description |
|---|---|
| TripleEventHandler |
TripleRetracted
Event which is raised when a Triple is retracted from the Graph
Declaration
public event TripleEventHandler TripleRetracted
Event Type
| Type | Description |
|---|---|
| TripleEventHandler |