我正在写一篇关于天气如何影响人们健康(气象病)的毕业论文。本体如图所示:http: //dl.dropbox.com/u/5322973/WeatherHealthcast1%20-%20Properties.PNG
于是,a 写了一个简单的 SWRL 规则:
Weather(?w) ∧ temperature(?w, ?t) ∧ swrlb:greaterThan(?t, 25.0) → Disease(Migraine1)
这意味着如果天气温度高于 25°C,则患者很有可能患有偏头痛(偏头痛 1 是“疾病”类的个体)我在本体中输入了一些个体并尝试运行 SQWRL查询规则
Weather(?w) ∧ temperature(?w, ?t) ∧ swrlb:greaterThan(?t, 25.0) → sqwrl:select(Migraine1)
它工作正常。但是,当我尝试运行 SPARQL 查询时:
prefix WeatherHealthcast: <http://www.semanticweb.org/ontologies/2011/2/WeatherHealthcast.owl#>
SELECT ?disease ?tm ?w
WHERE
{
?temperature rdf:type WeatherHealthcast:Weather.
?temperature WeatherHealthcast:temperature ?tm.
FILTER (?tm = 30.0).
?disease rdf:type WeatherHealthcast:Disease.
?w rdf:type WeatherHealthcast:Weather.
?w WeatherHealthcast:affects ?disease.
}
似乎该规则不适用(使用此 SPARQL 查询,如果天气温度为 30°C,我想获得所有可能的疾病)。有谁知道如何进行这项工作,如何将 SWRL 规则包含到 SPARQL 查询中?