2013-12-08 105 views
0

我正在通過RDF.rb ruby​​庫學習rdf。我可以到以下龜文件加載到圖形:這個RDF.rb查詢有什麼問題?

# filename: ex002.ttl 

@prefix ab: <http://learningsparql.com/ns/addressbook#> . 

ab:richard ab:homeTel "(229) 276-5135" . 
ab:richard ab:email "[email protected]" . 

ab:cindy ab:homeTel "(245) 646-5488" . 
ab:cindy ab:email "[email protected]" . 

ab:craig ab:homeTel "(194) 966-1505" . 
ab:craig ab:email "[email protected]" . 
ab:craig ab:email "[email protected]" . 

但是當我嘗試提取所有三元與#homeTel,使用查詢,我沒有得到任何結果的。我不確定是否對查詢的工作原理有誤解,或者我對RDF.rb的工作原理有誤解,因爲我是新手!

這裏是Ruby代碼:表示謂語,包括完整的URI純字符串的

require 'rdf' 
require 'rdf/ntriples' 
require 'rdf/raptor' 

graph = RDF::Graph.load("../data/ex002.ttl") 

query = RDF::Query.new do 
    pattern [:person, RDF::URI("http://learningsparql.com/ns/addressbook/#homeTel"), :o] 
end 

response = query.execute(graph) 

puts "response: #{response.to_s}" # gives me an empty result 

我已經試過各種替代方法,和「AB:Hometel的,和RDF ::詞彙。如果我只是把「:p」來代替斷言它上面並返回結果,所以我知道該圖被加載確定的

我希望有人能幫助在此先感謝

回答

0

前綴的數據!是

@prefix ab: <http://learningsparql.com/ns/addressbook#> . 

這意味着ab:homeTel是IRI

http://learningsparql.com/ns/addressbook#homeTel 

然而,在您的查詢,您使用的是不同的IRI:

RDF::URI("http://learningsparql.com/ns/addressbook/#homeTel") 
#            ^
#             | 
#          get rid of this slash 
+0

衛生署!我花了多少小時想念那個?非常感謝Joshua! –