Виртуозная ошибка SPARQL с BIND - PullRequest
1 голос
/ 31 октября 2019

Кажется, я обнаружил ошибку с функцией BIND SPARQL в Virtuoso. Я запускаю это в http://dbpedia.org/snorql/

Рассмотрим следующий код:

SELECT DISTINCT ?label ?companyShort
WHERE{
        ?org rdf:type dbo:Company ;
            rdfs:label ?label .        
        #BIND (UCASE(SUBSTR(?label,1,3)) as ?companyShort)
        filter langMatches( lang(?label), "EN" )
        filter(?label="About.com"@en)
}

Это ведет себя как ожидалось. Теперь удалите комментарий к BIND и poof , результаты исчезнут. Почему результаты исчезают, если я связываю некоторые манипуляции со строками с другой переменной?

1 Ответ

1 голос
/ 31 октября 2019

Другие могут указать причину этого поведения, но вы можете исправить ее, изменив фильтр меток на str(?label)="About.com", поэтому запрос будет выглядеть следующим образом:

SELECT DISTINCT ?label ?companyShort
WHERE{
        ?org rdf:type dbo:Company ;
            rdfs:label ?label .        
        BIND (UCASE(SUBSTR(?label,1,3)) as ?companyShort)
        filter langMatches( lang(?label), "EN" )
        filter(str(?label)="About.com")
}
...