SQWRL查询以选择分组集的差异



假设我有此信息

Individual  |   Sex     |   HairColor
---------------------------------------
Joseph      |   Male    |   Black
Peter       |   Male    |   Black
Kevin       |   Male    |   Blonde
Andrew      |   Male    |   Brown
Boris       |   Male    |   Brown
Chistine    |   Female  |   Black
Julia       |   Female  |   Black
Julieth     |   Female  |   Brown
Judith      |   Female  |   Brown
Mary        |   Female  |   Blonde

我的个人都不同。我有男女主张的男女。我还向所有人宣称拥有其价值的所有物业。

问题是,我如何查询所有具有黑色不同的雄性(本体学可能具有许多其他头发颜色(?

(?

到目前为止,我尝试了以错误结果的查询...

1. Male(?x) ^ Male(?y) ^ hasHairColor(?y, "Black") ^ differentFrom(?x, ?y) -> sqwrl:select(?x)
2. Male(?x) ^ Male(?y) ^ hasHairColor(?y, "Black")  .  sqwrl:makeSet(?males, ?x) ^ sqwrl:groupBy(?males, ?x) ^ sqwrl:makeSet(?blacks, ?y) ^ sqwrl:groupBy(?blacks, ?y)  .  sqwrl:notEqual(?males, ?blacks) -> sqwrl:select(?x)
3. Male(?x) ^ Male(?y) ^ hasHairColor(?y, "Black")  .  sqwrl:makeSet(?males, ?x) ^ sqwrl:groupBy(?males, ?x) ^ sqwrl:makeSet(?blacks, ?y) ^ sqwrl:groupBy(?blacks, ?y)  .  sqwrl:difference(?diff, ?males, ?blacks) -> sqwrl:select(?x)

我错过了连接的方式。结果有效,但仅当其中一个集合只有一个元素(即,如果我尝试删除金发(

我正在使用protege 5.2与SWRL和SQWRL选项卡2.0.5

预先感谢

问题仍在等待中,但是解决方案是使用sparql来实现我想要的东西。

如果您需要有关开放问题的更多信息。你可以在这里找到它https://github.com/protegeproject/swrlapi/issues/43

相关内容

  • 没有找到相关文章

最新更新