Class RelationQueryImpl

java.lang.Object
org.aksw.jenax.facete.treequery2.impl.RelationQueryImpl
All Implemented Interfaces:
HasSlice, RelationQuery

public class RelationQueryImpl extends Object implements RelationQuery
  • Field Details

    • scopeBaseName

      protected String scopeBaseName
      A name given to this relation
    • relationSupplier

      protected Supplier<org.aksw.jenax.sparql.fragment.api.Fragment> relationSupplier
      Supplier for the underlying relation. May by a constant supplier or a dynamic one which e.g. resolves an IRI against a PropertyResolverImpl.
    • queryContext

      protected QueryContext queryContext
    • parent

      protected NodeQuery parent
    • offset

      protected Long offset
    • limit

      protected Long limit
    • reachingStep

      protected org.aksw.jenax.path.core.FacetStep reachingStep
      A mapping of which variable corresponds to which component of a facet step
    • varToComponent

      protected Map<org.apache.jena.sparql.core.Var,org.apache.jena.graph.Node> varToComponent
      Variables can be declared as having special meaning: SOURCE, TARGET, PREDICATE and GRAPH
    • facetConstraints

      protected FacetConstraints<ConstraintNode<NodeQuery>> facetConstraints
    • sortConditions

      protected List<org.apache.jena.query.SortCondition> sortConditions
    • roots

      protected Map<org.apache.jena.sparql.core.Var,NodeQuery> roots
  • Constructor Details

    • RelationQueryImpl

      public RelationQueryImpl(String scopeBaseName, NodeQuery parent, Supplier<org.aksw.jenax.sparql.fragment.api.Fragment> relationSupplier, org.aksw.jenax.path.core.FacetStep reachingStep, QueryContext queryContext, Map<org.apache.jena.sparql.core.Var,org.apache.jena.graph.Node> varToComponent)
      Fields: for each row of this relation, a field may join in additional information.
        {
          thisRelation(v1, ..., vX)
          LATERAL {
              {
                field0 exposes the tuple of the relation itself. further fields connect custom relations.
              }
            UNION
              {
                field1(r1, ..., rX) with subList of size X (ri) that joins on this relation.
              }
            UNION
              ...
            UNION
              {
                fieldN
              }
          }
        }
        
      A connective is (element, joinVars, visibleVarsForFurtherJoining) - the set of variables of the fragment that join). This is different from Fragment, which only declares the visible vars. Perhaps, connective could be defined as (fragment, joinVars).
  • Method Details