On 20/02/14 02:07, Guilherme Maranhão wrote:
Hi Dave,
I've tried all the possible ways to simply create a model and none did work.
I've tried your last suggestion and it sends file not found. I've tried
with both absolute and relative paths.
In that case you need to figure out the right file name. You might want
to start with something simple such as putting the data file in the same
place you are running the code then work up from there.
Another way I have tried is as follows:
OntModel model = ModelFactory.createOntologyModel( PelletReasonerFactory.THE
proj_SPEC, null );
That's creating a model with a Pellet reasoner. If that's what you want
then great. But especially if are having problems getting started then
you might want to start without inference and work up.
OntModel model
= ModelFactory.createOntologyModel( OntModelSpec.OWL_MEM );
model.read( ontPath, "RDF/XML" );
ontPath is relative to my project path.
And did that work?
Dave
I am very new to Jena, that's why I am having these kind of difficulties.
Thanks again,
Guilherme
On Wed, Feb 19, 2014 at 11:18 AM, Dave Reynolds
<[email protected]>wrote:
On 19/02/14 11:54, Guilherme Maranhão wrote:
Dave,
I've removed line 2 as you've suggested, but stage3Hypertension continues
null.
Isn't it the way I am creating the modelMem object?
ModelMaker modelMaker = ModelFactory.createFileModelMaker(/User/guilherme
/ontology/vitalSign.owl);
Model modeltmp = modelMaker.createDefaultModel();
modelMem = ModelFactory.createOntologyModel(OntModelSpec.
OWL_MEM_MICRO_RULE_INF, modeltmp);
I don't think modelMaker.createDefaultModel() loads any data, just
creates an empty model. But I never use it so can't be sure.
Try simply:
Model model = RDFDataMgr.loadModel("your-file-name") ;
[Hope that's the right syntax, I'm still too used to FileManager.]
Dave
On Wed, Feb 19, 2014 at 5:38 AM, Dave Reynolds <[email protected]
wrote:
On 19/02/14 03:20, Guilherme Maranhão wrote:
Hello guys,
Those are the steps I am using to instantiate an OntClass object:
// modelMem is an OntModel object.
1 - Reasoner reasoner = ReasonerRegistry.getOWLReasoner();
2 - reasoner = reasoner.bindSchema(modelMem);
3 - OntModelSpec ontModelSpec = OntModelSpec.OWL_DL_MEM_RULE_INF;
4 - ontModelSpec.setReasoner(reasoner);
5 - OntModel ontModel = ModelFactory.createOntologyModel(ontModelSpec,
modelMem);
6 - OntClass stage3Hypertension = ontModel.getOntClass("
http://www.semanticweb.org/ontologies/2013/1/Ontology1361391792831.owl#
Stage3Hypertension
");
This is not your underlying problem but you have bound modelMem in twice
-
you have bound it to the reasoner and then applied that back to the same
model. It would be better to just have:
OntModelSpec ontModelSpec = OntModelSpec.OWL_DL_MEM_RULE_INF;
OntModel ontModel = ModelFactory.createOntologyModel(ontModelSpec,
modelMem);
Though in fact I would recommend OWL_MEM_MICRO_RULE_INF as the best
default.
After line 2, the console prompt shows a lot of warning messages, like
this:
Fev 19, 2014 12:15:56 AM
org.mindswap.pellet.jena.graph.query.GraphQueryHandler findTriple
Warning: No query handler found for
http://www.w3.org/1999/02/22-rdf-syntax-ns#type
http://www.w3.org/1999/02/22-rdf-syntax-ns#type
http://www.w3.org/1999/02/22-rdf-syntax-ns#Property
Those are messages from Pellet. Your above code does not include Pellet
so
either this isn't the code you are running or your "modelMem" in the
above
is actually Pellet-backed model.
If the latter then you have a rule reasoner running over a rule reasoner
running over Pellet. Don't know why that would cause outright failures
but
certainly not a useful thing to do.
To get help with Pellet you would need to ask the Pellet folks, Pellet is
not part of Jena.
Dave