Print

Print


On 11/4/14 4:46 AM, [log in to unmask] wrote:
> On Nov 3, 2014, at 8:25 PM, Karen Coyle <[log in to unmask]> wrote:
>> This is true, but it leaves us with the dilemma of how do we add new types. In the MARC world, this has been a real problem. When you cannot use a string, the new type has to be defined in the vocabulary before it can be used "in the wild."
>> The process of adding to the vocabulary has been long and arduous. When laser discs came on the scene, a proposal was entered to add a type for laser disc to MARC. By the time the proposal was passed and the code was included in library systems, laser discs had gone the way of Betamax. We need a real world solution that responds to rapid change. If types are URI's then a library can mint its own URI (which will not be understood by anyone else, and may not be correctly used by its own system). If types are subclasses, then we have the problem that BF is "owned" by LC, and to add new subclasses we need an extension method that doesn't break our ability to share.
> It is not true that adding a new type is difficult: in the Linked Data world, that is no more difficult than defining it using the same language as was used for the original types and then publishing the definition at an HTTP URL, as has been discussed on this list previously. In fact, it is vastly easier than the process of updating a standard under the control of some semi-central organization.
>
> It is not true that an URI minted by Library X will not be understood by any other institution, if Library X takes the straightforward steps of using an HTTP URI, using a standard language to create the definition, and publishing its definition at the URI. This is just Linked Data. If, later,  I am examining some set of triples that uses that unfamiliar URI, my software can dereference it, examine the (machine-processable) definition, and act thereon.
>
> It is not true that a special extension method is needed to create subclasses that do not prevent information sharing. Simple triples on webpages will do because anyone can create new classes in that way, and our freedom to share data is not going to be impinged by someone who publishes a badly-made new class. The effect of a new type will be limited to its area of use. I can publish all the bad types I like, but until you use them in your data or someone whose data you want to use uses them, they do not affect you. If you do decide to use my new types, LC has absolutely nothing to say about it.

It's not technically difficult. It is "habitually" difficult because of 
the way the library world has handled standards in the past. And it sure 
looks to me like we're headed along that same path with BIBFRAME and 
with RDA. It has a lot to do with how we share data, and our use of 
vendor systems. I would love for that to all change, for it to be both 
easy and acceptable for libraries to extend metadata as needed. I also 
would like libraries to be able to modify their local systems for local 
needs rather than there being one and only one way to do things in 
library-land. I'm not terribly hopeful, however.


>
>> All of this is probably also true for string data to some extent, but it seems to require more coordination when types are URIs or classes.
> Machine-opaque string data is a much greater threat to our ability to share information.
>
>> Note the suggestion in the document that: " Aternatively, bf:title could be retained and bf:workTitle and bf:instanceTitle eliminated. bf:title would be distinguishable as a Work title (formerly, uniform title) or Instance title (formerly title proper) because it would be a property of a bf:Work or bf:Instance respectively."
>> Some of the "sub" title properties, e.g. bf:workTitle, either have a domain of bf:Work or bf:Instance. bf:title has the domain of Title. The statement above assumes that you would know whether you have a work title or an instance title because the bf:title would take on the "class" from the bf:Work or bf:Instance that it describes (predicates?). This is that complicated part of RDF where the domain of the property defines the class of the subject, not vice versa (as in XML, for example). A property is not a property of a class; a property's domain determines the "classness" of the subject.
> I'm not sure that this is a strong example. It seems to me mostly to point to the fact that Bibframe lacks a subtype of Resource that is a supertype for Work and Instance. That (missing) type might be the domain of bf:title and probably several other properties.

You assume that it is desired that all instances of bf:Title be of 
domain "supertype." The other possibility is that certain titles are 
important indicators of the class of the subject. In other words, that 
the presence of bf:workTitle "assigns" the class bf:Work to the resource 
being described; and that bf:instanceTitle does the same for the 
bf:Instance. These are defining elements for those BF entities. Whenever 
you have a bf:workTitle you know that the resource being described is a 
bf:Work. Is that what is intended in BF? I'm not sure.

The other possibility, which to me comes out in the document, is an 
attempt to define, in an XML-ish way, restrictions on which titles 
describe Works and which describe Instances. Using closed-world 
thinking, it would be invalid to have a bf:Work type with a 
bf:instanceTitle. However, looking at it from an RDF point of view, the 
subject of a bf:instanceTitle is an instance (in RDF terms) of the class 
bf:Instance because the domain of bf:instanceTitle is bf:Instance. 
Because the classes bf:Work and bf:Instance are not disjoint, this is a 
technically consistent use of the RDF vocabulary:

ex:ResourceA
     bf:creator <http://id.loc.gov/authorities/names/n79021164> ;
     bf:workTitle <http://example.org/AdventuresOfTomSawyer> ;
     bf:language <http://id.loc.gov/vocabulary/iso639-2/eng> ;
     bf:instanceTitle <http://example.org/TheAdventuresOfTomSawyer> ;
     bf:providerDate "1996" .

In this example, ResourceA is both a bf:Work and a bf:Instance. However, 
I am pretty sure that is not a *desired* use of the BF vocabulary.

If instead, one has:

ex:ResourceA
     bf:creator <http://id.loc.gov/authorities/names/n79021164> ;
      bf:title  [
         a bf:WorkTitle ;
         rdf:value "Adventures of Tom Sawyer" .
     ] ;
     bf:language <http://id.loc.gov/vocabulary/iso639-2/eng> ;
     bf:title  [
         a bf:InstanceTitle ;
         rdf:value "The adventures of Tom Sawyer" .
     ] ;
     bf:providerDate "1996" .


Then, AFAIK, neither of the titles invokes a class inference on the 
subject, ResourceA. Inferencing on the class of ResourceA now comes from 
other properties, such as bf:creator, bf:language, and bf:providerDate. 
That may be a good thing, but is that what BIBFRAMERs intend? Is that 
understood as a consequence? Are there certain properties that are meant 
to define Work and Instance? (Personally, I like the idea that a 
workTitle lets me know that I have a subject that is a work -- I can 
think of use cases for that.)
>
>> I point this out because the suggestion that you can remove the main class from the name does not mean that the named property is now "classless". In the case of bf:Identifier as a class, that is fine because bf:Identifier isn't associated specifically with particular BF entities (which are defined as classes, but that's another discussion). But in the case of titles, some different types of titles are specifically designated as having either a bf:Work domain or a bf:Instance domain. If they are are defined as subclasses of bf:Title, how can bf:KeyTitle be a sub-class of bf:Title but also be of class bf:Work? If there is a way to do that, is it something we want to do?
> I think I must be missing something here: why would a hypothetical bf:KeyTitle ever be a subclass of bf:Work?

As per above, BIBFRAME appears to intend bf:workTitle to have a domain 
of bf:Work. If all titles become bf:title with a class of title type, 
then the class-defining titles no longer exist. If BIBFRAME is not 
assuming that the work title and the instance title are key "definers" 
of the entity, then that is fine. However, using classes rather than 
domains on properties has consequences in RDF. I'm concerned that we 
need to think those through. I'm also concerned that there is some 
closed-world thinking going on, and therefore the impact of the 
difference between properties with domains and the use of classes is not 
apparent.

kc

>
>
> ---
> A. Soroka
> The University of Virginia Library

-- 
Karen Coyle
[log in to unmask] http://kcoyle.net
m: +1-510-435-8234
skype: kcoylenet/+1-510-984-3600