У меня вопрос с использованием запросов WSO2 DSS и SPARQL в Fedora Commons. На данный момент я запускаю WSO2 DSS с моего настольного компьютера и получаю его как службу localhost. Моя конечная точка SPARQL - это удаленный сервер, который запускает приложение с открытым исходным кодом Fedora Commons, требует базовой проверки подлинности для предварительного запроса и принимает входные данные через запросы GET или POST с содержимым запроса, помещенного в «запрос» var. Ради этого примера, мы будем сказать, что конечная точка URL я пытаюсь запрос выглядит следующим образом:SPARQL Вопросы запроса в WSO2 DSS
http://fedoraAdmin:[email protected]:8080/fedora/risearch?lang=sparql
Запрос Я пытаюсь запустить работы в тестовой странице Fedora ресурсы Индексы запросов службы и выглядит следующим образом:
PREFIX fedora: <info:fedora/fedora-system:def/relations-external#>
SELECT ?pid
FROM <#ri>
WHERE {
?pid fedora:isMemberOfCollection <info:fedora/islandora:root>
}
в каком-то момент я хотел бы заменить идентификатор «islandora: корень» с парами запроса, но это не важно в данный момент. Результат выше взгляд запроса что-то вроде этого:
<sparql>
<head>
<variable name="pid"/>
</head>
<results>
<result>
<pid uri="info:fedora/islandora:sp_basic_image_collection"/>
</result>
<result>
<pid uri="info:fedora/islandora:sp_large_image_collection"/>
</result>
<result>
<pid uri="info:fedora/islandora:70"/>
</result>
<result>
<pid uri="info:fedora/rick:1"/>
</result>
<result>
<pid uri="info:fedora/islandora:419"/>
</result>
<result>
<pid uri="info:fedora/islandora:420"/>
</result>
</results>
</sparql>
Учитывая выше ситуации и выходных данных, я создал службу данных в WSO2 DSS, похожее на следующее:
<data name="FedoraSPARQL">
<config id="FedoraDEVServer">
<property name="rdf_datasource">http://fedoraAdmin:[email protected]:8080/fedora/risearch?lang=sparql</property>
</config>
<query id="getMemberOfCollection" useConfig="FedoraDEVServer">
<sparql><![CDATA[PREFIX fedora: <info:fedora/fedora-system:def/relations-external#> SELECT ?pid FROM <#ri> WHERE {?pid fedora:isMemberOfCollection <info:fedora/islandora:root>}]]></sparql>
<result element="results" rowName="result">
<element column="pid" name="pid" xsdType="string"/>
</result>
<param name="targetPID" sqlType="STRING"/>
</query>
<operation name="getMemberOfCollection">
<description>Returns the collection objects under islandora:root</description>
<call-query href="getMemberOfCollection">
<with-param name="targetPID" query-param="targetPID"/>
</call-query>
</operation>
</data>
В настоящее время я m испытывает 401 Unauthorized, вероятно, из-за ошибки опечатки или форматирования в строке подключения или того факта, что WSO2 DSS не может подключиться к конечной точке SPARQL, требующей аутентификации. Мой вопрос здесь в том, как сделать приведенную выше работу источника данных с учетом моей текущей настройки? Если я не могу получить аутентификацию, работающую с DSS, у меня есть возможность полностью обходить аутентификацию, если WSO2 DSS работает с другого сервера. Предполагая, что это может быть сделано для работы, какое изменение мне нужно сделать, чтобы использовать параметр запроса «targetPID» вместо используемой в настоящее время строки «islandora: root»?