Default UUID for URIs
Since about 2012 or so, my preferred practice for generating URIs in bibliographic and linked-data applications is to use a combination of a base URL followed by a random or pseudo-random universally unique identifier or UUID.
Colorado College Knowledge Graph
<http://catalog.coloradocollege.edu/6dc97f06-7080-11e6-ae7e-005056c00008> a schema:EducationalEvent ; rdfs:label "Academic Year 2016-2017"@en ; schema:endDate "2017-05-22T07:00:00" ; schema:startDate "2016-08-29T06:00:00" ; cc_info:graduation [ rdfs:label "Summer 2017"@en ; rdf:value "2017-07" ], [ rdfs:label "Fall 2016"@en ; rdf:value "2016-12" ], [ rdfs:label "Spring 2017"@en ; rdf:value "2017-05" ] .
Colorado Alliance BIBCAT Pilot - BML Iteration One
In the first build-measure-learn (BML) iteration of the Colorado Alliance of
Research Libraries BIBCAT project, BIBFRAME Instance URIs were generated using
a base URL of http://bibcat.coalliance.org/
followed by a UUID using the
default uuid.uuid1
Python method for generating a UUID from the hardware
address of the machine running the module and a random sequence number.
>>> import uuid >>> print(uuid.uuid1()) 942de50a-29f8-11e7-b1d6-005056c00008
About 160,000 MARC records, half from [Colorado College][https://www.coloradocollege.edu/] and half
from University of Colorado - Boulder, were converted to
BIBFRAME 2.0 entities with the Instance URI being generated and linked from a XML site index file
hosted at http://bibcat.coalliance.org/.
For the Instance URI, the permanent link back to the library's OPAC record was minted by
extracting the value for subfield a from a MARC 907 field and then creating a bib code substring
that was appended to a URL.
Here is an example of BIBFRAME 2.0 Instance with the UUID minted URI of http://bibcat.coalliance.org/5992e2c6-9724-11e6-a70b-005056c00008
<http://bibcat.coalliance.org/5992e2c6-9724-11e6-a70b-005056c00008> a bf:Instance ; bf:copyrightDate "[1955]" ; bf:dimensions "24 cm." ; bf:extent [ a bf:Extent ; rdf:value "198 p." ] ; bf:generationProcess [ a bf:GenerationProcess ; bf:generationDate "2016-10-21T00:21:46.625567" ; rdf:value "Generated by BIBCAT version 1.4.0 from KnowledgeLinks.io"@en ] ; bf:instanceOf [ a bf:Work ; bf:originDate "1955" ] ; bf:provisionActivity [ a bf:Publication ; relators:pbl "Random House" ] ; bf:tableOfContents [ a bf:TableOfContents ; rdf:value "The bear.--The old people.--A bear hunt.--Race at morning." ] ; bf:title [ a bf:InstanceTitle ; bf:mainTitle "Big woods." ] ; relators:aut [ a bf:Person ; schema:name "Faulkner, William," ] .
The BIBFRAME 2.0 Item http://tiger.coloradocollege.edu/record=b1000113 URI for this work was generated from the source MARC 21 record with the following triples:
<http://tiger.coloradocollege.edu/record=b1000113> a bf:Item ; bf:generationProcess [ a bf:GenerationProcess ; bf:generationDate "2016-10-21T00:21:46.683579" ; rdf:value "Generated by BIBCAT version 1.4.0 from KnowledgeLinks.io"@en ] ; bf:heldBy <https://www.coloradocollege.edu/library/> ; bf:itemOf <http://bibcat.coalliance.org/5992e2c6-9724-11e6-a70b-005056c00008> .
In Fedora Commons
The digital preservation project Fedora uses UUIDs extensively for URLs that are used to store datastreams and metadata. A possible use with MARC cataloged object in Fedora would be to provide a value for subfield u in a MARC 856 field.
Although the default URL minter in Fedora uses UUIDs, a Custom URL minter can be be created that generates URLs from a specific pattern.
Plains2Peaks Collective - DPLA Service Hub for Colorado and Wyoming
The second major project I'm currently working on is a regional DP.LA service hub
for Colorado and Wyoming that aggregates and transforms metadata from digital repositories from various
public and academic libraries, library consortium, and museums using
RDF Mapping Language. BIBCAT uses various RML maps between different types of metadata
formats and vocabularies to BIBFRAME 2.0 entities with the BIBFRAME Instance URI being generated using an UUID
with a base url of https://plains2peaks.org/
and the BIBFRAME Item URI is the direct link to the object in
the institution's digital repository. From a populated triplestore, a ResourceSync
feed is generated with links to published BIBFRAME Instance URLs in DP.LA's MAPv4
JSON-LD.
For example, here is the BIBFRAME Item RDF generated from an object from the Denver Public Library ContentDM repository using RDF Maps:
<http://cdm16079.contentdm.oclc.org:80/cdm/ref/collection/p15330coll22/id/2> a bf:Item ; bf:generationProcess [ a bf:GenerationProcess ; bf:generationDate "2017-01-26T21:34:38.580075" ; rdf:value "Generated by BIBCAT version 1.7.0 from KnowledgeLinks.io"@en ] ; bf:heldBy <http://denverpubliclibrary.org/> ; bf:itemOf <http://dpla.coloradovirtuallibrary.org/3cee31c0-e40f-11e6-b8fe-005056c00008> ; bf:usageAndAccessPolicy [ a bf:UsePolicy ; rdf:value "Restrictions applying to use or reproduction of this image available from the Western History/Genealogy Dept., Denver Public Library." ] .
Here is the http://cdm16079.contentdm.oclc.org:80/cdm/ref/collection/p15330coll22/id/2
Item's BIBFRAME
Instance:
<https://plains2peaks.org/3cee31c0-e40f-11e6-b8fe-005056c00008> a bf:Instance ; bf:generationProcess [ a bf:GenerationProcess ; bf:generationDate "2017-01-26T21:34:38.490057" ; rdf:value "Generated by BIBCAT version 1.7.0 from KnowledgeLinks.io"@en ] ; bf:identifiedBy [ a bf:Local ; rdf:value "NS-818" ], [ a bf:Local ; rdf:value "00105818.tif" ] ; bf:instanceOf [ a bf:Work ; bf:originDate "[1901?]" ] ; bf:language [ a bf:Language ; rdf:value "eng" ] ; bf:layout [ a bf:Layout ; rdf:value """1 photoprint ; 15 x 24 cm. (5 3/4 x 9 1/2 in.) Photograph""" ] ; bf:note [ a bf:Note ; rdf:value "Photographer's stamp "Photographed by John C. Hemment, 108 Fulton St., New York" on back of photoprint." ], [ a bf:Note ; rdf:value "Photoprint has "205" handwritten in lower left side and on back" ], [ a bf:Note ; rdf:value "Title supplied by cataloger." ], [ a bf:Note ; rdf:value "Photoprint has orange discoloration." ], [ a bf:Note ; rdf:value """A man sits in a folding chair in front of a tent in a camp for Buffalo Bill's Wild West Show. He wears a hat and a vest with a watch fob hanging from its pocket. He wears a bow tie and lace-up boots. An empty chair is in the left midgorund in front of the tent. A small chest of drawers and a table with an ink bottle on it are inside the tent. A wagon is parked in the right background. "Salsbury Collection Buffalo Bill's Wild West Show Rehearsal Pictures 1901" typed on first page of album.""" ], [ a bf:Note ; rdf:value ""1901" handwritten on back of print." ], [ a bf:Note ; rdf:value "Vintage photographic print." ], [ a bf:Note ; rdf:value "R7001058187" ] ; bf:partOf [ a pcdm:Collection ; rdfs:label """Salsbury collection, Buffalo Bill's Wild West Show, album 8. Image File: ZZR700105818http://photoswest.org/cgi-bin/imager?00105818+NS-818""" ], [ a pcdm:Collection ; rdfs:label "Salsbury collection, Buffalo Bill's Wild West Show." ] ; bf:subject [ a bf:Topic ; rdf:value "Wild west shows--1880-1920.; Show tents.; Buffalo Bill, 1846-1917.; Buffalo Bill's Wild West Show." ] ; bf:title [ a bf:InstanceTitle ; bf:mainTitle "Man in front of tent" ] .
Published on 2017-04-06