public void SparqlAlgebraJoinMultiVariable1() { ISet x = new Set(); x.Add("a", this._factory.CreateUriNode(UriFactory.Create("http://x"))); x.Add("b", this._factory.CreateUriNode(UriFactory.Create("http://y"))); ISet y1 = new Set(); y1.Add("a", this._factory.CreateUriNode(UriFactory.Create("http://x"))); y1.Add("b", this._factory.CreateUriNode(UriFactory.Create("http://y"))); ISet y2 = new Set(); y2.Add("a", this._factory.CreateUriNode(UriFactory.Create("http://x"))); y2.Add("b", this._factory.CreateUriNode(UriFactory.Create("http://y"))); BaseMultiset lhs = new Multiset(); lhs.Add(x); BaseMultiset rhs = new Multiset(); rhs.Add(y1); rhs.Add(y2); BaseMultiset joined = lhs.Join(rhs); Assert.AreEqual(2, joined.Count); }
public void SparqlAlgebraJoinMultiVariable4() { ISet x1 = new Set(); x1.Add("a", this._factory.CreateUriNode(UriFactory.Create("http://x1"))); x1.Add("b", this._factory.CreateUriNode(UriFactory.Create("http://y1"))); ISet x2 = new Set(); x2.Add("a", this._factory.CreateUriNode(UriFactory.Create("http://x2"))); x2.Add("b", this._factory.CreateUriNode(UriFactory.Create("http://y2"))); ISet y1 = new Set(); y1.Add("a", this._factory.CreateUriNode(UriFactory.Create("http://x1"))); y1.Add("b", this._factory.CreateUriNode(UriFactory.Create("http://y2"))); ISet y2 = new Set(); y2.Add("a", this._factory.CreateUriNode(UriFactory.Create("http://x2"))); y2.Add("b", this._factory.CreateUriNode(UriFactory.Create("http://y1"))); BaseMultiset lhs = new Multiset(); lhs.Add(x1); lhs.Add(x2); BaseMultiset rhs = new Multiset(); rhs.Add(y1); rhs.Add(y2); BaseMultiset joined = lhs.Join(rhs); Assert.Equal(0, joined.Count); }
public void SparqlAlgebraJoinSingleVariable1() { ISet x = new Set(); x.Add("a", this._factory.CreateUriNode(UriFactory.Create("http://x"))); BaseMultiset lhs = new Multiset(); lhs.Add(x); BaseMultiset rhs = new Multiset(); rhs.Add(x); BaseMultiset joined = lhs.Join(rhs); Assert.AreEqual(1, joined.Count); }
public void SparqlMultisetLeftJoin() { //Create a load of Nodes to use in the tests Graph g = new Graph(); g.NamespaceMap.AddNamespace(String.Empty, new Uri("http://example.org")); IUriNode s1 = g.CreateUriNode(":s1"); IUriNode s2 = g.CreateUriNode(":s2"); IUriNode p1 = g.CreateUriNode(":p1"); IUriNode p2 = g.CreateUriNode(":p2"); IUriNode rdfsLabel = g.CreateUriNode("rdfs:label"); ILiteralNode o1 = g.CreateLiteralNode("Some Text"); ILiteralNode o2 = g.CreateLiteralNode("1", new Uri(XmlSpecsHelper.XmlSchemaDataTypeInteger)); //Create an ID and Null Multiset IdentityMultiset id = new IdentityMultiset(); NullMultiset nullset = new NullMultiset(); //Create and Populate a Multiset Multiset m = new Multiset(); Set s = new Set(); s.Add("s", s1); s.Add("p", p1); s.Add("o", o1); m.Add(s); s = new Set(); s.Add("s", s2); s.Add("p", p2); s.Add("o", o2); m.Add(s); //Create and Populate another Multiset Multiset n = new Multiset(); s = new Set(); s.Add("s", s1); s.Add("label", o1); n.Add(s); //Create and Populate another Multiset Multiset d = new Multiset(); s = new Set(); s.Add("s1", s1); s.Add("p1", p1); s.Add("o1", o1); d.Add(s); s = new Set(); s.Add("s1", s2); s.Add("p1", p2); s.Add("o1", o2); d.Add(s); //Show the Sets Console.WriteLine("LHS"); foreach (Set set in m.Sets) { Console.WriteLine(set.ToString()); } Console.WriteLine(); Console.WriteLine("RHS"); foreach (Set set in n.Sets) { Console.WriteLine(set.ToString()); } Console.WriteLine(); Console.WriteLine("D"); foreach (Set set in d.Sets) { Console.WriteLine(set.ToString()); } Console.WriteLine(); //Try a Join to Identity Console.WriteLine("Join ID-LHS"); BaseMultiset join = id.Join(m); foreach (Set set in join.Sets) { Console.WriteLine(set.ToString()); } Console.WriteLine(); //Try a Join to Identity Console.WriteLine("Join LHS-ID"); join = m.Join(id); foreach (Set set in join.Sets) { Console.WriteLine(set.ToString()); } Console.WriteLine(); //Try a Join to Null Console.WriteLine("Join NULL-LHS"); join = nullset.Join(m); foreach (Set set in join.Sets) { Console.WriteLine(set.ToString()); } Console.WriteLine(); //Try a Join to Null Console.WriteLine("Join LHS-NULL"); join = m.Join(nullset); foreach (Set set in join.Sets) { Console.WriteLine(set.ToString()); } Console.WriteLine(); //Try a LeftJoin Console.WriteLine("LeftJoin NULL-LHS"); BaseMultiset leftjoin = nullset.LeftJoin(m, new BooleanExpressionTerm(true)); foreach (Set set in leftjoin.Sets) { Console.WriteLine(set.ToString()); } Console.WriteLine(); //Try a LeftJoin Console.WriteLine("LeftJoin LHS-NULL"); leftjoin = m.LeftJoin(nullset, new BooleanExpressionTerm(true)); foreach (Set set in leftjoin.Sets) { Console.WriteLine(set.ToString()); } Console.WriteLine(); //Try a Join Console.WriteLine("Join LHS-RHS"); join = m.Join(n); foreach (Set set in join.Sets) { Console.WriteLine(set.ToString()); } Console.WriteLine(); //Try a LeftOuterJoin Console.WriteLine("LeftJoin LHS-RHS"); leftjoin = m.LeftJoin(n, new BooleanExpressionTerm(true)); foreach (Set set in leftjoin.Sets) { Console.WriteLine(set.ToString()); } Console.WriteLine(); //Try a Produce Console.WriteLine("Product LHS-RHS"); BaseMultiset product = m.Product(n); foreach (Set set in product.Sets) { Console.WriteLine(set.ToString()); } Console.WriteLine(); //Try a Join to Self Console.WriteLine("Product LHS-D"); product = m.Product(d); foreach (Set set in product.Sets) { Console.WriteLine(set.ToString()); } Console.WriteLine(); //Try a Union Console.WriteLine("Union LHS-RHS"); BaseMultiset union = m.Union(n); foreach (Set set in union.Sets) { Console.WriteLine(set.ToString()); } Console.WriteLine(); }