2016-02-22 3 views
1

У меня есть три класса в моей онтологииSPARQL QUERY в Protege 4,3

class babyAge (6+, 8+, 12+) 
class taste (asam, manis, asin) 
class food (recipe name) 

я хочу запрашивая еду данных для babyAge (6+) и имеет вкус (ASAM)

я использую этот код в моем Java программа (я не знаю, если есть другой код более простым, чем эта, если вы знаете, пожалуйста, скажите мне тоже):

SELECT ?babyAge ?taste ?food 
WHERE { ?babyAge mpasi:hasResep ?food. 
?food mpasi:hasRasa ?taste. 
FILTER regex(str(?babyAge),"6+"). 
FILTER regex (str(?taste),"asam")} 

и я получаю мои данные. но когда я выполняю этот код в протеже, я ничего не получаю. Кто-нибудь может мне помочь?

+0

Если FILTER ожидает регулярное выражение, а строка, которую вы ищете, является '6 +', ваше регулярное выражение должно быть '" 6 [+] "' –

+0

все еще не работает в протеже ... – user3796075

ответ

0

Трудно сказать, не видя онтологии.

Моим первым шагом было бы обеспечить, чтобы mpasi привязан к одному и тому же значению в онтологии, и в вашем запросе - это может быть случай несоответствия IRI.

Вы также можете попробовать без фильтров и посмотреть, не возвращается ли что-либо.