2011-12-07 21 views
1

我的項目是使用戶能夠輸入查詢和最好的結果將顯示在user.this是我RDF文件如何用SPARQL查詢RDF增強高效搜索?

<?xml version="1.0"?> 
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 
xmlns:foaf="http://www.xmlns.com/foaf/0.1"> 

    <rdf:Description> 
    <foaf:name>interview</foaf:name> 
    <foaf:url>urlname1</foaf:url> 
    </rdf:Description> 

    <rdf:Description> 
    <foaf:name>technical</foaf:name> 
    <foaf:url>urlname2</foaf:url> 
    </rdf:Description> </rdf:RDF> 

現在,如果用戶輸入「技術問題」,我在編碼的方式,採取「技術」,並在一個陣列和動態生成SPARQL查詢「問題」,所以我的查詢看起來像

字符串的queryString = 「前綴RDF:http://www.w3.org/1999/02/22-rdf-syntax-ns#」 + 「前綴的foaf:http://www.xmlns.com/foaf/0.1 「+ 」SEL ECT?URL WHERE {?foaf:name?name FILTER regex(?name,'「+ values [i] +」')?a foaf:url ?url。}「;

這裏值[i]是在「技術」和「問題」。所以這給了我的輸出作爲

------------- 
| url  | 
============= 
| "urlname2"| 
------------- 

和定義的陣列,當用戶輸入「面試問題」的結果將是

------------- 
| url  | 
============= 
| "urlname1"| 
------------- 

但是,如果用戶輸入「技術面試的問題」這讓我既作爲O/p像

------------- 
| url  | 
============= 
| "urlname2"| 
------------- 
------------- 
| url  | 
============= 
| "urlname1"| 
------------- 

但O/P,我應該得到的是隻有第一個表,讓我的網址爲技術問題(urlname2)。可以請你告訴我如何改變我的查詢/ RDF準備格式來獲得所需的o/p?謝謝

回答

2

這些數據並不意味着你的想法。

你有一個對象,有兩個不同的foaf:名字。

嘗試將RDF/XML轉換爲Turtle或NTriples以獲得數據的更清晰視圖RDF/XML非常混亂。

+0

我編輯了我的問題先生。謝謝您的好評。請幫我解決這個問題先生。 – sheba