Я новичок в SPARQL. Я использую онтологию пиццы и пытаюсь написать запрос SPARQL, чтобы получить количество пицц с определенной начинкой.
Если у меня есть этот запрос:
prefix pizza: <http://www.co-ode.org/ontologies/pizza/pizza.owl#> prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> prefix owl: <http://www.w3.org/2002/07/owl#> select ?pizza where {?pizza a owl:Class ; rdfs:subClassOf ?restriction. ?restriction owl:onProperty pizza:hasTopping ; owl:someValuesFrom pizza:PeperoniSausageTopping }
У меня будет следующий результат (с использованием Jena):
------------------------------------------------------------------ | pizza | ================================================================== | <http://www.co-ode.org/ontologies/pizza/pizza.owl#FourSeasons> | | <http://www.co-ode.org/ontologies/pizza/pizza.owl#American> | | <http://www.co-ode.org/ontologies/pizza/pizza.owl#AmericanHot> | ------------------------------------------------------------------
Теперь я хотел вернуть количество пицц для запрос (здесь 3), а не список пицц, поэтому я написал такой запрос:
prefix pizza: <http://www.co-ode.org/ontologies/pizza/pizza.owl#> prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> prefix owl: <http://www.w3.org/2002/07/owl#> select (sum(?pizza)) where {?pizza a owl:Class ; rdfs:subClassOf ?restriction. ?restriction owl:onProperty pizza:hasTopping ; owl:someValuesFrom pizza:PeperoniSausageTopping }
Но у меня есть исключение, запрос неверен, что я сделал не так? Исключение, которое у меня есть с Йеной:
org.apache.jena.query.QueryParseException: Encountered " ")" ") "" at line 5, column 20. Was expecting one of: "not" ... "as" ... "in" ... <INTEGER_POSITIVE> ... <DECIMAL_POSITIVE> ... <DOUBLE_POSITIVE> ... <INTEGER_NEGATIVE> ... <DECIMAL_NEGATIVE> ... <DOUBLE_NEGATIVE> ... "=" ... "!=" ... ">" ... "<" ... "<=" ... ">=" ... "||" ... "&&" ... "+" ... "-" ... "*" ... "/" ...