, Возможно, Ваш ServiceReferences.ClientConfig
для Вашего клиента Silverlight указывает на неправильный URL?
кроме того, проверьте местоположение своего междоменного файла политики. Эта статья MSDN имеет больше информации.
Дополнительное примечание для выполнения Silverlight локально (Боковая панель Vista, например). Как сообщается в эта запись в блоге , "Silverlight не может использовать поставщика сетевых услуг при выполнении локально". обходное решение должно использовать JavaScript для взаимодействия через интерфейс к веб-сервису в этой ситуации.
Причина, по которой это не работает, заключается в том, что у вас есть две отдельные привязки переменных (? X
и ? Y
), которые не связаны в вашем запросе . Итак, ? X
должен обязательно появиться в наборе результатов (что вам и нужно), но если ? Y
не привязан, вы не узнали ничего нового о ? x
.
Обновление: в идеальном запросе вообще не было бы необходимости в ? y
; вы можете напрямую тестировать входящие / исходящие edeg ? x
. Это сложно (невозможно?) Сделать в SPARQL 1.0, если вы хотите проверить, не существует ли края для данной привязки переменной. Однако SPARQL 1.1 будет поддерживать отрицание:
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
SELECT ?agent
WHERE
{
?agent rdf:type foaf:Agent .
FILTER NOT EXISTS { ?agent rdf:type foaf:Person . }
}
@Kingsley Idehen '
Чтобы сделать это в SPARQL 1.0, вам нужно написать:
SELECT * WHERE {
?x rdf:type foaf:Agent
OPTIONAL { ?y rdf:type foaf:Person . FILTER (?x = ?y) . }
FILTER ( !BOUND(?y) )
}
Как говорит Фил М. , SPARQL 1.1 представит новый синтаксис, чтобы упростить запись.
С помощью расширений Virtuoso SPARQL конечная точка для проверки http://lod.openlinksw.com/sparql (LOD Cloud Cache Instance)
SELECT distinct ?x ?o
WHERE {
?x a foaf:Agent .
?x ?p ?o.
filter (!bif:exists ((select (1) where { ?x a foaf:Person } )))
}
limit 10
DESCRIBE ?x
WHERE {
?x a foaf:Agent .
filter (!bif:exists ((select (1) where { ?x a foaf:Person } )))
}
limit 200