RDF使用Schema来定义其类型系统,在定义类型时,RDF引入了部分面向对象的思想。由于RDF的图中主要包含以下几个部分,主语,谓语,宾语,文本。因此RDF Schema要做的主要就是为这不同的部分提供对应的一个类型。RDF Schema本身也是一个RDF文件。
<!--[if !supportLists]-->a) <!--[endif]-->继承关系与实例关系
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()等价。
<!--[if !supportLists]-->b) <!--[endif]-->类标记:
标记
|
说明
|
继承关系(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
|
<!--[if !supportLists]-->c) <!--[endif]-->类定义:
<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>
<!--[if !supportLists]-->d) <!--[endif]-->范围与域:
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的实例。
<!--[if !supportLists]-->e) <!--[endif]-->属性标记,所有的标记都是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
|
<!--[if !supportLists]-->f) <!--[endif]-->属性定义
<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>