Andy, On Fri, Dec 5, 2014 at 3:53 AM, Andy Seaborne <[email protected]> wrote:
> Hi Juan, > > Presumably you get the error at: > > >> accessor.add > > and on the sending side? I'm not clear as the set up - it's not the > remote server giving that error is it? > > It is at this point that things become RDF/XML (the plain vanilla form - > safest default choice). You can set the setOutboundSyntax on the > DatasetGraphAccessorHTTP -- tricky to get to at the DatasetAccessor level > (hmm ...). > This is helpful. But I agree that going down this route would be tricky (and hacky IMO) because you would be addressing the issue of RDF not having absolute URIs. > > At: > > >> Model m = getModelFromSomewhere(); > > you should read the data with a base URI - all the Jena read methods > (model.read, RDFdataMgr.read) have variants for providing the base URI. > > Jena, like RDF, assumes absolute URIs. > I understand. That is why I made sure that the all the URIs were absolute. > > It is possible to read in relative URIs, especially from N-triples/N-quads > (much less checking on that route specifically so you can do nasty things - > caveat emptor). > > If that's not it, could you show some data? > > Andy > > > > On 05/12/14 01:05, Juan Sequeda wrote: > >> I resolved my issue by making sure that all URIs are absolute. >> >> Nevertheless, I'm still curious about how to address this issue. >> >> Juan Sequeda >> +1-575-SEQ-UEDA >> www.juansequeda.com >> >> On Thu, Dec 4, 2014 at 3:18 PM, Juan Sequeda <[email protected]> >> wrote: >> >> Andy, all, >>> >>> I have RDF in turtle syntax, which has relative URIs (e.g. <#Foo>) and no >>> base define. >>> >>> If I do the following, >>> >>> curl -X POST -d @rdfWithRelativeURI.ttl -H "Content-Type: text/turtle" >>> http://localhost:3030/ds/data?graph=http%3A%2F%2Ffoo.com%2Ftest >>> >>> everything works fine and the absolute URI is now: < >>> http://localhost:3030/ds/data?graph=http%3A%2F%2Ffoo.com%2Ftest#Foo> >>> >>> Now I have the following code: >>> >>> >>> Model m = getModelFromSomewhere(); //This model has a relative URI (same >>> data as in rdfWithRelativeURI.ttl) >>> DatasetAccessor accessor = DatasetAccessorFactory.createHTTP(" >>> http://localhost:3030/ds/data"); >>> accessor.add("http://foo.com/test", m); >>> >>> And I'm getting a BadURIException: >>> >>> com.hp.hpl.jena.shared.BadURIException: Only well-formed absolute >>> URIrefs >>> can be included in RDF/XML output: <#Foo> Code: >>> 57/REQUIRED_COMPONENT_MISSING in SCHEME: A component that is required by >>> the scheme is missing. >>> >>> What's the best way of dealing with this? >>> >>> Is there a way that I can add the content type in the header so it knows >>> it is Turtle and not RDF/XML? >>> Or can I change the default syntax of the model to Turtle from RDF/XML >>> (is >>> that even possible)? >>> Or can I just add a base somehow? >>> >>> Thanks for the pointers. I usually never deal with relative URIs so >>> that's >>> why this is new to me. >>> >>> Thanks! >>> >>> Juan >>> >>> >> >
