This repository was archived by the owner on Dec 10, 2018. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
Handle Schema
Tony Hammond edited this page Apr 13, 2018
·
2 revisions
(This page needs elaboration. The RDFS is included here for convenience. The current schema can be downloaded from [http://openhandle.googlecode.com/files/handle.rdfs here].)
<?xml version="1.0" encoding="UTF-8"?>
<!--
########################################################################
## Handle System - RDF Schema for Handle Data Model
##
## This document presents an RDF Schema for the Handle System - see
## RFC 3651 [1]. This is the authoritative reference for the Handle
## Data Model. For ease of linking, however, this schema refers to
## the HTML version of the RFC [2]. For further information on the
## Handle System, see [3].
##
## Author: Tony Hammond <[email protected]>
## Date: 2008-02-08T16:40:00Z
##
## ==
## [1] http://www.ietf.org/rfc/rfc3651.txt
## [2] http://www.apps.ietf.org/rfc/rfc3651.html
## [3] http://wwww.handle.net/
##
########################################################################
##
## The HS data model is defined in Sect. 3 of RFC 3651 [1]. This schema
## follows the order of presentation in the RFC by section. Classes are
## given first followed by properties, ordered by object properties
## followed by datatype properties.
##
## 3. Handle System Data Model [2a]
## 3.1. Handle Value Set [2b]
## 3.2. Pre-defined Handle Data Types [2c]
## 3.2.1. Handle Administrator: HS_ADMIN [2d]
## 3.2.2. Service Site Information: HS_SITE [2e]
## 3.2.3. Naming Authority Delegation Service: HS_NA_DELEGATE [2f]
## 3.2.4. Service Handle: HS_SERV [2g]
## 3.2.5. Alias Handle: HS_ALIAS [2h]
## 3.2.6. Primary Site: HS_PRIMARY [2i]
## 3.2.7. Handle Value List: HS_VLIST [2j]
##
## [2a] http://www.apps.ietf.org/rfc/rfc3651.html#sec-3
## [2b] http://www.apps.ietf.org/rfc/rfc3651.html#sec-3.1
## [2c] http://www.apps.ietf.org/rfc/rfc3651.html#sec-3.2
## [2d] http://www.apps.ietf.org/rfc/rfc3651.html#sec-3.2.1
## [2e] http://www.apps.ietf.org/rfc/rfc3651.html#sec-3.2.2
## [2f] http://www.apps.ietf.org/rfc/rfc3651.html#sec-3.2.3
## [2g] http://www.apps.ietf.org/rfc/rfc3651.html#sec-3.2.4
## [2h] http://www.apps.ietf.org/rfc/rfc3651.html#sec-3.2.5
## [2i] http://www.apps.ietf.org/rfc/rfc3651.html#sec-3.2.6
## [2j] http://www.apps.ietf.org/rfc/rfc3651.html#sec-3.2.7
##
########################################################################
-->
<!DOCTYPE schema [
<!ENTITY rdf "http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<!ENTITY rdfs "http://www.w3.org/2000/01/rdf-schema#">
<!ENTITY owl "http://www.w3.org/2002/07/owl#">
<!ENTITY xsd "http://www.w3.org/2000/10/XMLSchema#">
]>
<r:RDF
xmlns:r="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:s="http://www.w3.org/2000/01/rdf-schema#"
xmlns:o="http://www.w3.org/2002/07/owl#"
xml:base="http://nascent.nature.com/schemas/handle.rdfs"
>
<!--
########################################################################
## 3.1. Handle Value Set (p. 4) [2b]
##
## [2b] http://www.apps.ietf.org/rfc/rfc3651.html#sec-3.1
##
##
## Figure 3.1: Handle "10.1045/may99-payette" and its set of values
##
## Handle "10.1045/may99-payette"
##
## |
## |
## V
##
## _____________________________________________________________
## | <index>: 3 |
## _____________________________________________________________ |
## | <index>: 2 | |
## _____________________________________________________________ | |
## | | | |
## | <index>: 1 | | |
## | <type>: URL | | |
## | <data>: http://www.dlib.org/dlib... | | |
## | <TTL>: {Relative: 24 hours} | | |
## | <permission>: PUBLIC_READ, ADMIN_WRITE | | |
## | <timestamp>: 927314334000 | | |
## | <reference>: {empty} | |-
## | |-
## _____________________________________________________________
##
########################################################################
-->
<!--
Classes
-->
<!-- "Handle" class -->
<s:Class r:ID="Handle">
<s:label>Handle</s:label>
<s:comment>A handle is a globally unique name for an Internet
resource. Handles are character strings that consist of two parts:
a naming authority, followed by a unique local name under the naming
authority.</s:comment>
</s:Class>
<!-- "HandleValues" class -->
<s:Class r:ID="HandleValues">
<s:label>HandleValues</s:label>
<s:comment>A set of values assigned to a handle.</s:comment>
<s:subClassOf r:resource="&rdf;Collection"/>
</s:Class>
<!-- "HandleValue" class -->
<s:Class r:ID="HandleValue">
<s:label>HandleValue</s:label>
<s:comment>A handle value is a record that consists of a set of data
fields: "Index", "Type", "Data", "TTL", "Permission", "Timestamp",
"Reference".</s:comment>
</s:Class>
<!-- "HandleReference" class -->
<s:Class r:ID="HandleReference">
<s:label>HandleReference</s:label>
<s:comment>A handle reference refers to another handle value in terms
of a UTF8-string and a 4-byte integer (where the UTF8-string is the
handle name and the integer is the value index). For convenience a
handle reference is implemented as a URI-ref using the "info:" URI
scheme, where the handle value index is referenced in the fragment
identifier. For example, a handle reference to the handle
"10.1045/may99-payette" with index value "100" will be implemented
as the URI "info:hdl/10.1045/may99-payette#index=100".</s:comment>
<s:subClassOf r:resource="&xsd;anyURI"/>
</s:Class>
<!-- "Reference" class -->
<s:Class r:ID="Reference">
<s:label>Reference</s:label>
<s:comment></s:comment>
</s:Class>
<!-- "ReferenceList" class -->
<s:Class r:ID="ReferenceList">
<s:label>ReferenceList</s:label>
<s:comment></s:comment>
<s:subClassOf r:resource="&rdf;Collection"/>
</s:Class>
<!--
Object Properties
-->
<!-- "handleValues" property -->
<r:Property r:ID="handleValues">
<s:label>handleValues</s:label>
<s:comment>Property attributing a "HandleValues" object.</s:comment>
<s:domain r:resource="#Handle"/>
<s:range r:resource="#HandleValues"/>
</r:Property>
<!-- "handleValue" property -->
<r:Property r:ID="handleValue">
<s:label>handleValue</s:label>
<s:comment>Property attributing a "HandleValue" object.</s:comment>
<s:domain r:resource="#HandleValues"/>
<s:range r:resource="#HandleValue"/>
</r:Property>
<!-- "handleReference" property -->
<r:Property r:ID="handleReference">
<s:label>handleReference</s:label>
<s:comment>Property attributing a "HandleReference"
object.</s:comment>
<s:domain r:resource="#ReferenceList"/>
<s:range r:resource="&xsd;anyURI"/>
</r:Property>
<!--
Datatype Properties
-->
<!-- "index" property -->
<r:Property r:ID="index">
<s:label>index</s:label>
<s:comment>Property attributing an "Index" field.</s:comment>
<s:domain r:resource="#HandleValue"/>
<s:range r:resource="&xsd;nonNegativeInteger"/>
</r:Property>
<!-- "type" property -->
<r:Property r:ID="type">
<s:label>type</s:label>
<s:comment>Property attributing a "Type" field.</s:comment>
<s:domain r:resource="#HandleValue"/>
<s:range r:resource="&xsd;string"/>
</r:Property>
<!-- "data" property -->
<r:Property r:ID="data">
<s:label>data</s:label>
<s:comment>Property attributing a "Data" field.</s:comment>
<s:domain r:resource="#HandleValue"/>
<!-- Range for generic data types -->
<s:range r:resource="&xsd;string"/>
<!-- Ranges for pre-defined data types -->
<s:range r:resource="#HS_ADMIN"/>
<s:range r:resource="#HS_SITE"/>
<s:range r:resource="#HS_NA_DELEGATE"/>
<s:range r:resource="#HS_SERV"/>
<s:range r:resource="#HS_ALIAS"/>
<s:range r:resource="#HS_PRIMARY"/>
<s:range r:resource="#HS_VLIST"/>
</r:Property>
<!-- "ttl" property -->
<r:Property r:ID="ttl">
<s:label>ttl</s:label>
<s:comment>Property attributing a "TTL" field.</s:comment>
<s:domain r:resource="#HandleValue"/>
<s:range r:resource="#TTL"/>
</r:Property>
<!-- "permission" property -->
<r:Property r:ID="permission">
<s:label>permission</s:label>
<s:comment>Property attributing a "Permission" field.</s:comment>
<s:domain r:resource="#HandleValue"/>
<s:range r:resource="#Permission"/>
</r:Property>
<!-- "timestamp" property -->
<r:Property r:ID="timestamp">
<s:label>timestamp</s:label>
<s:comment>Property attributing a "Timestamp" field.</s:comment>
<s:domain r:resource="#HandleValue"/>
<s:range r:resource="&xsd;dateTime"/>
</r:Property>
<!-- "reference" property -->
<r:Property r:ID="reference">
<s:label>reference</s:label>
<s:comment>Property attributing a "Reference" field.</s:comment>
<s:domain r:resource="#HandleValue"/>
<s:range r:resource="#Reference"/>
</r:Property>
<!--
TTL properties
-->
<!-- "ttlType" property -->
<r:Property r:ID="ttlType">
<s:label>ttlType</s:label>
<s:comment>Property attributing a "TTL" type.</s:comment>
<s:domain r:resource="#TTL"/>
<s:range r:resource="&xsd;token"/>
</r:Property>
<!-- "ttlValue" property -->
<r:Property r:ID="ttlValue">
<s:label>ttlValue</s:label>
<s:comment>Property attributing a "TTL" value.</s:comment>
<s:domain r:resource="#TTL"/>
<s:range r:resource="&xsd;nonNegativeInteger"/>
</r:Property>
<!--
Permission properties
-->
<!-- "publicWrite" property -->
<r:Property r:ID="publicWrite">
<s:label>publicWrite</s:label>
<s:comment>Property attributing a "PUBLIC_WRITE" permission. This
permission permission allows anyone to modify or delete the handle
value.</s:comment>
<s:domain r:resource="#Permission"/>
<s:range r:resource="&xsd;boolean"/>
</r:Property>
<!-- "publicRead" property -->
<r:Property r:ID="publicRead">
<s:label>publicRead</s:label>
<s:comment>Property attributing a "PUBLIC_READ" permission. This
permission allows anyone to read the handle value.</s:comment>
<s:domain r:resource="#Permission"/>
<s:range r:resource="&xsd;boolean"/>
</r:Property>
<!-- "adminWrite" property -->
<r:Property r:ID="adminWrite">
<s:label>adminWrite</s:label>
<s:comment>Property attributing a "ADMIN_WRITE" permission. This
permission allows any handle administrator to update or delete
the handle value.</s:comment>
<s:domain r:resource="#Permission"/>
<s:range r:resource="&xsd;boolean"/>
</r:Property>
<!-- "adminRead" property -->
<r:Property r:ID="adminRead">
<s:label>adminRead</s:label>
<s:comment>Property attributing a "ADMIN_READ" permission. This
permission allows the handle value to be read by any handle
administrator with AUTHORITIVE_READ privilege.</s:comment>
<s:domain r:resource="#Permission"/>
<s:range r:resource="&xsd;boolean"/>
</r:Property>
<!-- ** Deprecated Property: Included in RFC 3651 but never
implemented. To be written out of RFC revision. ** -->
<!-- "publicExecute" property -->
<r:Property r:ID="publicExecute">
<s:label>publicExecute</s:label>
<s:comment>** Deprecated Property: Included in RFC 3651 but never
implemented. To be written out of RFC revision. **</s:comment>
<s:comment>Property attributing a "PUBLIC_EXECUTE" permission. This
ermission allows anyone to execute the program identified by the
handle value on the handle host as anonymous user.</s:comment>
<s:domain r:resource="#Permission"/>
<s:range r:resource="&xsd;boolean"/>
</r:Property>
<!-- ** Deprecated Property: Included in RFC 3651 but never
implemented. To be written out of RFC revision. ** -->
<!-- "adminExecute" property -->
<r:Property r:ID="adminExecute">
<s:label>adminExecute</s:label>
<s:comment>** Deprecated Property: Included in RFC 3651 but never
implemented. To be written out of RFC revision. **</s:comment>
<s:comment>Property attributing a "ADMIN_EXECUTE" permission. This
permission allows handle administrator(s) to run the program
identified by the handle value on the handle server.</s:comment>
<s:domain r:resource="#Permission"/>
<s:range r:resource="&xsd;boolean"/>
</r:Property>
<!--
Reference properties
-->
<!-- "referenceCount" property -->
<r:Property r:ID="referenceCount">
<s:label>referenceCount</s:label>
<s:comment>Property attributing a "ReferenceCount" value.</s:comment>
<s:domain r:resource="#Reference"/>
<s:range r:resource="&xsd;nonNegativeInteger"/>
</r:Property>
<!-- "referenceList" property -->
<r:Property r:ID="referenceList">
<s:label>referenceList</s:label>
<s:comment>Property attributing a "ReferenceList" object.</s:comment>
<s:domain r:resource="#Reference"/>
<s:range r:resource="#ReferenceList"/>
</r:Property>
<!--
########################################################################
## 3.2. Pre-defined Handle Data Types (p. 9) [2c]
##
## [2c] http://www.apps.ietf.org/rfc/rfc3651.html#sec-3.2
########################################################################
-->
<!--
########################################################################
## 3.2.1. Handle Administrator: HS_ADMIN (p. 10) [2d]
##
## [2d] http://www.apps.ietf.org/rfc/rfc3651.html#sec-3.2.1
##
## Figure 3.2.1: Administrator for the naming authority
## handle "0.NA/10"
##
## _____________________________________________________________
## _____________________________________________________________ |
## _____________________________________________________________ | |
## | | | |
## | <index>: 2 | | |
## | <type>: HS_ADMIN | | |
## | <data>: | | |
## | <AdminRef>: "0.NA/10": 3 | | |
## | <AdminPerm>: Add_NA, Delete_NA, | | |
## | Add Handle, Delete_Handle, | | |
## | Add_Value, Delete_Value, Modify_Value, | | |
## | Authorized_Read, List_Handle, List_NA | | |
## | | | |
## | <TTL>: 24 hours | | |
## | <permission>: PUBLIC_READ, ADMIN_WRITE | | |
## | <reference>: {empty} | |-
## | |-
## _____________________________________________________________
##
########################################################################
-->
<!--
Classes - HS_ADMIN
-->
<!-- "HS_ADMIN" class (pre-defined HS type) -->
<s:Class r:ID="HS_ADMIN">
<s:label>HS_ADMIN</s:label>
<s:comment>HS_ADMIN is a pre-defined Handle System data type which is
used to assign handle administrators to handles. An HS_ADMIN value
is a handle value whose "type" field is HS_ADMIN and whose "data"
field consists of the following entries: "AdminRef" - a reference
to a handle value, and "AdminPermission" - a 16-bit bit-mask that
defines the administration privilege of the set of handle
administrators identified by the HS_ADMIN value.</s:comment>
</s:Class>
<!-- "AdminRef" class -->
<s:Class r:ID="AdminRef">
<s:label>AdminRef</s:label>
<s:comment></s:comment>
</s:Class>
<!-- "AdminPermission" class -->
<s:Class r:ID="AdminPermission">
<s:label>AdminPermission</s:label>
<s:comment></s:comment>
</s:Class>
<!--
Object Properties - HS_ADMIN
-->
<!-- "adminRef" property -->
<r:Property r:ID="adminRef">
<s:label>adminRef</s:label>
<s:comment>Property attributing an "AdminRef" object.</s:comment>
<s:domain r:resource="#HS_ADMIN"/>
<s:range r:resource="#AdminRef"/>
</r:Property>
<!-- "adminPermission" property -->
<r:Property r:ID="adminPermission">
<s:label>adminPermission</s:label>
<s:comment>Property attributing an "AdminPermission"
object.</s:comment>
<s:domain r:resource="#HS_ADMIN"/>
<s:range r:resource="#AdminPermission"/>
</r:Property>
<!--
Datatype Properties - HS_ADMIN
-->
<!-- "addHandle" property -->
<r:Property r:ID="addHandle">
<s:label>addHandle</s:label>
<s:comment>Property attributing an "Add_Handle" permission. This
permission allows naming authority administrator to create new
handles under a given naming authority.</s:comment>
<s:domain r:resource="#AdminPermission"/>
<s:range r:resource="&xsd;boolean"/>
</r:Property>
<!-- "deleteHandle" property -->
<r:Property r:ID="deleteHandle">
<s:label>deleteHandle</s:label>
<s:comment>Property attributing a "Delete_Handle" permission. This
permission allows naming authority administrator to delete handles
under a given naming authority.</s:comment>
<s:domain r:resource="#AdminPermission"/>
<s:range r:resource="&xsd;boolean"/>
</r:Property>
<!-- "addNA" property -->
<r:Property r:ID="addNA">
<s:label>addNA</s:label>
<s:comment>Property attributing an "Add_NA" permissio. This
permission allows the naming authority administrator to create
new sub-naming authorities.
</s:comment>
<s:domain r:resource="#AdminPermission"/>
<s:range r:resource="&xsd;boolean"/>
</r:Property>
<!-- "deleteNA" property -->
<r:Property r:ID="deleteNA">
<s:label>deleteNA</s:label>
<s:comment>Property attributing a "Delete_NA" permission. This
permission allows naming authority administrator to delete an
existing sub-naming authority.</s:comment>
<s:domain r:resource="#AdminPermission"/>
<s:range r:resource="&xsd;boolean"/>
</r:Property>
<!-- "modifyValue" property -->
<r:Property r:ID="modifyValue">
<s:label>modifyValue</s:label>
<s:comment>Property attributing a "Modify_Value" permission. This
permission allows handle administrator to modify any handle values
other than HS_ADMIN values. HS_ADMIN values are used to define
handle administrators and are managed by a different set of permissions</s:comment>
<s:domain r:resource="#AdminPermission"/>
<s:range r:resource="&xsd;boolean"/>
</r:Property>
<!-- "deleteValue" property -->
<r:Property r:ID="deleteValue">
<s:label>deleteValue</s:label>
<s:comment>Property attributing a "Delete_Value" permission. This
permission allows handle administrator to delete any handle values
other than the HS_ADMIN values.</s:comment>
<s:domain r:resource="#AdminPermission"/>
<s:range r:resource="&xsd;boolean"/>
</r:Property>
<!-- "addValue" property -->
<r:Property r:ID="addValue">
<s:label>addValue</s:label>
<s:comment>Property attributing an "Add_Value" permission. This
permission allows handle administrator to add handle values other
than the HS_ADMIN values.</s:comment>
<s:domain r:resource="#AdminPermission"/>
<s:range r:resource="&xsd;boolean"/>
</r:Property>
<!-- "modifyAdmin" property -->
<r:Property r:ID="modifyAdmin">
<s:label>modifyAdmin</s:label>
<s:comment>Property attributing a "Modify_Admin" permission. This
permission allows handle administrator to modify HS_ADMIN
values.</s:comment>
<s:domain r:resource="#AdminPermission"/>
<s:range r:resource="&xsd;boolean"/>
</r:Property>
<!-- "removeAdmin" property -->
<r:Property r:ID="removeAdmin">
<s:label>removeAdmin</s:label>
<s:comment>Property attributing a "Remove_Admin" permission. This
permission allows handle administrator to remove HS_ADMIN
values.</s:comment>
<s:domain r:resource="#AdminPermission"/>
<s:range r:resource="&xsd;boolean"/>
</r:Property>
<!-- "addAdmin" property -->
<r:Property r:ID="addAdmin">
<s:label>addAdmin</s:label>
<s:comment>Property attributing an "Add_Admin" permission. This
permission allows handle administrator to add new HS_ADMIN
values.</s:comment>
<s:domain r:resource="#AdminPermission"/>
<s:range r:resource="&xsd;boolean"/>
</r:Property>
<!-- "authorizedRead" property -->
<r:Property r:ID="authorizedRead">
<s:label>authorizedRead</s:label>
<s:comment>Property attributing a "Authorized_Read" permission. This
permission grants handle administrator read-access to handle
values with the ADMIN_READ permission. Administrators without this
permission will not have access to handle values that require
authentication for read access.</s:comment>
<s:domain r:resource="#AdminPermission"/>
<s:range r:resource="&xsd;boolean"/>
</r:Property>
<!-- "listHandle" property -->
<r:Property r:ID="listHandle">
<s:label>listHandle</s:label>
<s:comment>Property attributing a "LIST_Handle" permission. This
permission allows naming authority administrator to list handles
under a given naming authority.</s:comment>
<s:domain r:resource="#AdminPermission"/>
<s:range r:resource="&xsd;boolean"/>
</r:Property>
<!-- ** Deprecated Property: Included in RFC 3651 but never
implemented. To be written out of RFC revision. ** -->
<!-- "listNA" property -->
<r:Property r:ID="listNA">
<s:label>listNA</s:label>
<s:comment>** Deprecated Property: Included in RFC 3651 but never
implemented. To be written out of RFC revision. **</s:comment>
<s:comment>Property attributing a "LIST_NA" permission. This
permission allows naming authority administrator to list
immediate sub-naming authorities under a given naming authority.</s:comment>
<s:domain r:resource="#AdminPermission"/>
<s:range r:resource="&xsd;boolean"/>
</r:Property>
<!--
########################################################################
## 3.2.2. Service Site Information: HS_SITE (p. 14) [2e]
##
## [2e] http://www.apps.ietf.org/rfc/rfc3651.html#sec-3.2.2
##
## Fig. 3.2.2: The primary service site for the naming authority "10"
##
## ___________________________________________________________
## ___________________________________________________________ |
## ___________________________________________________________ | |
## | | | |
## | <index>: 2 | | |
## | <type>: HS_SITE | | |
## | <data>: | | |
## | Version: 0 | | |
## | ProtocolVersion: 2.1 | | |
## | SerialNumber: 1 | | |
## | PrimaryMask: | | |
## | MultiPrimary: FALSE | | |
## | PrimarySite: TRUE | | |
## | HashOption: HASH_BY_HANDLE | | |
## | HashFilter: {empty UTF8-String} | | |
## | AttributeList: 0 {followed by no attributes} | | |
## | NumOfServer: 3 | | |
## | {followed by a list of <ServerRecord>} | | |
## | | | |
## | _________________________________________ | | |
## | __________________________________________ | | | |
## | __________________________________________ || | | |
## | | ServerID: 1 ||| | | |
## | | Address: :FFFF:132.151.1.155 ||| | | |
## | | PublicKeyRecord: HS_DSAKEY, iQCuR2R... ||| | | |
## | | ServiceInterface ||| | | |
## | | ServiceType: Resolution_Only ||| | | |
## | | TransmissionProtocol: TCP & UDP ||| | | |
## | | PortNumber: 2641 ||| | | |
## | | ||| | | |
## | | ServiceType: Admin only ||| | | |
## | | TransmissionProtocol: TCP || | | |
## | | PortNumber: 2642 | | | |
## | __________________________________________ | | |
## | | | |
## | <TTL>: 24 hours | | |
## | <permission>: PUBLIC_READ, ADMIN_WRITE | | |
## | <reference>: {empty} | |-
## | |-
## ___________________________________________________________
##
########################################################################
-->
<!--
Classes - HS_SITE
-->
<!-- "HS_SITE" class (pre-defined HS type) -->
<s:Class r:ID="HS_SITE">
<s:label>HS_SITE</s:label>
<s:comment>HS_SITE is a pre-defined Handle System data type which is
used to define a service site. An HS_SITE value defines a service
site by identifying the server computers (e.g., IP addresses) that
comprise the site along with their service configurations (e.g.,
port numbers).</s:comment>
</s:Class>
<!-- "PrimaryMask" class -->
<s:Class r:ID="PrimaryMask">
<s:label>PrimaryMask</s:label>
<s:comment></s:comment>
</s:Class>
<!-- "AttributeList" class -->
<s:Class r:ID="AttributeList">
<s:label>AttributeList</s:label>
<s:comment>A 4-byte integer followed by a list of UTF8-string pairs.</s:comment>
</s:Class>
<!-- "AttributePair" class -->
<s:Class r:ID="AttributePair">
<s:label>AttributePair</s:label>
<s:comment>A UTF8-string pair is an "Attribute":"Value"
pair.</s:comment>
</s:Class>
<!-- "ServerRecords" class -->
<s:Class r:ID="ServerRecords">
<s:label>ServerRecords</s:label>
<s:comment></s:comment>
<s:subClassOf r:resource="&rdf;Collection"/>
</s:Class>
<!-- "ServerRecord" class -->
<s:Class r:ID="ServerRecord">
<s:label>ServerRecord</s:label>
<s:comment></s:comment>
</s:Class>
<!-- "ServiceInterface" class -->
<s:Class r:ID="ServiceInterface">
<s:label>ServiceInterface</s:label>
<s:comment></s:comment>
</s:Class>
<!--
Object Properties - HS_SITE
-->
<!-- "primaryMask" property -->
<r:Property r:ID="primaryMask">
<s:label>primaryMask</s:label>
<s:comment>Property attributing a "PrimaryMask" object.</s:comment>
<s:domain r:resource="#HS_SITE"/>
<s:range r:resource="#PrimaryMask"/>
</r:Property>
<!-- "serverRecords" property -->
<r:Property r:ID="serverRecords">
<s:label>serverRecords</s:label>
<s:comment>Property attributing a "ServerRecords" object.</s:comment>
<s:domain r:resource="#HS_ADMIN"/>
<s:range r:resource="#ServerRecords"/>
</r:Property>
<!-- "serverRecord" property -->
<r:Property r:ID="serverRecord">
<s:label>serverRecord</s:label>
<s:comment>Property attributing a "ServerRecord" object.</s:comment>
<s:domain r:resource="#ServerRecords"/>
<s:range r:resource="#ServerRecord"/>
</r:Property>
<!-- "serviceInterface" property -->
<r:Property r:ID="serviceInterface">
<s:label>serviceInterface</s:label>
<s:comment>Property attributing a "ServiceInterface"
object.</s:comment>
<s:domain r:resource="#ServerRecord"/>
<s:range r:resource="#ServiceInterface"/>
</r:Property>
<!--
Datatype Properties - HS_SITE
-->
<!-- "version" property -->
<r:Property r:ID="version">
<s:label>version</s:label>
<s:comment>Property attributing a "Version" field. A 2-byte value
that identifies the version number of the HS_SITE.</s:comment>
<s:domain r:resource="#HS_SITE"/>
<s:range r:resource="&xsd;nonNegativeInteger"/>
</r:Property>
<!-- "protocolVersion" property -->
<r:Property r:ID="protocolVersion">
<s:label>protocolVersion</s:label>
<s:comment>Property attributing a "ProtocolVersion" field. A 2-byte
integer value that identifies the handle protocol version.</s:comment>
<s:domain r:resource="#HS_SITE"/>
<s:range r:resource="&xsd;unsignedByte"/>
</r:Property>
<!-- "serialNumber" property -->
<r:Property r:ID="serialNumber">
<s:label>serialNumber</s:label>
<s:comment>Property attributing a "SerialNumber" field. A 2-byte
integer value that increases by 1 (and may wrap around through 0)
each time the HS_SITE value gets changed.</s:comment>
<s:domain r:resource="#HS_SITE"/>
<s:range r:resource="&xsd;nonNegativeInteger"/>
</r:Property>
<!-- "multiPrimary" property -->
<r:Property r:ID="multiPrimary">
<s:label>multiPrimary</s:label>
<s:comment>Property attributing a "MultiPrimary" object.</s:comment>
<s:domain r:resource="#PrimaryMask"/>
<s:range r:resource="&xsd;boolean"/>
</r:Property>
<!-- "primarySite" property -->
<r:Property r:ID="primarySite">
<s:label>primarySite</s:label>
<s:comment>Property attributing a "PrimarySite" object.</s:comment>
<s:domain r:resource="#PrimaryMask"/>
<s:range r:resource="&xsd;boolean"/>
</r:Property>
<!-- "hashOption" property -->
<r:Property r:ID="hashOption">
<s:label>hashOption</s:label>
<s:comment>Property attributing a "HashOption" field. An 8-bit octet
that identifies the hash option used by the service site to
distribute handles among its servers.</s:comment>
<s:domain r:resource="#HS_SITE"/>
<s:range r:resource="&xsd;token"/>
</r:Property>
<!-- "hashFilter" property -->
<r:Property r:ID="hashFilter">
<s:label>hashFilter</s:label>
<s:comment>Property attributing a "HashFilter" object. An UTF8-string
entry reserved for future use.</s:comment>
<s:domain r:resource="#HS_SITE"/>
<s:range r:resource="&xsd;unsignedByte"/>
</r:Property>
<!-- "attributeList" property -->
<r:Property r:ID="attributeList">
<s:label>attributeList</s:label>
<s:comment>Property attributing an "attributeList" object. A 4-byte
integer followed by a list of UTF8-string pairs.</s:comment>
<s:domain r:resource="#HS_SITE"/>
<s:range r:resource="#AttributeList"/>
</r:Property>
<!-- "attributeCount" property -->
<r:Property r:ID="attributeCount">
<s:label>attributeCount</s:label>
<s:comment>Property attributing an "AttributeCount" value. The
integer indicates the number of UTF8-string pairs that
follow.</s:comment>
<s:domain r:resource="#AttributeList"/>
<s:range r:resource="&xsd;nonNegativeInteger"/>
</r:Property>
<!-- "attributePair" property -->
<r:Property r:ID="attributePair">
<s:label>attributePair</s:label>
<s:comment>Property attributing an "AttributePair" value. Each
UTF8-string pair is an "attribute":"value" pair.</s:comment>
<s:domain r:resource="#AttributeList"/>
<s:range r:resource="&xsd;nonNegativeInteger"/>
</r:Property>
<!-- "attribute" property -->
<r:Property r:ID="attribute">
<s:label>attribute</s:label>
<s:comment>Property attributing an "Attribute" object.</s:comment>
<s:domain r:resource="#AttributePair"/>
<s:range r:resource="&xsd;string"/>
</r:Property>
<!-- "value" property -->
<r:Property r:ID="value">
<s:label>value</s:label>
<s:comment>Property attributing a "Value" object.</s:comment>
<s:domain r:resource="#AttributePair"/>
<s:range r:resource="&xsd;string"/>
</r:Property>
<!-- "numOfServer" property -->
<r:Property r:ID="numOfServer">
<s:label>numOfServer</s:label>
<s:comment>Property attributing an "NumOfServer" object.</s:comment>
<s:domain r:resource="#ServerRecords"/>
<s:range r:resource="&xsd;nonNegativeInteger"/>
</r:Property>
<!-- "serverID" property -->
<r:Property r:ID="serverID">
<s:label>serverID</s:label>
<s:comment>Property attributing a "ServerID" object.</s:comment>
<s:domain r:resource="#ServerRecord"/>
<s:range r:resource="&xsd;nonNegativeInteger"/>
</r:Property>
<!-- "address" property -->
<r:Property r:ID="address">
<s:label>address</s:label>
<s:comment>Property attributing an "Address" object.</s:comment>
<s:domain r:resource="#ServerRecord"/>
<s:range r:resource="&xsd;string"/>
</r:Property>
<!-- "publicKeyRecord" property -->
<r:Property r:ID="publicKeyRecord">
<s:label>publicKeyRecord</s:label>
<s:comment>Property attributing a "PublicKeyRecord"
object.</s:comment>
<s:domain r:resource="#ServerRecord"/>
<s:range r:resource="&xsd;string"/>
</r:Property>
<!-- "interfaceCounter" property -->
<r:Property r:ID="interfaceCounter">
<s:label>serviceType</s:label>
<s:comment>Property attributing an "InterfaceCounter"
object.</s:comment>
<s:domain r:resource="#ServiceInterface"/>
<s:range r:resource="&xsd;nonNegativeInteger"/>
</r:Property>
<!-- "serviceType" property -->
<r:Property r:ID="serviceType">
<s:label>serviceType</s:label>
<s:comment>Property attributing a "ServiceType" object.</s:comment>
<s:domain r:resource="#ServiceInterface"/>
<s:range r:resource="&xsd;token"/>
</r:Property>
<!-- "transmissionProtocol" property -->
<r:Property r:ID="transmissionProtocol">
<s:label>transmissionProtocol</s:label>
<s:comment>Property attributing a "TransmissionProtocol"
object.</s:comment>
<s:domain r:resource="#ServiceInterface"/>
<s:range r:resource="&xsd;token"/>
</r:Property>
<!-- "portNumber" property -->
<r:Property r:ID="portNumber">
<s:label>portNumber</s:label>
<s:comment>Property attributing a "PortNumber" object.</s:comment>
<s:domain r:resource="#ServiceInterface"/>
<s:range r:resource="&xsd;nonNegativeInteger"/>
</r:Property>
<!--
########################################################################
## 3.2.3. Naming Authority Delegation: HS_NA_DELEGATE (p. 19) [2f]
##
## [2f] http://www.apps.ietf.org/rfc/rfc3651.html#sec-3.2.3
########################################################################
-->
<!-- "HS_NA_DELEGATE" class (pre-defined HS type) -->
<s:Class r:ID="HS_NA_DELEGATE">
<s:label>HS_NA_DELEGATE</s:label>
<s:comment>HS_NA_DELEGATE is a pre-defined Handle System data type
which may be assigned to naming authority handles to designate
naming authority administration to a LHS. It has the exact same
format as the HS_SITE value.</s:comment>
</s:Class>
<!--
########################################################################
## 3.2.4. Service Handle: HS_SERV (p. 20) [2g]
##
## [2g] http://www.apps.ietf.org/rfc/rfc3651.html#sec-3.2.4
########################################################################
-->
<!--
Classes - HS_SERV
-->
<!-- "HS_SERV" class (pre-defined HS type) -->
<s:Class r:ID="HS_SERV">
<s:label>HS_SERV</s:label>
<s:comment>HS_SERV is a pre-defined Handle System data type which
may be used to maintain the HS_SITE values for a handle service
and is referenced from a naming authority handle via a HS_SERV
value. A HS_SERV value is a handle value whose "type" field is
HS_SERV and whose "data" field contains the reference to the
service handle.</s:comment>
</s:Class>
<!--
Datatype Properties - HS_SERV
-->
<!-- "service" property -->
<r:Property r:ID="service">
<s:label>service</s:label>
<s:comment>Property attributing a "Service" object.</s:comment>
<s:domain r:resource="#HS_SERV"/>
<s:range r:resource="#Handle"/>
</r:Property>
<!--
########################################################################
## 3.2.5. Alias Handle: HS_ALIAS (p. 21) [2h]
##
## [2h] http://www.apps.ietf.org/rfc/rfc3651.html#sec-3.2.5
########################################################################
-->
<!--
Classes - HS_ALIAS
-->
<!-- "HS_ALIAS" class (pre-defined HS type) -->
<s:Class r:ID="HS_ALIAS">
<s:label>HS_ALIAS</s:label>
<s:comment>HS_ALIAS is a pre-defined Handle System data type which
allows a handle to provide an alternate name for a digital object
already referenced by a handle. An HS_ALIAS value is a handle
value whose "type" field is HS_ALIAS and whose "data" field
contains a reference to another handle.</s:comment>
</s:Class>
<!--
Datatype Properties - HS_ALIAS
-->
<!-- "alias" property -->
<r:Property r:ID="alias">
<s:label>alias</s:label>
<s:comment>Property attributing a "Alias" object.</s:comment>
<s:domain r:resource="#HS_ALIAS"/>
<s:range r:resource="#HandleReference"/>
</r:Property>
<!--
########################################################################
## 3.2.6. Primary Site: HS_PRIMARY (p. 21) [2i]
##
## [2i] http://www.apps.ietf.org/rfc/rfc3651.html#sec-3.2.6
########################################################################
-->
<!--
Classes - HS_PRIMARY
-->
<!-- "HS_PRIMARY" class (pre-defined HS type) -->
<s:Class r:ID="HS_PRIMARY">
<s:label>HS_PRIMARY</s:label>
<s:comment>HS_PRIMARY is a pre-defined Handle System data type used
to designate the primary service sites for any given handle. A
HS_PRIMARY value is a handle value whose "type" field is HS_PRIMARY
and whose "data" field contains a list of references to HS_SITE
values.</s:comment>
</s:Class>
<!--
Datatype Properties - HS_PRIMARY
~
-->
<!-- "primary" property -->
<r:Property r:ID="primary">
<s:label>primary</s:label>
<s:comment>Property attributing a "Primary" object.</s:comment>
<s:domain r:resource="#HS_PRIMARY"/>
<s:range r:resource="#Handle"/>
</r:Property>
<!--
########################################################################
## 3.2.7. Handle Value List: HS_VLIST (p. 22) [2j]
##
## [2j] http://www.apps.ietf.org/rfc/rfc3651.html#sec-3.2.7
########################################################################
-->
<!--
Classes - HS_VLIST
-->
<!-- "HS_VLIST" class (pre-defined HS type) -->
<s:Class r:ID="HS_VLIST">
<s:label>HS_VLIST</s:label>
<s:subClassOf>&rdf;Collection</s:subClassOf>
<s:comment>HS_VLIST is a pre-defined Handle System data type that
allows a handle value to be used as a reference to a list of other
handle values. An HS_VLIST value is a handle value whose "type" is
HS_VLIST and whose "data" consists of a 4-byte unsigned integer
followed by a list of references to other handle
values.</s:comment>
</s:Class>
<!-- "ValueReference" class -->
<s:Class r:ID="ValueReference">
<s:label>ValueReference</s:label>
<s:comment></s:comment>
</s:Class>
<!--
Datatype Properties - HS_VLIST
-->
<!-- "valueReference" property -->
<r:Property r:ID="valueReference">
<s:label>valueReference</s:label>
<s:comment>Property attributing a "ValueReference" object.</s:comment>
<s:domain r:resource="#HS_VLIST"/>
<s:range r:resource="#HandleReference"/>
</r:Property>
</r:RDF>
<!--
########################################################################
## EOF
########################################################################
-->