Guardian News & Media
GNM RCS
Rights publishing
Technical specification
Prepared by O3 Team Limited
Authors Nigel Robson
Creation date 18/10/2013
Document Ref. GNM_RCS_Rights_Publishing_TS.docx
Version draft for review
.Introduction
Purpose
The document GNM_RCS_Rights_Management_FS.docx is the functional specification that describes what business functions RCS supports in relation to rights management.
This document is one of a set of technical specifications that provide details of how those functions are implemented in RCS.
Scope
This document focusses on the publishing of rights information held in RCS. Separate documents deal with all other aspects of rights management in RCS including rights defaults, rights on content, and rights approval.
This document is intended as a high-level technical document outlining how the relevant business functions are implemented in terms of software modules.
Importantly, this document does not aim to provide the level of detail that would be required in a programming specification in areas such as program structure, detailed business rules, data integrity, validation, locking considerations, data security, and calls to/from other software modules, performance considerations, and so forth.
For details of program logic and coding, the reader should refer to the program files themselves.
.Rights history
The Rights history screen in RCS lists all the commissions and contracts for a given contributor, and the rights associated with those arrangements.
The Oracle Form is called rcs_cpro_070_pc.fmb and is accessed from this menu option:
Rights → Rights history
On entry to the screen the user selects the contributor they are interested in from a List of Values and then the screen opens showing all the agreements entered into with that contributor, the most recent first:
This screen is based on a database view that unions the commissions and contracts data into a single list, and flattens out the rights data held in other tables.
To switch the csreen to view to another contributor the user can press the “Find new…” button in the top right of the screen and select another contributor from the list of values.
View...
The user can view the details of the original commission or contract by pressing the “View…” button. This will open the Review commissions or Review contracts screen as appropriate, querying the arrangement highlighted.
Rights palette
The detailed rights information can be viewed in the rights palette by pressing the “Rights…” button.
.Rights XML feed
RCS generates rights tag information for the website to consume as an XML feed.
Each tag relates to one item of web content and is given a sequential unique identifier. The website is expected to keep track of the last tag processed and only request tags from that point onwards when it next makes a request.
RCS keeps a history of requests made by the website as an audit control in the table WEBSITE_TAG_REQUESTS.
Content to generate tags for
When content is published on the website RCS soon becomes aware of it and an initial attempt is made to identify the rights in that content and prepare a set of rights tags for the website detailing any action that needs to be taken.
Then if the content gets matched, unmatched, staffed, un-staffed, disregarded, reinstated, multi-matched and so forth another set of rights tags is generated based on the new information.
Database triggers are used to ensure content is queued for rights tagging when any of the above events occur. There is no limit to how many times of may be queued over time, but at any one time it can only exist in the queue once.
If a new set of rights tags is identical to the last set generated for the item of content it is discarded. If it is different to the last rights tags, but the last tags are yet to be collected by the website then the last set of tags is deleted and the new one kept. The aim is to reduce the volume of tags that the website needs to collect.
The list of content waiting queued for tags to be generated is held in the table WEBSITE_CONTENT_TAG_QUEUE.
Rights and properties to include in tags
When evaluating an item of content the only those rights that have a property that is marked to be rights tagged should be included. This is managed in the Rights screen, and described in another document. Content and rights are evaluated and tables are populated with data for the tags from which XML can be generated when the website requests it.
The tables that hold the data from which XML can be generated are WEBSITE_TAGS, WEBSITE_TAG_RIGHTS, and WEBSITE_TAG_RIGHTS_DETAIL
XML generation
The XML is generated using quite a complex query that embeds calls to XMLAgg, XMLElement and XML Forest. This is all within the web_rights_feed package.
The XML is returned as a result of an http get using the following URL:
http://gnmapps:7777/plrcs/web_rights_feed.changes_since?lastid=x
…where x is the ID of the last tag consumed by the calling system.
.
Example XML
Below is an example of the XML generated for a single item of content:
<?xml version="1.0" ?>
<rcsRightsFeed>
<tagSet tagSetId="1122566">
<contentType>Article</contentType>
<url>http://www.theguardian.com/money/2009/aug/07/debit-card-consumer-protection</url>
<cmsId>351295201</cmsId>
<storyBundleId>2312228</storyBundleId>
<right>
<rightCode>COREBROWSING</rightCode>
<acquired>Y</acquired>
<property>
<propertyCode>DISPLAY</propertyCode>
<value>In perpetuity</value>
</property>
</right>
<right>
<rightCode>SYNDICATIONAGGREGATE</rightCode>
<acquired>Y</acquired>
</right>
<right>
<rightCode>SUBSCRIPTIONDATABASES</rightCode>
<acquired>Y</acquired>
</right>
</tagSet>
End of Document
<enter keywords here>
Keywords (or tags) are important to provide accurate search results. They are vital if you have attached rather than pasted content to this page.