2017-06-19 28 views
0

我是SPARQL的新手。我希望獲得首選的名字,以及他們的頂級上級,以及他們的同義詞Radlex ontology, as hosted at BioPortalSPARQL查詢子類的首選名稱及其頂級上層類

和輸出我想看看: output

期限:等於密度 subClassOf:密度描述 同義詞:isodens,同等密度,等密度

它看起來像,下面的代碼解決了我的問題,但仍需要進行一些修改。因爲,它帶來了所有的上層階級,但我只想要一個上層階級。

PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> 

SELECT DISTINCT ?concept ?subClassOf 
WHERE 
{ GRAPH <http://bioportal.bioontology.org/ontologies/RADLEX_OWL> 
    { ?term a <http://bioontology.org/projects/ontologies/radlex/radlexOwl#radlex_metaclass> ; 
     <http://bioontology.org/projects/ontologies/radlex/radlexOwl#Preferred_name> ?concept 
    } 
    ?term rdfs:subClassOf ?upperClass. 
    ?upperClass <http://bioontology.org/projects/ontologies/radlex/radlexOwl#Preferred_name> ?subClassOf. 
} LIMIT 10 OFFSET 10 
+0

'HTTP結果:// bioontology.org /項目/本體/ radlex/radlexOwl#'可以肯定的是**不**類的URI但只有某個URI的名稱空間。 – AKSW

+0

請請請使用Markdown語法進行格式化。 – AKSW

+0

感謝您的建議,在您的幫助下學習。 – user1979556

回答

0
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> 
PREFIX radlex: <http://bioontology.org/projects/ontologies/radlex/radlexOwlDlComponent#> 

SELECT DISTINCT ?term ?name ?synonym ?subClassOf ?subClassOf_name 
FROM <http://bioportal.bioontology.org/ontologies/RID> 
WHERE 
{ 
?term radlex:Preferred_name ?name . 
?term radlex:Synonym ?synonym . 
?term rdfs:subClassOf ?subClassOf . 
?subClassOf radlex:Preferred_name ?subClassOf_name 
} LIMIT 10 
+0

你確定嗎?!我在2017-06-22T22:34:00-05:00這裏看到的甚至都不是有效的SAPRQL。 http://www.sparql.org說:'第5行,第189列出現詞法錯誤。遇到:「\ r」(13),之後:「prefName」'這只是第一個錯誤。那之後我至少看到一個。如果您可以編輯查詢以實際運行,我們可以討論如何獲得所需的課程級別詳細信息。 –

+0

好的,我更正了,非常感謝。 – user1979556

+0

是的,這樣好多了。今天晚些時候我會再看看。你爲什麼不輸出你想看到的輸出的例子,至少有一些真正的Radlex類。 –

3

看起來你的主要困難之一是找到從哪裏開始,或者如何指定Radlex子類的根。

我對Radlex沒有經驗,最近我還沒有使用Bioportal。當我在Protege中打開Radlex本體時,它的類層次對我來說看起來很合理。但是來自Bioportal終點的結果令人驚訝。

例如,RID5635「硬幣」是RID5633「個人物品」的一個子類,並且是radlex_metaclass的實例,但貓頭鷹的實例:類,同時我也會用OBO期待鑄造本體。它看起來並不像所有來自radlex_metaclass的Radlex子類,這樣就使得它棘手得到所有的子類有一個三重圖案像

?s a owl:Class 

它也不會看起來像Bioportal端點支持RDFS屬性的路徑,所以我們也不能要求

?s a rdfs:subClassOf* <http://bioontology.org/projects/ontologies/radlex/radlexOwl#RID1> 

因此,我不能保證,這個查詢將返回所有在Radlex子類的...只是所有radlex_metaclass立即子類的

最後,正如AKSW指出的那樣,http://bioontology.org/projects/ontologies/radlex/radlexOwl#是本體的名稱,而不是超類。它沒有子類,也不是我在本答案頂部描述的根本查找問題的解決方案。

我添加了一個命名的圖形限制,但是這可能沒有做任何事情,通過詢問http://bioontology.org/projects/ontologies/radlex/radlexOwl#radlex_metaclass實例尚未完成。

SELECT DISTINCT * 
WHERE 
    { GRAPH <http://bioportal.bioontology.org/ontologies/RADLEX_OWL> 
     { ?radlexclass a <http://bioontology.org/projects/ontologies/radlex/radlexOwl#radlex_metaclass> ; 
      <http://bioontology.org/projects/ontologies/radlex/radlexOwl#Preferred_name> ?prefName 
     } 
    } 

給出這樣

+------------------------------------------------------------------------+---------------------------------------------------------------------+ 
|        radlexclass        |        prefName        | 
+------------------------------------------------------------------------+---------------------------------------------------------------------+ 
| <http://bioontology.org/projects/ontologies/radlex/radlexOwl#RID19012> | "posterior root of left first sacral nerve"       | 
| <http://bioontology.org/projects/ontologies/radlex/radlexOwl#RID23593> | "nerve to third posterior cervical intertransversarius"    | 
| <http://bioontology.org/projects/ontologies/radlex/radlexOwl#RID11053> | "hydrophilic wire"             | 
| <http://bioontology.org/projects/ontologies/radlex/radlexOwl#RID5825> | "right"                | 
| <http://bioontology.org/projects/ontologies/radlex/radlexOwl#RID18947> | "posterior root of sixth cervical nerve"       | 
| <http://bioontology.org/projects/ontologies/radlex/radlexOwl#RID16116> | "set of short association fibers of telencephalon"     | 
| <http://bioontology.org/projects/ontologies/radlex/radlexOwl#RID23701> | "left third thoracic nerve"           | 
| <http://bioontology.org/projects/ontologies/radlex/radlexOwl#RID23274> | "ascending branch of meningeal branch of right second sacral nerve" | 
| <http://bioontology.org/projects/ontologies/radlex/radlexOwl#RID25244> | "right intermediomedial nucleus"         | 
| <http://bioontology.org/projects/ontologies/radlex/radlexOwl#RID5699> | "coalescent"              | 
+------------------------------------------------------------------------+---------------------------------------------------------------------+ 

+0

非常感謝您的評論馬克!我只是修改它並編寫了下面的代碼。它幫助了很多。 – user1979556

+0

很高興聽到它。堅持下去。有一天,你會回頭問,「我沒有RDF和SPARQL嗎?!」 –