Profiles Research Networking Software – System Architecture
2015-08-18T16:14:34Z (GMT) by
Introduction: Profiles Research Networking Software (RNS) is an open source semantic web application that generates searchable online profiles of an organization’s investigators (http://profiles.catalyst.harvard.edu). It uses the VIVO ontology and generates RDF (Resource Description Framework) identical to the VIVO software, though it adds unique features such as automatic matching of PubMed articles to investigators and interactive network visualizations. This poster describes three components of the Profiles RNS system architecture. <br>Presentation Layer: RDF provides a standardized way of extending the data model of Profiles RNS. An institution can add new types of data by describing them in the ontology, without any changes to the database schema. However, in Profiles RNS we also sought to have a standardized way of configuring the presentation of these data. In other words, we wanted to be able to design the profile page of a person to look different than a profile of a department, without using hard-coded HTML. We therefore defined an XML document called the PresentationXML, which describes the content that should appear in different parts of the page and how that content should be rendered. Is it used in combination with the page’s RDF-XML document (i.e., the data file). For example, the PresentationXML can indicate that the title for a page should come from the “rdfs:label” tag in the RDF-XML. Different PresentationXML documents can be defined for specific data types (e.g., person, publication, concept, etc.). This enables us to customize the layout of these pages with minimal .NET code changes. <br>Security Model: When a user or external system initiates a request for data in Profiles RNS, a set of SecurityGroup IDs are assigned to the user’s session. The SecurityGroups provide authorization to different types of data or functionality. Profiles RNS comes with several pre-defined SecurityGroups (e.g., public user, web bot/spider, authenticated user, admin), which can be extended by an institution. Each investigator who has a profile page also has a personal security group for private content. Each property in the VIVO ontology has a default SecurityGroup. Investigators can override these to control what content appears on their profiles. <br>RDF Caching: Profiles RNS uses the PresentationXML and SecurityGroups to cache RDF data efficiently and greatly improve performance of the website. Generating the full RDF-XML for a person is slow (often 30+ seconds). However, the PresentationXML indicates which RDF properties are needed for a page, and only that subset of the RDF is requested from the database. We can also rely on the fact that all users with the same SecurityGroups will see the same content. We therefore store the RDF in a .NET memory cache using a key that combines the URI and the SecurityGroup. As a result, Profiles RNS does not have to query the database again if another user with the same SecurityGroup visits the website. The cache expires after a defined period of time or immediately if the underlying data changes (e.g., a person edits her profile). <br>Conclusion: Profiles RNS uses the VIVO ontology but includes key software components that contribute to front-end configurability, security, and performance.