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>