public IEnumerable <SparqlResult> SpOVarGraphs(VariableNode sVar, ObjectVariants predicate, VariableNode oVar, SparqlResult variablesBindings, VariableDataSet graphs)
 {
     if (graphs.Any())
     {
         return
             (graphs.SelectMany(g =>
                                store.NamedGraphs.GetTriplesWithPredicateFromGraph(predicate, g, (s, o) =>
                                                                                   variablesBindings.Add(s, sVar, o, oVar, g, graphs.Variable))));
     }
     else
     {
         return(store.NamedGraphs.GetTriplesWithPredicate(predicate, (s, o, g) =>
                                                          variablesBindings.Add(s, sVar, o, oVar, g, graphs.Variable)));
     }
 }
 public IEnumerable <SparqlResult> SPoVarGraphs(VariableNode subj, VariableNode pred,
                                                ObjectVariants obj, SparqlResult variablesBindings, VariableDataSet variableDataSet)
 {
     if (variableDataSet.Any())
     {
         return(variableDataSet.SelectMany(g =>
                                           store
                                           .NamedGraphs
                                           .GetTriplesWithObjectFromGraph(obj, g, (s, p) =>
                                                                          variablesBindings.Add(p, pred, s, subj, g, variableDataSet.Variable))));
     }
     return(store
            .NamedGraphs
            .GetTriplesWithObject(obj, (s, p, g) =>
                                  variablesBindings.Add(p, pred, s, subj, g, variableDataSet.Variable)));
 }
 public IEnumerable <SparqlResult> sPoVarGraphs(ObjectVariants subj, VariableNode pred, ObjectVariants obj, SparqlResult variablesBindings, VariableDataSet variableDataSet)
 {
     if (variableDataSet.Any())
     {
         return(variableDataSet.SelectMany(g =>
                                           store.NamedGraphs.GetPredicate(subj, obj, g)
                                           .Select(p => variablesBindings.Add(p, pred, g, variableDataSet.Variable))));
     }
     else
     {
         return(store
                .NamedGraphs
                .GetTriplesWithSubjectObject(subj, obj, (p, g) =>
                                             variablesBindings.Add(p, pred, g, variableDataSet.Variable)));
     }
 }
 public IEnumerable <SparqlResult> SPOVarGraphs(VariableNode subj, VariableNode predicate, VariableNode obj, SparqlResult variablesBindings, VariableDataSet variableDataSet)
 {
     if (variableDataSet.Any())
     {
         return(variableDataSet.SelectMany(g =>
                                           store
                                           .NamedGraphs
                                           .GetTriplesFromGraph(g, (s, p, o) =>
                                                                variablesBindings.Add(s, subj, p, predicate, o, obj, g,
                                                                                      variableDataSet.Variable))));
     }
     return(store
            .NamedGraphs
            .GetAll((s, p, o, g) =>
                    variablesBindings.Add(s, subj, p, predicate, o, obj, g,
                                          variableDataSet.Variable)));
 }
 public IEnumerable <SparqlResult> SpoVarGraphs(VariableNode subj, ObjectVariants predicateNode,
                                                ObjectVariants objectNode, SparqlResult variablesBindings, VariableDataSet variableDataSet)
 {
     if (variableDataSet.Any())
     {
         return(variableDataSet.SelectMany(g => store
                                           .NamedGraphs
                                           .GetSubject(predicateNode, objectNode, g)
                                           .Select(s => variablesBindings.Add(s, subj, g, variableDataSet.Variable))));
     }
     else
     {
         return(store
                .NamedGraphs
                .GetTriplesWithPredicateObject(predicateNode, objectNode,
                                               (s, g) => variablesBindings.Add(s, subj, g, variableDataSet.Variable)));
     }
 }
 // from merged named graphs
 public IEnumerable <SparqlResult> spOVarGraphs(ObjectVariants subjNode, ObjectVariants predicateNode,
                                                VariableNode obj, SparqlResult variablesBindings, VariableDataSet variableDataSet)
 {
     if (variableDataSet.Any())
     {
         return(variableDataSet.SelectMany(g => store
                                           .NamedGraphs
                                           .GetObject(subjNode, predicateNode, g)
                                           .Select(o => variablesBindings.Add(o, obj, g, variableDataSet.Variable))));
     }
     else
     {
         return(store
                .NamedGraphs
                .GetTriplesWithSubjectPredicate(subjNode, predicateNode,
                                                ((o, g) => variablesBindings.Add(o, obj, g, variableDataSet.Variable))));
     }
     // if graphVariable is null, ctor check this.
 }
Ejemplo n.º 7
0
        private IEnumerable <SparqlResult> SetVariablesValues(SparqlResult variableBinding, StoreCallCase @case)
        {
            switch (@case)
            {
            case StoreCallCase.spo:
                return(spo(Subject, Predicate, Object, variableBinding));

            case StoreCallCase.spO:
                return(q.Store.GetTriplesWithSubjectPredicate(Subject, Predicate).Select(o => variableBinding.Add(o, oVariableNode)));

            case StoreCallCase.sPo:
                return(q.Store.GetTriplesWithSubjectObject(Subject, Object).Select(p => variableBinding.Add(p, pVariableNode)));

            case StoreCallCase.sPO:
                return(q.Store.GetTriplesWithSubject(Subject).Select(t => SetValues(variableBinding, t)));

            case StoreCallCase.Spo:
                return(q.Store.GetSubjects(Predicate, Object).Select(s => variableBinding.Add(s, sVariableNode)));

            case StoreCallCase.SpO:
                return(q.Store.GetTriplesWithPredicate(Predicate).Select(t => SetValues(variableBinding, t)));

            case StoreCallCase.SPo:
                return(q.Store.GetTriplesWithObject(Object).Select(t => SetValues(variableBinding, t)));

            case StoreCallCase.SPO:
                return(q.Store.GetTriples((s, p, o) => variableBinding.Add(s, sVariableNode, p, pVariableNode, o, oVariableNode)));


            case StoreCallCase.gspo:
                return(spoGraphs(variableBinding));

            case StoreCallCase.gspO:
                return(graphs.SelectMany(graph =>
                                         q.Store.NamedGraphs
                                         .GetObject(Subject, Predicate, graph)

                                         .Select(o => variableBinding.Add(o, oVariableNode))));

            case StoreCallCase.gsPo:
                return(graphs.SelectMany(graph =>
                                         q.Store.NamedGraphs
                                         .GetPredicate(Subject, Object, graph)

                                         .Select(p => variableBinding.Add(p, pVariableNode))));

            case StoreCallCase.gsPO:
                return(graphs.SelectMany(g =>
                                         q.Store
                                         .NamedGraphs
                                         .GetTriplesWithSubjectFromGraph(Subject, g)

                                         .Select(quad => SetValues(variableBinding, quad))));

            case StoreCallCase.gSpo:
                return(graphs.SelectMany(graph =>
                                         q.Store.NamedGraphs
                                         .GetSubject(Predicate, Object, graph)

                                         .Select(s => variableBinding.Add(s, sVariableNode))));

            case StoreCallCase.gSpO:
                return(graphs.SelectMany(g =>
                                         q.Store
                                         .NamedGraphs
                                         .GetTriplesWithPredicateFromGraph(Predicate, g)

                                         .Select(quad => SetValues(variableBinding, quad))));

            case StoreCallCase.gSPo:
                return(graphs.SelectMany(g =>
                                         q.Store
                                         .NamedGraphs
                                         .GetTriplesWithObjectFromGraph(Object, g)

                                         .Select(quad => SetValues(variableBinding, quad))));

            case StoreCallCase.gSPO:
                return(graphs.SelectMany(g => q.Store.NamedGraphs.GetTriplesFromGraph(g, (s, p, o) => variableBinding.Add(s, sVariableNode, p, pVariableNode, o, oVariableNode))));

            case StoreCallCase.Gspo:
                return((variableDataSet.Any()
                        ? variableDataSet.Where(g => q.Store.NamedGraphs.Contains(Subject, Predicate, Object, g))
                        : q.Store.NamedGraphs.GetGraph(Subject, Predicate, Object))

                       .Select(g => variableBinding.Add(g, variableDataSet.Variable)));

            case StoreCallCase.GspO:
                if (variableDataSet.Any())
                {
                    return(variableDataSet.SelectMany(g => q.Store
                                                      .NamedGraphs
                                                      .GetObject(Subject, Predicate, g)

                                                      .Select(o => variableBinding.Add(o, oVariableNode, g, variableDataSet.Variable))));
                }
                else
                {
                    return(q.Store
                           .NamedGraphs
                           .GetTriplesWithSubjectPredicate(Subject, Predicate)

                           .Select(quad => SetValues(variableBinding, quad)));
                }

            // if graphVariable is null, ctor check this.
            case StoreCallCase.GsPo:
                if (variableDataSet.Any())
                {
                    return(variableDataSet.SelectMany(g =>
                                                      q.Store.NamedGraphs.GetPredicate(Subject, Object, g)

                                                      .Select(p => variableBinding.Add(p, pVariableNode, g, variableDataSet.Variable))));
                }
                else
                {
                    return(q.Store
                           .NamedGraphs
                           .GetTriplesWithSubjectObject(Subject, Object)

                           .Select(quad => SetValues(variableBinding, quad)));
                }

            case StoreCallCase.GsPO:
                if (variableDataSet.Any())
                {
                    return(variableDataSet.SelectMany(g => q.Store
                                                      .NamedGraphs
                                                      .GetTriplesWithSubjectFromGraph(Subject, g)

                                                      .Select(quad => SetValues(variableBinding, quad))));
                }
                else
                {
                    return(q.Store
                           .NamedGraphs
                           .GetTriplesWithSubject(Subject)

                           .Select(quad => SetValues(variableBinding, quad)));
                }

            case StoreCallCase.GSpo:
                if (variableDataSet.Any())
                {
                    return(variableDataSet.SelectMany(g => q.Store
                                                      .NamedGraphs
                                                      .GetSubject(Predicate, Object, g)

                                                      .Select(s => variableBinding.Add(s, sVariableNode, g, variableDataSet.Variable))));
                }
                else
                {
                    return(q.Store
                           .NamedGraphs
                           .GetTriplesWithPredicateObject(Predicate, Object)

                           .Select(quad => SetValues(variableBinding, quad)));
                }

            case StoreCallCase.GSpO:
                ObjectVariants predicate = Predicate;
                if (variableDataSet.Any())
                {
                    return
                        (variableDataSet.SelectMany(
                             g => q.Store.NamedGraphs.GetTriplesWithPredicateFromGraph(predicate, g)

                             .Select(quad => SetValues(variableBinding, quad))));
                }
                else
                {
                    return(q.Store.NamedGraphs.GetTriplesWithPredicate(predicate)

                           .Select(quad => SetValues(variableBinding, quad)));
                }

            case StoreCallCase.GSPo:
                if (variableDataSet.Any())
                {
                    return(variableDataSet.SelectMany(g => q.Store
                                                      .NamedGraphs
                                                      .GetTriplesWithObjectFromGraph(Object, g))

                           .Select(quad => SetValues(variableBinding, quad)));
                }
                return(q.Store
                       .NamedGraphs
                       .GetTriplesWithObject(Object)

                       .Select(quad => SetValues(variableBinding, quad)));

            case StoreCallCase.GSPO:
                if (variableDataSet.Any())
                {
                    return(variableDataSet.SelectMany(g =>
                                                      q.Store
                                                      .NamedGraphs
                                                      .GetTriplesFromGraph(g, (s, p, o) =>
                                                                           variableBinding.Add(s, sVariableNode, p, pVariableNode, o, oVariableNode, g,
                                                                                               variableDataSet.Variable))));
                }
                return(q.Store
                       .NamedGraphs
                       .GetAll((s, p, o, g) =>
                               variableBinding.Add(s, sVariableNode, p, pVariableNode, o, oVariableNode, g,
                                                   variableDataSet.Variable)));

            default:
                throw new ArgumentOutOfRangeException("case");
            }
        }