User loginNavigation 
Allowing Unsafe Rules in Datalog?Certain rules are considered "unsafe" and disallowed in Datalog because they don't restrict all of their variables to a finite domain (and therefore may not have a finite number of solutions). For instance, in: beef(X) : lemur(X), not(alice(X, Y)), not(bahnanlagen(Y)). Y is not restricted to a finite domain, so the rule is unsafe. Additionally, no use of the beef predicate can further restrict the domain of Y. However, a rule may be unsafe only because its distinguished variables are not restricted: orange(X) : zorro(Y), X < Y. A predicate like orange/1 doesn't seem different from a negated relational predicate or an arithmetic predicate, since its otherwise unrestricted variables can be further restricted by the context in which it is used. For instance, a rule like: fromage(X) : elephant(X), orange(X). ...appears to be safe (where elephant/1 and zorro/1 are safe relational predicates). After all, the apparently equivalent: fromage(X) : elephant(X), zorro(Y), X < Y. ...is safe in that case. Provided their use is restricted in the same fashion as negated and arithmetic predicates, are there any problems with permitting this latter kind of unsafe rule that I'm just not seeing? By mental at 20070919 18:16  LtU Forum  previous forum topic  next forum topic  other blogs  6176 reads

Browse archivesActive forum topics 
Recent comments
2 weeks 3 days ago
2 weeks 3 days ago
2 weeks 3 days ago
2 weeks 3 days ago
2 weeks 4 days ago
2 weeks 4 days ago
2 weeks 6 days ago
3 weeks 14 hours ago
3 weeks 5 days ago
3 weeks 6 days ago