SPARQL 查询以按名称获取公司(如果它包含文本)
SPARQL Query to get a company by name if it contains text
如果公司名称包含文本,我正在尝试获取公司名称
示例:本田汽车有限公司
映射到: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") )
}
returns 结果匹配 '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
但一无所获
并非 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 }
}
如果公司名称包含文本,我正在尝试获取公司名称
示例:本田汽车有限公司
映射到: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") )
}
returns 结果匹配 '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 但一无所获
并非 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 }
}