sparql-view-unfold
    Preparing search index...

    What an utils/assertionConjunction!AssertionConjunction decides about the expressions it is substituted into.

    A view rather than a map of terms, because a conjunction knows things no map can hold: SUBJECT(?o) may be decided where ?o is not, and ?o may be known to be a triple term without any term for it being known at all. It stays a view of terms though - an open shape may never be substituted into an expression (S3), the positions nobody named having no variable to write.

    interface AssertionView {
        bound: ReadonlySet<string>;
        resolve: (access: Access) => Term | undefined;
        typeRange?: (access: Access) => RangeSet | undefined;
    }
    Index

    Properties

    bound: ReadonlySet<string>

    The variables proven bound, which is what makes bound(?x) and sameTerm(?x, ?x) decidable.

    resolve: (access: Access) => Term | undefined

    The term the access is fixed to, or the variable that reads its value most directly.

    typeRange?: (access: Access) => RangeSet | undefined

    The term types left to the access, when the access is proven bound - undefined otherwise, and absent altogether for a view that decides no kinds of term at all.

    Boundedness is what makes both directions of isIRI(a) foldable: it is false of a bound term of another kind, but an error of an unbound one, and an error is not false in every context.