Ruby 这个RDF.rb查询有什么问题?

Ruby 这个RDF.rb查询有什么问题?,ruby,rdf,semantic-web,Ruby,Rdf,Semantic Web,我正在通过rdf.rb ruby库学习rdf。我能够将以下turtle文件加载到图形中: #文件名:ex002.ttl @前缀ab:。 ab:richard ab:homeTel“(229)276-5135”。 ab:richard ab:email“richard49@hotmail.com" . ab:cindy ab:homeTel“(245)646-5488”。 ab:cindy ab:email“cindym@gmail.com" . ab:craig ab:homeTel“(19

我正在通过rdf.rb ruby库学习rdf。我能够将以下turtle文件加载到图形中:

#文件名:ex002.ttl
@前缀ab:。
ab:richard ab:homeTel“(229)276-5135”。
ab:richard ab:email“richard49@hotmail.com" . 
ab:cindy ab:homeTel“(245)646-5488”。
ab:cindy ab:email“cindym@gmail.com" . 
ab:craig ab:homeTel“(194)966-1505”。
ab:craig ab:email“craigellis@yahoo.com" . 
ab:craig ab:email“c。ellis@usairwaysgroup.com" . 
但是,当我尝试使用一个#homeTel来提取所有三元组时,使用一个查询,我没有得到任何结果。我不确定我是否对查询应该如何工作有一个基本的误解,或者我是否对RDF.rb如何工作有一个误解,因为我对它一无所知

以下是ruby代码:

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
我已经尝试了各种表示谓词的替代方法,包括一个带有完整uri的纯字符串、“ab:homeTel”和一个RDF::词汇表。如果我只是将“:p”放在谓词的上方,它会返回结果,因此我知道图形加载正常


我希望有人能帮忙。提前谢谢!

数据中的前缀是

@前缀ab:。
这意味着
ab:homeTel
是IRI

http://learningsparql.com/ns/addressbook#homeTel
但是,在查询中,您使用的是不同的IRI:

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

啊!我花了多少个小时错过了它?非常感谢约书亚!