Skip to content

Duplicate Discourse Context queries #293

@mdroidian

Description

@mdroidian

If a relation has multiple definitions

image

We are filtering them from all relations

relations
.flatMap((r) => {
const queries = [];
if (r.source === nodeType || r.source === "*") {
queries.push({
r,
complement: false,
});
}
if (r.destination === nodeType || r.destination === "*") {
queries.push({
r,
complement: true,
});
}
return queries;

But in the datalog translator we are doing this again when we build the query

const filteredRelations = discourseRelations
.map((r) =>
(r.label === label || ANY_RELATION_REGEX.test(label)) &&
doesDiscourseRelationMatchCondition(r, { source, target })
? { ...r, forward: true }
: doesDiscourseRelationMatchCondition(
{ source: r.destination, destination: r.source },
{ source, target }
) &&
(r.complement === label || ANY_RELATION_REGEX.test(label))
? { ...r, forward: false }
: undefined
)
.filter(
(
r
): r is ReturnType<typeof getDiscourseRelations>[number] & {
forward: boolean;
} => !!r
);
if (!filteredRelations.length) return [];
const andParts = filteredRelations.map(

Resulting in multiple duplicate queries.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    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