如何写(union inside optional clause)或(optionals with union clause)?
how to write (union inside optional clause) or (optionals with union clause )?
例如为了说明问题,我需要在dbpedia中查询sparql中的一些公司,并获取他们的主页。
这些公司有的有网站,有的有,所以一定要在sparql optional clause里面查询对吧?
所以为了在查询中获取地址,我将其写在可选子句中,如下所示:
...
optional {?company foaf:homepage ?website}
但并不是所有的三元组都使用foaf:homepage URI 来存储网站地址,其中一些三元组使用了dbp:homepage,前面的条款如下:
...
optional {?company dbp:homepage ?website}
问题是如何使用UNION来获取这两个子句之间的互补数据?
同样的问题在dbpedia中查询人物数据时出现,例如查询出生日期:
- 并非所有人在 dpbedia 中都有生日字面值。
- 有些人的生日是 dbo:birthDate
- 有些人的生日是 dbp:birthDate
再次我们需要在可选子句中查询并且需要 complement/union 日期。
要解决这个问题,查询应该是这样的:
optional { {?person dbp:birthDate ?birthdate } union {?person dbo:birthDate ?birthdate} }
或如下:
where { {optional { ?person dbp:birthDate ?birthdate }} union {optional {?person dbo:birthDate ?birthdate}}}
我想我很接近,但是我没有成功...直到现在 ;)
请问如何解决这个问题?
在这种情况下:
optional {?company foaf:homepage ?website}
optional {?company dbp:homepage ?website}
您可以使用备用 属性 路径:
optional {?company foaf:homepage|dbp:homepage ?website}
看看 Why is this SPARQL query not returning any results? 对具有绑定相同变量的多个 optional 块以及类似解决方案。
例如为了说明问题,我需要在dbpedia中查询sparql中的一些公司,并获取他们的主页。
这些公司有的有网站,有的有,所以一定要在sparql optional clause里面查询对吧?
所以为了在查询中获取地址,我将其写在可选子句中,如下所示:
...
optional {?company foaf:homepage ?website}
但并不是所有的三元组都使用foaf:homepage URI 来存储网站地址,其中一些三元组使用了dbp:homepage,前面的条款如下:
...
optional {?company dbp:homepage ?website}
问题是如何使用UNION来获取这两个子句之间的互补数据?
同样的问题在dbpedia中查询人物数据时出现,例如查询出生日期:
- 并非所有人在 dpbedia 中都有生日字面值。
- 有些人的生日是 dbo:birthDate
- 有些人的生日是 dbp:birthDate
再次我们需要在可选子句中查询并且需要 complement/union 日期。 要解决这个问题,查询应该是这样的:
optional { {?person dbp:birthDate ?birthdate } union {?person dbo:birthDate ?birthdate} }
或如下:
where { {optional { ?person dbp:birthDate ?birthdate }} union {optional {?person dbo:birthDate ?birthdate}}}
我想我很接近,但是我没有成功...直到现在 ;)
请问如何解决这个问题?
在这种情况下:
optional {?company foaf:homepage ?website}
optional {?company dbp:homepage ?website}
您可以使用备用 属性 路径:
optional {?company foaf:homepage|dbp:homepage ?website}
看看 Why is this SPARQL query not returning any results? 对具有绑定相同变量的多个 optional 块以及类似解决方案。