When I write to a text file, I supply a base URI. I call RDFWriter.write(Model 
m, OutputStream os, String baseUri). The RDF statements (in XML_ABBREV format) 
about the ontology in that case do have 'rdf:about=""' as the subject. When you 
talk about "<>" do you mean that "<>" should be there instead of ""? (I'm 
ignorant of "<>" as an OWL convention for ontologies. I don't think I've ever 
used it or seen it, alas.)

However, in this case I'm not the one who is converting a model to a payload; 
it's something underneath Fuseki's DatasetAccessor. Similarly, I'm not sure 
what you mean by "creating an ontology programmatically." When I create an 
OntModel, I use an OntModelSpec with a document manager that knows about all 
the ontologies the model needs. No base URI is supplied or able to be supplied, 
as far as I know.

(FWIW, the Model I'm trying to put() using Fuseki is created entirely 
programmatically. It's an OWL translation of an XML document.)

Dave Lebling

-----Original Message-----
From: Dave Reynolds [mailto:[email protected]] 

>....

The URI for your OWL ontology is the empty string which is illegal and can't be 
written out.

The OWL convention of using <> as the relative URI for an ontology in source 
XML is fine but when you read it in it will get converted into an absolute URI 
(that of the source URL you read it in from).  So you don't end up with an 
empty subject URI for your owl:imports in the Jena model.

If you want to create an ontology programatically and generate <> in youir 
output then you create the owl:Ontology with some known BASE_URI and then use 
the same BASE_URI as the base when writing out. The RDF/XML-Abbrev writer will 
generate relative URIs in the output in that case.

Dave

Reply via email to