ActiveRDF i dbpedia
Niech kod mówi sam za siebie :-)
require 'active_rdf' pool = ConnectionPool.add_data_source :type => :sparql, :url => "http://dbpedia.org/sparql", :results => :sparql_xml, :engine => :virtuoso Namespace.register(:dbpedia, 'http://dbpedia.org/') Query.new.select(:x).where(:x, RDFS::Resource.new('http://www.w3.org/2000/01/rdf-schema#label'), LocalizedString.new("Berlin","en")).execute
Pobieramy z DBpedii wszystkie zasoby, których etykieta w języku angielskim to “Berlin”
W dalszych przykładach zakładamy, że mamy już załadowany ActiveRDF
oraz że dodaliśmy połączenia z DBpedią.
Query.new.distinct(:y).where(:x, RDFS::Resource.new('http://www.w3.org/2000/01/rdf-schema#label'), LocalizedString.new("Berlin","en")). where(:x, RDFS::Resource.new('http://www.w3.org/2000/01/rdf-schema#comment'), :y).lang(:y,"pl").execute
Tutaj pobieramy komentarze w języku polskim dla zasobów, których polską etykietą jest “Berlin”.
Poniższy przykład ilustruje proponowane rozszerzenie biblioteki ActiveRDF, które może zostanie uwzględnione w jej kolejnej wersji:
rs = Query.new.distinct(:x).where(:x, RDFS::Resource.new('http://www.w3.org/2000/01/rdf-schema#label'), LocalizedString.new("Berlin","en")).execute Query.new.distinct(:comment).where(rs[1], RDFS::Resource.new('http://www.w3.org/2000/01/rdf#comment', :comment).lang(:comment,"pl").execute
Zamiast ostatniego polecenia znacznie lepiej byłoby, gdybyśmy mogli napisać:
rs[1].comment{|query,object| query.lang(object,"pl")}
|
Opublikowano 21:00 14-11-2008.
Ostatnia modyfikacja 14:08 22-05-2010 |