2012-03-24 6 views
1

TenaでJenaを使用しています。私は正常にトリプルを格納していますが、特定のプロパティ "isA"がTransitiveReasonerを推論に使うために推移的であることを指定する必要があります。プロパティを推移させる必要があります

次は私が使っている方法のいくつかである:

private void AddTriple(String arg1, String pred, String arg2) { 
    Resource r = m.createResource(NS + arg1); 
    Property p = m.createProperty(NS + pred); 
    Property p2 = m.createProperty(NS + arg2); 
    r.addProperty(p, p2); 
} 

private void addTest() { 
    AddTriple("cat", "isA", "feline"); 
    AddTriple("feline", "isA", "mammal"); 
    AddTriple("mammal", "isA", "animal"); 
    m.close(); 
} 

次のように私はモデルをロードしています:

Dataset dataset = TDBFactory.createDataset(directory); 
m = dataset.getDefaultModel(); 
addTest(); 

次のように私は推論を設定しています:

Reasoner reasoner = ReasonerRegistry.getTransitiveReasoner();  
InfModel inference = ModelFactory.createInfModel(reasoner, m); 

推論モデルに含まれるもの:

<ModelCom {http://namespace/test#cat @http://namespace/test#isA http://namespace/test#feline; http://namespace/test#feline @http://namespace/test#isA http://namespace/test#mammal; http://namespace/test#mammal @http://namespace/test#isA http://namespace/test#animal} | > 

"isA"プロパティが推移的であると指定されていないため、推論モデルには元のモデルとまったく同じトリプルが含まれています。 1がプロパティPが推移財産であることを定義した場合、これはペア(X、Yであればということを意味

cat isA mammal 
cat isA animal 

答えて

2

」:私は「ISA」プロパティはので、私は、次のトリプルを取得することができ推移であることを指定することができますどのように)はPのインスタンスであり、ペア(y、z)もPのインスタンスである場合、ペア(x、z)もPのインスタンスであると推論することができる。 構文的には、それを組み込みのOWLクラスのインスタンスにすることにより、owl:TransitivePropertyはowl:ObjectPropertyのサブクラスとして定義されます。

<http://namespace/test#isA> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#TransitiveProperty> 

m.add(ResourceFactory.createResource(:http://www.w3.org/TR/owl-ref/#TransitiveProperty-def

したがって、あなたは、次のRDFを追加して、イエナモデルに三倍にすることを行うことができ、推移であるとして、あなたのプロパティを定義する必要があります - NS + "ISA")、RDF.type、OWL.TransitiveProperty)

は、私はまた、あなたがオントロジーと推論にイエナのウェブサイトの相対に関するドキュメントを読むことをお勧めします:

+0

おかげで完全にOWLのReasonerを使用して動作します! – dscer

+0

「公式」Apache Jenaのサポートは、jena-usersメーリングリストを介して、私たちに知らせてくれたことに感謝します。ここでメーリングリストの購読方法の詳細をご覧ください:http://incubator.apache.org/jena/help_and_support/ – castagna

関連する問題