問題タブ [apache-jena]
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.
jena - Jena - プロパティとオブジェクト クラスでステートメントを検索する
モデルのプロパティとオブジェクトのクラスによって、モデルからすべてのステートメントを取得する方法を探しています。
たとえば、プロパティ :driverOf と、Bus または Truck のいずれかの個人があります。次に、プロパティが :driverOf でオブジェクトが instanceOf Bus であるすべてのステートメントを取得します。ありがとう。
更新 1
実際には、アプリで既にステートメント オブジェクトを使用しているため、結果を一連のステートメント (resp. StmtIterator) にする必要があります。最もクリーンな解決策は、:driverOfBus や :driverOfTruck のような :driverOf プロパティのサブプロパティを持つことだと思います。ただし、アプリが複雑になるため、簡単な回避策を見つけたいと思います。
java - 実装されていない IncompatibleClassChangeError インターフェイスを解決する方法
質問がすでに出されていることは知っていますが、約1時間グーグルで調べた後、説得力のある解決策が見つかりません。
URLからRDFモデルをロードするためにapache-jenaを使用しています。そしてIncompatibleClassChangeError
、次のメッセージが表示されます
このエラーを解決するにはどうすればよいですか。
よろしくアサン
jena - Jena: DBPedia の記事から名前を取得する方法
私は dbpedia の URL を持っており、http://dbpedia.org/resource/Chicago_Cubs
Apache Jena を使用してこの RDF を解析し、ページのラベルを取得したいと考えています。である必要がありますChicago Cubs
。
やってみました
しかし、返されたリソースにはプロパティが含まれていません。
どうすればこれを適切に行うことができますか?
java - 外部ライブラリを使用してプロジェクトをグラスフィッシュにデプロイした後の NoClassDefFoundError
Java ライブラリを Java EE プロジェクトに正しく追加する際に、おそらく問題が発生しました。intellij idea IDE を使用しています。
プロジェクトで外部ライブラリ (apache jena) を使用したいのですが、次の手順を使用してそのライブラリを追加しました: [プロジェクト構造] > [モジュール] > [依存関係] > [JAR またはディレクトリを追加] > [apache jena lib dir を選択] (内部にいくつかの .jar ファイルがあります) 、コアのように..)。
プロジェクトでは、すべてが問題ないようです-インポート、オブジェクト定義..しかし、ローカルグラスフィッシュサーバーにデプロイした後、インデックスページにアクセスした後、NoClassDefFoundError (正確には java.lang.NoClassDefFoundError: org/apache/jena/rdf/model /ModelFactory)。
それで、誰かがそれを解決する方法を教えてもらえますか?ありがとう!
jena - Jena を使用してプロパティ値を取得する方法
Apache Jena を使用して DBpedia にクエリを実行し、特定のトピックの Wikipedia URL を取得しています。
だから私はモデルをロードします
次に、プロパティにアクセスしたいのですisPrimaryTopicOf
が、この新しいモデルで別の SPARQL クエリを実行せずにアクセスする方法がわかりません。
rdf - Jena クラス階層を理解しようとしている
Protege for the OWL オントロジー (owl.ttl) に表示されるクラス階層を再現しようとしています。これは、標準の URI の場所http://www.w3.org/2002/07/owl#でダウンロードできます。 .
私は Jena の API を使用して OntModel にロードし、階層のルート クラスを取得しようとしています。次に、階層を構築するために再帰します。
私が得ている問題は、階層のルート クラスを取得するために呼び出すと、結果が返されないことです。そのため、階層を再帰して構築するためのルート クラスがありません。
===========================================
http://www.w3.org/2002/07/owl#にある OWL オントロジーを Protege にロードすると、すばらしいクラス階層がまったく問題なく得られます。しかし、Jena で合理的モデルまたは非合理的モデルの両方にロードすると、次のような階層クラスは得られません。
理由のあるモデルまたは不合理なモデルの両方の呼び出しは、ゼロの結果を返します。
==============================================
今、私は別のことを試しています。私は、rdfs:Resource が常に RDFS/OWL モデルの最上位クラスであることを知っています。だから、私がするとき:
ここから下に再帰すると、推論された関係を含む完全なクラス階層が得られます。これは、推論されたモデルを選択したためです。
私の質問は、後者のアプローチはこれを行う正しい方法ですか? モデルのルートレベルのクラスが何かを教えてくれるように Jena に頼むべきではないでしょうか。
========================================
更新: OWL2 オントロジーであるオントロジーを解析するには、現時点で Jena が OWL2 オントロジーと互換性がないため、厳密モードをオフに設定する必要がありました (私はバージョン 2.7.4 を使用しています)。
OWL_MEM または RDFS_MEM を指定して .listHierarchyRootClasses() を呼び出すと、ルート クラスが返されません。.listClasses() を呼び出し、スーパー クラスを持たないすべてのクラスを検索してルートを検索すると、RDFS_MEM で次の階層が得られます。
OWL_MEM では、次のようになります。
繰り返しますが、どちらも Protege にロードするときに表示されるのと同じ階層を反映していません。
ここで何が間違っているのかはっきりしません.OWLオントロジーを解析していて、これ自体がJenaを混乱させているのかもしれません.