0

私は(タートルで)タートルで対称で推移的な述語を定義し、それから推論を得ようとしています。

述語を定義した方法は次のとおりです。

:similar a owl:SymmetricProperty; a owl:TransitiveProperty .

使い方(同じタートルファイル):

:a :similar :b .
:b :similar :c .

次に、aとbを取得することを期待して、sparklクエリ「select?x where?x:similar:c」を発行します。

私は次のようにモデルを設定しようとしました:

OntModel ont = ModelFactory.createOntologyModel( OntModelSpec.OWL_MEM );      
ont.read("file:./myontology.turtle",null,"TURTLE"); 
InfModel model = ModelFactory.createInfModel(ReasonerRegistry.getOWLReasoner(), ont);

次に、QueryExecutionFactory.createでInfModelを使用します。動作しません。

私もそれを試しました:

OntModel model = ModelFactory.createOntologyModel( OntModelSpec.OWL_DL_MEM_RULE_INF );
model.read("file:./myontology.turtle",null,"TURTLE");

運もありません。正しい方法は何ですか?私は何が欠けていますか?

前もって感謝します。

4

1 に答える 1

0

答えが見つかりました。以下は問題なく動作します。

OntModel model = ModelFactory.createOntologyModel(OntModelSpec.OWL_MEM_MICRO_RULE_INF);
model.read("file:./myontology.turtle",null,"TURTLE");

プレフィックスに問題がありました。また、私は:similarをクラスとして宣言し、サブクラスがowl:SymmetricPropertyとowl:TransitivePropertyを継承すると想定していました。そのように機能していないようです

于 2012-09-04T19:19:51.500 に答える