Как использовать логичный ИЛИ в SPARQL regex ()?

Я использую эту строку в запросе SPARQL в моей программе Python:

FILTER regex(?name, "%s", "i" )

(где %s искомый текст, введенный пользователем),

Я хочу, чтобы это соответствовало если также ?name или ?featurename содержит %s, но я, может казаться, не нахожу документации или учебного руководства для использования regex (). Я попробовал пару вещей, которые казались разумными:

FILTER regex((?name | ?featurename), "%s", "i" )
FILTER regex((?name || ?featurename), "%s", "i" )
FILTER regex((?name OR ?featurename), "%s", "i" )
FILTER regex((?name, ?featurename), "%s", "i" )

и каждый из тех, которые не имеют ()

FILTER regex(?name, "%s", "i" ) || regex(?featurename, "%s", "i" )

Что правильный путь состоит в том, чтобы сделать это?Спасибо

ОБНОВЛЕНИЕ: Используя работы ОБЪЕДИНЕНИЯ. Но я выяснил, что это также работает, если Вы просто повторяете regex () часть как так:

FILTER (regex(?name, "%s", "i") || regex(?featurename, "%s", "i" ))

Оба решения кажутся немного грязными в этом, необходимо использовать кортеж с 2 элементами с копиями той же строки для заполнения обоих %ss.

7
задан Jeff 17 July 2010 в 23:09
поделиться