0

我不明白这个 SPARQL 查询有什么区别:

SELECT ?first ?last ?workTel
WHERE {
  ?s ab:firstName ?first ;
     ab:lastName ?last .
  OPTIONAL
  {?s ab:workTel ?workTel . }
}

和这个 :

SELECT ?first ?last ?workTel
WHERE {
  [] ab:firstName ?first ;
     ab:lastName ?last .
  OPTIONAL
  {[] ab:workTel ?workTel . }
}

他们给了我两个不同的结果,那么空白节点是如何工作的,这里的 ?s 变量有什么用处。感谢您的任何回复。

4

1 回答 1

2

[]是每次使用“新空白节点”的语法。

在该示例中,每个[]都是不同的空白节点。查询与两个不同的变量非常相似。

SELECT ?first ?last ?workTel
WHERE {
  ?VAR_1 ab:firstName ?first ;
         ab:lastName ?last .
  OPTIONAL
  {?VAR_2 ab:workTel ?workTel . }
}

查询的两个部分之间没有形成连接。

于 2022-01-22T14:03:10.500 回答