Following are thoughts from Kevin Ford and me on the Sanderson paper cited below, “Differences between BibFrame and other Linked Open Data Approaches.”
We appreciate these issues being raised and the constructive criticism of the BIBFRAME approaches discussed. We offer the following observations.
String Authorities rather than Identifiers
BIBFRAME has explicitly stated that bf:Authority is not designed to compete with existing library authority efforts or replicate traditional library authorities. Furthermore, nowhere is it ever asserted that "bf:Person != foaf:Person" and nowhere is it said that "bf:Authority == madsrdf:Authority". Nothing, either way, is actually declared presently. Rather, bf:Authority is an abstraction allowing the implementer to reference a traditional authority. It is these traditional authorities that include the strings in question. The explicit inclusion of the string within a bf:Authority (via property bf:label or bf:authorizedAccessPoint) is not mandated; it may be optionally included when a link to a traditional authority cannot be found, or for the benefit of a recipient who may be unable to follow the link.
These carefully constructed strings allow us to create matches to strings in existing MARC records (if we broke them up, we'd have a problem re-creating them should we need to), they represent current cataloging practice (for better or worse), and they provide us with ready-made labels (and ones that the community expects to see in bibliographic data).
Reliance on fabricated strings will diminish in time, some day they may go away and become a relic of 20th century cataloging but it is simply too early for that; for now they are imperative. It will not happen until our reliance on identifiers outweighs our need for - and stakeholders' expectations of - those strings.
The role of a BIBFRAME Agent with respect to a Work/Instance is expressed either by (a) a URI; or (b) a string, when there is no known URI for that role.
The paper finds fault:
· In method (a), with the perceived restriction of role URIs to LC relators.
· With method (b), in general.
The first is simply a misperception. There is no such restriction; the URI can come from any appropriate role vocabulary.
As for “method (b)” it is simply impractical to insist that every role have a URI, particularly since during early BIBFRAME implementation much of the BIBFRAME data will be converted from MARC records. If a MARC record represents a person’s role as “ed.”, whoever does the conversion might not be able to find an appropriate URI for that role. The string should not simply be discarded; it should be retained if for no other reason than that a human end-user might be able to make sense of it.
That said, it is important to note that the primary and expected way to relate Works/Instances to Agents in BIBFRAME is method (a) above. Rob’s paper identifies method (a) as the "second way" (and presumably method “b” is interpreted to be the primary method). This may be due to BIBFRAME not effectively communicating that method (a) is primary, and that method (b) should be used only in extraordinary circumstances.
We do believe that identifiers in BIBFRAME could benefit from more thinking. As such, we feel that Rob’s section on identifiers may be trying to grapple with several different issues, all of which are about identifiers but each of which should be treated separately. These issues are likely legitimate, but we need to sort them out.
We do want to note, bf:identifierValue expects a string literal, and Rob’s examples appear to treat it as a resource identifier. This is a fairly fundamental misinterpretation that needs to be cleared up before we can begin to sort out the other issues.
This section points out that there are perhaps many more properties in BIBFRAME than necessary, and many could be eliminated. This is a legitimate concern, and BIBFRAME is and will be undergoing vocabulary refinement, informed by the current BIBFRAME testbed activity.
Record vs. Graph
Based on the examples, we believe this section draws almost entirely on a mistake in the Bibframe vocabulary. All of the properties mentioned in this section are currently associated directly with Work and Instance resources. They should instead have a domain of bf:DescriptionAdminInfo We regret this mistake.
The issues raised here do deserve closer inspection.
Rob speculates that the reason why bf:Event and bf:Provider are not of class bf:Authority is because there are not library authority lists for events and providers. That isn’t the reason; one has nothing to do with the other.
Anyway, bf:Event and bf:Provider are currently undergoing re-thinking.