私はSPARQL、OWL、およびJenaにかなり慣れていないので、まったく愚かな質問をしている場合は失礼します。私は数日以来私を狂わせている問題を抱えています。次の文字列をJenaのクエリとして使用していますQueryFactory.create(queryString)
。
queryString = "PREFIX foaf: <http://xmlns.com/foaf/0.1/>"+
"PREFIX ho: <http://www.flatlandfarm.de/fhtw/ontologies/2010/5/22/helloOwl.owl#>" +
"SELECT ?name ?person ?test ?group "+
"WHERE { ?person foaf:name ?name ; "+
" a ho:GoodPerson ; "+
" ho:isMemberOf ?group ; "+
"}";
今朝までは、foaf名前空間からプロパティを要求するだけで機能していました。自分の名前空間からプロパティを要求するとすぐに、常に空の結果が得られました。私がこの質問をここに投稿しようとしていて、可能な限り正確に投稿できるようにいくつかの最終テストを行ったところ、突然うまくいきました。正確に何を求めるべきかわからなくなったので、投稿する前に質問を削除しました。数時間後、ProtegeのPelletプラグインを使用して、推測されたモデルを作成およびエクスポートしました。私はそれをhelloOwlInferred.owlと呼び、helloWl.owlがまだ存在するサーバー上のディレクトリにアップロードしました。推論されたオントロジーをロードするようにメソッドを調整し、接頭辞ho:が推論されたオントロジーにも割り当てられるように上記のクエリを変更しました。すぐに、何も機能しなくなりました。正確には、それはもはや機能するものではありませんでしたが、それは私が今朝まで私の元のクエリで持っていたのと同じ症状でした。私のプレフィックスはもう機能しませんでした。簡単なテストを行いました。すべてのhelloWorldInferred.owlファイル(サーバー上のプレフィックスとロードしたローカルコピーのファイル)の名前をhelloWorld.owlに変更しました。すべてを修正するのに十分奇妙です。
名前をhelloWorldInferred.owlに戻すと、すべてが再び壊れました。等々。そこで何が起こっているのですか?オントロジーが「有効なプレフィックスとして登録」されるまで、数週間待つ必要がありますか?