如何在sqwrl查询

时间:2017-02-02 00:21:23

标签: owl ontology reasoning swrl sqwrl

对于sqwrl查询中的AND操作,它类似于:

Symptom(fever) ^ Symptom(vomiting) ^ Disease(?y) ^ hasSymptom(?y,fever) ^ hasSymptom(?y,vomiting) -> sqwrl:select(?y)

根据上述规则,选择具有这两种症状的疾病。在sqwrl查询中OR操作怎么样?我想选择症状发热或症状呕吐的疾病?任何帮助将受到高度赞赏。

2 个答案:

答案 0 :(得分:2)

选择有症状呕吐或发烧的疾病的正确答案。

Symptom(fever) ^ Symptom(vomiting) ^ Disease(?x) ^ Disease(?y) ^ has_symptom(?x, fever) ^ has_symptom(?y, vomiting)˚sqwrl:makeSet(?s1, ?x) ^ sqwrl:makeSet(?s2, ?y)˚sqwrl:union(?s3, ?s1, ?s2) ^ sqwrl:element(?e, ?s3) -> sqwrl:select(?e)

答案 1 :(得分:1)

我认为,您要搜索的内容可以使用collections完成。有了它们,你可以定义一个析取。我不确定但是你想要的查询可能是这样的:

Symptom(?fever) ^ Symptom(?vomiting) ^ Disease(?x) ^ Disease(?y) ^
hasSymptom(?x, ?fever) ^ hasSymptom(?y, ?vomiting) ˚
sqwrl:makeSet(?s1, ?x) ^ sqwrl:makeSet(?s2, ?y) ˚
sqwrl:union(?s3, ?s1, ?s2)
-> sqwrl:select(?s3)