Для этого не существует синтаксиса magi c SPARQL: как и SQL, вы должны сделать запрос SPARQL из строки, по крайней мере, в Python. Следовательно, любой пользовательский ввод, который вы хотите, должен составлять строку, которую вы затем отправляете в качестве запроса. Допустим, вы хотите получить все цены больше price_to_be_less_than
, вы должны сделать это в RDFlib Python:
def get_prices(g, price_to_be_less_than):
q = """
SELECT ?item
WHERE {{
?item ex:hasPrice ?price .
FILTER (?price < {})
}}
""".format(price_to_be_less_than)
items = []
for r in g.query(q):
items.append(r["item"])
return items
Я использую .format()
, а не f-строки (личные вкус), поэтому мне нужно использовать двойные фигурные скобки, "{{", в запросе