本文整理汇总了C#中VDS.RDF.Graph.IsSubGraphOf方法的典型用法代码示例。如果您正苦于以下问题:C# Graph.IsSubGraphOf方法的具体用法?C# Graph.IsSubGraphOf怎么用?C# Graph.IsSubGraphOf使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类VDS.RDF.Graph
的用法示例。
在下文中一共展示了Graph.IsSubGraphOf方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: GraphSubGraphMatching
public void GraphSubGraphMatching()
{
Graph parent = new Graph();
FileLoader.Load(parent, "InferenceTest.ttl");
Graph subgraph = new Graph();
subgraph.NamespaceMap.Import(parent.NamespaceMap);
subgraph.Assert(parent.GetTriplesWithSubject(parent.CreateUriNode("eg:FordFiesta")));
//Check method calls
Dictionary<INode, INode> mapping;
Console.WriteLine("Doing basic sub-graph matching with no BNode tests");
Assert.IsTrue(parent.HasSubGraph(subgraph, out mapping), "Failed to match the sub-graph as expected");
Assert.IsFalse(parent.IsSubGraphOf(subgraph, out mapping), "Parent should not be a sub-graph of the sub-graph");
Assert.IsFalse(subgraph.HasSubGraph(parent, out mapping), "Sub-graph should not have parent as its sub-graph");
Assert.IsTrue(subgraph.IsSubGraphOf(parent, out mapping), "Failed to match the sub-graph as expected");
Console.WriteLine("OK");
Console.WriteLine();
//Add an extra triple into the Graph which will cause it to no longer be a sub-graph
Console.WriteLine("Adding an extra Triple so the sub-graph is no longer such");
subgraph.Assert(new Triple(subgraph.CreateUriNode("eg:Rocket"), subgraph.CreateUriNode("rdf:type"), subgraph.CreateUriNode("eg:AirVehicle")));
Assert.IsFalse(parent.HasSubGraph(subgraph, out mapping), "Sub-graph should no longer be considered a sub-graph");
Assert.IsFalse(subgraph.IsSubGraphOf(parent, out mapping), "Sub-graph should no longer be considered a sub-graph");
Console.WriteLine("OK");
Console.WriteLine();
//Reset the sub-graph
Console.WriteLine("Resetting the sub-graph");
subgraph = new Graph();
subgraph.NamespaceMap.Import(parent.NamespaceMap);
subgraph.Assert(parent.GetTriplesWithSubject(parent.CreateUriNode("eg:FordFiesta")));
Console.WriteLine("Adding additional information to the parent Graph, this should not affect the fact that the sub-graph is a sub-graph of it");
Assert.IsTrue(parent.HasSubGraph(subgraph, out mapping), "Failed to match the sub-graph as expected");
Assert.IsFalse(parent.IsSubGraphOf(subgraph, out mapping), "Parent should not be a sub-graph of the sub-graph");
Assert.IsFalse(subgraph.HasSubGraph(parent, out mapping), "Sub-graph should not have parent as its sub-graph");
Assert.IsTrue(subgraph.IsSubGraphOf(parent, out mapping), "Failed to match the sub-graph as expected");
Console.WriteLine("OK");
Console.WriteLine();
//Remove stuff from parent graph so it won't match any more
Console.WriteLine("Removing stuff from parent graph so that it won't have the sub-graph anymore");
parent.Retract(parent.GetTriplesWithSubject(parent.CreateUriNode("eg:FordFiesta")));
Assert.IsFalse(parent.HasSubGraph(subgraph, out mapping), "Parent should no longer contian the sub-graph");
Assert.IsFalse(subgraph.IsSubGraphOf(parent, out mapping), "Parent should no longer contain the sub-graph");
Console.WriteLine("OK");
Console.WriteLine();
}
示例2: GraphSubGraphMatchingWithBNodes
public void GraphSubGraphMatchingWithBNodes()
{
Graph parent = new Graph();
FileLoader.Load(parent, "Turtle.ttl");
Graph subgraph = new Graph();
subgraph.Assert(parent.Triples.Where(t => !t.IsGroundTriple));
//Check method calls
Dictionary<INode, INode> mapping;
Console.WriteLine("Doing basic sub-graph matching with BNode tests");
Assert.IsTrue(parent.HasSubGraph(subgraph, out mapping), "Failed to match the sub-graph as expected");
Assert.IsFalse(parent.IsSubGraphOf(subgraph, out mapping), "Parent should not be a sub-graph of the sub-graph");
Assert.IsFalse(subgraph.HasSubGraph(parent, out mapping), "Sub-graph should not have parent as its sub-graph");
Assert.IsTrue(subgraph.IsSubGraphOf(parent, out mapping), "Failed to match the sub-graph as expected");
Console.WriteLine("OK");
Console.WriteLine();
//Eliminate some of the Triples from the sub-graph
Console.WriteLine("Eliminating some Triples from the sub-graph and seeing if the mapping still computes OK");
subgraph.Retract(subgraph.Triples.Skip(2).Take(5));
Assert.IsTrue(parent.HasSubGraph(subgraph, out mapping), "Failed to match the sub-graph as expected");
Assert.IsFalse(parent.IsSubGraphOf(subgraph, out mapping), "Parent should not be a sub-graph of the sub-graph");
Assert.IsFalse(subgraph.HasSubGraph(parent, out mapping), "Sub-graph should not have parent as its sub-graph");
Assert.IsTrue(subgraph.IsSubGraphOf(parent, out mapping), "Failed to match the sub-graph as expected");
Console.WriteLine("OK");
Console.WriteLine();
Console.WriteLine("Eliminating Blank Nodes from the parent Graph to check that the sub-graph is no longer considered as such afterwards");
parent.Retract(parent.Triples.Where(t => !t.IsGroundTriple));
Assert.IsFalse(parent.HasSubGraph(subgraph), "Sub-graph should no longer be considered as such");
Assert.IsFalse(subgraph.IsSubGraphOf(parent), "Sub-graph should no longer be considered as such");
}