SPARQL / DBPedia:在不知道实体页面URI的情况下通过属性获取实体

问题描述 投票:1回答:1

我正在尝试从描述DBPedia上的公司/股票的实体返回一个属性,给出该实体所属的其他属性的唯一组合。

例如,给定字符串NASDAQAAPL,我希望能够找到http://dbpedia.org/page/Apple_Inc。页面没有明确知道URI。

我知道这个页面包含属性

  • dbp:symbolAAPL
  • dbp:tradedAsdbr:NASDAQ-100

我如何使用SPARQL直接搜索dbp:symbol以获取AAPL并在dbp:tradedAs上搜索NASDAQ以获得部分匹配,以返回最可能的结果(如果存在)。

我还必须补充一点,我想从这个页面返回的属性,如果匹配,则是dbo:abstract,它对应于我想用于解析的公司/股票的大文本描述。

编辑:我已成功执行以下操作:

SELECT *
WHERE {
   ?s1 dbpedia2:symbol ?o1 .
   ?s1 dbpedia2:tradedAs ?o2 .
   ?o1 bif:contains  '"AAPL"'  .
}

返回条目

s1  o1  o2
:Apple_Inc. [http]  "AAPL"^^rdf:langString  :S&P_500 
:Apple_Inc.    [http]   "AAPL"^^rdf:langString  :Dow_Jones_Industrial_Average    
:Apple_Inc. [http]  "AAPL"^^rdf:langString  :NASDAQ-100

我试图添加?o2 bif:contains 'NASDAQ',但这似乎没有用。

sparql dbpedia
1个回答
1
投票

我设法解决了它:

PREFIX dbpedia2: <http://dbpedia.org/property/> 
PREFIX dbo: <http://dbpedia.org/ontology/>
SELECT *
WHERE {
   ?s1 dbpedia2:symbol ?symbol .
   ?s1 dbpedia2:tradedAs ?exchange .
   ?s1 dbo:abstract ?abstract .
   ?symbol bif:contains  '"AAPL"'  .
   FILTER(lang(?abstract) = "en").
   FILTER(regex(str(?exchange), "NASDAQ" ) )
}

返回

s1  symbol  exchange    abstract
:Apple_Inc. "AAPL"^^rdf:langString  :NASDAQ-100 "Apple Inc. is an American multinational technology company headquartered in Cupertino, California...

请注意,特别是对于此条目,rdfs:comment对于公司的快速摘要更有用。

© www.soinside.com 2019 - 2024. All rights reserved.