- From: Ben Lavender <blavender@gmail.com>
- Date: Tue, 8 Jun 2010 14:47:56 +0200
- To: Gregg Kellogg <gregg@kellogg-assoc.com>
- Cc: Mark Windholtz <windholtz@gmail.com>, "public-rdf-ruby@w3.org" <public-rdf-ruby@w3.org>
This is actually a problem with rdf-raptor, not rdf-rdfxml. I imagine Mark is using require 'linkeddata'. However, I don't replicate a simpler example (now copy-pasteable): require 'linkeddata' s = RDF::URI('http://example.org/ex') p = RDF::DC.event o = RDF::Literal("a literal") repo = RDF::Repository.new repo << RDF::Statement(s, p, o) RDF::Writer.for(:ntriples) RDF::Writer.for(:rdfxml) For this :rdfxml dump, I get: <?xml version="1.0" encoding="utf-8"?>\n<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="http://example.org/ex"> <ns0:event xmlns:ns0="http://purl.org/dc/terms/">a literal</ns0:event> </rdf:Description> </rdf:RDF>\n Note that the namespace is defined in mine. Can you verify you're using the latest rdf-raptor and rdf.rb, Mark? Ben On Tue, Jun 8, 2010 at 2:37 PM, Gregg Kellogg <gregg@kellogg-assoc.com> wrote: > Hi Mark, just to note that the rdf-rdfxml RDF/XML Writer is still in > development, so your results may vary. Which gem are you using to do rdfxml > formatting? > In this case, you're using standard namespaces, so the writer should find > them to use them in the serialization. Note that for non-standard namespaces > (those not defined in RDF.rb), you can define them buy subclassing > RDF::Vocabulay as follows: > class XML < Vocabulary("http://www.w3.org/XML/1998/namespace"); end > This should cause the namespaces to be used in serialization. > > Alternatively, the rdf_context gem also includes an RDF/XML serializer, but > the syntax is somewhat different than that for RDF.rb. > > require 'rdf_context' > include RdfContext > > g = Graph.new > g << Triple.new(course_url(@course), DC_NS.event, @course.full_title) > output = g.to_rdfxml > > yields > > <?xml version="1.0" encoding="UTF-8"?> > <rdf:RDF xmlns:dc="http://purl.org/dc/terms/" > xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> > <rdf:Description rdf:about="http://foo/bar"> > <dc:event>title</dc:event> > </rdf:Description> > </rdf:RDF> > > Gregg > On Jun 6, 2010, at 4:52 PM, Mark Windholtz wrote: > > I'm an RDF.rb newbie trying to write out RDF for a training event. > But I cannot figure out how to write out the namespace specs. > The Rails action looks like this: > > def show > @course = Course.find(params[:id]) > respond_to do |format| > format.rdf do > output = RDF::Writer.for(:rdfxml).buffer do |writer| > s = RDF::URI(course_url(@course)) > p = RDF::DC.event > o = RDF::Literal(@course.full_title) > writer << RDF::Statement(s, p, o) > end > render :xml => output > end > end > end > > And produces this: > <rdf:RDF> > <rdf:Description rdf:about="http://mydomain/training/178"> > <ns0:event> Training: Dallas, Aug 23-24, 2010 </ns0:event> > </rdf:Description> > </rdf:RDF> > > Why is the namespace "ns0" ? > I want something like: > > <rdf:RDF > xmlns:dc="http://purl.org/dc/elements/1.1" > <==== NOTE HERE > <rdf:Description rdf:about="http://mydomain/training/178"> > <dc:event> Training: Dallas, Aug 23-24, 2010 </ns0:event> > </rdf:Description> > </rdf:RDF> > > How can I get RDF.rb to do this? > > Regards, > - Mark Windholtz > (513) 226-8259 > www.agiledna.com > @agiledna > > > > > > >
Received on Tuesday, 8 June 2010 12:56:49 UTC