Предложение SPARQL BIND вызывает исключение для источника данных повторителя
Я пытаюсь заполнить источник данных элемента управления повторителем с помощью следующего кода VB:
Dim queryString As SparqlParameterizedString = New SparqlParameterizedString()
For Each nsPrefix In UrlManager.namespaces.Keys
queryString.Namespaces.AddNamespace(nsPrefix, New Uri(UrlManager.namespaces(nsPrefix)))
Next
queryString.CommandText = commandText
Dim parser As New SparqlQueryParser()
Dim query = parser.ParseFromString(queryString)
Dim r As SparqlResultSet = g.ExecuteQuery(query)
If r.Count > 0 Then
datasource = r
Else
datasource = Nothing
End If
где переменная g
мой рабочий график
Я работаю с тем же запросом
SELECT DISTINCT ?context ?label {
?s a my:Client .
?s rdfs:label ?label .
BIND ( IF(EXISTS {?s rdf:type my:Subscriber}, 1, 0) AS ?priority )
} ORDER BY DESC(?priority) ASC(?label)
Всякий раз, когда я пытаюсь этот код VB на простой странице ASPX, он работает правильно, но если на ретрансляторе происходит сбой OnLoad
событие с VDS.RDF.Query.RdfQueryException: Cannot add a Set to the Null Multiset
Кажется, ошибка вызвана BIND ( IF(EXISTS {?s rdf:type my:Subscriber}, 1, 0) AS ?priority )
предложение: если я уберу его, мой повторитель будет вести себя как положено!
Есть идеи, почему возникает исключение и как его исправить?
1 ответ
Это может быть связано с ошибкой, идентифицированной вашим связанным вопросом ( проблема Sparql в предложении BIND)
Была ошибка в EXISTS
если оно использовалось в качестве дочернего элемента другого выражения, если вы можете строить из исходного кода самостоятельно, вы сможете проверить, решает ли это исправление эту проблему. Если вы все еще сталкиваетесь с проблемой, пожалуйста, отправьте новую ошибку в систему отслеживания проблем.