IRI は単に不透明な識別子です。Linked Data とセマンティック Web について話している間rdfs:member
、プロパティに割り当てられた意味のセマンティクスは、セマンティック Web の外部で定義されます (うまくいけば、適切なドキュメントによって定義されます。もちろん、ドキュメントは、 としてプロパティに関連付けられる必要があります) rdfs:comment
。のように)、および使用法によって。の場合rdfs:member
、説明は RDFS の推奨事項に基づいています。
5.1.6 rdfs:メンバー
rdfs:member は、すべてのコンテナー メンバーシップ プロパティのスーパー プロパティである rdf:Property のインスタンスです。つまり、各コンテナー メンバーシップ プロパティは、プロパティ rdfs:member に対して rdfs:subPropertyOf 関係を持っています。
rdfs:member の rdfs:domain は rdfs:Resource です。rdfs:member の rdfs:range は rdfs:Resource です。
コンテナー メンバーシップのプロパティは、同じドキュメントで説明されています。
rdfs:ContainerMembershipProperty
rdfs:ContainerMembershipProperty クラスはインスタンスとしてプロパティー rdf:_1、rdf:_2、rdf:_3 ... を持ち、リソースがコンテナーのメンバーであることを示すために使用されます。rdfs:ContainerMembershipProperty は rdf:Property のサブクラスです。rdfs:ContainerMembershipProperty の各インスタンスは、rdfs:member プロパティの rdfs:subPropertyOf です。
コンテナ C が与えられた場合、次の形式のトリプル:
C rdf:_nnn O
ここで、nnn は 0 より大きい整数の 10 進数表現で、先行ゼロはなく、O がコンテナー C のメンバーであることを示します。
コンテナー メンバーシップ プロパティは、コンテナー以外のリソースに適用できます。
最後の行を読んでちょっと驚きましたが、メンバーシップのプロパティ とrdfs:member
はコンテナー以外のリソースにも適用できるため、独自のデータ構造でそれらを使用しても問題ないようです。
それでも、独自のより具体的なプロパティを定義し、それが のサブプロパティであることを単純に主張する方が適切な場合がありますrdfs:member
。たとえばpolitics:memberStateOf
、国民国家を多国籍連合に関連付けるプロパティが であると指定する場合がありますrdfs:subPropertyOf rdfs:member
。
語彙のドキュメントを参照することは、他の状況でも良い考えです。たとえば、RDFlib ページの例には、FOAF の使用が含まれています。
from rdflib import RDF
...
# Create a namespace object for the Friend of a friend namespace.
FOAF = Namespace("http://xmlns.com/foaf/0.1/")
...
# Add triples using store's add method.
store.add((donna, RDF.type, FOAF["Person"]))
store.add((donna, FOAF["nick"], Literal("donna", lang="foo")))
ここで FOAF が使用されている方法 (これはあなたの質問とは少し異なります。おそらく現在はそのためのライブラリがあります) が渡される文字列は、どの URI が存在する必要があるかを認識することに依存し、その情報はFOAFで利用可能です。仕様。名前空間にはいくつかの記号RDF
定数が定義されているように見えますがRDF.type
(例:RDF.type
RDF['type']
名前空間の完全修飾 URI は、属性または Namespace インスタンスの辞書アクセスによって構築できます。
>>> owl.seeAlso
rdflib.term.URIRef(u'http://www.w3.org/2002/07/owl#seeAlso')
>>> owl['seeAlso']
rdflib.term.URIRef(u'http://www.w3.org/2002/07/owl#seeAlso')