假设我有此信息
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