2012-09-23 116 views
2

我想使用「DESCRIBE」查詢將dbpedia數據提取到RDF。Dbpedia上的「DESCRIBE」SPARQL查詢

例如,如果鍵入:

PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> 
PREFIX db: <http://dbpedia.org/ontology/> 
PREFIX prop: <http://dbpedia.org/property/> 
DESCRIBE ?movie ?author ?genre 
WHERE { 
?movie rdf:type db:Film ; 
prop:author ?author ; 
prop:genre ?genre . 
} 
LIMIT 50 
OFFSET 0 

一切工作正常。

但是,如果我添加演員和時間屬性:

PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> 
PREFIX db: <http://dbpedia.org/ontology/> 
PREFIX prop: <http://dbpedia.org/property/> 
DESCRIBE ?movie ?author ?genre ?actor ?duration 
WHERE { 
?movie rdf:type db:Film ; 
prop:author ?author ; 
prop:genre ?genre; 
prop:actor ?actor; 
prop:duration ?duration . 
} 
LIMIT 50 
OFFSET 0 

我得到空RDF。

這裏是電影模式:http://schema.org/Movie

有人嗎?

+1

你能提供RDF輸入嗎? – Raffaele

+0

我不確定你在問我什麼。對不起,我有點新的rdf和sparql :) – expx

+0

你有本地文件嗎?你是否在dbpedia網站上在線測試你的查詢? – Raffaele

回答

2

我認爲這是輸入問題。假設你是通過the SPARQL web interface測試反對票DBpedia中,您可以通過

  • 標誌durationgenre可選得到的東西(所以他們不需要指定)
  • 使用dbpprop:starring代替dbpprop:actor

所以以下查詢

DESCRIBE ?movie ?author ?genre ?actor ?duration 
WHERE { 
    ?movie a dbpedia-owl:Film ; 
    dbpprop:author ?author ; 
    dbpprop:starring ?actor . 
    OPTIONAL { 
    ?movie dbpprop:duration ?duration ; 
    dbpprop:genre ?genre 
    } 
} 
LIMIT 5 
OFFSET 0 

will ge你是some graphs。另外請注意,我想你應該介紹http://schema.org/前綴使用電影架構(但他們似乎並沒有被在DBpedia中的數據集深深地使用)

而且hereSELECT而不是DESCRIBE的結果(爲什麼你想要DESCRIBE結果格式嗎?) - 我認爲這很有道理。

我想我也覺得有趣。如果查詢

DESCRIBE dbpparam:starring 

get an interesting error message

謂詞 'http://www.w3.org/2002/07/owl#equivalentProperty' Errornous表達:架構:演員

我認爲這就是爲什麼schema:actor(也可能是dbpprop:actor)不起作用。這在索引程序上似乎是一個錯誤。

+0

謝謝,現在好多了。我需要「描述」結果,因爲我想將該rdf插入到sql數據庫並在我的RESTful服務項目中使用它。我可以用「選擇」結果格式嗎? – expx

+1

我認爲SELECT是要走的路。DESCRIBE以某種代理定義的方式返回數據,正如您所看到的,這在人類探索事物時非常有用,但它使程序難以對結果做一些有用的事情。來自SELECT的結果集對於SQL數據庫 – Raffaele

+0

來說是完美的,可以肯定的是,我可以使用SELECT查詢並使用JENA RDF API將結果RDF導入SQL數據庫?不知何故,我想我必須使用DESCRIBE :) – expx