<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="/transform"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
      xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
      xmlns:xsd="http://www.w3.org/2001/XMLSchema#"
      xmlns:owl="http://www.w3.org/2002/07/owl#"
      xmlns:sh="http://www.w3.org/ns/shacl#"
      xmlns:xhv="http://www.w3.org/1999/xhtml/vocab#"
      xmlns:dct="http://purl.org/dc/terms/"
      xmlns:skos="http://www.w3.org/2004/02/skos/core#"
      xmlns:prov="http://www.w3.org/ns/prov#"
      xmlns:dcat="http://www.w3.org/ns/dcat#"
      xmlns:bibo="http://purl.org/ontology/bibo/"
      xmlns:bs="http://purl.org/ontology/bibo/status/"
      xmlns:foaf="http://xmlns.com/foaf/0.1/"
      xmlns:vann="http://purl.org/vocab/vann/"
      xmlns:tfo="https://vocab.methodandstructure.com/transformation#"
      xmlns:itcv="https://vocab.methodandstructure.com/intertwingler#"
      prefix="rdf: http://www.w3.org/1999/02/22-rdf-syntax-ns# rdfs: http://www.w3.org/2000/01/rdf-schema# xsd: http://www.w3.org/2001/XMLSchema# owl: http://www.w3.org/2002/07/owl# sh: http://www.w3.org/ns/shacl# xhv: http://www.w3.org/1999/xhtml/vocab# dct: http://purl.org/dc/terms/ skos: http://www.w3.org/2004/02/skos/core# prov: http://www.w3.org/ns/prov# dcat: http://www.w3.org/ns/dcat# bibo: http://purl.org/ontology/bibo/ bs: http://purl.org/ontology/bibo/status/ foaf: http://xmlns.com/foaf/0.1/ vann: http://purl.org/vocab/vann/ tfo: https://vocab.methodandstructure.com/transformation# itcv: https://vocab.methodandstructure.com/intertwingler#"
      vocab="http://www.w3.org/1999/xhtml/vocab#" xml:lang="en">
  <head>
    <title about="#" property="dct:title">Intertwingler Configuration Vocabulary</title>
    <base href="https://vocab.methodandstructure.com/intertwingler"/>
    <meta about="#" property="vann:preferredNamespacePrefix" content="itcv" datatype="xsd:token"/>
    <link about="#" rel="rdfs:isDefinedBy bibo:uri" href="#"/>
    <link rel="bibo:status" href="http://purl.org/ontology/bibo/status/draft"/>
    <link rel="up top contents index" href="/"/>
  </head>
  <body typeof="bibo:Specification">
    <div rel="foaf:primaryTopic" resource="#" typeof="owl:Ontology">
      <dl>
        <dt>Author</dt>
        <dd><a rel="dct:creator" href="https://doriantaylor.com/person/dorian-taylor#me" typeof="foaf:Person"><span property="foaf:name">Dorian Taylor</span></a></dd>
        <dt>Created</dt>
        <dd property="dct:created" datatype="xsd:dateTime" content="2023-09-06T21:14:10Z">September 6, 2023</dd>
        <dt>Updated</dt>
        <dd property="dct:modified" datatype="xsd:dateTime" content="2023-10-09T19:04:07Z">October 9, 2023</dd>
        <dd property="dct:modified" datatype="xsd:dateTime" content="2023-10-29T19:43:48Z">October 29, 2023</dd>
        <dd property="dct:modified" datatype="xsd:dateTime" content="2023-11-18T19:28:38Z">November 18, 2023</dd>
        <dd property="dct:modified" datatype="xsd:dateTime" content="2024-11-08T05:06:04Z">November 8, 2024</dd>
        <dt>Namespace URI</dt>
        <dd><a href="#"><code>https://vocab.methodandstructure.com/intertwingler#</code></a></dd>
        <dt>Preferred Namespace Prefix</dt>
        <dd><code about="#" property="vann:preferredNamespacePrefix" datatype="xsd:token">itcv</code></dd>
      </dl>
      <p property="rdfs:comment dct:description">This document specifies the on-line configuration vocabulary for <a rel="dct:subject" href="https://intertwingler.net/">Intertwingler</a>, a <dfn>dense hypermedia</dfn> engine.</p>
      <p>This ontology works in conjunction with the <a rel="owl:imports" href="/transformation#"><span property="dct:title">Transformation Functions Ontology</span></a> to organize handlers and transforms for <a rel="dct:subject" href="https://intertwingler.net/"><code>Intertwingler</code></a>.</p>
    </div>
    <section id="ch.classes">
      <h2>Classes</h2>
      <figure>
        <object type="image/svg+xml" data="intertwingler-classes.svg"><img src="intertwingler-classes" alt=""/></object>
      </figure>
      <section id="sec.handlers">
	<h3>Handlers</h3>
	<section id="Handler" about="[itcv:Handler]" typeof="owl:Class">
          <h4 property="rdfs:label"><code>Handler</code></h4>
          <p property="rdfs:comment">An <code>itcv:Handler</code> is the basic unit of functionality in Intertwingler. Handlers are <dfn>microservices</dfn> that serve one or more <abbr>URIs</abbr> via one or more <abbr>HTTP</abbr> request methods.</p>
          <dl>
            <dt>Subclass of:</dt>
            <dd><a rel="rdfs:subClassOf" href="transformation#Bundle"><code>tfo:Bundle</code></a></dd>
            <dt>Properties:</dt>
            <dd><a rev="rdfs:domain" href="#queue"><code>itcv:queue</code></a></dd>
            <dd><a rev="rdfs:domain" href="#response-queue"><code>itcv:response-queue</code></a></dd>
	    <dd><a href="transformation#parameter"><code><em>tfo:parameter</em></code></a></dd>
	    <dd><a href="transformation#parameter-list"><code><em>tfo:parameter-list</em></code></a></dd>
          </dl>
          <p><a rel="rdfs:isDefinedBy" href="#">Back to Top</a></p>
	</section>
	<section id="Transform" about="[itcv:Transform]" typeof="owl:Class">
          <h4 property="rdfs:label"><code>Transform</code></h4>
          <p property="rdfs:comment">An <code>itcv:Transform</code> is a special-purpose <code>itcv:Handler</code> that encapsulates a set of <em>actual</em> transformation functions, identified by their <abbr>URIs</abbr>, that interact via <abbr>HTTP</abbr> <code>POST</code>.</p>
          <aside role="note" property="skos:note">
            <p>The <code>itcv:Transform</code> class is different from the <code>tfo:Transform</code> insofar as the former is a <em>handler</em>, a potentially stand-alone <dfn>microservice</dfn> that bundles together a set of individual service <dfn>endpoints</dfn>, while the latter describes the individual service endpoints themselves.</p>
          </aside>
          <dl>
            <dt>Subclass of:</dt>
            <dd><a rel="rdfs:subClassOf" href="#Handler"><code>itcv:Handler</code></a></dd>
            <dt>See also:</dt>
            <dd><a rel="rdfs:seeAlso" href="/transformation#Transform"><code>tfo:Transform</code></a></dd>
            <!--
		<dt>Properties:</dt>
		<dd><a rev="rdfs:domain" href="#initial"><code>initial</code></a></dd>
		<dd><a rev="rdfs:domain" href="#replace-with"><code>replace-with</code></a></dd>
		<dd><a rev="rdfs:domain" href="#append"><code>append</code></a></dd>
		<dd><a rev="rdfs:domain" href="#prepend"><code>prepend</code></a></dd>-->
          </dl>
          <p><a rel="rdfs:isDefinedBy" href="#">Back to Top</a></p>
	</section>
	<section id="Engine" about="[itcv:Engine]" typeof="owl:Class">
          <h4 property="rdfs:label"><code>Engine</code></h4>
          <p property="rdfs:comment">An <code>itcv:Engine</code> is <em>the</em> (as in the only one per site) specialized <code>itcv:Handler</code> that is responsible for marshalling all other handlers and transforms.</p>
          <dl>
            <dt>Subclass of:</dt>
            <dd><a rel="rdfs:subClassOf" href="#Handler"><code>itcv:Handler</code></a></dd>
            <dt>Properties:</dt>
            <dd><a rev="rdfs:domain" href="#resolver"><code>itcv:resolver</code></a></dd>
            <dd><a rev="rdfs:domain" href="#handler"><code>itcv:handler</code></a></dd>
            <dd><a rev="rdfs:domain" href="#handler-list"><code>itcv:handler-list</code></a></dd>
            <dd><a rev="rdfs:domain" href="#request-queue"><code>itcv:request-queue</code></a></dd>
          </dl>
          <p><a rel="rdfs:isDefinedBy" href="#">Back to Top</a></p>
	</section>
	<section id="Instance" about="[itcv:Instance]" typeof="owl:Class">
          <h4 property="rdfs:label"><code>Instance</code></h4>
          <p property="rdfs:comment">An <code>itcv:Instance</code> represents an instantiated handler object. It exists as a vehicle for initialization parameters to be specified in configuration data.</p>
          <dl>
            <!--<dt>Subclass of:</dt>
            <dd><a rel="rdfs:subClassOf" href="#Handler"><code>itcv:Handler</code></a></dd>-->
            <dt>Properties:</dt>
            <dd><a rev="rdfs:domain" href="#of"><code>itcv:of</code></a></dd>
          </dl>
          <p><a rel="rdfs:isDefinedBy" href="#">Back to Top</a></p>
	</section>
      </section>
      <section>
	<h3>Engine Configuration</h3>
	<section id="Resolver" about="[itcv:Resolver]" typeof="owl:Class">
          <h4 property="rdfs:label"><code>Resolver</code></h4>
          <p property="rdfs:comment">An <code>itcv:Engine</code> has an <code>itcv:Resolver</code> for each website under its management. Resolvers map the dereferenceable&#x2014;yet <em>perishable</em>&#x2014;Web addresses to more durable identifiers like UUIDs and cryptographic hashes, as well as determine how to treat certain classes of resource, i.e., whether <q>sovereign</q> document or fragment thereof.</p>
          <dl>
            <dt>Properties:</dt>
            <dd><a rev="rdfs:domain" href="#manages"><code>itcv:manages</code></a></dd>
            <dd><a rev="rdfs:domain" href="#prefix"><code>itcv:prefix</code></a></dd>
            <dd><a rev="rdfs:domain" href="#document"><code>itcv:document</code></a></dd>
            <dd><a rev="rdfs:domain" href="#fragment-spec"><code>itcv:fragment-spec</code></a></dd>
            <dd><a rev="rdfs:domain" href="#fragment-list"><code>itcv:fragment-list</code></a></dd>
          </dl>
          <p><a rel="rdfs:isDefinedBy" href="#">Back to Top</a></p>
	</section>
	<section id="HandlerList" about="[itcv:HandlerList]" typeof="owl:Class">
          <h4 property="rdfs:label"><code>HandlerList</code></h4>
          <p property="rdfs:comment">An <code>itcv:HandlerList</code> is a list of handlers and only handlers.</p>
          <dl>
            <dt>Subclass of:</dt>
            <dd><a rel="rdfs:subClassOf" resource="rdf:List" href="https://www.w3.org/TR/rdf-schema/#ch_list"><code>rdf:List</code></a></dd>
            <dt>Property restrictions:</dt>
            <dd rel="rdfs:subClassOf" resource="_:op1">
              <a rel="owl:onProperty" resource="rdf:first" href="https://www.w3.org/TR/rdf-schema/#ch_first"><code>rdf:first</code></a> &#x2208; <a rel="owl:allValuesFrom" href="#Handler"><code>itcv:Handler</code></a>
            </dd>
            <dd rel="rdfs:subClassOf" resource="_:op2">
              <a rel="owl:onProperty" resource="rdf:rest" href="https://www.w3.org/TR/rdf-schema/#ch_rest"><code>rdf:rest</code></a> &#x2208;
              <span rel="owl:allValuesFrom" resource="_:uo1">
		<span rel="owl:unionOf" resource="_:q1">(<a rel="rdf:first" href="#HandlerList"><code>itcv:HandlerList</code></a> <span about="_:q1" rel="rdf:rest" resource="_:q2">&#x222a;</span>
		<span about="_:q2" rel="rdf:first" resource="_:hv1">{<a rel="owl:hasValue" resource="rdf:nil" href="https://www.w3.org/TR/rdf-schema/#ch_nil"><code>rdf:nil</code></a>}<span about="_:q2" rel="rdf:rest" resource="rdf:nil">)</span></span>
		</span>
              </span>
            </dd>
          </dl>
          <p><a rel="rdfs:isDefinedBy" href="#">Back to Top</a></p>
	</section>
	<section id="FragmentList" about="[itcv:FragmentList]" typeof="owl:Class">
          <h4 property="rdfs:label"><code>FragmentList</code></h4>
          <p property="rdfs:comment">An <code>itcv:FragmentList</code> is a list of fragments and only fragments.</p>
          <dl>
            <dt>Subclass of:</dt>
            <dd><a rel="rdfs:subClassOf" resource="rdf:List" href="https://www.w3.org/TR/rdf-schema/#ch_list"><code>rdf:List</code></a></dd>
            <dt>Property restrictions:</dt>
            <dd rel="rdfs:subClassOf" resource="_:Ek2vMqhczAS47dDps8jMHK">
              <a rel="owl:onProperty" resource="rdf:rest" href="https://www.w3.org/TR/rdf-schema/#ch_rest"><code>rdf:rest</code></a> &#x2208;
              <span rel="owl:allValuesFrom" resource="_:EDH1Pu2CLR0UcP3ruqS0WJ">
		<span rel="owl:unionOf" resource="_:EFNairIJBEcuyeqMUhxNSI">(<a rel="rdf:first" href="#FragmentList"><code>itcv:FragmentList</code></a> <span about="_:EFNairIJBEcuyeqMUhxNSI" rel="rdf:rest" resource="_:EcsJIlAboV0u-cVjx_cxSK">&#x222a;</span>
		<span about="_:EcsJIlAboV0u-cVjx_cxSK" rel="rdf:first" resource="_:EokiswwNRR4Nqyww5XrRsL">{<a rel="owl:hasValue" resource="rdf:nil" href="https://www.w3.org/TR/rdf-schema/#ch_nil"><code>rdf:nil</code></a>}<span about="_:EcsJIlAboV0u-cVjx_cxSK" rel="rdf:rest" resource="rdf:nil">)</span></span>
		</span>
              </span>
            </dd>
          </dl>
          <p><a rel="rdfs:isDefinedBy" href="#">Back to Top</a></p>
	</section>
	<section id="FragmentSpecifier" about="[itcv:FragmentSpecifier]" typeof="owl:Class">
          <h4 property="rdfs:label"><code>FragmentSpecifier</code></h4>
          <p property="rdfs:comment">A fragment specifier tells a resolver to treat a particular class of resource as a document <em>fragment</em>, rather than a full document, as well how to relate said fragment to a host document.</p>
          <dl>
            <dt>Properties:</dt>
            <dd><a rev="rdfs:domain" href="#fragment-class"><code>itcv:fragment-class</code></a></dd>
            <dd><a rev="rdfs:domain" href="#host-class"><code>itcv:host-class</code></a></dd>
            <dd><a rev="rdfs:domain" href="#except-class"><code>itcv:except-class</code></a></dd>
            <dd><a rev="rdfs:domain" href="#via"><code>itcv:via</code></a></dd>
            <dd><a rev="rdfs:domain" href="#supersedes"><code>itcv:supersedes</code></a></dd>
          </dl>
          <p><a rel="rdfs:isDefinedBy" href="#">Back to Top</a></p>
	</section>
	<section id="PathList" about="[itcv:PathList]" typeof="owl:Class">
          <h4 property="rdfs:label"><code>PathList</code></h4>
          <p property="rdfs:comment">An <code>itcv:PathList</code> is a list of <code>itcv:path</code>s.</p>
          <dl>
            <dt>Subclass of:</dt>
            <dd><a rel="rdfs:subClassOf" resource="rdf:List" href="https://www.w3.org/TR/rdf-schema/#ch_list"><code>rdf:List</code></a></dd>
            <dt>Property restrictions:</dt>
	    <dd rel="rdfs:subClassOf" resource="_:Ew1njmyZHOaueowaesm-ZI">
	      <a rel="owl:onProperty" resource="rdf:first" href="https://www.w3.org/TR/rdf-schema/#ch_first"><code>rdf:first</code></a> &#x2208; <a rel="owl:allValuesFrom" href="#path"><code>itcv:path</code></a>
	    </dd>
            <dd rel="rdfs:subClassOf" resource="_:EIfcT2vIXILMcF2y0KJWtJ">
              <a rel="owl:onProperty" resource="rdf:rest" href="https://www.w3.org/TR/rdf-schema/#ch_rest"><code>rdf:rest</code></a> &#x2208;
              <span rel="owl:allValuesFrom" resource="_:ELSIlBbUfmgRfxonYO4QwK">
		<span rel="owl:unionOf" resource="_:EKoIDsKdIBmvwZmsJH9ruJ">(<a rel="rdf:first" href="#PathList"><code>itcv:PathList</code></a> <span about="_:EKoIDsKdIBmvwZmsJH9ruJ" rel="rdf:rest" resource="_:ELi3urJPjH5UU0b8a9y3KK">&#x222a;</span>
		<span about="_:ELi3urJPjH5UU0b8a9y3KK" rel="rdf:first" resource="_:Ez7fTcL41f_3zqv7up0x3I">{<a rel="owl:hasValue" resource="rdf:nil" href="https://www.w3.org/TR/rdf-schema/#ch_nil"><code>rdf:nil</code></a>}<span about="_:ELi3urJPjH5UU0b8a9y3KK" rel="rdf:rest" resource="rdf:nil">)</span></span>
		</span>
              </span>
            </dd>
          </dl>
          <p><a rel="rdfs:isDefinedBy" href="#">Back to Top</a></p>
	</section>
      </section>
    </section>
    <section id="ch.properties">
      <h2>Properties</h2>
      <figure>
        <object type="image/svg+xml" data="intertwingler-properties.svg"><img src="intertwingler-properties" alt=""/></object>
      </figure>
      <section id="sec.describing-resolvers">
        <h3>Describing Resolvers</h3>
        <p>At the core of the <code>Intertwingler</code> engine is at least one resolver that maps <abbr><abbr>HTTP</abbr>(S)</abbr> <abbr>URIs</abbr> to more durable underlying identifiers. The resolver also manages prefix mappings for namespaces, as well as a mapping of <abbr>RDF</abbr> classes to entire documents versus fragment identifiers.</p>
        <section id="resolver" about="[itcv:resolver]" typeof="owl:ObjectProperty">
          <h4 property="rdfs:label"><code>resolver</code></h4>
          <p property="rdfs:comment">This property maps the <code>itcv:Engine</code> to an <code>itcv:Resolver</code>.</p>
          <dl>
            <dt>Domain:</dt>
            <dd><a rel="rdfs:domain" href="#Engine"><code>itcv:Engine</code></a></dd>
            <dt>Range:</dt>
            <dd><a rel="rdfs:range" href="#Resolver"><code>itcv:Resolver</code></a></dd>
          </dl>
          <p><a rel="rdfs:isDefinedBy" href="#">Back to Top</a></p>
        </section>
        <section id="manages" about="[itcv:manages]" typeof="owl:ObjectProperty owl:FunctionalProperty">
          <h4 property="rdfs:label"><code>manages</code></h4>
          <p property="rdfs:comment">Denotes the base <abbr>URI</abbr> under management from this resolver.</p>
          <dl>
            <dt>Domain:</dt>
            <dd><a rel="rdfs:domain" href="#Resolver"><code>itcv:Resolver</code></a></dd>
          </dl>
          <p><a rel="rdfs:isDefinedBy" href="#">Back to Top</a></p>
        </section>
        <section id="alias" about="[itcv:alias]" typeof="owl:ObjectProperty owl:FunctionalProperty">
          <h4 property="rdfs:label"><code>alias</code></h4>
          <p property="rdfs:comment">Denotes, ultimately, an <abbr>HTTP</abbr> <code>Host:</code> header that is an acceptable substitute for the authority under management.</p>
          <dl>
            <dt>Domain:</dt>
            <dd><a rel="rdfs:domain" href="#Resolver"><code>itcv:Resolver</code></a></dd>
          </dl>
          <p><a rel="rdfs:isDefinedBy" href="#">Back to Top</a></p>
        </section>
        <section id="prefix" about="[itcv:prefix]" typeof="owl:ObjectProperty">
          <h4 property="rdfs:label"><code>prefix</code></h4>
          <p property="rdfs:comment">This is a prefix declaration borrowed from <abbr>SHACL</abbr>.</p>
          <dl>
            <dt>Domain:</dt>
            <dd><a rel="rdfs:domain" href="#Resolver"><code>itcv:Resolver</code></a></dd>
            <dt>Range:</dt>
            <dd><a rel="rdfs:range" resource="sh:PrefixDeclaration" href="https://www.w3.org/TR/shacl/#sparql-prefixes"><code>sh:PrefixDeclaration</code></a></dd>
          </dl>
          <p><a rel="rdfs:isDefinedBy" href="#">Back to Top</a></p>
        </section>
        <section id="vocab" about="[itcv:vocab]" typeof="owl:DatatypeProperty owl:FunctionalProperty">
          <h4 property="rdfs:label"><code>vocab</code></h4>
          <p property="rdfs:comment">Defines the null prefix vocabulary, e.g. for use with <abbr>RDFa</abbr>.</p>
          <dl>
            <dt>Domain:</dt>
            <dd><a rel="rdfs:domain" href="#Resolver"><code>itcv:Resolver</code></a></dd>
            <dt>Range:</dt>
            <dd><a rel="rdfs:range" resource="xsd:anyURI" href="https://www.w3.org/TR/xmlschema-2/#anyURI"><code>xsd:anyURI</code></a></dd>
          </dl>
          <p><a rel="rdfs:isDefinedBy" href="#">Back to Top</a></p>
        </section>
        <section id="document" about="[itcv:document]" typeof="owl:ObjectProperty">
          <h4 property="rdfs:label"><code>document</code></h4>
          <p property="rdfs:comment">Denotes a class which is always to be treated as a stand-alone document.</p>
          <dl>
            <dt>Domain:</dt>
            <dd><a rel="rdfs:domain" href="#Resolver"><code>itcv:Resolver</code></a></dd>
            <dt>Range:</dt>
            <dd><a rel="rdfs:range" resource="rdfs:Class" href="https://www.w3.org/TR/rdf-schema/#ch_class"><code>rdfs:Class</code></a></dd>
          </dl>
          <p><a rel="rdfs:isDefinedBy" href="#">Back to Top</a></p>
        </section>
        <section id="fragment-spec" about="[itcv:fragment-spec]" typeof="owl:ObjectProperty">
          <h4 property="rdfs:label"><code>fragment-spec</code></h4>
          <p property="rdfs:comment">Denotes an <code>itcv:FragmentSpecifier</code> that describes how a given class is to be treated as a fragment of another document.</p>
          <dl>
            <dt>Domain:</dt>
            <dd><a rel="rdfs:domain" href="#Resolver"><code>itcv:Resolver</code></a></dd>
            <dt>Range:</dt>
            <dd><a rel="rdfs:range" href="#FragmentSpecifier"><code>itcv:FragmentSpecifier</code></a></dd>
          </dl>
          <p><a rel="rdfs:isDefinedBy" href="#">Back to Top</a></p>
        </section>
        <section id="fragment-list" about="[itcv:fragment-list]" typeof="owl:ObjectProperty">
          <h4 property="rdfs:label"><code>fragment-list</code></h4>
          <p property="rdfs:comment">Denotes an ordered list of <code>itcv:FragmentSpecifier</code>s that describes how a given class is to be treated as a fragment of another document.</p>
          <dl>
            <dt>Domain:</dt>
            <dd><a rel="rdfs:domain" href="#Resolver"><code>itcv:Resolver</code></a></dd>
            <dt>Range:</dt>
            <dd><a rel="rdfs:range" href="#FragmentList"><code>itcv:FragmentList</code></a></dd>
          </dl>
          <p><a rel="rdfs:isDefinedBy" href="#">Back to Top</a></p>
        </section>
        <section id="fragment-class" about="[itcv:fragment-class]" typeof="owl:ObjectProperty">
          <h4 property="rdfs:label"><code>fragment-class</code></h4>
          <p property="rdfs:comment">A target class of an <code>itcv:FragmentSpecifier</code>.</p>
          <dl>
            <dt>Domain:</dt>
            <dd><a rel="rdfs:domain" href="#FragmentSpecifier"><code>itcv:FragmentSpecifier</code></a></dd>
            <dt>Range:</dt>
            <dd><a rel="rdfs:range" resource="rdfs:Class" href="https://www.w3.org/TR/rdf-schema/#ch_class"><code>rdfs:Class</code></a></dd>
          </dl>
          <p><a rel="rdfs:isDefinedBy" href="#">Back to Top</a></p>
        </section>
        <section id="host-class" about="[itcv:host-class]" typeof="owl:ObjectProperty">
          <h4 property="rdfs:label"><code>host-class</code></h4>
          <p property="rdfs:comment">Specifies a class of host document.</p>
          <dl>
            <dt>Domain:</dt>
            <dd><a rel="rdfs:domain" href="#FragmentSpecifier"><code>itcv:FragmentSpecifier</code></a></dd>
            <dt>Range:</dt>
            <dd><a rel="rdfs:range" resource="rdfs:Class" href="https://www.w3.org/TR/rdf-schema/#ch_class"><code>rdfs:Class</code></a></dd>
          </dl>
          <p><a rel="rdfs:isDefinedBy" href="#">Back to Top</a></p>
        </section>
        <section id="except-class" about="[itcv:except-class]" typeof="owl:ObjectProperty">
          <h4 property="rdfs:label"><code>except-class</code></h4>
          <p property="rdfs:comment">Specifies an <code>rdfs:Class</code>, e.g. a subclass which is explicitly <em>not</em> a host.</p>
          <dl>
            <dt>Domain:</dt>
            <dd><a rel="rdfs:domain" href="#FragmentSpecifier"><code>itcv:FragmentSpecifier</code></a></dd>
            <dt>Range:</dt>
            <dd><a rel="rdfs:range" resource="rdfs:Class" href="https://www.w3.org/TR/rdf-schema/#ch_class"><code>rdfs:Class</code></a></dd>
          </dl>
          <p><a rel="rdfs:isDefinedBy" href="#">Back to Top</a></p>
        </section>
        <section id="via" about="[itcv:via]" typeof="owl:ObjectProperty">
          <h4 property="rdfs:label"><code>via</code></h4>
          <p property="rdfs:comment">Specifies the relationship between a fragment and its host document.</p>
          <aside role="note">
            <p property="skos:note">Rather than type out a formal definition of the range of this property, note that it is intended to be the same range as a <a href="https://www.w3.org/TR/shacl/#property-paths"><abbr>SHACL</abbr> property path</a> (the <abbr>SHACL</abbr> people didn't formally define this either).</p>
          </aside>
          <dl>
            <dt>Domain:</dt>
            <dd><a rel="rdfs:domain" href="#FragmentSpecifier"><code>itcv:FragmentSpecifier</code></a></dd>
            <dt>See also:</dt>
            <dd><a rel="rdfs:seeAlso" href="https://www.w3.org/TR/shacl/#property-paths"><abbr>SHACL</abbr> property paths</a></dd>
          </dl>
          <p><a rel="rdfs:isDefinedBy" href="#">Back to Top</a></p>
        </section>
        <section id="supersedes" about="[itcv:supersedes]" typeof="owl:ObjectProperty">
          <h4 property="rdfs:label"><code>supersedes</code></h4>
          <p property="rdfs:comment">Identifies a fragment specifier over which the subject is intended to take precedence.</p>
          <dl>
            <dt>Domain:</dt>
            <dd><a rel="rdfs:domain" href="#FragmentSpecifier"><code>itcv:FragmentSpecifier</code></a></dd>
            <dt>Range:</dt>
            <dd><a rel="rdfs:range" href="#FragmentSpecifier"><code>itcv:FragmentSpecifier</code></a></dd>
          </dl>
          <p><a rel="rdfs:isDefinedBy" href="#">Back to Top</a></p>
        </section>
      </section>
      <section id="sec.specifying-handlers">
        <h3>Specifying Handlers</h3>
        <section id="handler" about="[itcv:handler]" typeof="owl:ObjectProperty">
          <h4 property="rdfs:label"><code>handler</code></h4>
          <p property="rdfs:comment">This property relates a handler to the engine.</p>
          <dl>
            <dt>Domain:</dt>
            <dd><a rel="rdfs:domain" href="#Engine"><code>itcv:Engine</code></a></dd>
            <dt>Range:</dt>
            <dd><a rel="rdfs:range" href="#Handler"><code>itcv:Handler</code></a></dd>
          </dl>
          <p><a rel="rdfs:isDefinedBy" href="#">Back to Top</a></p>
        </section>
        <section id="handler-list" about="[itcv:handler-list]" typeof="owl:ObjectProperty owl:FunctionalProperty">
          <h4 property="rdfs:label"><code>handler-list</code></h4>
          <p property="rdfs:comment">This property relates an ordered list of handlers to the engine.</p>
          <dl>
            <dt>Domain:</dt>
            <dd><a rel="rdfs:domain" href="#Engine"><code>itcv:Engine</code></a></dd>
            <dt>Range:</dt>
            <dd><a rel="rdfs:range" href="#HandlerList"><code>itcv:HandlerList</code></a></dd>
          </dl>
          <p><a rel="rdfs:isDefinedBy" href="#">Back to Top</a></p>
        </section>
        <section id="of" about="[itcv:of]" typeof="owl:ObjectProperty owl:FunctionalProperty">
          <h4 property="rdfs:label"><code>of</code></h4>
          <p property="rdfs:comment">This property relates an <code>itcv:Instance</code> to the <code>itcv:Handler</code> to which it is intended to supply parameters.</p>
          <dl>
            <dt>Domain:</dt>
            <dd><a rel="rdfs:domain" href="#Instance"><code>itcv:Instance</code></a></dd>
            <dt>Range:</dt>
            <dd><a rel="rdfs:range" href="#Handler"><code>itcv:Handler</code></a></dd>
            <dt>Cardinality:</dt>
            <dd><code property="owl:cardinality">1</code></dd>
          </dl>
          <p><a rel="rdfs:isDefinedBy" href="#">Back to Top</a></p>
        </section>
      </section>
      <section id="sec.selecting-transformm-queues">
        <h3>Selecting Transform Queues</h3>
        <p></p>
        <section id="queue" about="[itcv:queue]" typeof="owl:ObjectProperty">
          <h4 property="rdfs:label"><code>queue</code></h4>
          <p property="rdfs:comment">This property generically relates a transform queue to a handler without specifying what else to do with it.</p>
          <dl>
            <dt>Domain:</dt>
            <dd><a rel="rdfs:domain" href="#Handler"><code>itcv:Handler</code></a></dd>
            <dt>Range:</dt>
            <dd><a rel="rdfs:range" href="/transformation#Queue"><code>tfo:Queue</code></a></dd>
          </dl>
          <p><a rel="rdfs:isDefinedBy" href="#">Back to Top</a></p>
        </section>
        <section id="request-queue" about="[itcv:request-queue]" typeof="owl:ObjectProperty owl:FunctionalProperty">
          <h4 property="rdfs:label"><code>request-queue</code></h4>
          <p property="rdfs:comment">The engine, which inherits the relation <code>itcv:queue</code>, also has a queue for <em>request</em> transforms.</p>
          <dl>
            <dt>Sub-property of:</dt>
            <dd><a rel="rdfs:subPropertyOf" href="#queue"><code>itcv:queue</code></a></dd>
            <dt>Domain:</dt>
            <dd><a rel="rdfs:domain" href="#Engine"><code>itcv:Engine</code></a></dd>
            <dt>Range:</dt>
            <dd><a rel="rdfs:range" href="/transformation#Queue"><code>tfo:Queue</code></a></dd>
          </dl>
          <p><a rel="rdfs:isDefinedBy" href="#">Back to Top</a></p>
        </section>
        <section id="response-queue" about="[itcv:response-queue]" typeof="owl:ObjectProperty owl:FunctionalProperty">
          <h4 property="rdfs:label"><code>response-queue</code></h4>
          <p property="rdfs:comment">This property denotes the entry point for the response <dfn>transform</dfn> queue associated with the <code>itcv:Handler</code>. It also specifies the default queue associated with the <code>itcv:Engine</code>.</p>
          <dl>
            <dt>Sub-property of:</dt>
            <dd><a rel="rdfs:subPropertyOf" href="#queue"><code>itcv:queue</code></a></dd>
            <dt>Domain:</dt>
            <dd><a rel="rdfs:domain" href="#Handler"><code>itcv:Handler</code></a></dd>
            <dt>Range:</dt>
            <dd><a rel="rdfs:range" href="/transformation#Queue"><code>tfo:Queue</code></a></dd>
          </dl>
          <p><a rel="rdfs:isDefinedBy" href="#">Back to Top</a></p>
        </section>
      </section>
    </section>
    <section id="ch.datatypes">
      <h2>Datatypes</h2>
      <section id="bytes" about="[itcv:bytes]" typeof="rdfs:Datatype">
        <h3><code property="rdfs:label">bytes</code></h3>
        <p property="rdfs:comment">This literal datatype is a human-readable representation of a byte count, with magnitude suffixes.</p>
	<aside role="note">
	  <p property="skos:usageNote">Magnitude suffixes use the convention of lowercase for base 10 and uppercase for base 2.</p>
	</aside>
        <dl>
          <dt>Restriction of:</dt>
          <dd style="text-align: start"><a rel="owl:onDatatype" resource="xsd:token" href="https://www.w3.org/TR/xmlschema-2/#token"><code>xsd:token</code></a> <span rel="owl:withRestrictions" resource="_:rl1">matching</span> <span about="_:rl1" rel="rdf:first"><code about="_:rp1" property="xsd:pattern" datatype="xsd:string">^\d+[KMGTPEkmgtpe]?$</code></span> <span about="_:rl1" rel="rdf:rest" resource="rdf:nil"></span></dd>
          <dt>See Also:</dt>
          <dd><a rel="rdfs:seeAlso" href="https://en.wikipedia.org/wiki/Orders_of_magnitude_(data)">Orders of magnitude (data)</a></dd>
        </dl>
        <p><a rel="rdfs:isDefinedBy" href="#">Back to Top</a></p>
      </section>
      <section id="path" about="[itcv:path]" typeof="rdfs:Datatype">
        <h3><code property="rdfs:label">path</code></h3>
        <p property="rdfs:comment">This literal datatype represents a local file system path which may be absolute, relative, or relative to home (<code>~[user]</code>).</p>
        <dl>
          <dt>Restriction of:</dt>
          <dd><a rel="owl:onDatatype" resource="xsd:string" href="https://www.w3.org/TR/xmlschema-2/#string"><code>xsd:string</code></a></dd>
        </dl>
        <p><a rel="rdfs:isDefinedBy" href="#">Back to Top</a></p>
      </section>
    </section>
    <section id="ch.references">
      <h2>References</h2>
      <ul>
        <li><a about="#" rel="foaf:primaryTopic" href="https://intertwingler.net/">Intertwingler &#x2014; Retrofitting the Web</a></li>
        <li><a about="#" rel="dct:references" href="https://github.com/doriantaylor/rb-intertwingler">Intertwingler reference implementation</a></li>
        <li><a about="#" rel="owl:imports" href="/transformation#">Transformation Functions Ontology</a></li>
        <li><a about="#" rel="owl:imports" resource="sh:" href="https://www.w3.org/TR/shacl/">Shapes Constraint Language (<abbr>SHACL</abbr>)</a></li>
      </ul>
    </section>
  </body>
</html>
