Skip to content

Operator negation in AQL - part 3: complex non-existing structures #199

@thomaskrause

Description

@thomaskrause

In addition to search for single non-existing operands for negated operators (described in #187), we might want to allow more complex structures to not exist.
E.g. in the query from #187 cat="NP" & cat="PP"? & #2 !> #1 additionally would be valid to bind the PP to other non-existent elements (with ?) as follows:

cat="NP" & cat="PP"? & #2 !> #1 & cat="S"? & #3 > #2

In this case, all NPs (=positive, existing elements without ?) are recovered, then we consider whether there exists the following potentially non-existent structure: cat="S"? > cat="PP"? (both with question marks). If such a structure dominates an NP, it is not a desired result.

Finally, note that queries binding non-existing and existing elements are invalid:

invalid:

cat="NP" & cat="PP?" & #2 !> #1 & cat="S" & #3 > #2

Here we are apparently saying that an NP is possibly not dominated by a PP, but that the PP is definitely dominated by an S, which we also want to have. This is impossible to evaluate, since in cases where the PP doesn't exist the S is ill-defined.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions