So, when faced with the task of building the Research Object Builder, a couple of goals were expressed: It should be designed to interact with other systems as much as possible, that is, it should take in RDF from some source, decide on what’s useful out of all of that, and then output the useful stuff, after linking it and inflating it so that all commonly used ontologies/tags used to describe an attribute have been added. For sources of data that don’t provide RDF, we should be able to construct shims that use the API of the data source, or other methods, that will output RDF based on the data; these shims can be then fed into the RO Builder to construct or maintain a Research object.
The research object can be used in a number of applications, from archiving, to automatic generation of web pages, and visualization of the relationships between people and research data. The system will thus resemble this :
The design of the RO Builder will allow us to take input from shims that have been developed by 3rd parties, and means that we should be able to add anything to our research object which provides a suitable RDF out, or there exists a shim for generating RDF for it.