我正在寫關於天氣如何影響人們健康(氣象)的文憑論文。本體在此連結的圖所示:http://dl.dropbox.com/u/5322973/WeatherHealthcast1%20-%20Properties.PNGSWRL規則不適用於我的本體論
所以,一個寫了一個簡單SWRL規則:
Weather(?w) ∧ temperature(?w, ?t) ∧ swrlb:greaterThan(?t, 25.0) → Disease(Migraine1)
這意味着如果天氣溫度大於25℃下有較強的機會患者會從偏頭痛是痛苦(Migraine1是「疾病」類的個體) 我輸入了一些個人在本體論,並試圖運行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查詢中?
嗨!謝謝你的回答。我改變了一點SWRL規則,所以現在看起來像你的: 人(?p)∧天氣(?w)∧有(?p,偏頭痛)∧溫度(?w,?t)∧swrlb: GREATERTHAN(?噸,25.0)→suffersFrom(p,偏頭痛?) ,當我做了SQWRL查詢: suffersFrom(?p,d)→sqwrl:選擇(?p,d) 它的工作原理很好,它只選擇「偏頭痛」。但現在有一些其他問題。似乎Pellet推理器不適用我的SWRL規則。你知道那是爲什麼嗎? – Viktor