問題タブ [pellet]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - Pellet と OWL-API の OSGi 依存関係との闘い
オントロジーに簡単にアクセスできるように、owl-api とペレット推論器を組み合わせたファサードを作成しました。静かによく効きました。次に、OSGi バンドルとしてパックし、他のサービスから TrackerService 経由で使用しようとしました。owl-api バンドルを実行するには、guava と trove が必要です。Trove にはバンドルはありません。ターゲット プラットフォームをリロードした後でも、ペレット ジャーは Eclipse でバンドルとして認識されませんでした (jpm4j から取得しました)。それで、私はすべての瓶詰め物を取り、それを束に絞ることを考えました.
サードパーティの jar をバンドルでパッケージ化するためのハウツーをたくさん読みました。私は maven-bundle-plugin を使用し、このプラグインと bndtools からいくつかのドキュメントを読んだ後、 conditional-packageを使用することにしました。コンパイル後、バンドルに jar がパッケージ化されませんでした :(。その後、embed-dependenciesを使用しました。一時的な依存関係が実行時に利用できなかったため、機能しませんでした。そのため、embed-transientを使用しました。タグ (これは悪いスタイルだと既に読みました)。Import-Package 部分はすべての一時的な依存関係で自動的に埋められたので、未解決のインポートに関するエラーを取り除くために手動で上書きしました。これは機能し、owl-api を使用して新しいプロパティ、個人などを挿入することができました (ええ)。
ペレット推論を開始しようとすると、実行時に以下のエラー メッセージが表示されました。私のプロジェクトの依存関係の混乱についてだと思います。現在の方法が間違っていることはすでにわかっていますが、より良い方法を見つけることができませんでした。OSGi でこの依存関係管理を正しく行うのを手伝ってください。
乾杯、ステファン
エラーメッセージ:
POM ファイル (重要な部分):
osgi - owl api - osgi で使用されるペレット
OSGI バンドルで OWL API と Pellet を使用しようとしています。バンドルは正常にビルドされますが、実行時に次のエラーが発生します: org.osgi.framework.BundleException: Unresolved constraint in bundle smp.lighting.client.osgi [2]: package; (package=org.mindswap.pellet)
.
これらは、pom ファイルで宣言されている依存関係です。
<dependency>
<groupId>edu.stanford.protege</groupId>
<artifactId>org.semanticweb.owl.owlapi</artifactId>
<version>3.4.4</version>
<exclusions>
<exclusion>
<artifactId>org.osgi.core</artifactId>
<groupId>org.apache.felix</groupId>
</exclusion>
<exclusion>
<artifactId>owlapi-apibinding</artifactId>
<groupId>net.sourceforge.owlapi</groupId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>com.github.ansell.pellet</groupId>
<artifactId>pellet-owlapiv3</artifactId>
<version>2.3.3</version>
<exclusions>
<exclusion>
<artifactId>slf4j-api</artifactId>
<groupId>org.slf4j</groupId>
</exclusion>
<exclusion>
<artifactId>log4j</artifactId>
<groupId>log4j</groupId>
</exclusion>
<exclusion>
<artifactId>xercesImpl</artifactId>
<groupId>xerces</groupId>
</exclusion>
</exclusions>
</dependency>
また、バンドルの起動ファイルで、mvn:edu.stanford.protege/org.semanticweb.owl.owlapi/3.4.4 を呼び出します。
次のレベル: wrap:mvn:com.github.ansell.pellet/pellet-jena/2.3.3 wrap:mvn:com.github.ansell.pellet/pellet-owlapiv3/2.3.3
何か足りないかどうかわかりませんが、助けていただければ幸いです。前もって感謝します!
owl - なぜペレットは、無限の「含意」正当性を持つ一貫性のない「何もない」サブクラスを推論したのですか?
私は Protégé 4.0 と Pellet 2.2 を使用して OWL 2.0 を学んでおり、基礎となる概念を徐々に理解しようとしています。
そこで、クラス階層から始めて、1 つのクラス「Cat」を SubClassOf「Things」として作成しました。
Pellet を起動するとすべて正常に動作しますが、"Cat" というクエリを DL すると、Directsubclasses "Nothing" と Subclasses "Nothing" が赤色で表示されます。
- どういう意味ですか?
- なぜ赤いのですか?
正当化は次のようなものです:
- どういう意味ですか?
- これらの「含意」の正当化が無限にあるのはなぜですか(つまり、1つのクラスしか作成していません)。
- この現象を回避するために修正しなければならないエラーはありますか? それとも気にしなくていいのでしょうか?
ありがとうございます^_^!
sparql - OWL APIのペレット内部ResonerException
ある日立ち往生しています。誰か親切に助けてくれますか? SWEET(Semantic Web for Earth and Environmental Ontology)をインポートしたオントロジーをロードしました。私はいくつかの SPARQL クエリを実行しましたが、次のような回答が得られました。(SWEETで確認したhasLowerBoundは、SWEETのデータ型オントロジーです)
どうすればこの問題を解決できますか?
これが私が書いたコードと私が得たエラーです、あなたの助けに感謝します~
スレッド "main" org.mindswap.pellet.exceptions.InternalReasonerException での例外: オブジェクト プロパティ hasLowerBound は、値がリテラルである hasValue 制限と共に使用されます: "0"^^integer at org.mindswap.pellet.tableau.completion.rule .SomeValuesRule.applySomeValuesRule(SomeValuesRule.java:204) at org.mindswap.pellet.tableau.completion.rule.SomeValuesRule.apply(SomeValuesRule.java:64) at org.mindswap.pellet.tableau.completion.rule.AbstractTableauRule.apply (AbstractTableauRule.java:64) org.mindswap.pellet.tableau.completion.SROIQStrategy.complete(SROIQStrategy.java:157) で org.mindswap.pellet.ABox.isConsistent(ABox.java:1423) で org.mindswap. org.mindswap.pellet.KnowledgeBase.consistency(KnowledgeBase.java:1987) で org.mindswap.pellet.KnowledgeBase.isConsistent(KnowledgeBase.java:2061) at org.mindswap.pellet.jena.PelletInfGraph.prepare(PelletInfGraph.java:258) at org.mindswap.pellet.jena.PelletInfGraph.prepare(PelletInfGraph.java:241) at com .clarkparsia.pellet.sparqldl.jena.SparqlDLExecutionFactory.create(SparqlDLExecutionFactory.java:113) at com.clarkparsia.pellet.sparqldl.jena.SparqlDLExecutionFactory.create(SparqlDLExecutionFactory.java:261) at com.clarkparsia.pellet.sparqldl.jena .SparqlDLExecutionFactory.create(SparqlDLExecutionFactory.java:226) at loadMODIS.load.main(load.java:78)create(SparqlDLExecutionFactory.java:113) com.clarkparsia.pellet.sparqldl.jena.SparqlDLExecutionFactory.create(SparqlDLExecutionFactory.java:261) com.clarkparsia.pellet.sparqldl.jena.SparqlDLExecutionFactory.create(SparqlDLExecutionFactory.java:226) loadMODIS.load.main(load.java:78) でcreate(SparqlDLExecutionFactory.java:113) com.clarkparsia.pellet.sparqldl.jena.SparqlDLExecutionFactory.create(SparqlDLExecutionFactory.java:261) com.clarkparsia.pellet.sparqldl.jena.SparqlDLExecutionFactory.create(SparqlDLExecutionFactory.java:226) loadMODIS.load.main(load.java:78) で
protege - 実行時にオントロジーの一貫性をチェックする
Jena を使用して Protege で設計された .owl オントロジーをロードするプログラムがあります。実行時にいくつかのステートメントをモデルに追加すると、その一貫性をチェックできるように、ペレットを使用してそれについて推論しようとしています。たとえば、「メソッド」、「署名」、および「hasSignature」の概念があり、hasSignature はオブジェクト プロパティです。私は次の公理を持っています:
上記の公理に違反するためにいくつかのインスタンスステートメントを追加しても、矛盾は報告されません。これが私のコードです:
どうしたの?うまくいかないのはなぜですか?
sparql - ペレット + Jena + SPARQL + com.hp.hpl.jena.query.QueryParseException: が発生しました ""rdfs:ドメイン
私が得た問題 com.hp.hpl.jena.query.QueryParseException: Encountered " <PNAME_LN> "rdfs:domain.
は、これが私がやったことです。OWL API を使用して xml/owl ドキュメントを読み取り、Pellet を使用して推論します。理由に加えていくつかの SPARQL クエリを実行したいので、Jena 2.10.0 を使用して Pellet 2.3.0 を操作します。互換性のため、Jena のバージョンを変更することはできません。コードは次のとおりです。
コードは最初の 3 つのクエリでうまく機能しますが、追加後"seaice:describe rdfs:domain ?domain."
すぐに問題が発生しました。このコードは、" " だけでもうまく機能しseaice:describe rdfs:domain ?domain.
ます。エラーは次のとおりです。
java - オントロジーの推論
推論に問題があります。オントロジーの TBox のみをロードする場合、クラスのインスタンスを取得するにはどうすればよいですか?
実行は最後の行までブロックされます (NULL POINTER はありません)。ブロックされているだけです:(
jena - ペレット + 推移性 + 理由 + OWL-API
推移的なオブジェクトのプロパティSimilartoを推測する際にPelletを使用する際に問題があります。私は個体AがBに類似し、個体BがCに類似しています。OWL APIでPelletを使用したり、Jenaを使用して個体グループA、B、Cを取得したいのですが、OWL APIで推論を行うためのコードがわかりません。
私はすでに OWL API にオントロジーをロードしています。同じ推移プロパティに接続された個人のグループを推論するサンプル コードはありますか?