【问题标题】:how to merge and query on two different ontologies like schema.org and dbpedia.org如何合并和查询两个不同的本体,如 schema.org 和 dbpedia.org
【发布时间】:2015-09-26 21:27:54
【问题描述】:
我是语义网的新手。我从dbpedia.org 和schema.org 收集了关于某人的RDF 语句;我的意思是来自两个不同的本体。保存在单个文件中。现在我必须查询他们以显示该人的主页(HTML)。我对我们如何查询两个不同的本体或如何将它们合并在一起有疑问;请给我一个想法如何开始。我正在使用 Apache Jena。
【问题讨论】:
-
通过“查询”您要检索哪些信息?同时看看 Jena 的 SPARQL 教程here
-
Stack Overflow 是针对编程问题的,这似乎不是。看来你想DESCRIBE <person-uri>。在 RDF 世界中,使用多个本体/词汇表来描述一个实体并不重要; “合并”刚刚发生。这就是 RDF 的重点……我建议您从一些基本的关联数据教程开始,例如 Understanding Data 和 SPARQL by Example
标签:
sparql
semantic-web
dbpedia
schema.org
rdfs
【解决方案1】:
在您的情况下,困难的任务是合并包含 RDF 本体的两个文件。合并它们后,您可以像查询单个文件一样查询它们。
轻松合并:N-Triples 和 N-Quads
如果您有两个类似 Turtle 格式的 RDF 数据文件(即 Turtle、TriG、N-Quads 或 N-Triples)并且其中至少一个不包含空白节点,那么您可以简单地连接将这两个文件合并到一个新的 N-Quads 或 N-Triples 文件中。
使合并复杂化 1:空白节点
如果两个文件都包含空白节点,那么您首先需要按照RDF 1.1 semantics 将它们标准化。例如,如果您有两个 N-Triple 文件,则空白节点名称 _:1 可能出现在两个文件中,表示不同的空白节点。
复杂的合并2:序列化格式需要嵌套
如果其中一个文件以基于树的格式(即 RDF/XML、TriX、RDFa 或 JSON-LD)序列化,那么您不能简单地连接这些文件并期望结果是一致的。具体来说,类似 XML 的格式要求您将所有数据包含在代表单个根节点的开始和结束标记中。同样,类似 JSON 的格式要求您将所有数据括在左括号和右括号(大括号或方括号)中。在这些情况下,您必须将两个数据文件完全解析为 RDF 图,然后将图完全序列化为单个文件。在一般情况下,解析和序列化的任务非常困难,因此您很可能希望让现有的库来处理。你提到耶拿肯定能够做到这一点。请注意,如果至少有一个文件包含命名图,则您需要加载+保存 RDF 数据集 而不是 RDF 图。 Jena 可能也支持后者。