Database 数据日志中的表达式不安全
为什么这个目标不被认为是安全的Database 数据日志中的表达式不安全,database,logic,datalog,Database,Logic,Datalog,为什么这个目标不被认为是安全的 MANAGER(Name) :- WORKER(Name, Age, _ ), ¬ SUBORDINATE (_, Name), Age <= 40 经理(姓名):-工人(姓名、年龄)、下属(姓名)、年龄数据日志中的安全要求旨在防止无限结果。如果你有一个发生在大脑中的变量,并且只在身体中被否定,那么它可以被绑定到无限多的值,这显然是一个问题 具体的安全要求很难精确制定,因此通常您会看到要求简化为“每个变量都必须积极发生”。这比需要的限制性更强一些 对这个问
MANAGER(Name) :- WORKER(Name, Age, _ ), ¬ SUBORDINATE (_, Name), Age <= 40
经理(姓名):-工人(姓名、年龄)、下属(姓名)、年龄数据日志中的安全要求旨在防止无限结果。如果你有一个发生在大脑中的变量,并且只在身体中被否定,那么它可以被绑定到无限多的值,这显然是一个问题
具体的安全要求很难精确制定,因此通常您会看到要求简化为“每个变量都必须积极发生”。这比需要的限制性更强一些
对这个问题最具启发性的回答是,该规则在技术上是不安全的,但它不会产生无限的结果。某些数据日志引擎会允许此规则并返回有限结果。数据日志中的安全要求旨在防止无限结果。如果你有一个发生在大脑中的变量,并且只在身体中被否定,那么它可以被绑定到无限多的值,这显然是一个问题
具体的安全要求很难精确制定,因此通常您会看到要求简化为“每个变量都必须积极发生”。这比需要的限制性更强一些
对这个问题最具启发性的回答是,该规则在技术上是不安全的,但它不会产生无限的结果。某些数据日志引擎会允许此规则并返回有限结果。此规则是完全安全的,并且不会产生无限关系。这是您正在使用的数据日志引擎的一个实现缺陷
一般来说,处理的简单方法是将其转换为新变量。这使得引擎的实现变得容易,但这可能是该子句抛出错误的原因。如果它是一个变量,则会有无穷多个值从属的第一个参数不能是。此规则是完全安全的,并且不会产生无限关系。这是您正在使用的数据日志引擎的一个实现缺陷
一般来说,处理的简单方法是将其转换为新变量。这使得引擎的实现变得容易,但这可能是该子句抛出错误的原因。如果它是一个变量,则会有无穷多个值substance
的第一个参数不能为空