Hadoop sparql连接查询解释它是如何工作的?
我的问题是:Hadoop sparql连接查询解释它是如何工作的?,hadoop,sparql,bigdata,jena,Hadoop,Sparql,Bigdata,Jena,我的问题是: select ?x ?z where { ?x <http://purl.uniprot.org/core/name> ?y . ?x <http://purl.uniprot.org/core/volume> ?z . ?x <http://purl.uniprot.org/core/pages> "176-186" . } 我需要为此查询创建自定义解析器 当我在jena模型上执行此查询时,它返回一条记录。 有人能解释一下这个查询
select ?x ?z
where
{
?x <http://purl.uniprot.org/core/name> ?y .
?x <http://purl.uniprot.org/core/volume> ?z .
?x <http://purl.uniprot.org/core/pages> "176-186" .
}
我需要为此查询创建自定义解析器
当我在jena模型上执行此查询时,它返回一条记录。
有人能解释一下这个查询实现吗
我将此查询分为三部分:
select ?x ?y where { ?x <http://purl.uniprot.org/core/name> ?y . }
Total Records Found : 3034
select ?x ?z where { ?x <http://purl.uniprot.org/core/name> ?y . ?x <http://purl.uniprot.org/core/volume> ?z . }
Total Records Found : 2679
select ?x ?z where { ?x <http://purl.uniprot.org/core/name> ?y . ?x <http://purl.uniprot.org/core/volume> ?z . ?x <http://purl.uniprot.org/core/pages> "176-186" . }
Total Records Found : 1
请帮我做一个自定义查询解析器 编辑以包含正确的代数链接
我能提供的最好的建议是查看并在该级别派生您的自定义评估引擎。另一个可能提供信息的参考是
从您选择的标记可以看出,您打算执行分布在map reduce作业中的查询操作,并且您正在查看代数应用的一个具体示例,作为概念证明。如果您的目的是将其集成到Jena的查询评估中,那么您将需要手动探索Jena的现有系统,以了解其行为方式的原因 听起来你在问为什么
select ?x ?z where {
?x <http://purl.uniprot.org/core/name> ?y . # (a)
?x <http://purl.uniprot.org/core/volume> ?z . # (b)
?x <http://purl.uniprot.org/core/pages> "176-186" . # (c)
}
只返回一个结果,而每行单独返回更多结果。SPARQL中的三重模式是合取的:非可选模式必须与数据匹配才能返回结果。因此,您要求的是?x和?z的值,其中以下所有值均成立:
?x的名字是?y,和
?x有一些体积值,和
?x的具体值为176-186页。
根据属性的名称,听起来像是在查询一些双字典信息。在给定的书目数据库中,可能只有一篇文章的页数正好是176-186,这并不奇怪,因为这是一个非常具体的值。您正在尝试计算三种模式的联接。关于ApacheHadoop上join实现的论文将是有用的背景资料 了解ApacheSpark和弹性分布式数据集RDD概念可能会有所帮助 同样重要的是考虑每种模式可能的选择性——正如约书亚所说,页面模式很可能产生一个独特的解决方案,并且使用它来简单地查找每个名称和卷并不是一项艰巨的任务。 ARQ的内存算法并不是为了实现最大的独立并行性,而这正是Hadoop所需要的。合并联接或排序合并联接对数据进行两次并行访问 您可以通过extends类OpExecutor在基本模式级别、整个代数执行级别或两者之间的任何点上扩展ARQ