Work¶
The PCDM Works extension defines a subclass of pcdm:Object called pcdmworks:Work. A work is an
intellectual entity, such as a book, film, dissertation, etc that has member Objects representing their physical
structure (e.g., pages in a book or sections in a book), FileSets to maintain representations of the entire resource
(e.g. the OCR, HOCR, and Image for an Canvas), and TopRanges and Ranges representing their logical structure or
structures (e.g., sections and chapters in a book).
Minimum Model¶
A simple Work may have many more properties, but should look something like this:
@prefix ex: <http://example.org/> .
@prefix pcdm: <http://pcdm.org/models#> .
@prefix pcdmworks: <http://pcdm.org/works#> .
@prefix dc: <http://purl.org/dc/elements/1.1/> .
ex:Work a pcdmworks:Work ;
dc:title "An Example Image" ;
dc:rights <http://rightsstatements.org/vocab/InC-EDU/1.0/> ;
dc:format "reformatted digital" ;
dc:type "StillImage" ;
dc:publisher "Texas A & M University. Libraries" ;
pcdm:memberOf ex:Collection ;
pcdm:hasMember ex:FileSet .
Rules and Guidelines¶
A Work MUST:
be an instance of
pcdmworks:Workvia therdf:typeproperty.be related to a parent Collection or Work via
pcdm:memberOforpcdm:hasMemberto avoid orphanage.have mandatory descriptive elements as stated by Metadata Guidelines for Digital Resources at Texas A&M University Libraries
A Work SHOULD:
be related to a
pcdmworks:FileSetor otherpcdm:Objectinstance viapcdm:hasMember.
A Work MAY:
have other descriptive metadata properties.
have many objects or filesets.
have proxies if the canvases in the item are ordered.
have ranges if the work has sections.
Real World Examples¶
A Work Represented by a Single JPEG¶
A Book Made up of Multiple Canvases¶
A Book work may have many pages has FileSets that represent the pages and proxies that help with ordering. It may also have ranges.
For this example, many nodes have been omitted to make things easier to read. That being said, it tries to show these things:
A
pcdmworks:Workcan be ordered byore:Proxyresources.A
pcdmworks:Workmay havepcdmworks:FileSetandpcdmworks:Rangeresources and both can be ordered byore:Proxyresources.Relationships between a
pcdmworks:Workand apcdmworks:FileSetorore:Proxycan be done viapcdm:hasMemberorpcdm:memberOfproperties on the appropriate instance.
@prefix ex: <http://example.org/> .
@prefix fedora: <http://fedora.info/definitions/v4/repository#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix pcdm: <http://pcdm.org/models#> .
@prefix pcdmworks: <http://pcdm.org/works#> .
@prefix pcdmuse: <http://pcdm.org/use#> .
@prefix pcdmff: <http://pcdm.org/file-format-types#> .
@prefix dc: <http://purl.org/dc/elements/1.1/> .
# This is the Book. Some pages have been omitted to keep graph simpler.
ex:BookWork a pcdmworks:Work ;
dc:title "An Example Book" ;
dc:rights <http://rightsstatements.org/vocab/InC-EDU/1.0/> ;
dc:format "reformatted digital" ;
dc:type "StillImage", "Text" ;
dc:publisher "Texas A & M University. Libraries" ;
pcdm:memberOf ex:Collection ;
pcdm:hasMember ex:BookPageOneFileset, ex:BookPageSixFileset, ex:BookPageThirtyThreeFileset .
# This is a Proxy for Page 1 that will be Canvas 1 in a IIIF Manifest and is the Front Cover
ex:ProxyForPageOne a ore:Proxy ;
ore:proxyIn ex:BookWork ;
ore:proxyFor ex:BookPageOneFileset ;
iana:next ex:ProxyForPageTwo .
# This is a Proxy for Page 6 that will be Canvas 6 in a IIIF Manifest and is the start of Chapter 1
ex:ProxyForPageSix a ore:Proxy ;
ore:proxyIn ex:BookWork ;
ore:proxyFor ex:BookPageSixFileset ;
iana:prev ex:ProxyForPageFive ;
iana:next ex:ProxyForPageSeven .
# This is a Proxy for Page 33 that will be Canvas 33 in a IIIF Manifest and is the back cover
ex:ProxyForPageThirtyThree a ore:Proxy ;
ore:proxyIn ex:BookWork ;
ore:proxyFor ex:BookPageThirtyThreeFileset ;
iana:prev ex:ProxyForPageThirtyTwo .
# This is a Fileset that includes the files used by Canvas 1 in the presentation manifest.
ex:BookPageOneFileset a pcdmworks:Fileset ;
rdfs:label "Front Cover" ;
pcdm:memberOf ex:BookWork ;
pcdm:hasFile ex:Image, ex:HOCR, ex:OCR .
# This is a Range that represents the Front Cover of a Book and points to the page 1 fileset
ex:FrontCover a pcdmworks:Range ;
rdfs:label "Front Cover" ;
pcdm:memberOf ex:BookWork ;
pcdm:hasMember ex:BookPageOneFileset .
# This is a Proxy for the front cover range in a IIIF Manfiest
ex:ProxyForFrontCover a ore:Proxy ;
ore:proxyIn ex:BookWork ;
ore:proxyFor ex:FrontCover ;
iana:next ex:ChapterOne .
# This is a Range that represents Chapter 1 of a Book and points to the page 6 fileset
ex:ChapterOne a pcdmworks:Range ;
rdfs:label "Front Cover" ;
pcdm:memberOf ex:BookWork ;
pcdm:hasMember ex:BookPageSixFileset .
# This is a Proxy for the chapter one range in a IIIF Manifest
ex:ProxyForChapterOne a ore:Proxy ;
ore:proxyIn ex:BookWork ;
ore:proxyFor ex:ChapterOne ;
iana:next ex:ChapterTwo .
# This is a Range that represents Chapter 33 of a Book and points to the page 33 fileset
ex:BackCover a pcdmworks:Range ;
rdfs:label "Back Cover" ;
pcdm:memberOf ex:BookWork ;
pcdm:hasMember ex:BookPageThirtyThreeFileset .
# This is a Proxy for the back cover in a IIIF Manifest
ex:ProxyForBackCover a ore:Proxy ;
ore:proxyIn ex:BookWork ;
ore:proxyFor ex:BackCover ;
iana:prev ex:ChapterThree .
# An Image Canvas
ex:Image a pcdmuse:ServiceFile, pcdmff:Image ;
pcdm:fileOf ex:BookPageOneFileset ;
fedora:hasBinary <https://path/to/image_0001.jp2> .
# Where to write text on the Canvas above.
ex:HOCR a pcdmff:HTML ;
pcdm:fileOf ex:BookPageOneFileset ;
fedora:hasBinary <https://path/to/image_0001.html> .
# Text to index about the canvas.
ex:OCR a pcdmuse:ExtractedText ;
pcdm:fileOf ex:BookPageOneFileset ;
fedora:hasBinary <https://path/to/image_0001.txt> .
A Map with one Canvas and an attached Dataset¶
A Map might be single or multi-canvased and also might have files that aren’t for display.
Some nodes are omitted to keep things simple.
@prefix ex: <http://example.org/> .
@prefix fedora: <http://fedora.info/definitions/v4/repository#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix pcdm: <http://pcdm.org/models#> .
@prefix pcdmworks: <http://pcdm.org/works#> .
@prefix pcdmuse: <http://pcdm.org/use#> .
@prefix pcdmff: <http://pcdm.org/file-format-types#> .
@prefix dc: <http://purl.org/dc/elements/1.1/> .
# This is a Map with a Front and a Back.
ex:Map a pcdmworks:Work ;
dc:title "A Map with 2 Canvases and an attached Dataset" ;
dc:rights <http://rightsstatements.org/vocab/InC-EDU/1.0/> ;
dc:format "reformatted digital" ;
dc:type "StillImage", "Text" ;
dc:publisher "Texas A & M University. Libraries" ;
pcdm:memberOf ex:Collection ;
pcdm:hasMember ex:MapFront, ex:MapBack ;
pcdm:hasFile ex:GISDataSet .
# This is a Fileset for the Front
ex:MapFrontFileset a pcdmworks:Fileset ;
rdfs:label "Map Front" ;
pcdm:memberOf ex:Map ;
pcdm:hasFile ex:Image, ex:HOCR, ex:OCR .
# This is a Fileset for the Back
ex:MapBackFileset a pcdmworks:Fileset ;
rdfs:label "Map Back" ;
pcdm:memberOf ex:Map ;
pcdm:hasFile ex:ImageTwo, ex:HOCRTwo, ex:OCRTwo .
# This is a Proxy for the front of the map
ex:MapProxyForFront a ore:Proxy ;
ore:proxyIn ex:Map ;
ore:proxyFor ex:MapFrontFileset ;
iana:next ex:MapBackFileset .
# This is a Proxy for the back of the map
ex:MapProxyForBack a ore:Proxy ;
ore:proxyIn ex:Map ;
ore:proxyFor ex:MapBackFileset ;
iana:prev ex:MapFrontFileset .
# An Image Canvas
ex:Image a pcdmuse:ServiceFile, pcdmff:Image ;
pcdm:fileOf ex:MapFrontFileset ;
fedora:hasBinary <https://path/to/image_0001.jp2> .
# Where to write text on the Canvas above.
ex:HOCR a pcdmff:HTML ;
pcdm:fileOf ex:MapFrontFileset ;
fedora:hasBinary <https://path/to/image_0001.html> .
# Text to index about the canvas.
ex:OCR a pcdmuse:ExtractedText ;
pcdm:fileOf ex:MapFrontFileset ;
fedora:hasBinary <https://path/to/image_0001.txt> .
ex:GISDataSet a pcdmff:GIS, pdcmff:DataSet ;
pcdm:fileOf ex:Map ;
fedora:hasBinary <https://path/to/gis_dataset.zip> .