用类表达类型相对于属性的3个优点

BIBFRAME2.0增加了很多类,增加的类中,很大一部分来自原来的属性。参见:BIBFRAME2.0类的变化(2016-5-2)
比如1.0有数十个表示标识符类型的属性(doi、isbn等),2.0只保留了一个通用的标识符属性identifier(改为一对互逆属性identifiedBy / identifies),其他具体标识符类型大都变成了类(bf:Identifier的子类),有些则取消了(比如isbn的子属性isbn10, isbn13)。

属性变为类,用三元组表达有很大不同。以ISBN为例:
BIBFRAME 1.0(bf:isbn 定义域为实例,值域为 bf:Identifier)
<http://bibframe.example.org/5226/i1> bf:isbn “0394856309”
BIBFRAME 2.0(bf:identifiedBy 不限定使用范围,期望值为 bf:Identifier)
<http://bibframe.example.org/5226#Instance> a bf:Instance;
bf:identifiedBy [ a bf:Isbn ;
rdf:value “0394856309” ]

对人类而言,1.0方式直观、易解,2.0方式比较绕。对于机器可能完全不一样。BIBFRAME 2.0 RDF Conventions (2016-4-21) 在“4)类与类型”部分对此有如下解释:
表达类型为类而非属性有若干优点
可重用。以标识符为例。对于BIBFRAME中表达的每个标识符,创建一个bf:Identifier资源。如果创建为一个关联数据资源(赋予URI),则可被BIBFRAME之外获取与重用。用类反映标识符来源意味着会在被用时获知。如果来源仅由BIBFRAME属性传达,则该来源只当在BIBFRAME环境中访问时才获知。
查询效率。表达类型为类通常让数据更易于被查询。例如“查找类型X的东西”,当X是类时比是属性时更简单。
柔性降级。假定在某外部命名空间(ex:)中创建新的附注类型。如果新类型用属性表达,形如:
ex:noteType “note content”
另一方面,如果类型用类表达,形如:
bf:note [ a ex:NoteType ;
rdfs:label “note content” ]
如果接收系统不认识命名空间ex,则在第一种情况中,陈述完全没有意义。在第二种情况中,系统至少能够认识它是一个附注(尽管不知道附注类型)。

【需要说明的是,对于编目员/元数据制作者,只需要知道有哪些类/属性可用于揭示资源,并不需要了解实际的编码方式。那些都交给计算机程序去解决】

关于“BIBFRAME 2.0 RDF Conventions”,另参见:rdf:value和rdfs:label的差别(2016-6-22)