0

私のオントロジーでは、SKOSの概念を使用しています。ドキュメントにはラベルがあります (prefLabelなどmentioned): http://www.w3.org/TR/skos-reference/#labels。言語を定義して、そのようなラベルを Jena のリソースに設定するにはどうすればよいですか? コンセプトを追加する私の例は次のようになります。

 Resource skosConcept = infModel.createResource("http://www.w3.org/2004/02/skos/core#Concept");
 Resource instance =  infModel.createResource("http://eg.com#Instance");
 infModel.add(instance, RDF.type, skosConcept);

しかし、たとえば、どのように定義できますskos:prefLabelか? インスタンス リソースへのプロパティを使用しますか? そして、言語を設定する方法は?クラスOntResourceには、 language でラベルを追加するためのプロパティがあるようです。しかし、私はInfModelを使用しているため、リソースを として取得できませんOntResource

4

1 に答える 1

1

createResource でリソースを作成したのと同じように、createPropertyでプロパティを作成してから、既に使用したのと同じ方法で目的のトリプルをモデルに追加できます。言語型のリテラルはcreateLiteralで作成できます。

import com.hp.hpl.jena.rdf.model.InfModel;
import com.hp.hpl.jena.rdf.model.Literal;
import com.hp.hpl.jena.rdf.model.Model;
import com.hp.hpl.jena.rdf.model.ModelFactory;
import com.hp.hpl.jena.rdf.model.Property;
import com.hp.hpl.jena.rdf.model.Resource;
import com.hp.hpl.jena.reasoner.Reasoner;
import com.hp.hpl.jena.reasoner.ReasonerRegistry;
import com.hp.hpl.jena.vocabulary.RDF;

public class SKOS {
    public static void main(String[] args) {
        Model model = ModelFactory.createDefaultModel();
        Reasoner reasoner = ReasonerRegistry.getOWLReasoner();
        InfModel infModel = ModelFactory.createInfModel(reasoner, model);

        String skos = "http://www.w3.org/2004/02/skos/core#";

        Resource skosConcept = infModel.createResource( skos+"Concept" );
        Resource instance =  infModel.createResource("http://eg.com#Instance");

        infModel.add(instance, RDF.type, skosConcept);

        Property prefLabel = infModel.createProperty( skos+"prefLabel" );
        Literal label = infModel.createLiteral( "a preferred label in English", "en" );

        // either of these lines is fine
        instance.addLiteral( prefLabel, label );
        infModel.add( instance, prefLabel, label );

        model.write( System.out, "N3" );
    }
}

このコードは、プロパティが次のように設定されていることを確認できるように、モデルも示しています。

<http://eg.com#Instance>
  a       <http://www.w3.org/2004/02/skos/core#Concept> ;
  <http://www.w3.org/2004/02/skos/core#prefLabel>
          "a preferred label in English"@en .
于 2013-03-29T02:27:24.850 に答える