DBpedia Запросить компанию с генеральным директором (или директором) - PullRequest
0 голосов
/ 05 июня 2018

Я сделал этот запрос в Dbpedia, чтобы получить название компании с ее аннотацией, но я хотел бы получить текущий директор /CEO.

PREFIX dbpedia-owl: <http://dbpedia.org/ontology/>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>        

SELECT DISTINCT ?name ?description 
where{
  ?company a dbpedia-owl:Company.
  ?company foaf:name ?name;
  dbpedia-owl:abstract ?description;
  rdfs:label "Microsoft"@en.
  FILTER( langMatches(lang(?description),"en") )
}

Я пытался выполнить:

PREFIX dbpedia-owl: <http://dbpedia.org/ontology/>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>        

SELECT DISTINCT ?name ?ceo ?description 
where{
  ?company a dbpedia-owl:Company.
  ?company foaf:name ?name.
  ?company dbpedia-owl:ceo ?ceo;
  dbpedia-owl:abstract ?description;
  rdfs:label "Microsoft"@en.
  FILTER( langMatches(lang(?description),"en") )
}

Но я ничего не получил.

У кого-нибудь есть предложения по этому запросу?

1 Ответ

0 голосов
/ 05 июня 2018

С комментарием @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..."
...