SPARQL查询,如果它包含文本,则按名称获取公司(SPARQL Query to get a company by name if it contains text)

编程入门 行业动态 更新时间:2024-10-22 16:31:21
SPARQL查询,如果它包含文本,则按名称获取公司(SPARQL Query to get a company by name if it contains text)

如果它包含文本,我试图通过名称获得公司

示例: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 。

但是下面的查询与埃森哲不符

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但什么都没得到

I'm trying to get a company by name if it contains text

Example: honda motor co ltd

Maps to: https://www.wikidata.org/wiki/Q9584

I have this query that finds apple successfully

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") ) }

Which returns results since it matches 'Apple Inc' http://dbpedia.org/page/Apple_Inc.

But this query below doesn't match 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") ) }

I expect: http://dbpedia.org/page/Accenture but get nothing

最满意答案

并非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 }
}

Not every resource in RDF must have every property! In your case, the logo doesn't exist which means you should make it an optional feature:

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 }
}

                    
                     
          

更多推荐

本文发布于:2023-04-29 03:38:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1334547.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:文本   名称   公司   SPARQL   company

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!