首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Sparql变量全部有界

Sparql变量全部有界
EN

Stack Overflow用户
提问于 2016-09-15 19:56:28
回答 1查看 46关注 0票数 0

我有一家三重的化学制品店。每种物质都有大约30-40个参数。每个参数都有一个数据库名和一个实名。例如,chem:flBeiRT有实名Flüssig Raumtemperatur (德语)。为了将列表分解到更易读的大小,我们已经创建了类别。其中一个类别是: Nomenklatur (德语)。

我现在有了一个Sparql查询,其中获取Nomenklatur下面的所有参数

代码语言:javascript
复制
   SELECT DISTINCT ?name         
   WHERE{
   ?s iol:name "Nomenklatur" .
   ?x rdf:type iol:property .
   ?x iol:name ?name .
   ?x iol:propertyof ?s .
   }

它给了我所有参数的实名,如预期的一样。根据我在?x变量中的理解,所有参数都已经绑定到了数据库名中,所以我想使用这个参数从一种化学物质中获得所有这些参数。所以我试着把这个错误地添加到这个查询中。每个参数都是独立的。由于该物质没有标识,我使用第二个查询,暗示我只得到一种化学物质:

代码语言:javascript
复制
SELECT ?name
WHERE{
?s iol:name "Nomenklatur" .
?x rdf:type iol:property .
?x iol:name ?name .
?x iol:propertyof ?s .
{
 SELECT ?o
 WHERE{
   ?x chem:ilAbk "[A_4mim]Al" .
 }
}
} 

它仍然给出了我所要求的11个参数。但我现在怎么能得到这种化学物质的所有合适的文字呢?我试过:

代码语言:javascript
复制
SELECT DISTINCT ?name ?o
WHERE{
  ?s iol:name "Nomenklatur" .
  ?x rdf:type iol:property .
  ?x iol:name ?name .
  ?x iol:propertyof ?s .
  {
    SELECT DISTINCT ?o
    WHERE{
      ?x chem:ilAbk "[C_2mim]Cl" .
      ?x ?p ?o
    }
  }
}

但是在这里,我得到了超过312个结果,每个参数加上所有uri,对我来说是什么接缝呢?有人能告诉我怎么弄吗?谢谢你抽出时间。还是我必须单独得到每个参数?也许它有助于查看数据或其中的一小部分:

从海龟文件中筛选

EN

回答 1

Stack Overflow用户

发布于 2016-09-15 23:05:11

您的子SELECT返回一个变量?o,但在外部SELECT查询中没有使用这个变量。SPARQL首先评估内部的子选择查询,而不是反过来。因此,首先计算给定物质[C_2mim]Cl的值,然后限制外部选择中的值。

我不明白你的模式,也就是说,对我来说还不完全清楚。你的谓词表示化学物质的参数,对吗?如果是,您将不得不将?p限制在那些确实属于该类别的范围内。

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

https://stackoverflow.com/questions/39519368

复制
相关文章

相似问题

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