Я новичок в RDF, но следующее кажется довольно тривиальным;Я просто не получаю ожидаемых результатов.У меня есть файл RDF / XML следующим образом (он проверяется в валидаторе W3C):
<?xml version="1.0" encoding="utf-8"?>
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:ore="http://blah.com"
xmlns:dms="http://blah.com"
>
<ore:Aggregation rdf:about="http://blah.com/data/Manifest">
<ore:aggregates>
<ore:Aggregation rdf:about="http://blah.com/data/something">
<rdf:type rdf:resource="http://blah.com/data/Sequence"/>
<rdf:type rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#List"/>
</ore:Aggregation>
</ore:aggregates>
<ore:aggregates>
<ore:Aggregation rdf:about="http://blah.com/data/somethingElse">
<rdf:type rdf:resource="http://blah.com/data/Sequence"/>
<rdf:type rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#List"/>
</ore:Aggregation>
</ore:aggregates>
</ore:Aggregation>
</rdf:RDF>
Я пытаюсь разобрать его с помощью гема rdf следующим образом, но он не печатает операторы / тройки:
RDF::RDFXML::Reader.open(image_collection_file) do |reader|
puts reader.to_yaml
puts reader.inspect
reader.each_statement do |statement|
statement.inspect! # nothing here
end
end
Вывод файла reader.to_yaml:
--- !ruby/object:RDF::TriX::Reader
implementation: !ruby/object:Module {}
input: !ruby/object:File {}
library: :nokogiri
options:
:validate: false
:intern: true
:canonicalize: false
:prefixes: {}
xml: !ruby/object:Nokogiri::XML::Document
decorators:
errors: []
node_cache: []
Вывод файла reader.inspect:
#<RDF::TriX::Reader:0x101832a50 @implementation=RDF::TriX::Reader::Nokogiri, @xml=#<Nokogiri::XML::Document:0x80c16cd8 name="document" children=[#<Nokogiri::XML::Element:0x80c14b7c name="RDF" namespace=#<Nokogiri::XML::Namespace:0x80c14af0 prefix="rdf" href="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> children=[#<Nokogiri::XML::Text:0x80c14690 "\n ">, #<Nokogiri::XML::Element:0x80c14640 name="Aggregation" namespace=#<Nokogiri::XML::Namespace:0x80c14528 prefix="ore" href="http://blah.com"> attributes=[#<Nokogiri::XML::Attr:0x80c144c4 name="about" namespace=#<Nokogiri::XML::Namespace:0x80c14af0 prefix="rdf" href="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> value="http://blah.com/data/Manifest">] children=[#<Nokogiri::XML::Text:0x80c13bdc "\n ">, #<Nokogiri::XML::Element:0x80c13b78 name="aggregates" namespace=#<Nokogiri::XML::Namespace:0x80c14528 prefix="ore" href="http://blah.com"> children=[#<Nokogiri::XML::Text:0x80c13628 "\n ">, #<Nokogiri::XML::Element:0x80c135c4 name="Aggregation" namespace=#<Nokogiri::XML::Namespace:0x80c14528 prefix="ore" href="http://blah.com"> attributes=[#<Nokogiri::XML::Attr:0x80c13470 name="about" namespace=#<Nokogiri::XML::Namespace:0x80c14af0 prefix="rdf" href="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> value="http://blah.com/data/something">] children=[#<Nokogiri::XML::Text:0x80c12b88 "\n ">, #<Nokogiri::XML::Element:0x80c12b24 name="type" namespace=#<Nokogiri::XML::Namespace:0x80c14af0 prefix="rdf" href="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> attributes=[#<Nokogiri::XML::Attr:0x80c129bc name="resource" namespace=#<Nokogiri::XML::Namespace:0x80c14af0 prefix="rdf" href="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> value="http://blah.com/data/Sequence">]>, #<Nokogiri::XML::Text:0x80c12a5c "\n ">, #<Nokogiri::XML::Element:0x80c12160 name="type" namespace=#<Nokogiri::XML::Namespace:0x80c14af0 prefix="rdf" href="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> attributes=[#<Nokogiri::XML::Attr:0x80c11ff8 name="resource" namespace=#<Nokogiri::XML::Namespace:0x80c14af0 prefix="rdf" href="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> value="http://www.w3.org/1999/02/22-rdf-syntax-ns#List">]>, #<Nokogiri::XML::Text:0x80c12084 "\n ">]>, #<Nokogiri::XML::Text:0x80c1165c "\n ">]>, #<Nokogiri::XML::Text:0x80c114e0 "\n ">, #<Nokogiri::XML::Element:0x80c11490 name="aggregates" namespace=#<Nokogiri::XML::Namespace:0x80c14528 prefix="ore" href="http://blah.com"> children=[#<Nokogiri::XML::Text:0x80c10f2c "\n ">, #<Nokogiri::XML::Element:0x80c10edc name="Aggregation" namespace=#<Nokogiri::XML::Namespace:0x80c14528 prefix="ore" href="http://blah.com"> attributes=[#<Nokogiri::XML::Attr:0x80c10d74 name="about" namespace=#<Nokogiri::XML::Namespace:0x80c14af0 prefix="rdf" href="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> value="http://blah.com/data/somethingElse">] children=[#<Nokogiri::XML::Text:0x80c1048c "\n ">, #<Nokogiri::XML::Element:0x80c1043c name="type" namespace=#<Nokogiri::XML::Namespace:0x80c14af0 prefix="rdf" href="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> attributes=[#<Nokogiri::XML::Attr:0x80c102d4 name="resource" namespace=#<Nokogiri::XML::Namespace:0x80c14af0 prefix="rdf" href="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> value="http://blah.com/data/Sequence">]>, #<Nokogiri::XML::Text:0x80c10374 "\n ">, #<Nokogiri::XML::Element:0x80c0fa64 name="type" namespace=#<Nokogiri::XML::Namespace:0x80c14af0 prefix="rdf" href="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> attributes=[#<Nokogiri::XML::Attr:0x80c0f910 name="resource" namespace=#<Nokogiri::XML::Namespace:0x80c14af0 prefix="rdf" href="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> value="http://www.w3.org/1999/02/22-rdf-syntax-ns#List">]>, #<Nokogiri::XML::Text:0x80c0f99c "\n ">]>, #<Nokogiri::XML::Text:0x80c0ef74 "\n ">]>, #<Nokogiri::XML::Text:0x80c0edf8 "\n ">]>, #<Nokogiri::XML::Text:0x80c0ec7c "\n">]>]>, @options={:validate=>false, :intern=>true, :canonicalize=>false, :prefixes=>{}}, @library=:nokogiri, @input=#<File:data/test.xml>>
Это ожидаемое поведение?Statement.to_yaml пусто.Я просто хочу получить данные в RDF (этот пример упрощен).У кого-нибудь есть какие-либо комментарии / идеи / URL-адреса, которыми можно поделиться?
Приветствия, Ванесса