isi-vista / adam

Abduction to Demonstrate an Articulate Machine
MIT License
10 stars 4 forks source link

Temporal Information Loss - Cannot handle multiple relations between the same objects in a perception graph #666

Open gabbard opened 4 years ago

gabbard commented 4 years ago

Because under the hood we represent PerceptionGraphs and PerceptionGraphPatterns as DiGraphs and not MultiDiGraphs, we run into problems when there are multiple relationships between objects. For example, a person may have both a possession and a bigger_than relation with a held object. Currently only one of these ends up represented in the graph and which one "wins" is arbitrary.

This manifests itself most seriously in some verb patterns, where different edge labels appear between the same objects in the before and after frames, which we currently do not support.

Long-term we need to switch our entire matching architecture over to MultiDiGrahs, but this may have undesirable performance implications.

gabbard commented 4 years ago

A stopgap solution for the TemporallyScopeEdge case is to allow such edges to wrap multiple "basic" edges. When a predicate is applied, it will pass if it passes for any wrapped edge.

gabbard commented 4 years ago

Actually, as a quick hack for now we just throw away the before label and keep the after label. See PerceptionGraph.from_dynamic_perceptual_representation

gabbard commented 4 years ago

Depends on #751