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

<> 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 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())

About 160,000 MARC records, half from [Colorado College][] 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 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

<> 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"@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 URI for this work was generated from the source MARC 21 record with the following triples:

<> 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"@en ] ;
    bf:heldBy <> ;
    bf:itemOf <> .

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.

Fedora Repository Container Object

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 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:

<> 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"@en ] ;
    bf:heldBy <> ;
    bf:itemOf <> ;
    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 Item's BIBFRAME Instance:

<> 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"@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: ZZR700105818""" ], [ 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

Presentation ©2017 by Jeremy Nelson. Creative Commons License
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License