Thanks for the Rsponse. This question ob stackoverfow was entered by me ;) The 
namespace part is created but the reasoning does still not work, even when 
using RDFSRuleReasoner with RDFS_Default vocabulary. So it's still kind of open.

Thx

Send from mobile - pleace excause typosch

> Am 16.07.2014 um 22:27 schrieb Joshua TAYLOR <[email protected]>:
> 
> This was already asked and answered on Stack Overflow [1].  The problem was:
> 
> 1. The eg: prefix stands for "urn:x-hp:eg/", not "urn:x-hp-jena:eg/".
> It is a bit confusing because the documentation never explicitly
> states what  it will be, and the documentation does use the latter in
> some of the examples, too.
> 2. RDFS reasoning requires a reasoner that does RDFS reasoning.  The
> subproperty inference won't be performed by the custom rules provided
> here.
> 
> //JT
> 
> [1] http://stackoverflow.com/q/24786035/1281433
> 
>> On Wed, Jul 16, 2014 at 3:18 PM, Maciek Niemczyk <[email protected]> wrote:
>> 
>>> Betreff: Problems with Reasoning - even the simple explamples from Docu 
>>> does not work!
>>> 
>>> Hi
>>> 
>>> i have a serious problem to get any reasoner up and running.
>>> Also the examples from the documentation: 
>>> https://jena.apache.org/documentation/inference/
>>> does not work here.
>>> I transferred the example into a unit test, so that the problem might be 
>>> easier reproduced.
>>> 
>>> Is reasoning limited to certain environment like a spatial JDK or so on, or 
>>> am i getting something wrong?
>>> 
>>> Thanks
>>> 
>>> Here the (your example) code (as java unit test):
>>> 
>>> import static org.junit.Assert.assertNotNull;
>>> 
>>> import java.io.PrintWriter;
>>> import java.util.Iterator;
>>> 
>>> import org.junit.Before;
>>> import org.junit.Test;
>>> 
>>> import com.hp.hpl.jena.rdf.model.InfModel;
>>> import com.hp.hpl.jena.rdf.model.Model;
>>> import com.hp.hpl.jena.rdf.model.ModelFactory;
>>> import com.hp.hpl.jena.rdf.model.Property;
>>> import com.hp.hpl.jena.rdf.model.Resource;
>>> import com.hp.hpl.jena.rdf.model.Statement;
>>> import com.hp.hpl.jena.rdf.model.StmtIterator;
>>> import com.hp.hpl.jena.reasoner.Derivation;
>>> import com.hp.hpl.jena.reasoner.rulesys.GenericRuleReasoner;
>>> import com.hp.hpl.jena.reasoner.rulesys.Rule;
>>> import com.hp.hpl.jena.vocabulary.RDFS;
>>> 
>>> public class ReasonerTest {
>>> 
>>>   String NS = "urn:x-hp-jena:eg/";
>>> 
>>>   // Build a trivial example data set
>>>   Model model = ModelFactory.createDefaultModel();
>>>   InfModel inf;
>>> 
>>>   Resource A = model.createResource(NS + "A");
>>>   Resource B = model.createResource(NS + "B");
>>>   Resource C = model.createResource(NS + "C");
>>>   Resource D = model.createResource(NS + "D");
>>> 
>>>   Property p = model.createProperty(NS, "p");
>>>   Property q = model.createProperty(NS, "q");
>>> 
>>> 
>>>   @Before
>>>   public void init() {
>>> 
>>>       // Some small examples (subProperty)
>>>       model.add(p, RDFS.subPropertyOf, q);
>>>       model.createResource(NS + "A").addProperty(p, "foo");
>>> 
>>>       String rules = "[rule1: (?a eg:p ?b) (?b eg:p ?c) -> (?a eg:p ?c)]";
>>>       GenericRuleReasoner reasoner = new 
>>> GenericRuleReasoner(Rule.parseRules(rules));
>>>       reasoner.setDerivationLogging(true);
>>>       inf = ModelFactory.createInfModel(reasoner, model);
>>> 
>>>       // Derivations
>>>       A.addProperty(p, B);
>>>       B.addProperty(p, C);
>>>       C.addProperty(p, D);
>>>   }
>>> 
>>> 
>>>   @Test
>>>   public void subProperty() {
>>>       Statement statement =  A.getProperty(q);
>>>       System.out.println("Statement: " + statement);
>>>       assertNotNull(statement);
>>>   }
>>> 
>>> 
>>>   @Test
>>>   public void derivations() {
>>>       String trace = null;
>>>       PrintWriter out = new PrintWriter(System.out);
>>>       for (StmtIterator i = inf.listStatements(A, p, D); i.hasNext(); ) {
>>>           Statement s = i.nextStatement();
>>>           System.out.println("Statement is " + s);
>>>           for (Iterator id = inf.getDerivation(s); id.hasNext(); ) {
>>>               Derivation deriv = (Derivation) id.next();
>>>               deriv.printTrace(out, true);
>>>               trace += deriv.toString();
>>>           }
>>>       }
>>>       out.flush();
>>>       assertNotNull(trace);
>>>   }
>>> 
>>>   @Test
>>>   public void listStatements() {
>>>       StmtIterator stmtIterator = inf.listStatements();
>>>       while(stmtIterator.hasNext()) {
>>>           System.out.println(stmtIterator.nextStatement());
>>>       }
>>>   }
>>> }
>>> 
>>> 
> 
> 
> 
> -- 
> Joshua Taylor, http://www.cs.rpi.edu/~tayloj/

Reply via email to