С комментарием @AKSW я изменяю свой запрос, чтобы получить нужный мне результат
PREFIX dbpedia-owl: <http://dbpedia.org/ontology/>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
SELECT DISTINCT ?name (GROUP_CONCAT(?ceo_entity; separator=",") as ?ceos) ?description
where
{
?company a dbpedia-owl:Company.
?company foaf:name ?name.
?company dbpedia-owl:keyPerson/foaf:name ?ceo_entity.
?company dbpedia-owl:abstract ?description;
rdfs:label "Microsoft"@en.
FILTER( langMatches(lang(?description),"en") )
}
Я объясняю свой запрос всем, кому нужно его использовать и настраивать:
SELECT DISTINCT ?name (GROUP_CONCAT(?ceo_entity; separator=",") as ?ceos) ?description
Я выбираю название компании в столбце, затем объединяю имена руководителей компаний в столбцы ceos и, наконец, выбираю описание в последнем столбце.
Первая часть моего предложения WHERE:
?company a dbpedia-owl:Company.
?company foaf:name ?name.
?company dbpedia-owl:keyPerson/foaf:name ?ceo_entity.
?company dbpedia-owl:abstract ?description;
Я хочу, чтобы ?company
была сущностью класса Company, тогда я хочу указать имя свойства в моем столбце ?name
.Кроме того, я спрашиваю имя свойства объекта keyPerson в столбце (будет конкатен, чтобы получить только одну строку) ?ceo_entity
, и я прошу резюме (описание компании) в столбце ?description
.
rdfs:label "Microsoft"@en.
FILTER( langMatches(lang(?description),"en") )
Эта часть позволяет мне получить только Компанию с надписью «Microsoft», где описание на английском языке.
Результат будет:
name | ceos |description
"Microsoft Corporation"@en | Bill Gates,John W. Thompson,Satya... | "Micro..."