Я использую SPARQL-DL с OWL-API в приложении Java. The Maven зависимость является следующее:SPARQL-DL: запрос для литералов
<dependency>
<groupId>edu.stanford.protege</groupId>
<artifactId>de-derivo-sparqldlapi</artifactId>
<version>2.0.0</version>
</dependency>
Я предполагаю, что он загружает правильный (совместимый) версии OWL-API. У меня есть класс Person с некоторыми людьми. Каждый человек имеет свойство данных, называемое именем, которое охватывает строку.
При выполнении этого запроса:
SELECT ?x WHERE { PropertyValue(?y, my:name, ?x) }
я получаю это:
[email protected] = ?"Andrea"^^xsd:string
[email protected] = ?"Pippo"^^xsd:string
[email protected] = ?"Pluto"^^xsd:string
Я не в состоянии получить все лица, имеющие имя, совпадающее с Плутоном.
SELECT ?p WHERE { PropertyValue(?p, my:name, "Pluto") }
возвращает пустой набор и
SELECT ?p WHERE { PropertyValue(?p, my:name, "Pluto^^xsd:string") }
возвращает пустой набор
Любая помощь? Спасибо заранее.
Я попытался 'ВЫБРАТЬ у WHERE {PropertyValue (у, мой: имя, "Плутон" ^^ строка)}' , но я получаю следующее сообщение об ошибке: Character ")" ждут в SPARQL-DL запроса , (Рядом с "^^ строки", позы: 140, колонок: 52, строка: 2) – Andrea
Для получения дополнительной информации, которую я вставить фрагмент моей игрушечной онтологии: '...... <Класс МРИ =» #Person "/> Декларация> Декларация> Декларация> <Литеральный тип данныхIRI = "&xsd; strin g "> Pluto DataPropertyAssertion>' –
Andrea
Теперь вы забыли префикс 'xsd'. У вас есть «Плутон» ^^ строка', но это должно быть «Плутон» ^^ xsd: string'. Попробуйте 'SELECT? Y WHERE {PropertyValue (? Y, my: name," Pluto "^^ xsd: string)}' – AKSW