Proxy¶
Any repository object that is a subclass of ore:Aggregation can be ordered by being represented by a ore:Proxy.
This includes pcdm:Collection, pcdm:Object, and any subclass of pcdm:Object including
pcdmworks:FileSet or pcdmworks:Range. A pcdm:File is not an instance of a ore:Aggregation
so it cannot be ordered unless it is a part of pcdmworks:FileSet.
Any member of a work that does not have an ordering proxy node is assumed to be unordered according to the PCDM ordering extension. To keep things simple for us, we assume multi-canvased works will have a proxy node for any canvas. Anything without a proxy node might be accessible but not as an ordered canvas. Similarly, all our collections are unordered and do not have proxy nodes related to a specific work.
Minimum Model¶
A simple fileset may have many more properties, but should look something like this:
@prefix ex: <http://example.org/> .
@prefix iana: <http://www.iana.org/assignments/relation/> .
@prefix ore: <http://www.openarchives.org/ore/1.0/datamodel#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
ex:ProxyForPageTwo a ore:Proxy ;
ore:proxyIn ex:BookWork ;
ore:proxyFor ex:BookPageTwoFileset ;
iana:prev ex:ProxyForPageOne ;
iana:next ex:ProxyForPageThree .
Rules and Guidelines¶
A Proxy MUST:
be an instance of
ore:Proxyvia therdf:typeproperty.have
1ore:proxyForthat links to the resource being ordered.have
1ore:proxyInthat links ot the aggregation the resource is being ordered in.
A Proxy MUST NOT:
be included in multiple aggregations. When this is needed, an additional proxy must be minted.
A Proxy SHOULD:
have a
iana:prevproperty if not the the first item in an ordered list that links to the resource before the current resource.have a
iana:nextproperty if not the the last item in an ordered list that links to the resource after the current resource
Examples¶
A Proxy for a Page of a Book¶
A book-like object with ordered pages should have a proxy for each fileset including the Image, HOCR, and OCR.
In this example, 1 fileset with files is shown, along with a corresponding Proxy and two other proxies with their filesets omitted.
@prefix ex: <http://example.org/> .
@prefix iana: <http://www.iana.org/assignments/relation/> .
@prefix ore: <http://www.openarchives.org/ore/1.0/datamodel#> .
@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 fedora: <http://fedora.info/definitions/v4/repository#> .
ex:ProxyForPageOne a ore:Proxy ;
ore:proxyIn ex:BookWork ;
ore:proxyFor ex:BookPageOneFileset ;
iana:next ex:ProxyForPageTwo .
ex:ProxyForPageTwo a ore:Proxy ;
ore:proxyIn ex:BookWork ;
ore:proxyFor ex:BookPageTwoFileset ;
iana:prev ex:ProxyForPageOne ;
iana:next ex:ProxyForPageThree .
ex:ProxyForPageThree a ore:Proxy ;
ore:proxyIn ex:BookWork ;
ore:proxyFor ex:BookPageThreeFileset ;
iana:prev ex:ProxyForPageTwo .
ex:BookPageOneFileset a pcdmworks:Fileset ;
rdfs:label "Example Book: Page 1" ;
pcdm:memberOf ex:BookWork ;
pcdm:hasFile ex:Image, ex:HOCR, ex:OCR .
ex:Image a pcdmuse:ServiceFile, pcdmff:Image ;
pcdm:fileOf ex:BookPageOneFileset ;
fedora:hasBinary <https://path/to/image_0001.jp2> .
ex:HOCR a pcdmff:HTML ;
pcdm:fileOf ex:BookPageOneFileset ;
fedora:hasBinary <https://path/to/image_0001.html> .
ex:OCR a pcdmuse:ExtractedText ;
pcdm:fileOf ex:BookPageOneFileset ;
fedora:hasBinary <https://path/to/image_0001.txt> .