2011-06-13 38 views
2

我有一個抓取語義Web文檔的程序,例如RDF和OWL。我該如何從一個語義Web URI中以編程方式告訴一個URL

它將找到的URI並將它們放入列表中以供進一步處理。但是它也可以找到某些語句的部分URL(我使用的是維基百科數據,所以這通常是http://dbpedia.org/ontology/wikiPageExternalLink屬性。

如何判斷哪一個是語義Web URI,哪個只是一個URL,其中as小問題我正在開發Java,並且正在考慮是否需要超過一定的時間來讀取文件,該程序應該繼續下去,但我不知道如何做到這一點

我知道我的問題是模糊的,告訴我應該給我更多的細節。我沒有發佈代碼,因爲我認爲這不會對這種情況有所幫助。

回答

1

爲什麼不把你的抓取的信息放到[某些]三重存儲並使用SPARQL來查詢它?如果這只是一系列處理過程中的一個步驟,那麼您不需要去一家巨型三聯商店,只需要使用Jena和TDB來進行平板/文件存儲,甚至只需要內存模型。

SPARQL的優點在於,您可以擁有想要使該列表成爲圖表的所有靈活性,然後查詢該圖表。

由於您遇到的一些URI可能是主體,謂詞或對象,因此您確實需要了解哪些圖形模式最適合進行更多處理。你喜歡s,p,o triple,其中p = wikiPageExternalLink?如果是這樣,SPARQL查詢那個,在結果集上找到對象值和開心處理。

請注意,與在dbpedia圖形中跟隨主題鏈接相比,該三重模式中的某些對象將是字符串文字(例如「http:// ...」),也可能是那些您想要處理的對象。 S,P,S2。再次,SPARQL用isLiteral()來救援。

如果它是一個主題,我認爲它會限定它爲「語義網絡URI」,因爲至少應該有更多關於它的RDF語句 - 而不是字符串文字,它只是一些URI的字符串在圖中沒有其他重要性。相應的函數將是isIRI,所以你可以將你在兩個桶中找到的URL(文字和IRI)分開。

見例如在官方規格: http://www.w3.org/TR/rdf-sparql-query/#func-isIRI

SPARQL,特別耶拿的ARQ,有一堆的功能,過濾器,並且可應用於正則表達式來使它儘可能地靈活(例如,也許你想將某些域/模式列入白名單/黑名單,或在繼續之前執行一些字符串操作)。

0

首先,它承認網址是URI的一個子集很重要。 (即http://en.wikipedia.org/wiki/Tim_Berners-Lee是關於Tim Berners Lee的wikipedia頁面的URI)。所有URI和URL在語義網中扮演着重要的角色我想你所面臨的最大問題是決定哪些URI將產生RDF三元組。

第一種方法是嘗試從您遇到的所有URI中分析三元組,例如。即使頁面看起來像HTML,也可能存在RDFa。(我想你可以HTTP請求僅RDF MIME類型 - 但你可能丟失了豐富的RDFa的數據)

另一種方法是假設所有的http://dbpedia.org/ontology/wikiPageExternalLink屬性的對象不會產生任何有趣的事實。

另一種方法是記錄不發佈RDF並忽略它們的域名/子域。

相關問題