RDFスキーマ(Resource Description Framework Schema、略称はRDFS、RDF(S)、RDF-S、RDF/Sなど)は、 RDF拡張可能な知識表現データモデルを使用して特定のプロパティを持つクラスのセットであり、オントロジーを記述するための基本要素を提供します。RDFリソースを構造化することを目的とした、さまざまな形式のRDF語彙を使用します。RDFとRDFSはトリプルストアに保存でき、 SPARQLなどのクエリ言語を使用してそこから知識を抽出できます。
最初のバージョン[ 1 ] [ 4 ]は、1998年4月にワールドワイドウェブコンソーシアム(W3C)によって公開され、最終的なW3C勧告は2014年2月にリリースされました[ 3 ]。RDFSの多くのコンポーネントは、より表現力豊かなWebオントロジー言語(OWL)に含まれています。
RDFS の構成要素は、 RDF の語彙に基づいて構築された RDFS クラス、関連プロパティ、およびユーティリティプロパティです。[ 5 ] [ 6 ] [ 7 ]
rdfs:Resourcerdfs:Classrdfs:Class の典型的な例は、foaf:PersonFriend of a Friend ( FOAF ) 語彙にあります。[ 8 ]のインスタンスは、次の自然言語文の形式表現のように、プロパティを使用してfoaf:Personクラスにリンクされたリソースです。「John is a Person」。foaf:Personrdf:type
例:John rdf:type foaf:Person
の定義はrdfs:Class再帰的です。rdfs:Classはクラスのクラスであり、したがって はそれ自身のインスタンスです。
rdfs:クラス rdf:タイプ rdfs:クラス
RDFおよびRDFS仕様で記述されているその他のクラスは以下のとおりです。
rdfs:Literalrdfs:Datatyperdfs:Datatypeは のインスタンスであり、 のサブクラスでもありますrdfs:Class。 の各インスタンスrdfs:Datatypeは のサブクラスですrdfs:Literal。rdf:XMLLiteralrdf:XMLLiteralはのインスタンスrdfs:Datatype(したがってのサブクラスrdfs:Literal)です。rdf:Propertyプロパティはクラスのインスタンスでありrdf:Property、主体リソースと客体リソース間の関係を記述します。このように使用される場合、プロパティは述語となります( RDF: 具体化も参照)。
rdfs:domainrdf:Propertyのクラスを宣言します。rdfs:rangerdf:Propertyのクラスまたはデータ型を宣言します。例えば、次の宣言は、プロパティがex:employer型である主体をfoaf:Person型であるオブジェクトに関連付けることを表すために使用されますfoaf:Organization。
例:雇用主 rdfs:ドメイン foaf:人物 例:雇用主 rdfs:範囲 foaf:組織
前述の2つの宣言を踏まえると、トリプルから次のようになります。
例:ジョン、例:雇用主、例:X社
ex:Johnは でありfoaf:Person、ex:CompanyXは であると推測できる(または が続く)foaf:Organization。
rdf:typerdfs:subClassOf例えば、次の文は「すべての人はエージェントである」と宣言している。
foaf:Person rdfs:subClassOf foaf:Agent
クラスの階層構造は、クラスからそのサブクラスへのプロパティのドメインとレンジ(定義については次のセクションを参照)の継承をサポートします。
rdfs:subPropertyOfrdf:Propertyあるプロパティによって関連付けられているすべてのリソースが、別のプロパティによっても関連付けられていることを示すために使用されます。rdfs:labelrdf:Propertyリソース名の人間が読みやすいバージョンを提供するのに使用できるものがある。rdfs:commentrdf:Propertyリソースの人間が読みやすい説明を提供するものが挙げられる。rdfs:seeAlsordf:Property対象となるリソースに関する追加情報を提供する可能性のあるリソースを示すために使用されます。rdfs:isDefinedByrdf:Propertyです。このプロパティは、リソースが記述されているRDF語彙を示すために使用できます。含意規則は、グラフ内のトリプルが論理的に矛盾しているかどうかを定義します。RDFS含意[ 11 ]はそれほど制約的ではなく、つまり、グラフ内で有効なステートメントの種類を制限するルール(例えばOWLと比較して)は多くありません。一方で、あまり表現力が高くないため、グラフで機械が解釈可能な方法で表現できる意味はかなり限られています。
以下に、RDFSの含意機能とその限界を示す簡単な例として、以下の明示的なトリプルを含むグラフから始めます。
foo:SomeGiraffe rdf:type bar:Animal。 foo:SomeElephant rdf:type bar:Elephant。 foo:SomeZoo rdf:type bar:Zoo。 bar:livesInZoo rdfs:domain bar:Animal。 bar:livesInZoo rdfs:range bar:Zoo。 foo:SomeElephant bar:livesInZoo foo:SomeZoo。
foo:SomeElephantRDFS の含意による推論を有効にしないと、私たちが持っているデータでは、がであるかどうかはわかりませんbar:Animal。RDFS ベースの推論を実行すると、次の追加のトリプルが得られます。
foo:SomeElephant rdf:type bar:Animal。
このrdfs:domain記述は、述語がであるトリプルの主語はすべてbar:livesInZoo型であると規定しています。RDFSの含意では、ととbar:Animalの関係は分かりません。推論により、がと両方であることが分かったので、これらのクラスは交差しますが、単に交差しているのか、等しいのか、サブクラスの関係があるのかを推論する情報はありません。bar:Animalbar:Elephantfoo:SomeElephantbar:Animalbar:Elephant
RDFS 1.1 では、ドメインとレンジのステートメントは形式的な意味を持たず、その解釈は実装者に委ねられています。一方、1.2 作業草案では、これらは個体の型を推論するための含意規則として使用されます。ただし、どちらのバージョンにおいても、レンジの期待される機能は「プロパティの値は 1 つ以上のクラスのインスタンスである」こと、ドメインの期待される機能は「特定のプロパティを持つリソースはすべて 1 つ以上のクラスのインスタンスである」ことが明確に述べられています。
上記の例では、RDFS の含意の限界と機能の一部を示しましたが、論理的矛盾(平易な言葉で言えば「検証エラー」)の例は示していません。論理的矛盾とは、トリプルが行うステートメントが矛盾しており、相反する状態を表現しようとしていることを意味します。RDFS におけるこの例としては、オブジェクトのデータ型が矛盾している場合が挙げられます(たとえば、リソースを型として宣言しxsd:integer、推論が有効になっている場合にも型として宣言する場合などxsd:boolean)。
RDFSで表現されるRDF語彙には以下が含まれます。[ 10 ]
madsrdf:prominentFamilyMember。[ 16 ]