Я пишу дипломную работу о том, как погода влияет на здоровье людей (метеоропатия).Онтология показана на рисунке по этой ссылке: 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 существует большая вероятность того, что пациент будет страдать от мигрени (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?