【问题标题】:SWRL - Unable to substract date time by durationSWRL - 无法按持续时间减去日期时间
【发布时间】:2019-11-24 00:04:07
【问题描述】:

我正在尝试实现一个规则,将日期时间减去 1 年,并将其分配给仅使用 SWRL 的数据属性

我有一个实体Product,它的数据属性creationDate 等于2019-07-15T00:00:00

我的 SWRL 规则如下:

Product(?p) ^ creationDate(?p, ?cd) ^ swrlb:yearMonthDuration(?dur, 1, 0) 
^ swrlb:subtractYearMonthDurationFromDateTime(?result, ?cd, ?dur) 
-> Product(?p) ^ yearBeforeCreation(?p, ?result)

我希望 yearBeforeCreation 等于 2018-07-15T00:00:00

现在我已经用 Pellet 和 Drools 尝试了 SWRL

感谢您的帮助!

【问题讨论】:

  • 为什么你的规则头部有Product(?p)?这是多余的,因为它是规则主体的一部分,即规则“触发”的要求之一
  • 这是一个错误,没有注意,会在我的规则中纠正,thx

标签: owl protege swrl pellet


【解决方案1】:

我设法让我的 SWRL 正常工作,看起来像是有门徒的东西。我已经关闭/打开,重写了我的规则并且它起作用了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-30
    • 2012-06-30
    相关资源
    最近更新 更多