## 6 Implementation and Application of the PORTAL-DOORS System
### Implementation of Current Version 0.6
For the resource record metadata within the main table **NResource**, there are also three _indirectly_ self-referencing relations from fields with the suffix _**ByAgentlidRef** to three other potential resources for the **RecordCreatedBy**, **RecordUpdatedBy**, and **RecordManagedBy** agents. The indirect self-referencing via the auxiliary linking table **NAgent** (see Figure 6) provides a simple permission management system implemented with the feature of sufficient flexibility to interface with various user account provider systems, and simultaneously, to render optional the publication of any information pertaining to agents as resources distinct from owners, contacts and registrants. Thus, the linking table **NAgent** mediates between the set of tables for PDS and another set of tables for the authentication and authorization system for managing agent access to inserting, updating, and deleting records in the NEXUS tables. The linking table has a primary key **AgentlidKey** and various alternative optional fields available for linking to user membership providers such as the field **AspnetUserGuidRef** for linking to Microsoft's ASP.net membership provider, **OtherUserGuidRef** for linking to an alternate generic user membership provider, etc. In addition, the table **NAgent** provides the foreign key **AgentInfosetGuidRef** for linking back to a resource in the main table **NResource** for use in a scenario where the agents as persons with responsibility for managing resources in the database are themselves identified and described as resources in the main table. Regardless of whether an agent is published as a resource, or vice versa, whether a resource is an agent, registrant or contact of type person or of any other type, all resources may be flagged as non-publishable by the boolean field **InfosetIsPrivate** in the table **NResource**. Also, regardless of code implementation with persistence of the value stored in the field **EntityLabel** or otherwise computed dynamically by concatenation of the **EntityPrincipalTag** with the label of the entity's registry, it should be emphasized that any PDS implementation must maintain the important requirement of uniquely identifying resources by the resource entity label which must be an IRI or URI. For PDS draft version 0.6, both SQL code for the relational database model and XML Schemas for the interoperable messaging interface are available for download from [[http://www.portaldoors.org](http://www.portaldoors.org)]([http://www.portaldoors.org](http://www.portaldoors.org)) with an operational NEXUS server implemented at [[https://www.telegenetics.net](https://www.telegenetics.net)]([https://www.telegenetics.net](https://www.telegenetics.net)) now available for agent access with registration of resources relevant to the biomedical problem-oriented specialty domains of the GeneScene, ManRay, BioPORT and BrainWatch registries [39]. Note, however, that the BioPORT registry has recently been renamed the Beacon registry, and that several new registries including the CTGaming [49], Gaia, Eywa, and HELPME registries have been added to the set of prototype registries for continuing development of PDS. In addition, operational RESTful web services for user or machine public access via the http protocol are available at NEXUS servers as demonstrated by the following examples:  
* [[http://pds.biomedicalcomputing.net/](http://pds.biomedicalcomputing.net/)]([http://pds.biomedicalcomputing.net/](http://pds.biomedicalcomputing.net/))[nexusServiceEndpoint]
* [[http://pds.brainwatch.net/](http://pds.brainwatch.net/)]([http://pds.brainwatch.net/](http://pds.brainwatch.net/))[nexusServiceEndpoint]
* [[http://pds.genescene.net/](http://pds.genescene.net/)]([http://pds.genescene.net/](http://pds.genescene.net/))[nexusServiceEndpoint]
* [[http://pds.nucmedlib.net/](http://pds.nucmedlib.net/)]([http://pds.nucmedlib.net/](http://pds.nucmedlib.net/))[nexusServiceEndpoint]  
Each of these services makes available the following endpoints with templates:  
* /nexus/resrep/find?