3

大量のデータを RDF 形式で書き込んで保存する予定です。SIOC、GEO、および dcterms を使用します。Jena では、たとえば次のようにする代わりに、ロードされたオントロジーから名前空間をインポートする方法はありますか?

model.setNsPrefix("sioc","http://sioc.com/ontologies/sioc#");
Property  ID = model.createProperty("http://sioc.com/ontologies/sioc#" + "ID");
4

2 に答える 2

2

文字列ベースのアプローチを使用することもできますが、次のような方法を強くお勧めします。

String SIOC = "http://sioc.com/ontologies/sioc#";
model.setNsPrefix("sioc",SIOC );
Property  ID = model.createProperty( SIOC + "ID" );

入力とタイプミスの可能性を減らすためです。多くの一般的な語彙について、Jena には、一連の有用な定数を定義する定義済みの語彙クラスが既に用意されています。これらのほとんどは、com.hp.hpl.jena.vocabularyパッケージに含まれています。たとえば、のDCTermsような定数があるcreatorので、次のようなことができます

Resource r = ...;
r.addProperty( DCTerms.creator, ... );

もちろん、Jena が事前定義できるのは、これらのクラスのうち非常に多くのクラスだけです。その他の場合は、Jena のschemagenを使用してそのような種類のクラスを生成できます。これはコマンド ライン ツールであり (ただし、プログラムで呼び出すこともできると思います)、語彙を定義する RDF または OWL ファイルを渡すと、.javaすべてのプロパティ、クラス、および個体の定数定数を含むファイルが返されます。語彙。シンプルな Model ベースのリソース、または OntModel ベースのリソースも取得できます。非常に構成可能で、私は多くのプロジェクトで使用しています。

于 2013-08-09T13:18:52.690 に答える
0

Maven を使用している場合は、次のプラグインを使用できます。

    <plugins>
        <plugin>
            <groupId>org.apache.jena</groupId>
            <artifactId>jena-maven-tools</artifactId>
            <version>0.8</version>
            <configuration>
                <includes>
                    <include>src/main/resources/ontologies/*.owl</include>
                    <include>src/main/resources/ontologies/*.rdf</include>
                </includes>
                <fileOptions>
                    <source>
                        <input>default</input>
                        <package-name>com.example.ontology</package-name>
                    </source>
                    <source>
                        <input>src/main/resources/ontologies/*.owl</input>
                        <include>src/main/resources/ontologies/*.rdf</include>
                        <ontology>true</ontology>
                    </source>
                </fileOptions>
            </configuration>
            <executions>
                <execution>
                    <id>schemagen</id>
                    <goals>
                        <goal>translate</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>

maven compile を実行すると、OWL/RDF ファイル内のすべてのリソースとプロパティが、OWL/RDF ファイル名を持つそれぞれのクラスの定数に変換されていることがわかります。そのため、OWLFILENAME.RESOURCE や OWLFILENAME.PROPERTY などのコードでそれらを呼び出すことができます。

于 2015-03-24T17:33:15.287 に答える