linqs / psl

The PSL software from the University of Maryland and the University of California Santa Cruz
http://psl.linqs.org
Apache License 2.0
298 stars 100 forks source link

Lazy Grounding Can Miss Some Groundings #277

Closed eriq-augustine closed 2 years ago

eriq-augustine commented 4 years ago

Lazy groundings will miss ground rules that require multiple lazy atoms (atoms that are to be activated in the same iteration). These are missed because only a single lazy target (a query atom that may represent lazy atoms) is allowed to be lazy (pulls from the special partition) for each lazy grounding query.

To deal with this issue, we can use a config option. When true, we can go over the powerset of lazy targets (minus the empty set). When false, we can just do the single targets. We will probably want to default this to false, because power sets can get large fast. (Or maybe only consult the option where there are enough lazy atoms (>= 3?).)

eriq-augustine commented 2 years ago

Fixed in 668675ee60ce6aa6495387e0d437a1f901d64c29 with the move from LazyGrounding to PartialGrounding. The powerset behavior is controlled by the partialgrounding.powerset flag.