Common Works Registration File Format
In this article, one of several articles about CWR, the Common Works Registration format will be introduced. Further articles will give you more insight. But, for real understanding, you will have to dig deep.
Before we get into it, several notes.
CWR can not be created manually, specialised software is required. See Catalogue Management Software for details.
Also, you may be interested in this 30-minute video about CWR format. (The second and final part has not yet been released.)
OK. Let’s get technical!
Underlying Format
CWR is based on EDI, a long-obsolete standard for data exchange over 300bps modems from the seventies. (There is a chance that the next version of CWR will also be available as JSON). Right now, EDI-based CWR is a fixed-width text format, and here is a CWR 2.1 example:
HDRPB000000199DMP DEMO PUBLISHING 01.102019021516052620190215
GRHREV0000102.100000000000
REV0000000000000000THE ONE DMP000001 00000000 UNC000000Y ORI N00000000000 N
SPU000000000000000101DMP DMP DEMO PUBLISHING E 00000000000000000199 052050000441000004410000 N
SPT0000000000000002DMP 050001000010000I2136N001
SWR0000000000000003W000001 SMITH JOHN JAMES CA0000000000000000039521 05000 00000 00000 N
SWT0000000000000004W000001 050000000000000I2136N001
PWR0000000000000005DMP DMP DEMO PUBLISHING SAAN12345 W000001
ALT0000000000000006THE ONE BED AT
ALT0000000000000007THE ONE DRUMS ONLY AT
ALT0000000000000008THE ONE NO DRUMS AT
ALT0000000000000009THE ONE STING AT
PER0000000000000010THE BAND
REC000000000000001100000000 000000 DML
ORN0000000000000012LIB INTERNET 0000DMP DEMO LIBRARY 0000
REV0000000100000000SECOND BEST DMP000002 00000000 UNC000000U ORI N00000000000 N
SPU000000010000000101DMP DMP DEMO PUBLISHING E 00000000000000000199 052025000440500004405000 N
SPT0000000100000002DMP 025000500005000I2136N001
SWR0000000100000003W000001 SMITH JOHN JAMES CA0000000000000000039521 02500 00000 00000 N
SWT0000000100000004W000001 025000000000000I2136N001
PWR0000000100000005DMP DMP DEMO PUBLISHING SAAN12345 W000001
OWR0000000100000006W000003 ADAMS AARON CA00000000000000000000 05000 05000 05000
ALT0000000100000007SECOND PLACE AT
GRT000010000000200000023 0000000000
TRL000010000000200000025
Syntax highlighting and additional information on mouse-over, were created using CWR Tools.
Here is an example of the same data in normalized JSON, something that is quite familiar to contemporary software developers:
{ "writers": { "W000001": { "last_name": "Smith", "first_name": "John James", "ipi_name": "00000000395", "pr_society": "21" }, "W000003": { "last_name": "Adams", "first_name": "Aaron" } }, "publishers": { "DMP": { "name": "DMP Demo Publishing", "ipi_name": "00000000199", "pr_society": "052", "mr_society": "044" } }, "albums": {}, "artists": { "A000001": { "last_name": "The Band" } }, "libraries": { "L001": { "name": "DMP Demo Library" } }, "works": { "DMP000002": { "work_title": "Second Best", "version_type": "original", "alternate_titles": [ { "alternate_title": "Second Place" } ], "writers_for_work": [ { "controlled": true, "relative_share": "0.50", "writer_id": "W000001", "capacity": "CA", "publishers_for_writer": [ { "publisher_id": "DMP", "agreement": { "saan": "SAAN12345", "type": "OG" } } ] }, { "controlled": false, "relative_share": "0.50", "writer_id": "W000003", "capacity": "CA" } ], "live_artists": [], "society_work_codes": [] }, "DMP000001": { "work_title": "The One", "version_type": "original", "alternate_titles": [ { "alternate_title": "The One Bed" }, { "alternate_title": "The One No Drums" }, { "alternate_title": "The One Drums Only" }, { "alternate_title": "The One Sting" } ], "writers_for_work": [ { "controlled": true, "relative_share": "1.00", "writer_id": "W000001", "capacity": "CA", "publishers_for_writer": [ { "publisher_id": "DMP", "agreement": { "saan": "SAAN12345", "type": "OG" } } ] } ], "recordings": { "R000001": { "isrc": "", "record_label": "DML", "artist_id": "A000001" } }, "source": { "type": "library", "library_id": "L001", "cd_identifier": "INTERNET" }, "live_artists": [], "society_work_codes": [] } } }
The two works represented here contain only very basic data, most notably only the data about a single original publisher for a controlled writer. In reality, contemporary CWR files often also contain data about several original publishers for each work, administrators, and many sub-publishers with different society affiliations for their respective territories, data on agreements and different share splits for different territories. CWR files with over 100 lines per work are quite common these days, and 1000+ lines are no longer exceptions.
But it is not the size that makes CWR complicated, nor this obsolete format. It is the complexity of validation rules, which differ from one society to the next and not all are documented. While a single CWR file should work everywhere, there are edge cases when the rules by different societies are conflicting.
If you choose to do it the hard way, you should go to https://www.cisac.org and search the documents for CWR. The proper overview is in the article about CWR Documentation.