2

Protege 4.2.0 で生成されたオントロジー ファイルがあります。次のように定義された DatatypeProperty が含まれます。

<owl:DatatypeProperty rdf:about="http://example.com/NLPSchema.owl#race">
    <rdf:type rdf:resource="&owl;FunctionalProperty"/>
    <rdfs:domain rdf:resource="http://example.com/NLPSchema.owl#Person"/>
    <rdfs:subPropertyOf rdf:resource="http://example.com/NLPSchema.owl#semanticProperty"/>
    <rdfs:range>
        <rdfs:Datatype>
            <owl:oneOf>
                <rdf:Description>
                    <rdf:type rdf:resource="&rdf;List"/>
                    <rdf:first>african_american</rdf:first>
                    <rdf:rest>
                        <rdf:Description>
                            <rdf:type rdf:resource="&rdf;List"/>
                            <rdf:first>asian</rdf:first>
                            <rdf:rest>
                                <rdf:Description>
                                    <rdf:type rdf:resource="&rdf;List"/>
                                    <rdf:first>caucasian</rdf:first>
                                    <rdf:rest>
                                        <rdf:Description>
                                            <rdf:type rdf:resource="&rdf;List"/>
                                            <rdf:first>hispanic</rdf:first>
                                            <rdf:rest>
                                                <rdf:Description>
                                                    <rdf:type rdf:resource="&rdf;List"/>
                                                    <rdf:first>other</rdf:first>
                                                    <rdf:rest rdf:resource="&rdf;nil"/>
                                                </rdf:Description>
                                            </rdf:rest>
                                        </rdf:Description>
                                    </rdf:rest>
                                </rdf:Description>
                            </rdf:rest>
                        </rdf:Description>
                    </rdf:rest>
                </rdf:Description>
            </owl:oneOf>
        </rdfs:Datatype>
    </rdfs:range>
</owl:DatatypeProperty>

Protege では、次のようになります。

Protégé スクリーン キャプチャ

現在、Jena を使用してオントロジー ファイルを解析しています。「range」タグに対応する OntClass オブジェクトを取得できます。

DatatypeProperty p = ontModel.getDatatypeProperty("http://example.com/NLPSchema.owl#race");
OntClass range = p.getRange().asClass();    

次に、プロテジのように、列挙型配列 {"african_american" , "asian" , "caucasian" , "hispanic" , "other"} を取得するにはどうすればよいですか?

DataRange に「listOneOf」というメソッドがあることは知っていますが、DataRange オブジェクトの作成方法がわかりません。少なくとも「p.isDataRange()」は false を返します。

4

2 に答える 2

1

を削除します

<rdf:type rdf:resource="&rdf;List"/>

これにより、Turtleのコンパクトな表記がブロックされます。

@prefix rdfs:    <http://www.w3.org/2000/01/rdf-schema#> .
@prefix owl:     <http://www.w3.org/2002/07/owl#> .
@prefix rdf:     <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .

<http://example.com/NLPSchema.owl#race>
      a       owl:FunctionalProperty , owl:DatatypeProperty ;
      rdfs:domain <http://example.com/NLPSchema.owl#Person> ;
      rdfs:range
              [ a       rdfs:Datatype ;
                owl:oneOf ("african_american" "asian" "caucasian" "hispanic" "other")
              ] ;
      rdfs:subPropertyOf <http://example.com/NLPSchema.owl#semanticProperty> .
于 2013-02-22T12:25:16.483 に答える