Я пытаюсь сделать запрос sparql внутри другого запроса sparql.В SQL мы можем сделать это следующим образом:
SELECT column_name(s)
FROM table_name
WHERE column_name IN (SELECT STATEMENT);
Я хочу сделать то же самое в запросе SPARQL.В частности, у меня есть два запроса sparql, и я хочу объединить их вместе.Моя конечная цель - найти дочерние компании Siemens PLM Software.Для этого сначала нужно найти идентификатор компании, а затем искать ее дочерние компании.
Q1: Находит уникальную личность «Siemens PLM Software Company»
SELECT DISTINCT ?item ?label ?articleLabel WHERE {
?item ?label "Siemens PLM Software"@en;
wdt:P31 wd:Q4830453.
?article schema:about ?item;
schema:inLanguage "en".
SERVICE wikibase:label { bd:serviceParam wikibase:language "en". }
}
Q2: Найти дочернюю компанию «SiemensPLM Software Company '
SELECT ?Subsidiary ?SubsidiaryLabel ?parent_organization ?parent_organizationLabel WHERE {
SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en". }
?Subsidiary wdt:P749 wd:Q15898201.
OPTIONAL { ?Subsidiary wdt:P749 ?parent_organization. }
Я хотел бы объединить их во что-то вроде этого:
SELECT ?Subsidiary ?SubsidiaryLabel ?parent_organization ?parent_organizationLabel WHERE {
SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en". }
?Subsidiary wdt:P749 wd:
{SELECT DISTINCT ?item ?label ?articleLabel WHERE {
?item ?label "Siemens PLM Software"@en;
wdt:P31 wd:Q4830453.
?article schema:about ?item;
schema:inLanguage "en".
SERVICE wikibase:label { bd:serviceParam wikibase:language "en". }
}
}.
OPTIONAL { ?Subsidiary wdt:P749 ?parent_organization. }
У васЕсть идеи, как я могу это сделать?Спасибо!