远程远程端点 RDFLib / Redland 上的 SPARQL 查询

2023-11-22

我正在尝试查询远程端点并获取 owl:sameAs 映射,我尝试了 RDFLib 和 Redland,但都不适合我,可能我没有正确处理名称空间。

这是我在 RDFLib 中的尝试:

    import rdflib

    rdflib.plugin.register('sparql', rdflib.query.Processor, 'rdfextras.sparql.processor', 'Processor')
    rdflib.plugin.register('sparql', rdflib.query.Result, 'rdfextras.sparql.query', 'SPARQLQueryResult')

    g = rdflib.Graph()

    query = """
        SELECT *
        FROM <http://api.talis.com/stores/bbc-backstage/services/sparql>
        WHERE {
             ?s a http://purl.org/ontology/mo/MusicArtist;
                http://www.w3.org/2002/07/owl#sameAs ?o .
        }Limit 50
    """

    for row in g.query(query):
        print row

这是雷德兰:

import RDF
model = RDF.Model()

query = """
    SELECT *
    FROM <http://api.talis.com/stores/bbc-backstage/services/sparql>
    WHERE {
         ?s a http://purl.org/ontology/mo/MusicArtist;
            http://www.w3.org/2002/07/owl#sameAs ?o .
    }Limit 50
"""

for statement in RDF.Query(query ,query_language="sparql").execute(model):
    print statement

您能提示一下其中任何一个有什么问题吗? 我遇到的另一个困难是:是否可以获得对象的数据集名称?例如:如果有:

?s = http://www.bbc.co.uk/music/artists/eb5c8564-927d-414d-b152-c7b48a2c9d8b#artist
predicate = http://www.w3.org/2002/07/owl#sameAs
?0 = http://dbpedia.org/resource/The_Boy_Least_Likely_To

我可以得到这个例子中的“Dbpedia”的名称吗?或者我有 SameAs 链接的任何其他数据集? (或者我可能可以在对象字符串中查找感兴趣的数据集名称)提前非常非常感谢


各种事情:

你是对的,你需要将任何 URI 括在其中< >。正确的查询是:

SELECT ?s ?o WHERE {
         ?s a <http://purl.org/ontology/mo/MusicArtist>;
            <http://www.w3.org/2002/07/owl#sameAs> ?o .
    } limit 50

...查看结果here.

FROM并没有像你想象的那样在 rdflib 或 redland 中实现。它不会获取远程 SPARQL 端点,而是获取远程图或本地存储中具有该名称的图。在你的情况下你想使用SERVICE see 耶拿的运作方式。不幸的是,rdflib 和 redland 都没有实现SERVICESPARQL 子句,但有一些解决方法可以解决这个问题。

一种可能的解决方案是使用用于 python 的 SPARQLWrapper。这很简单,这里有该库的代码:

from SPARQLWrapper import SPARQLWrapper, JSON

sparql = SPARQLWrapper("http://api.talis.com/stores/bbc-backstage/services/sparql")
sparql.setQuery("""
    SELECT ?s ?o
    WHERE {
         ?s a <http://purl.org/ontology/mo/MusicArtist>;
            <http://www.w3.org/2002/07/owl#sameAs> ?o .
    } limit 50
""")
sparql.setReturnFormat(JSON)
results = sparql.query().convert()

for result in results["results"]["bindings"]:
    print result["s"]['value'], result["o"]['value']

正如您所看到的,远程 SPARQL 端点成为查询外部的参数。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

远程远程端点 RDFLib / Redland 上的 SPARQL 查询 的相关文章

随机推荐

  • 剃刀无效功能

    我有 Razor 函数 它输出一些数据 结果不返回任何内容 这是一个很长的故事 为什么要这样做 functions public static void SampleHelperMethod 我现在怎样才能在视图中调用它 我试过 MyFun
  • 在Java程序中使用结果集

    Resultset rs stmt executeQuery select count from feedsca group by score order by score 使用上面的 java 代码 我从名为 feedsCA 的表中检索行
  • java.concurrent.ReentrantLock - 为什么我们要多次获取相同的锁[重复]

    这个问题在这里已经有答案了 我知道如果使用 ReentrantLock 它允许同一线程多次获取同一锁 其内部有一个计数器来统计获取锁的次数 如果您两次获取同一个锁 则需要释放它两次 但我的问题是 为什么有人想要多次获取锁 一次获取就足够了吗
  • Android GLES20.glBlendEquation 不起作用?

    几周来我一直在尝试制作一个具有深度和法线贴图纹理的 2 5D 引擎 与这里使用的没什么不同Linky 在认为由于 ES 2 0 缺少 gl fragDepth 变量而无法在片段着色器中从纹理绘制深度图之后 我找到了一个 iOS 教程 其中他
  • 当 setUpClass 失败时,如何清理 Python UnitTest?

    假设我有以下 Python UnitTest import unittest def Test unittest TestCase classmethod def setUpClass cls Get some resources if e
  • iOS 视图变换动画

    我可能错过了一些简单的东西 但试图用图像视图做一个简单的 肯伯恩斯效果 首先是代码 UIView animateWithDuration 20 delay 2 options UIViewAnimationCurveLinear anima
  • 如何使用 LINQ 左连接多个表

    我正在尝试使用 LINQ 左连接三个表 我的 SQL 工作如下 Select j Id u FirstName u LastName u Role From Job j left join JobTranslator as jt on j
  • 如何使用 netfilter 挂钩在内核空间中回显数据包?

    我想在内核空间中回显一个数据包 我在这台机器上运行一个 echo 服务器 端口为 6000 现在 客户端在另一台机器上运行 向回显服务器发送数据 现在 我想做的是从内核空间回显数据包 我不想用数据包打扰服务器 它会从内核空间默默地回显 我在
  • C# 4.0 中的方法重载与可选参数[重复]

    这个问题在这里已经有答案了 哪一个更好 乍一看 可选参数似乎更好 更少的代码 更少的 XML 文档等 但为什么大多数 MSDN 库类使用重载而不是可选参数 当您选择使用可选参数 或重载 时 有什么特别需要注意的事情吗 C 4 0 中 可选参
  • 在 Javascript 中以 50 个小块执行 100K Promise

    我有一个函数可以对服务进行 REST 调用并返回一个承诺 让我们调用该函数 Execute 该函数采用 ID 并将 ID 作为 GET 参数发送到 REST 端点 该端点将 ID 与一些附加信息一起保存在 mongoDB 数据库中 在客户端
  • ggplot 图例不适用于scale_colour_manual

    我知道之前已经有人问过同样的问题 ggplot 图例 scale colour manual 不起作用 但问题涉及的数据集比我这里的数据集稍微复杂 答案建议重组数据 然后使用重组数据 但即使使用下面的简单数据 问题仍然存在 我无法解决它 因
  • 将图像从 FileReader 传递到 Angular 6 中的表单输入

    我尝试创建一个用户界面 其中有一个带有几个文本字段的表单 一个input type file and a div您可以将图像与表单的其余部分一起上传 我的目标 逻辑 使用相同的div放置图像或单击它并打开文件夹资源管理器 例如input t
  • EF Code First,将两个导航属性映射到同一对象类型

    如果我有一个User具有以下属性的类 public Guid UserPreferenceId get set public virtual DefaultUserPreference UserPreference get set publ
  • Android 静态 Application.getInstance()

    你能帮我解决这个情况吗 我们正在使用一个类的静态实例 该类扩展了 android 中的 Application public class MyClass extends Application public static MyClass g
  • 成员名称和构造函数参数名称之间的冲突[重复]

    这个问题在这里已经有答案了 可能的重复 C 中的成员与方法参数访问 我有一个班级 有一些成员 比如x y width and height 在它的构造函数中 我不会这样做 A A int x int y int width int heig
  • 如何在单独的文件夹中添加资源?

    当我尝试通过单击 添加现有项目 在资源设计器中添加资源时 该项目被放置在 资源 文件夹中 问题是 如果我在资源目录中创建一个新目录并将资源放在那里 我会收到编译器错误 无法找到文件 我无法将所有资源放在一个文件夹中 因为我必须添加 2500
  • C# 中的 Struct.Pack 等效吗?

    我正在构建一个连接到渲染应用程序的 C 客户端 但失败了 我通过剖析一个适用于这一行的Python客户端来缩小问题范围 def Startclient Click self sender e try s socket socket sock
  • Linux 中的 Java - root 和非 root 的不同外观类

    我注意到 Java 为 root 和非 root 用户提供了不同的外观类 我试图了解如何使 LAF 保持一致 此外 即使在用户 root 内也是不一致的 取决于用户 root 的登录方式 示例代码 编译并打包在laf jar import
  • 使用decimal.ToString("C") 和 CultureInfo 自定义货币符号和小数位

    我有一个问题decimal ToString C 覆盖 基本上我想做的是如下 CultureInfo usCulture new CultureInfo en US Thread CurrentThread CurrentCulture u
  • 远程远程端点 RDFLib / Redland 上的 SPARQL 查询

    我正在尝试查询远程端点并获取 owl sameAs 映射 我尝试了 RDFLib 和 Redland 但都不适合我 可能我没有正确处理名称空间 这是我在 RDFLib 中的尝试 import rdflib rdflib plugin reg