【问题标题】:Map blank nodes from stardog to pubby将空白节点从 stardog 映射到 pubby
【发布时间】:2012-12-06 05:49:35
【问题描述】:

所以我有这个.rdf,我已经加载到Stardog,然后我使用Pubby 在码头上运行,浏览三重商店。

在我的 rdf 文件中,我有几个空白节点,stardog 给了它们一个空白节点标识符。所以这是一个 rdf 文件的 sn-p。

<kbp:ORG rdf:about="http://somehostname/resource/res1">
<kbp:canonical_mention>
<rdf:Description>
    <kbp:mentionStart rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">1234</kbp:mentionStart>
    <kbp:mentionEnd rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">1239</kbp:mentionEnd>
    </rdf:Description>
</kbp:canonical_mention>

所以基本上我有一些资源“res1”,它具有指向空白节点的链接,该节点具有提及开始和提及结束偏移值。

Pubby 的 config.ttl 文件的 sn-p 如下所示。

conf:dataset [
    # SPARQL endpoint URL of the dataset
conf:sparqlEndpoint <http://localhost:5822/xxx/query>;
    #conf:sparqlEndpoint <http://localhost:5822/foaf/query>;
    # Default graph name to query (not necessary for most endpoints)
    conf:sparqlDefaultGraph <http://dbpedia.org>;
    # Common URI prefix of all resource URIs in the SPARQL dataset
conf:datasetBase <http://somehostname/>;
...
...

所以关键是 datasetBase 将 URI 映射到 URL。

当我尝试对此进行映射时,有一个“匿名节点”链接,但点击后没有显示任何内容。我的猜测是,这是因为空白节点有一些像 _:bnode1234 这样的标识符,它没有被 Pubby 映射。

我想知道是否有人知道如何映射这些空白节点。

(注意:如果我将这个 rdf 作为静态 rdf 文件直接加载到 Pubby 上,它可以正常工作。但是当我使用 stardog 作为三重存储时,这个映射就不能正常工作了)

【问题讨论】:

    标签: sparql rdf triplestore stardog blank-nodes


    【解决方案1】:

    它可能在 Pubby 中有效,因为它们保持 BNode id 可用;通常,SPARQL 规范不保证或要求 BNode 标识符是持久的。也就是说,您可以多次发出相同的查询,这会返回相同的结果集(包括 bnodes),并且每次的标识符都可以不同。同样,查询中的 bnode 标识符被视为变量,这并不意味着您正在查询该特定 bnode。

    因此,Pubby 可能会有所帮助,并使其发挥作用,这就是为什么直接使用它而不是使用第三方数据库的原因。

    Stardog 确实支持将 bnode 标识符放在尖括号中的 Jena/ARQ 技巧,也就是说,&lt;_:bnode1234&gt; 表示标识符为“bnode1234”的 bnode。如果您可以让 Pubby 在查询 bnode 时使用该语法,它可能会起作用。

    但总的来说,我认为这是您必须与 Pubby 开发人员讨论的问题。

    【讨论】:

    • 谢谢!我直接使用 Pubby,因为 jena 框架足够快,可以处理 rdf(大约 1.2 GB)
    猜你喜欢
    • 1970-01-01
    • 2012-07-31
    • 1970-01-01
    • 2015-07-21
    • 2013-01-02
    • 1970-01-01
    • 2011-08-10
    • 1970-01-01
    • 2021-07-09
    相关资源
    最近更新 更多