0
为了说明这个问题,我需要在dbpedia中查询sparql中的一些公司,并获取他们的主页。如何编写(union in optional clause)或(optionals with union clause)?例如
其中有些公司有网站,而其他公司有,所以我们必须在sparql里面查询可选的子句吧?
因此要获得地址在我的查询我写的可选子句中如下:
...
optional {?company foaf:homepage ?website}
然而,并不是所有的三倍店使用的FOAF网站地址:首页URI,一些三元组使用DBP:首页和前面的条款将如下:
...
optional {?company dbp:homepage ?website}
问题是如何使用UNION获得这两个子句之间的补充数据?
- 不是所有的人都在dpbedia生日文字值:
同样的问题时查询在DBpedia中的人的数据,例如查询出生日期出现。
- 一些人在DBO生日:生日
- 一些人在DBP生日:生日
再次,我们需要在可选子句来查询,需要补充/工会的日期。 解决这个查询应该是这样的:
optional { {?person dbp:birthDate ?birthdate } union {?person dbo:birthDate ?birthdate} }
或如下:
where { {optional { ?person dbp:birthDate ?birthdate }} union {optional {?person dbo:birthDate ?birthdate}}}
我觉得我很近,但我没有成功...至今;)
那么请问如何解决这个问题?
您是否考虑过可选{?company(foaf:homepage | dbp:homepage)?website} – chrisis
问题是只有一个值应该在属性上显示一些偏好。这将需要一些IF ... ELSE模式和/或COALESCE。 – AKSW