我的问题是,如果我想检查一个实例是否在范围内,我使用以下规则:
Rule1: Error(?d), TimeRelatedError(?c), TimeRelatedError_start_at(?c, ?s), error_at(?d, ?b), greaterThan(?b, ?s) -> is_after_TimeRelatedError_start(?d, true)
Rule2: Error(?d), TimeRelatedError(?c), TimeRelatedError_end_at(?c, ?e), error_at(?d, ?b), lessThan(?b, ?e) -> is_before_TimeRelatedError_end(?d, true)
如果我的本体中只有一个 TimeRelatedError ,它会起作用,如果我有更多实例,它将始终触发 true (因为 TimeRelatedError 之一总是在开始/结束点之前/之后)。您对如何解决这个问题有任何想法吗?我想如果我以某种方式将我的 TimeRelatedError 分配给 Error 实例,我可以解决这个问题,但我不知道如何。请 OWL/SWRL 专业人员帮助我完成这项任务 :)