FILTER regex (?cpvp, "^CPV1")
имеет значение true, ?cpvp
начинается с CPV1
, но, если я не ошибаюсь, значения ?cpvp
будут начинаться со строки пространства имен &Public_Contracting;
. Попробуйте выполнить свой запрос без фильтра и посмотрите, как выглядят значения для ?cpvp
. Может быть, вы хотите проверить, заканчиваются ли эти значения CPV1
: в этом случае вы должны использовать FILTER regex (?cpvp, "CPV1$")
.
Глядя на ваши комментарии, кажется, что вы действительно хотите связать всех людей типа Procedure
со свойством hasCPV
с ресурсом, содержащим "CPV1". Тогда вам, вероятно, понадобится этот запрос (не проверенный):
PREFIX ns: <http://127.0.0.1/Public_Contracting.owl#>
SELECT ?proc
WHERE {
?proc a ns:Procedure ;
ns:hasCPV ?cpv.
FILTER regex (STR(?cpv), "CPV1$")
}