Как отфильтровать простую тему в запросе SPARQL

Думаю, я застрял в основах SPARQL. Может ли кто-нибудь помочь?

Я просто хочу отфильтровать все темы, содержащие «Гору» базы данных RDS.

Prefix lgdr:<http://linkedgeodata.org/triplify/> Prefix lgdo:<http://linkedgeodata.org/ontology/> 
Select * where { 
?s ?p ?o . 
filter (contains(?s, "Mountain"))
} Limit 1000

Запрос приводит к ошибке:

Virtuoso 22023 Error SL001: The SPARQL 1.1 function CONTAINS() needs a string value as first argument

person mcfly soft    schedule 23.09.2018    source источник
comment
Удачи с filter (contains(str(?s), "Mountain"))?   -  person Cleb    schedule 23.09.2018
comment
Большое спасибо. Ты понял. Я получаю время ожидания транзакции, но это еще одна проблема. Спасибо за помощь. Если хотите, можете ответить, и я приму. Добрый день.   -  person mcfly soft    schedule 23.09.2018
comment
только что написал то же самое :-)   -  person mcfly soft    schedule 23.09.2018
comment
Ах. ограничение до 2, например, будет работать.   -  person mcfly soft    schedule 23.09.2018
comment
Я только что опубликовал ответ, он действительно отлично работает с меньшим Limit. :)   -  person Cleb    schedule 23.09.2018
comment
Предполагается, что только классы имеют удобочитаемые имена. Хотя есть и такие вещи, как <http://linkedgeodata.org/ontology/MountainPass/key/natural/value/mountain_pass>...   -  person Stanislav Kralin    schedule 02.10.2018


Ответы (1)


Вы можете заставить его «работать», используя:

Prefix lgdr:<http://linkedgeodata.org/triplify/> Prefix lgdo:<http://linkedgeodata.org/ontology/> 
Select * where { 
?s ?p ?o . 
filter (contains(str(?s), "Mountain"))
} Limit 1000

Обратите внимание на дополнительные str в запросе.

Однако это приводит к

Virtuoso S1T00 Error SR171: Transaction timed out

и я не уверен, как справиться с этим.

Но в принципе в работе: При использовании

Limit 1

Вы получаете

s   p   o
http://linkedgeodata.org/ontology/MountainRescue    http://www.w3.org/1999/02/22-rdf-syntax-ns#type     http://www.w3.org/2002/07/owl#Class
person Cleb    schedule 23.09.2018