私は、天気が人々の健康にどのように影響するか (気象病) について卒業論文を書いています。オントロジーは、このリンクの図に示されています: http://dl.dropbox.com/u/5322973/WeatherHealthcast1%20-%20Properties.PNG
そこで、簡単な 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クエリに含める方法を知っている人はいますか?