1

JenaAPIを使用してモデルを作成しました。

public static void main(String[] args) {
    Model model = ModelFactory.createDefaultModel();

    Resource alice = ResourceFactory.createResource("http://example.org/alice");

    Resource bob = ResourceFactory.createResource("http://example.org/bob");

    Resource charlie = ResourceFactory.createResource("http://example.org/charlie");

    model.add (alice, RDF.type, FOAF.Person);
    model.add (alice, FOAF.name, "Alice");
    model.add (alice, FOAF.mbox, ResourceFactory.createResource("mailto:alice@example.org"));
    model.add (alice, FOAF.knows, bob);
    model.add (alice, FOAF.knows, charlie);

    model.write(System.out, "RDF/XML-ABBREV");
}

このプログラムからの出力は次のとおりです。

<rdf:RDF xmlns:rdf="w3.org/1999/02/22-rdf-syntax-ns#"
         xmlns:j.0="xmlns.com/foaf/0.1/">
    <j.0:Person rdf:about="example.org/alice">
        <j.0:knows rdf:resource="example.org/charlie"/>
        <j.0:knows rdf:resource="example.org/bob"/>
        <j.0:mbox rdf:resource="mailto:alice@example.org"/>
        <j.0:name>Alice</j.0:name>
    </j.0:Person>
</rdf:RDF>

次に、特定のリソースにリンクされているリソースのリストを取得するにはどうすればよいですか?

例:アリスはボブとチャーリーを知っています。アリス、ボブ、チャーリーはリソースです。リソースアリスは他の2つのリソースを知っています。[ボブ、チャーリー]という名前を取得する方法は?

4

1 に答える 1

3

JenaのJavaAPIドキュメントは、そのための方法があることを示しています。

NodeIterator listObjectsOfProperty(Resource s, Property p)

これはあなたの例でうまくいくはずです:

NodeIterator friends = model.listObjectsOfProperty(alice, FOAF.knows);

次に、繰り返してfriends、各友人(または知人)と何かをすることができます。

于 2013-03-21T23:45:27.633 に答える