Discussion #2337
Updated by Michael Lutz almost 6 years ago
<p><span style="color:#FFFFFF;"><span style="background-color: rgb(255, 140, 0);">## DRAFT ##</span></span></p>
<p>This discussion has been created in order to find the rigth architecture for the "Register Federation". The following paragraphs show a proposal for the different features related to the Register Federation.</p>
<p>The Register Federation is a central tool of the federation is the Register of Registers (RoR), where <strong>metadata</strong> related to the Registers and Register items are indexed. The RoR Register Federation does not contain the registers data but only metadata, reference to registers/register items register/register item and relations/links between them.</p>
<h2>1. Metadata for the Register Federation</h2>
<p>Below you can find a list of metadata elements for the federation.</p>
<ul>
<li><strong>Registry</strong>
<ul>
<li><strong>Basic metadata</strong>: URI, description, registry manager;</li>
<li><strong>API</strong>: which operations are supported by this Registry. This is a list and a description of operations that can be performed by the Registry. A link to the Registry's API entry point is provided.</li>
</ul>
</li>
<li><strong>Registers</strong>
<ul>
<li><strong>Basic metadata</strong>: URI, description, owner, registermanager, control body, contact point;</li>
</ul>
</li>
<li><strong>Extension information:</strong> information to relate the elements in the different registers. Examples: <span style="font-family:courier new,courier,monospace;">extends(source,target)</span> new,courier,monospace;">extend_relation(source,target)</span> - <span style="font-family:courier new,courier,monospace;">extends(http://ms_registry/codelist/abc,http://inspire.ec.europa.eu/codelist/def)</span></li> new,courier,monospace;">extend_relation(http://ms_registry/codelist/abc,http://inspire.ec.europa.eu/codelist/def)</span></li>
</ul>
<h2>2. RoR Register Federation API</h2>
<p>This paragraph propose a set of functionalities provided by the RoR Register Federation API.</p>
<ul>
<li>Searching operations:
<ul>
<li>GetRegistries() : Collection<RegistryId> - Gets <li>Get a list of registries Registry registered in the federation;</li> Federation;</li>
<li>GetRegisters(r : RegistryId) : Collection<RegisterId> - Gets <li>Get a list of federated registers Federated Registers contained in a registry (not all registers in a registry need to be part of the federation)</li> Registry;</li>
<li>GetRegisterExtensions(r : RegisterId) : Collection<RegisterId> - Gets <li>Get all the extensions Extension of a specific register</li> Register;</li>
<li>GetItemExtensions(i : ItemId) : Collection<ItemId> - Gets all the extensions of <li>Check if a specific register item (e.g. extended values of a code list item)</li> element is extended.</li>
</ul>
</li>
</ul>
<ul>
<li>Indexing operations:
<ul>
<li>AddRegistry(r : RegistryDescription) : void - Adds <li>Adding/editing/deleting a registry (incl. its metadata) to Registry in the federation</li> federation;</li>
<li>EditRegistry(rid : RegistryId, r : RegistryDescription) : void - Modifies registry metadata</li>
<li>RemoveRegistry(rid : RegistryId): void - Removed a registry from the federation</li>
<li>Adding/editing/removing registers, extension information etc. would be done through <li>Add/edit/delete an update of the RegistryDescription. Alternatively, Add/Edit/Remove operations could also be provided for registers and extension information.</li> relation;</li>
</ul>
</li>
</ul>
<p>This discussion has been created in order to find the rigth architecture for the "Register Federation". The following paragraphs show a proposal for the different features related to the Register Federation.</p>
<p>The Register Federation is a central tool of the federation is the Register of Registers (RoR), where <strong>metadata</strong> related to the Registers and Register items are indexed. The RoR Register Federation does not contain the registers data but only metadata, reference to registers/register items register/register item and relations/links between them.</p>
<h2>1. Metadata for the Register Federation</h2>
<p>Below you can find a list of metadata elements for the federation.</p>
<ul>
<li><strong>Registry</strong>
<ul>
<li><strong>Basic metadata</strong>: URI, description, registry manager;</li>
<li><strong>API</strong>: which operations are supported by this Registry. This is a list and a description of operations that can be performed by the Registry. A link to the Registry's API entry point is provided.</li>
</ul>
</li>
<li><strong>Registers</strong>
<ul>
<li><strong>Basic metadata</strong>: URI, description, owner, registermanager, control body, contact point;</li>
</ul>
</li>
<li><strong>Extension information:</strong> information to relate the elements in the different registers. Examples: <span style="font-family:courier new,courier,monospace;">extends(source,target)</span> new,courier,monospace;">extend_relation(source,target)</span> - <span style="font-family:courier new,courier,monospace;">extends(http://ms_registry/codelist/abc,http://inspire.ec.europa.eu/codelist/def)</span></li> new,courier,monospace;">extend_relation(http://ms_registry/codelist/abc,http://inspire.ec.europa.eu/codelist/def)</span></li>
</ul>
<h2>2. RoR Register Federation API</h2>
<p>This paragraph propose a set of functionalities provided by the RoR Register Federation API.</p>
<ul>
<li>Searching operations:
<ul>
<li>GetRegistries() : Collection<RegistryId> - Gets <li>Get a list of registries Registry registered in the federation;</li> Federation;</li>
<li>GetRegisters(r : RegistryId) : Collection<RegisterId> - Gets <li>Get a list of federated registers Federated Registers contained in a registry (not all registers in a registry need to be part of the federation)</li> Registry;</li>
<li>GetRegisterExtensions(r : RegisterId) : Collection<RegisterId> - Gets <li>Get all the extensions Extension of a specific register</li> Register;</li>
<li>GetItemExtensions(i : ItemId) : Collection<ItemId> - Gets all the extensions of <li>Check if a specific register item (e.g. extended values of a code list item)</li> element is extended.</li>
</ul>
</li>
</ul>
<ul>
<li>Indexing operations:
<ul>
<li>AddRegistry(r : RegistryDescription) : void - Adds <li>Adding/editing/deleting a registry (incl. its metadata) to Registry in the federation</li> federation;</li>
<li>EditRegistry(rid : RegistryId, r : RegistryDescription) : void - Modifies registry metadata</li>
<li>RemoveRegistry(rid : RegistryId): void - Removed a registry from the federation</li>
<li>Adding/editing/removing registers, extension information etc. would be done through <li>Add/edit/delete an update of the RegistryDescription. Alternatively, Add/Edit/Remove operations could also be provided for registers and extension information.</li> relation;</li>
</ul>
</li>
</ul>