RDF使用Schema来定义其类型系统,在定义类型时,RDF引入了部分面向对象的思想。由于RDF的图中主要包含以下几个部分,主语,谓语,宾语,文本。因此RDF Schema要做的主要就是为这不同的部分提供对应的一个类型。RDF Schema本身也是一个RDF文件。
a) 继承关系与实例关系
rdfs:subClassOf用于表示继承关系。三元组A rdfs:subClassOf B表示A是B的子类,这与Java当中的class A extends B等价。
rdfs:type用于表示实例关系。三元组A rdfs:type B表示A是B的一个实例,这与Java当中的A = new B()等价。
b) 类标记:
标记 | 说明 | 继承关系(rdfs:subClassOf) | 实例关系(rdfs:type) |
rdfs:Resource | 所有出现在RDF图中的对象都属于资源 |
| rdfs:Class |
rdfs:Class | 主语和宾语。用于指明主语或宾语所属的类型 | rdfs:Resource | rdfs:Class |
rdfs:Literal | 文本 | rdfs:Resource | rdfs:Class |
rdfs:Datatype | 用于有类型文本,指定数据类型 | rdfs:Class | rdfs:Class |
rdf:XMLLiteral | XML文本 | rdfs:Literal | rdfs:Datatype |
rdf:Property | 谓语 | rdfs:Resource | rdfs:Class |
rdfs:Container | 容器的基类 | rdfs: Resource | rdfs:Class |
rdf:Bag |
| rdfs:Container | rdfs:Class |
rdf:Seq |
| rdfs:Container | rdfs:Class |
rdf:Alt |
| rdfs:Container | rdfs:Class |
rdf:List | 集合 | rdfs: Resource | rdfs:Class |
rdf:nil | 空列表 |
| rdf:List |
c) 类定义:
<rdf:Description rdf:about="A">
<rdf:type rdf:resource="http://www.w3.org/2000/01/rdf-schema#Class">
<rdfs:subClassOf rdf:resource="http://www.w3.org/2000/01/rdf-schema#Resource"/>
</rdf:Description>
等价于
<rdfs:Class rdf:about="A">
<rdfs:subClassOf rdf:resource="http://www.w3.org/2000/01/rdf-schema#Resource"/>
</rdfs:Class>
d) 范围与域:
rdfs:range用于指定宾语的范围。三元组P rdfs:range Q;A P B,在第一个三元组当中,我们规定了如果一个三元组使用了属性P,那么三元组当中的宾语必须是Q的实例。第二个三元组单中,由于使用了P,所以可以得出B必定是Q的实例。
rdfs:domain用于指定主语的范围。三元组P rdfs:range Q;A P B,在第一个三元组当中,我们规定了如果一个三元组使用了属性P,那么三元组当中的主语必须是Q的实例。第二个三元组单中,由于使用了P,所以可以得出A必定是Q的实例。
e) 属性标记,所有的标记都是rdfs:Proerpty的实例
标记 | 说明 | 域,主语(rdfs:domain) | 范围,宾语(rdfs:range) |
rdfs:range | 对宾语进行约束 | rdfs:Class | rdfs:Property |
rdfs:domain | 对主语进行约束 | rdfs:Class | rdfs:Property |
rdf:type | 用于定义实例关系 | rdfs:Resource | rdfs:Class |
rdfs:subClassOf | 用于定义继承关系 | rdfs:Class | rdfs:Class |
rdfs:subPropertyOf | 用于定义属性之间的继承关系。子属性的含义是指如果A是B的子属性,那么如果主语和宾语符合A关系,那么他们也符合B关系。 | rdfs:Property | rdfs:Property |
rdfs:label | 提供用户友好的标签 | rdfs:Resource | rdfs:Literal |
rdfs:comment | 对资源进行描述 | rdfs:Resource | rdfs:Literal |
rdfs:member | 用于表示集合与元素之间的关系 | rdfs:Resource | rdfs:Resource |
rdf:first | 用于指明某个资源是某个集合的首元素 | rdf:List | rdfs:Resource |
rdf:rest |
| rdf:List | rdf:List |
f) 属性定义
<rdf:Property rdf:about="B">
<rdfs:domain rdf:resource="http://www.w3.org/ 1999/02/22 -rdf-syntax-ns#List"/>
<rdfs:range rdf:resource="http://www.w3.org/ 1999/02/22 -rdf-syntax-ns#List"/>
</rdf:Property>