|
HandleSchema
RDF schema for Handle
Handle RDF Schema(This page needs elaboration. The RDFS is included here for convenience. The current schema can be downloaded from 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 <t.hammond@nature.com>
## 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
########################################################################
-->
|
► Sign in to add a comment
(This page needs to be elaborated. Currently the RDFS is included for reference. Note that the RDFS needs versioning.)
<?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 <t.hammond@nature.com> ## 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 ######################################################################## -->