Hi Martynas,
On 28/04/11 11:08, Martynas Jusevicius wrote:
I switched from in-memory OntModel
OntModel model = ModelFactory.createOntologyModel();
to TDB-backed persistent OntModel
OntModel model =
ModelFactory.createOntologyModel(OntModelSpec.OWL_MEM,
TDBFactory.createNamedModel(ONT_MODEL_URI,
getContext().getRealPath("/WEB-INF/tdb/ontologies")));
And I can see that behavior changed, since I get this exception on
model.listIndividuals() which wasn't there before:
com.hp.hpl.jena.ontology.ConversionException: Cannot convert node
"http://l-userpic.livejournal.com/83083903/3100850"@en to OntResource
Is OntModelSpec.OWL_MEM not the default model spec used in
createOntologyModel()?
No, it's not. The default is OWL_MEM_RDFS_INF, for backwards
compatibility with Jena 1. Possibly a mistake in hindsight, but hard to
change now without breaking user code.
More to the point - I can see that my FOAF data is broken - there is a
literal object where foaf:image expects a resource:
<foaf:image>http://l-userpic.livejournal.com/67781107/4730072</foaf:image>
but I can't do much about it since it is the kind of raw data I want
to accept from users.
I do not need inference right now but might use it in the future - so
how do I deal with ConversionException on broken data like this?
If you're anticipating broken data, you could always turn off strict
mode, so that .as() will always succeed no matter what's in the model:
http://jena.sourceforge.net/javadoc/com/hp/hpl/jena/ontology/OntModel.html#setStrictMode%28boolean%29
Whether this is helpful or not is application defined :)
Ian
--
____________________________________________________________
Ian Dickinson Epimorphics Ltd, Bristol, UK
mailto:[email protected] http://www.epimorphics.com
cell: +44-7786-850536 landline: +44-1275-399069
------------------------------------------------------------
Epimorphics Ltd. is a limited company registered in England
(no. 7016688). Registered address: Court Lodge, 105 High St,
Portishead, Bristol BS20 6PT, UK