问题标签 [blank-nodes]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
rdf - 如何区分 RDF 中的两个空白节点?
我很难理解来自 w3.org 的一段话。令人困惑的段落可能是一个错误,或者我可能只是感到困惑。
以下是RDF 概念规范的第 6.6 节,
6.6 空白节点
RDF 图中的空白节点是从无限集合中绘制的。这组空白节点、所有 RDF URI 引用的集合和所有文字的集合是成对不相交的。
否则,这组空白节点是任意的。
RDF 不参考空白节点的任何内部结构。给定两个空白节点,可以确定它们是否相同。
所以,我很困惑的是:如果没有办法知道“空白笔记的内部结构”,如何区分它们?这是一个错字吗?
python - Adding blank nodes in triples
The code written below gives the following output:
Code:
Output:
But I need following output, could you please guide what is wrong with it.
Thanks in advance.
sparql - 如何递归扩展 SPARQL 构造查询中的空白节点?
可能很容易回答这个问题,但我什至不知道如何制定谷歌查询来找到它。
我正在针对包含空白节点的数据集编写 SPARQL 构造查询。所以如果我做一个像这样的查询
CONSTRUCT {?x ?y ?z .}
WHERE {?x ?y ?z .}
那么我的结果之一可能是:
nm:John nm:owns _:Node
如果所有的都是一个问题
_:Node nm:has nm:Hats
三元组也不会以某种方式进入查询结果(因为我使用的一些解析器,比如 Python 的 rdflib 真的不喜欢悬空的 bnodes)。
有没有办法编写我的原始 CONSTRUCT 查询以递归地添加附加到任何 bnode 结果的所有三元组,以便在我的新图中没有任何 bnode 悬空?
sparql - 将空白节点从 stardog 映射到 pubby
所以我有这个加载到Stardog上的 .rdf,然后我使用Pubby在 Jetty 上运行,以浏览三重商店。
在我的 rdf 文件中,我有几个空白节点,stardog 为它们提供了一个空白节点标识符。所以这是 rdf 文件的一个片段。
所以基本上我有一些资源“res1”,它具有指向空白节点的链接,该节点具有提及开始和提及结束偏移值。
Pubby 的 config.ttl 文件片段如下所示。
所以关键是 datasetBase 将 URI 映射到 URL。
当我尝试映射它时,有一个“匿名节点”链接,但点击后,什么都没有显示。我的猜测是,这是因为空白节点有一些像 _:bnode1234 这样的标识符,它没有被 Pubby 映射。
我想知道是否有人知道如何映射这些空白节点。
(注意:如果我将这个 rdf 作为静态 rdf 文件直接加载到 Pubby 上,它可以正常工作。但是当我使用 stardog 作为三重存储时,这个映射就不能正常工作了)
sparql - 有没有办法使用变量而不用 SPARQL“select *”返回它?
有没有办法在使用 SPARQL 时使用一种占位符变量而不返回它SELECT *
?
例如:
在我不想返回?s
变量的地方,只返回?title
、?name
和?s2
变量,同时离开SELECT *
.
我知道我可以通过使用来限制选择结果SELECT ?title ?name ...
,但我只是好奇是否有某种占位符变量的表示法或某种方式来管理它。
编辑:
我了解您可以在某些情况下使用空白节点来完成此操作,例如:
但是,由于空白节点不能跨基本图形模式使用,这不会引起问题吗?例如,这在这种情况下会中断:
谢谢!
sparql - 如何在 SparqlParameterizedString 中分配参数值
我正在玩一些 Dotnetrdf 的 sparql 引擎,我正在尝试创建参数化查询但尚未成功。
假设我正在处理带有标识为 _:1690 的空白节点的图 g,其代码
每当我运行它时,我都会让所有节点都具有 rdfs:label 属性,而不是仅在我的空白节点上过滤结果。
请问,如何正确设置参数的值,以便我在结果中只得到一项?
在此先感谢,马克斯。
rdf - Jena 删除一个带有匿名节点的三元组
我一直在尝试使用 Jena 从模型中删除三元组,但没有成功。当主语、谓词和宾语是 URI 或文字时,一切都很好,但对于匿名节点,它似乎不起作用。例如,考虑模型中的这个三元组:
我想使用以下方法删除它:
无论我使用createAnon
或,我都无法删除三元组Node.ANY
。我不想使用 AnonId 只是因为如果我在另一台机器上运行我的代码,我怀疑是否会生成相同的匿名 id。
rdf - 确保多个主题指向相同的空白节点列表
考虑以下实例SomeClass
:
我需要每个实例(some_thing2
,some_thing3
等)将其hasChainTo
属性点放在相同的空白节点列表中(因为它只有一个副本)。我需要维护空白节点语法列表,因为链变得非常深,并且这种语法对于写出每个链(for , 等)非常SomeClass2
流畅SomeClass3
。
如果我只是从中创建一个基类和 subClassOf,则该hasChainTo
属性会继承而不是它指向的对象。这在直觉上是有道理的,但我需要其他行为。
如何实现?
sparql - 如何使用 Sesame 获得资源的简明有界描述?
我一直在测试Sesame 2.7.2 ,当面对DESCRIBE查询不包括空白节点关闭这一事实时,我感到非常惊讶
如果我正确理解,SPARQL 规范对此非常宽松,并说返回的内容实际上取决于提供者,但我仍然对选择感到惊讶,因为不能使用 bnodes(在 describe 查询的结果中)在随后的 SPARQL 查询中。
所以问题是:我怎样才能在<uri1>
不这样做的情况下获得对资源的封闭描述:
- 询问
DESCRIBE <uri1>
- 遍历结果以确定哪些对象是空白节点
- 然后
DESCRIBE ?b WHERE { <uri1> pred_relating_to_bnode_ ?b }
- 只要找到 bnode,就递归执行并链接
如果我没记错的话,深度 2 bnodes 必须用
除非有更简单的方法可以做到这一点?
最后,让DESCRIBE
返回一个资源的封闭描述不是更好更简单,您仍然可以获得当前返回的结果,如下所示?
编辑:这是一个我想从芝麻回来的封闭结果的例子
目前:DESCRIBE <urn:sites#1>
返回与查询相同的结果CONSTRUCT WHERE {<urn:sites#1> ?p ?o}
,所以我只得到那个
rdf - Protege 4 - 保存 RDF 重新格式化嵌套的空白节点
我刚从 TopBraid 切换到试用 Protege。
我有一个类似于这样的 RDF 的本体:
这个想法是,这种嵌套的空白节点语法非常有效,因为链变得非常深,并且这种语法是流动的并且具有高度可读性和可维护性,因为链可能会不时更改并且可以添加新链。
不仅如此,我已经为结果图编写了查询。
问题是,如果我将其导入 Protege 然后将其保存回来,结果将重新格式化为:
生成的 RDF 完全破坏了查询系统以及使用这种方法表示“链接”的其他好处。
有什么办法可以解决这个问题吗?如果不是,我可能会被迫切换回 TopBraid。
更新:这是问题的再现:
我写了bugTest.ttl
然后在 Protege 中打开它并立即 Save As > Turtle > bugTestOutput.ttl
:
https://dl.dropboxusercontent.com/u/13814624/bugTest.ttl https://dl.dropboxusercontent.com/u/13814624/bugTestOutput.ttl