0

データを取り込み、Jena API を使用してタートル形式の RDF を生成し、Sesame API を使用して送信されたデータを必要とするトリプルストアにロードする ETL サービスを提供する、Eclipse を介した Maven プロジェクトで開発されたプログラムがあります。そのため、ETL サービスによって作成されたステートメントを Jena から Sesame に変換する必要があります。

Stardog の次のクラスを使用したいと思います。これは、私が必要とすることを正確に実行するためです。問題を解決するために、次の依存関係を pom.xml に追加しようとしました。

    <dependency>
        <groupId>com.complexible.stardog.protocols.http</groupId>
        <artifactId>client</artifactId>
        <version>${stardog.version}</version>
        <exclusions>
            <exclusion>
                <!-- Depends on this as if it were a jar artifact, when it is a pom -->
                <artifactId>sesame</artifactId>
                <groupId>org.openrdf.sesame</groupId>
            </exclusion>
        </exclusions>
    </dependency>
    <dependency>
        <groupId>com.complexible.stardog.reasoning.http</groupId>
        <artifactId>client</artifactId>
        <version>${stardog.version}</version>
        <exclusions>
            <exclusion>
                <!-- Depends on this as if it were a jar artifact, when it is a pom -->
                <artifactId>sesame</artifactId>
                <groupId>org.openrdf.sesame</groupId>
            </exclusion>
        </exclusions>
    </dependency>
    <dependency>
        <groupId>com.complexible.stardog</groupId>
        <artifactId>core</artifactId>
        <version>${stardog.version}</version>
        <exclusions>
            <exclusion>
                <!-- Depends on this as if it were a jar artifact, when it is a pom -->
                <artifactId>sesame</artifactId>
                <groupId>org.openrdf.sesame</groupId>
            </exclusion>
            <exclusion>
                <artifactId>license</artifactId>
                <groupId>com.clarkparsia</groupId>
            </exclusion>
            <exclusion>
                <artifactId>erg</artifactId>
                <groupId>com.complexible.erg</groupId>
            </exclusion>
        </exclusions>
    </dependency>

しかし、次のエラーが発生します。

欠落しているアーティファクト com.complexible.stardog:shared:jar 2.2.2

欠落しているアーティファクト org.openrdf.sesame:sesame:jar:2.7.12

欠落しているアーティファクト com.complexible.stardog:api:jar.2.2.2

また、上記の依存関係の開始依存タグで、その中に含まれる依存関係も欠落しているというエラーが表示されます。

注: stardog.version = 2.2.2 および sesame.version = 2.7.12。

何か案は?

4

1 に答える 1

0

Maven の依存関係の問題を解決する方法がよくわかりません。これは Stardog に固有のようです。ここで回答が得られない場合は、代わりにサポート メーリング リストで質問してみてください。

ただし、代替ソリューションを提供できます。コンバーター クラスを使用する代わりに、Jena オブジェクトを N-Triples または Turtle にシリアル化し、Sesame の Rio パーサーを使用して解析します。もちろん、Sesame API オブジェクトが作成されます。

私は Jena API にあまり詳しくありませんが、たとえばOutputStreamTurtle 形式でモデルを作成できる方法があると確信しています。それができたらOutputStream、次のようなことを簡単に行うことができます:

// in case of very large files, use something more efficient, like a   
// PipedOutputStream, or first write back to disk
ByteArrayInputStream in = new ByteArrayInputStream(out.toByteArray()); 

// parse the data using Sesame Rio, which provides a Sesame Model     
// object. You can of course also immediately write the  
// data to the store instead of first creating a Model.
org.openrdf.model.Model model = Rio.parse(in, "", RDFFormat.TURTLE); 
于 2015-03-13T19:05:48.560 に答える