2017-02-13 16 views
1

Я пытаюсь получить компанию по имени, если он содержит текстSPARQL запрос, чтобы получить компанию по имени, если он содержит текст

Пример: Honda Motor Co Ltd

Карт: https://www.wikidata.org/wiki/Q9584

у меня есть этот запрос, который находит яблоко успешно

PREFIX dbpedia-owl: <http://dbpedia.org/ontology/> 
PREFIX dbpedia: <http://dbpedia.org/resource/> 
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> 
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>   
PREFIX type: <http://dbpedia.org/class/yago/> 
PREFIX prop: <http://dbpedia.org/property/> 
select distinct ?iri ?logo ?description { 
    ?iri a dbpedia-owl:Company ; 
     dbpedia-owl:abstract ?description ; 
     rdfs:label ?lbl ; 
     foaf:depiction|dbpedia-owl:thumbnail ?logo . 
    ?lbl bif:contains "'apple'"@en . 
    filter(langMatches(lang(?description),"en")) 
} 

который возвращает результаты, так как он совпадает с «Apple Inc» http://dbpedia.org/page/Apple_Inc.

Но этот запрос ниже не соответствует Accenture

PREFIX dbpedia-owl: <http://dbpedia.org/ontology/> 
PREFIX dbpedia: <http://dbpedia.org/resource/> 
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> 
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>   
PREFIX type: <http://dbpedia.org/class/yago/> 
PREFIX prop: <http://dbpedia.org/property/> 
select distinct ?iri ?logo ?description { 
    ?iri a dbpedia-owl:Company ; 
     dbpedia-owl:abstract ?description ; 
     rdfs:label ?lbl ; 
     foaf:depiction|dbpedia-owl:thumbnail ?logo . 
    ?lbl bif:contains "'accenture'"@en . 
    filter(langMatches(lang(?description),"en")) 
} 

Я ожидаю: http://dbpedia.org/page/Accenture , но ничего не получает

ответ

2

Не каждый ресурс в RDF должен иметь все свойства! В вашем случае логотип не существует, что означает, что вы должны сделать его дополнительной функцией:

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

SELECT DISTINCT ?iri ?logo ?description { 
    ?iri a dbpedia-owl:Company ; 
     dbpedia-owl:abstract ?description ; 
     rdfs:label ?lbl . 
    ?lbl bif:contains "'accenture'"@en . 
    FILTER(langMatches(lang(?description),"en")) 
    OPTIONAL {?iri foaf:depiction|dbpedia-owl:thumbnail ?logo } 
}