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