私はRDFスキーマの作成の初心者であり、URIの概念をうまく活用して、単純に関心のあるRDFドキュメントを作成するにはどうすればよいか疑問に思っていました。私は次のステートメントのRDFを作成しようとしています-
Jeffy is a Graduate student
Jeffy likes yoga
Jeffy is seeking Tennis.
これらの3つの文に基づいてRDFをどのように書くべきですか。これに関するどんな光も本当に役に立ちます。
RDF/XML を使用しないことをお勧めできますか? 手で書くことを学ぶのは非常に複雑な構文形式です。Turtle構文のようなものを使用して RDF を記述したほうがよいでしょう。その場合、例は次のようになります。
@prefix my: <http://example.org/mynamespace/> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
my:jeffy rdf:type my:GraduateStudent ;
my:likes my:yoga ;
my:isSeeking my:Tennis .
何らかの理由で RDF/XML が必要な場合は、RDF パーサー ツールキット (OpenRDF Sesame、Apache Jena、dotNetRDF など) を使用して、ある構文から別の構文に変換することを検討してください。
次の理由により、RDF の代わりに OWL を使用できます。
1) RDF のスーパーセットである
2) より強力です
例えば:
<?xml version="1.0"?>
<!DOCTYPE rdf:RDF [
<!ENTITY owl "http://www.w3.org/2002/07/owl#" >
<!ENTITY xsd "http://www.w3.org/2001/XMLSchema#" >
<!ENTITY rdfs "http://www.w3.org/2000/01/rdf-schema#" >
<!ENTITY rdf "http://www.w3.org/1999/02/22-rdf-syntax-ns#" >
<!ENTITY base "http://www.example.com/example/" >
]>
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
xmlns:owl="http://www.w3.org/2002/07/owl#"
xmlns:base="http://www.example.com/example/"
>
<owl:Class rdf:about="#GraduateStudent" />
<owl:DatatypeProperty rdf:about="&base;Likes">
<rdfs:domain rdf:resource="&base;GraduateStudent" />
<rdfs:range rdf:resource="string" />
</owl:DatatypeProperty>
<owl:DatatypeProperty rdf:about="&base;IsSeeking">
<rdfs:domain rdf:resource="&base;GraduateStudent" />
<rdfs:range rdf:resource="string" />
</owl:DatatypeProperty>
<base:GraduateStudent rdf:about="&base;GraduateStudent/001">
<base:Likes>yoga</base:Likes>
<base:IsSeeking>Tennis</base:IsSeeking>
</base:GraduateStudent>
</rdf:RDF>
モデルとデータが同じファイルにあることがわかります。
3 つの重要な機能:
1) クラス: クラスを宣言する
2) DatatypeProperty: リテラル プロパティを宣言する
3) ObjectProperty (ここにはありません): セマンティック グラフの別のノードへのリンクを宣言します。
あなたの場合、「スポーツ」クラスを作成し、DatatypeProperty を ObjectProperty で変更し、範囲を更新して、2 つのスポーツのインスタンスを作成できます。
FOAF:
「Jeffy」にはfoaf:Personを使用できます(名前はfoaf:name resp。foaf :givenName resp。foaf :nickで指定できます)。
ヨガに興味がある場合は、 foaf:interestを使用できます(ただし、「yoga」を表すfoaf:Documentを使用する必要があります。foaf:isPrimaryTopicOfを参照してください)。または、 foaf:topic_interestを使用することもできます(範囲はowl:Thing
)。
大学院生であることは(多分!)foaf:Groupでモデル化することができます。
ウィキペディアの例を参照してください。これはTurtleのシリアル化に含まれています。