В ANSI SQL, вы можете написать что-то вроде:
Select * From DBTable Where DBTable.Description LIKE MEET
или
Select * From DBTable Where DBTable.Description LIKE %MEET%
То, что я хотел бы помочь с пишет в SPARQL эквивалент выше, пожалуйста.
В ANSI SQL, вы можете написать что-то вроде:
Select * From DBTable Where DBTable.Description LIKE MEET
или
Select * From DBTable Where DBTable.Description LIKE %MEET%
То, что я хотел бы помочь с пишет в SPARQL эквивалент выше, пожалуйста.
Используйте регулярное выражение фильтра . Вы можете найти краткое руководство здесь
Вот как это выглядит:
PREFIX ns: <http://example.com/namespace>
SELECT ?x
WHERE
{ ?x ns:SomePredicate ?y .
FILTER regex(?y, "YOUR_REGEX", "i") }
YOUR_REGEX
должен быть выражением языка регулярных выражений XQuery
i
является необязательным флаг . Это означает , что матч не чувствителен к регистру.
Если у вас есть фиксированная строка, чтобы соответствовать вы можете использовать это непосредственно в графе шаблон, например
PREFIX ns: <http://example.com/namespace>
SELECT ?x
WHERE
{ ?x ns:SomePredicate "YourString" }
Обратите внимание , это не всегда работает , потому что сопоставление с образцом на основе RDF термина равенства , которое означает , что "YourString"
не считается один и тот же термин , как сказать "YourString"@en
так , если это может быть проблемой использовать REGEX
подход Том предполагает
Кроме того, некоторые двигатели SPARQL обеспечивают расширение полнотекстового поиска, который позволяет интегрировать запросы стиля Lucene в запросы SPARQL, которые могут лучше подходят вашему случаю использования и почти наверняка будут более эффективны для общего поиска, которые в противном случае потребовались бы REGEX