我有一个包含三元组的 N3 数据集。我希望对这个数据集进行哈希分区。是否有散列分区 OWL/NT/N3 数据集的散列分区器?如果没有,您能否提供一些有关如何以有效方式继续解析文件的代码/提示。
1 回答
解析 RDF 文件与以有效方式存储生成的三元组是完全不同的任务。为了简单地解析RDF 文件,您可以使用许多 RDF 处理库之一,它工作得很好。(StackOverflow 确实不是工具列表的地方,但是http://answers.semanticweb.com上的问题是哪些工具和库用于开发语义 Web 应用程序?列出了一堆。)正如您在注释:
我使用 LUBM (Lehigh University Benchmak) 数据生成器生成了一个 OWL 数据集,并使用在线转换器将其转换为 N3 格式。现在,我想对数据集进行哈希分区并将每个分区存储在工作机器上。在实现我自己的之前,我想知道那里是否有这样的库。您能否指点我一些可用的库。至于效率,我提到它是因为我拥有的数据集非常大,并且使用顺序哈希分区器可能会花费大量时间来完成任务。
这里至少有两件重要的事情需要注意。
- OWL 和 RDF 不一样,但是 OWL 可以在 RDF 中序列化。看来您已经在 RDF 中序列化了 OWL。
- RDF 可以以多种形式序列化。最常见的一种是 RDF/XML,但也有 N3、Turtle(N3 的子集)和 N-Triples (NT)。
N-Triples 是一种基于行的格式,每行只有一个三元组。如果您只需要将数据分成三部分并将其发送到地方,只需将其转换为 N-triples,其中k个三元组将在k行上。然后,您可以将第一个k/3发送给工人 A,将第二个k/3发送给工人 B,最后一个k/3发送给工人 B。或者,您可以一次遍历一行,将一行发送到A,然后一行到 B,然后一行到 C。这是 N-Triples 的一大优势:拆分或组合数据集非常便宜。例如,考虑这个 DBpedia 查询及其在 NTriples 中的结果. 您可以将其拆分为 3、3 和 4 行的三个块,然后将它们发送给您的工人。
construct where {
dbpedia:Mount_Monadnock ?prop ?obj
}
limit 10
<http://dbpedia.org/resource/Mount_Monadnock> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://schema.org/Mountain> .
<http://dbpedia.org/resource/Mount_Monadnock> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://dbpedia.org/ontology/NaturalPlace> .
<http://dbpedia.org/resource/Mount_Monadnock> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.opengis.net/gml/_Feature> .
<http://dbpedia.org/resource/Mount_Monadnock> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://dbpedia.org/class/yago/GeologicalFormation109287968> .
<http://dbpedia.org/resource/Mount_Monadnock> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://umbel.org/umbel/rc/Mountain> .
<http://dbpedia.org/resource/Mount_Monadnock> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://dbpedia.org/ontology/Mountain> .
<http://dbpedia.org/resource/Mount_Monadnock> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://dbpedia.org/ontology/Place> .
<http://dbpedia.org/resource/Mount_Monadnock> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://dbpedia.org/class/yago/Object100002684> .
<http://dbpedia.org/resource/Mount_Monadnock> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://schema.org/Place> .
<http://dbpedia.org/resource/Mount_Monadnock> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Thing> .