Sparql变量全部有界

Sparql变量全部有界,sparql,Sparql,我有一家三层的化学品商店。每种物质都有大约30-40个参数。每个参数都有一个数据库名和一个实名。例如,chem:flBeiRT的真名为Flüssig bei Raumtemperatur(德语)。为了使列表更具可读性,我们创建了类别。其中一个类别是:Nomenklatur(德语) 我现在有一个Sparql查询,其中一个获取nomenktural下的所有参数 它给出了Nomenklatur下所有参数的真实名称,正如预期的那样。 据我所知,在?x变量中,所有的参数都已经与数据库名称绑定,所以我不想直

我有一家三层的化学品商店。每种物质都有大约30-40个参数。每个参数都有一个数据库名和一个实名。例如,chem:flBeiRT的真名为Flüssig bei Raumtemperatur(德语)。为了使列表更具可读性,我们创建了类别。其中一个类别是:Nomenklatur(德语)

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

它给出了Nomenklatur下所有参数的真实名称,正如预期的那样。 据我所知,在?x变量中,所有的参数都已经与数据库名称绑定,所以我不想直接使用它从一种化学品中获取所有这些参数。所以我试着直接添加到这个查询中。而不是单独获取每个参数。由于该物质没有id,我使用Inde mine中的第二个查询仅获取一种化学品:

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个参数。但是我现在怎么才能得到那种化学物质的所有合适的文字呢?我试过:

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吗?有人能告诉我怎么生活吗?谢谢你抽出时间。 还是必须单独获取每个参数?查看数据或其中的图片可能会有所帮助:


您的子选择返回一个变量
?o
,但在外部选择查询中不使用该变量。SPARQL首先计算内部子选择查询,而不是相反。因此,首先计算给定物质的值
[c2mim]Cl
,然后必须限制外部选择中的值


我不理解你的模式,也就是说,我不完全清楚。你的谓词表示化学物质的参数,对吗?如果是,则必须将
?p
限制为属于该类别的那些。

您的子选择返回一个变量
?o
,但在外部选择查询中不使用该变量。SPARQL首先计算内部子选择查询,而不是相反。因此,首先计算给定物质的值
[c2mim]Cl
,然后必须限制外部选择中的值


我不理解你的模式,也就是说,我不完全清楚。你的谓词表示化学物质的参数,对吗?如果是,您必须将
?p
限制为属于该类别的内容。

谢谢您抽出时间。因此,内部子选择首先得到评估-不知道这一点。因此,我认为最好先选择化学物质,然后得到所有的名称和文字,而不是过滤掉命名规则下的内容。是的,在模式中,每种物质都有参数,这些参数有自己的前缀(chem),每个chem都有类别。正确。您可以使用子选择,但您需要传播筛选所需内容所需的所有内容-在您的情况下,可能是
?p
?o
。感谢您抽出时间。因此,内部子选择首先得到评估-不知道这一点。因此,我认为最好先选择化学物质,然后得到所有的名称和文字,而不是过滤掉命名规则下的内容。是的,在模式中,每种物质都有参数,这些参数有自己的前缀(chem),每个chem都有类别。正确。您可以使用子选择,但您需要传播筛选所需内容所需的一切—在您的情况下,可能是
?p
?o
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
    }
  }
}