クラス ChicagoPerson があります。これには、hasAge と hasZipCode の 2 つのプロパティがあり、それらの値は以下に記載されています。
:ChicagoPerson :hasAge "30"
:hasZipCode "60543"
これは意味がありません。このスニペットでは、ChicagoPerson は個人(またはリソース) であり、言及した 2 つのプロパティの値を持っています。
hasAge と hasZipCode は hasColumn プロパティのサブプロパティです。したがって、次のように言及しました。
:hasAge rdfs:subPropertyOf :hasColumn
:hasZipCode rdfs:subPropertyOf :hasColumn
これが正しい方法です。これは、RDFS 推論が利用可能であれば、次のデータを取得できることを意味します。
:ChicagoPerson :hasAge "30" ,
:hasZipCode "60543" ,
:hasColumn "30", "60543" .
しかし、私の RDF グラフには、プロパティ hasColumn を含むクラスがありません。つまり、次のようなものはありません。
:Table :hasColumn <literal>
繰り返しますが、クラスと個体の概念を混同していると思います。クラスは個体の集まりです。RDFS 推論が利用できる場合、上で書いたサブプロパティの公理により、その RDFS 推論者は、私が言及した追加のトリプルを推論できます。追加のトリプルは次のとおりです。
:ChicagoPerson :hasColumn "30", "60543" .
表を主題とするものではありません。
RDF では、クラスなしでプロパティ (hasColumn など) を定義することはできますか?
RDF には、プロパティを定義するという概念は実際にはありません。RDF には、主語、述語、目的語という形式のトリプルしかありません。RDFS や OWL などのスキーマ言語は、通常、特定の述語に意味を割り当てることによって、特定の種類のトリプルに特別な意味を割り当てます。例えば、RDFS と OWL では、述語rdfs:subPropertyOfは特別な意味を持ちます。
データセットで実際に RDFS 推論を実行していますか?