RDFS提供了RDF
模型中使用的一个基本类型系统。这个类型系统有些类似于面向对象的编程语言。从描述逻辑(Description
Logic,DL)的观点来看,RDFS 相当于TBox(Terminology Box),而RDF 相当于ABox (
Assertion Box)。
简单的说,RDF描述的是资源(Resource)和资源之间的关系,而没有定义资源所属的类(Class)和类之间的层次、继承的关系。而RDF定义了这方面的约束。可以用面向对象来类比以下,RDF定义的是object一层的概念,而RDFS定义的是Class一层的概念。
举个例子:Discrete
Mathematics is taught by Concrete Mathematics.
Room MZH5760 is taught by David Billington.
Discrete Mathematics is taught by David Billington
从意思上来讲上面只有最后一句是正确的,而前这两句话都是说不通的。课程不能被另外一门课程所讲授。房间也不能被
David Billington这个人来讲授。可是从RDF层面上来说,这是完全正确的。
所以就要对例子中的资源做出限制,即在三元组的object和value两个部分作出限制。部分只能是课程,value部分只能是教师。如果定义了“课程”和“教师”这两个类(Class),并加到了本例中分别对前后两类资源做出限制的话,那么就不会出现例子中的错误了。而RDFS恰恰做到了这一点。在RDFS中对object部分的限制叫做domain,对value部分的限制叫做range。.
但是问题并没有完,假如David
Billington是一个“教师”,那么第三句话就是正确的。如果David
Billington是个“教授”的话呢?显而易见,“教授”也是“教师”。所以RDFS能够描述“教授”是“教师”子类(subClass)。