@treecg/subject-page-bucketizer
v2.1.12
Published
Applies a subject page fragmentation to LDES members
Downloads
39
Maintainers
Keywords
Readme
Subject Page Bucketizer
The purpose of the subject page bucketizer is to fragment the TREE members based on a given property (e.g, versionOfPath of LDES members). This bucketizer assumes URIs comply with the following structure: http(s)://{domain}/{type}/{concept}(/{reference})*
, e.g. https://data.vlaanderen.be/id/gemeente/44001
. As the {reference}
represents the identifier of the object, this part is used to indicate the bucket.
An LDES bucketizer adds triples with the ldes bucket predicate (https://w3id.org/ldes#bucket) to the array of quads representating an LDES member, indicating the bucket in which the member belongs.
Example
Assume the following member:
<http://example.ord/id/123@456> dct:created "2002-08-13T16:33:18+02:00"^^xsd:dateTime ;
dct:isVersionOf <http://example.org/id/123> ;
prov:generatedAtTime "2021-09-07T15:44:05.975Z"^^xsd:dateTime .
After passing the subject page bucketizer, the member will have an extra triple:
<http://example.ord/id/123@456> dct:created "2002-08-13T16:33:18+02:00"^^xsd:dateTime ;
dct:isVersionOf <http://example.org/id/123> ;
prov:generatedAtTime "2021-09-07T15:44:05.975Z"^^xsd:dateTime ;
ldes:bucket "123"^^xsd:string .
Install
> npm i @treecg/ldes-subject-page-bucketizer
Usage
A bucketizer should always be used in combination with the LDES client. More information on how to setup an LDES client can be found here. It is important to set the option in the LDES client to receive the LDES member as an array of quads: representation: 'quads'
.
The bucketizer expects a valid property path
import { SubjectPageBucketizer } from '@treecg/subject-page-bucketizer'
const run = async (): Promise<void> => {
const options = {...};
const url = ...;
const bucketizer = await SubjectPageBucketizer.build({ propertyPath: '<http://purl.org/dc/terms/isVersionOf>'});
const ldes = LDESClient.createReadStream(url, options);
ldes.on('data', (member) => {
bucketizer.bucketize(member.quads, member.id)
// Continue processing the member, but now the array of quads will have an extra triple, the bucket triple
});
}
run().catch(error => console.error(error.stack));