SPARQL-запрос для получения имени моей пиццы

Я только начинающий в SPARQL и могу написать несколько базовых запросов. У меня есть онтология пиццы, в которой есть одна пицца, свойства которой следующие:

rdf:subClassOf NamedPizza

hasTopping only (MozzarellaTopping
              or PeperoniSausageTopping
              or TomatoTopping)

hasTopping some MozzarellaTopping

hasTopping some PeperoniSausageTopping

hasTopping some TomatoTopping

Я написал следующий запрос, но он не дает результата.

SELECT * WHERE
{
  ?pizza rdfs:subClassof [
    owl:onProperty :hasTopping;
    owl:someValuesFrom :MozzarellaTopping ] .
  ?pizza rdfs:subClassof [
    owl:onProperty :hasTopping;
    owl:someValuesFrom :PeperonSausageTopping ] .
  ?pizza rdfs:subClassof [
    owl:onProperty :hasTopping;
    owl:someValuesFrom :TomatoTopping ] .
}

Что такое запрос SPARQL, чтобы получить название этой пиццы?

Я использую Protege 4.2, а также TopBraid для выполнения запроса SPARQL

2 ответа

В своем SPARQL-запросе вы пишете rdfs:subClassof вместо rdfs:subClassOf ("о" вместо "о"). Использование заглавных букв имеет значение, поскольку префиксная нотация является просто сокращением для URI, а в URI разные символы (например, строчные, а не прописные) создают разные URI.

Сократите запрос до тех пор, пока он что-то не даст, затем посмотрите, почему удаленная вами часть не соответствует данным.

Другие вопросы по тегам