【问题标题】:How can I retrieve a list of specific person names from DBPedia by using SPARQL query in R如何使用 R 中的 SPARQL 查询从 DBPedia 检索特定人名列表
【发布时间】:2015-05-28 17:44:54
【问题描述】:

我目前正在使用 R 中的 SPARQL 包来查询 DBPedia 并获取特定人名列表的信息。但我只知道如何查询一个人或“人类别”,例如

query= "SELECT *{
    dbpedia:Veit_Dietrich ?p ?o 
}"

qd=SPARQL(endpoint,query)
df=qd$results

是否只使用一个查询就可以迭代查询多个名称(a、b 和 c)?

【问题讨论】:

    标签: r iteration sparql dbpedia


    【解决方案1】:

    对于这样的查询,最简单的方法是使用values。例如,

    select * { 
      values ?person { dbpedia:Johnny_Cash dbpedia:Johann_Sebastian_Bach }
      ?person ?p ?o 
    }
    

    SPARQL results

    我不熟悉 R,但 hui pointed out in the comments 认为 R 的 paste 函数可用于连接 URI 列表以生成 values 的内容。

    【讨论】:

    • 谢谢。但是如果有大约 300 个名称,那么这些值应该不是很可行。有什么方法可以使用like变量,我试过用变量,但是好像不适合SPARQL...
    • 我不确定您通过“任何方式使用类似变量”来问什么。 ?person 一个变量。
    • 对不起。例如,如果我有一个包含 100 个人名的列表,我将该列表导入 R 并通过 SPARQL 查询列表中的每个名称,例如:ft=function(b){ for(i in 1:length(b) ){ select * {dbpedia:b[i] ?p ?o }" 我知道这是丑陋和错误的,但我不知道如何修改它......
    • @hui 我不熟悉R,但为什么不喜欢"select * { values ?person { "+convertListToUris(persons)+" } ?person ?p ?o"
    • @hui 我不认为 Joshua 暗示该功能是由 R 提供的 - 但你自己写一个应该很容易。
    猜你喜欢
    • 1970-01-01
    • 2023-03-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-13
    相关资源
    最近更新 更多