sparql - SPARQL/DBPedia:在不知道实体页面 URI 的情况下通过属性获取实体
问题描述
我正在尝试从描述 DBPedia 上的公司/股票的实体返回一个属性,给定该实体所属的其他属性的唯一组合。
例如,给定字符串NASDAQ
and AAPL
,我希望能够找到http://dbpedia.org/page/Apple_Inc。没有明确知道 URI 的页面。
我知道这个页面包含属性
dbp:symbol
:AAPL
dbp:tradedAs
:dbr: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'
,但这似乎不起作用。
解决方案
我设法解决了它:
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
对于公司的快速总结更有用。
推荐阅读
- r - 过滤列是否包含外部列表中的字符部分
- html - 在 jquery 中查找嵌套的 HTML 值
- woocommerce - br_product_of_day 中的产品简短描述
- dns - 我可以有多个唯一的 CNAMES 指向同一主机吗?
- c# - 'Bairstow' 附近的语法不正确。我收到存储在 sql server 中的播放器名称错误
- python - PyQt5 app compiled with PyInstaller using --onefile and --noconsole, but exe fails to launch
- javascript - 来自solidity合约的app.js文件中的getJSON()出错
- c++ - make 命令返回错误:使用 open-opcua 构建 libOpenOpcUaSharedlib.so 时使用不完整类型无效
- python - 当特定用户在频道中发送消息时,如何让我的不和谐机器人做出响应?
- laravel - Origin 标头在 L5 Swagger 中不起作用 - Laravel