Как я могу получить только имя из этого запроса?

Пожалуйста, помогите получить только имя из этого запроса и игнорировать все URL?

<?php

$endpointUrl = 'https://query.wikidata.org/sparql';
$sparqlQuery = <<< 'SPARQL'
SELECT ?disc_jockey ?disc_jockeyLabel ?name WHERE {
SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en". }
?disc_jockey wdt:P106 wd:Q130857.
OPTIONAL { ?disc_jockey wdt:P2561 ?name. }
}

SPARQL;

echo file_get_contents( $endpointUrl . '?query=' . urlencode( $sparqlQuery )  );
?>

-2

Решение

Итак, у вас есть доступ, чтобы манипулировать этим SQL SPARQL строка напрямую? Если это так, просто удалите ?disc_jockey ?disc_jockeyLabel из запроса:

<?php $endpointUrl = 'query.wikidata.org/sparql'; $sparqlQuery = <<< 'SPARQL' SELECT ?name WHERE { SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en". } ?disc_jockey wdt:P106 wd:Q130857. OPTIONAL { ?disc_jockey wdt:P2561 ?name. } } SPARQL; echo file_get_contents( $endpointUrl . '?query=' . urlencode( $sparqlQuery ) );

Или я неправильно понял ваш вопрос?

Судя по возвращаемому значению, нет данных для name тег. Если вы вставите следующий URL в ваш браузер, вы получите файл, содержащий всю строку:

https://query.wikidata.org/sparql?query=%27SELECT%20%3Fname%20WHERE%20%7B%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22%5BAUTO_LANGUAGE % 5D% 2Cen% 22.% 20% 7D% 20% 3Fdisc_jockey% 20wdt% 3AP106% 20wd% 3AQ130857.% 20OPTIONAL% 20% 7B% 20% 3Fdisc_jockey% 20wdt% 3AP2561% 20% 3Fname.% 20% 7D% 20% 7D% 27

Если вы посмотрите в этот файл, вы увидите, что нет «name«xml node. Возможно ли, что предложение where неверно?

Если вы удалите ?disc_jockey ?disc_jockeyLabel Вы получаете пустой набор результатов. Он содержит правильное количество записей, просто нет узлов для отображения, потому что name кажется, не один из узлов.

https://query.wikidata.org/sparql?query=SELECT%20%3Fname%20WHERE%20%7B%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22%5BAUTO_LANGUAGE% 5D% 2Cen% 22.% 20% 7D% 20% 3Fdisc_jockey% 20wdt% 3AP106% 20wd% 3AQ130857.% 20OPTIONAL% 20% 7B% 20% 3Fdisc_jockey% 20wdt% 3AP2561% 20% 3Fname.% 20% 7D% 20% 7D

Я в замешательстве или чего-то не хватает?

Возможно, вы действительно хотите только disc_jockeyLabel?

https://query.wikidata.org/sparql?query=SELECT%20%3Fdisc_jockeyLabel%20WHERE%7BSERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22%5BAUTO_LANGUAGE%5D%2Cen% 22.% 20% 7D% 3Fdisc_jockey% 20wdt% 3AP106% 20wd% 3AQ130857.% 20OPTIONAL% 20% 7B% 20% 3Fdisc_jockey% 20wdt% 3AP2561% 20% 3Fname.% 20% 7D% 7D

После того, как вы получите эту информацию, вы можете перебирать их, собирая все литеральные узлы.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]