首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >阻止EasyRDF嵌套资源

阻止EasyRDF嵌套资源
EN

Stack Overflow用户
提问于 2015-11-02 12:37:54
回答 1查看 169关注 0票数 0

我有一个用EasyRDF创建的RDF图:

以上不正确-- foaf:primaryTopic中对空白节点的引用应该是_:genid1

当我把这一行改为

代码语言:javascript
运行
复制
$meta_block->add('foaf:primaryTopic', $graph->resource('_:' . $symbol_block->getBNodeId()));

EasyRdf嵌套资源,如下所示:

如何阻止EasyRdf嵌套节点?我希望输出与第一个示例一样,只使用_:genid1作为foaf:primaryTopic的资源。

EN

回答 1

Stack Overflow用户

发布于 2015-11-05 02:33:46

您可能误解了RDF数据模型。空白节点实际上是空白的。虽然在特定的序列化中或在给定的API中可能有类似于空白节点id的东西,但它实际上并不是数据模型的一部分。在您展示的第一个片段中,带有genid nodeId的节点是foaf:primaryTopic三元组的对象。在第二个片段中也是一样的;有一个foaf:primaryTopic三元组,对象是一个空节点。你得到的是相同的RDF内容。如果您以更可读的格式(如Turtle或serialize )序列化,这可能会更容易看到。有关此问题的更多信息,您可能会发现How to access OWL documents using XPath in Java?中的一些讨论很有用。

尽管如此,您可能可以自定义easyRDF如何编写RDF/XML。这不是我使用过的库,但是您可以看看是否可以关闭语法缩写。例如,对于Jena (一个Java库),您可以指定您需要"RDF/XML“或”RDF/XML-缩写“。RDF/XML -缩写更像是第二个片段,而看起来更像RDF/XML。但是,我再次建议您尝试将RDF内容序列化为像N或Turtle这样的格式,以确保RDF内容实际上是相同的。RDF没有任何空白的节点in;这只是序列化中的一个概念,必须能够引用它们。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33477773

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档