PREFIX hctl: <https://www.w3.org/2019/wot/hypermedia#>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>

hctl:Form a rdfs:Class ;
  rdfs:label "Form" ;
  rdfs:comment "A form can be viewed as a statement of \"To perform an <b><em>operation type</em></b> operation on <b><em>form context</b></em>, make a <b><em>request method</b></em> request to <b><em>submission target</b></em>\" where the optional <b><em>form fields</b></em> may further describe the required request. In Thing Descriptions, the <b><em>form context</b></em> is the surrounding Object, such as Properties, Actions, and Events or the Thing itself for meta-interactions."@en .

hctl:ExpectedResponse a rdfs:Class ;
  rdfs:label "ExpectedResponse" ;
  rdfs:comment "Communication metadata describing the expected response message for the primary response."@en .

hctl:AdditionalExpectedResponse a rdfs:Class ;
  rdfs:label "AdditionalExpectedResponse" ;
  rdfs:comment "Communication metadata describing the expected response message for additional responses."@en .

<https://w3id.org/linkml/Any> a rdfs:Class ;
  rdfs:comment "An unconstrained type or object" .

hctl:Link a rdfs:Class ;
  rdfs:label "Link" ;
  rdfs:comment "A link can be viewed as a statement of the form \"<b><em>link context</em></b>  has a <b><em>relation type</em></b> resource at <b><em>link target</em></b>\", where the optional <b><em>target attributes</em></b>  may further describe the resource."@en .

hctl:additionalReturns a rdf:Property ;
  rdfs:label "additionalReturns" ;
  rdfs:comment """This optional term can be used if additional expected responses
      are possible, e.g. for error reporting.  Each additional response needs to be 
      distinguished from others in some way (for example, by specifying
      a protocol-specific response code), and may also have its own data schema."""@en ;
  rdfs:range <https://w3id.org/linkml/Any> .

hctl:forContentCoding a rdf:Property ;
  rdfs:label "forContentCoding" ;
  rdfs:comment "Content coding values indicate an encoding transformation that has been or can be applied to a representation. Content codings are primarily used to allow a representation to be compressed or otherwise usefully transformed without losing the identity of its underlying media type and without loss of information. Examples of content coding include \"gzip\", \"deflate\", etc. "@en ;
  rdfs:range <https://w3id.org/linkml/Any> .

hctl:forContentType a rdf:Property ;
  rdfs:label "forContentType" ;
  rdfs:comment "Assign a content type based on a media type [[IANA-MEDIA-TYPES]] (e.g., 'text/plain') and potential parameters (e.g., 'charset=utf-8') for the media type."@en ;
  rdfs:range <https://w3id.org/linkml/Any> .

hctl:forSubProtocol a rdf:Property ;
  rdfs:label "forSubProtocol" ;
  rdfs:comment """Indicates the exact mechanism by which an interaction will be accomplished for a given protocol when there are multiple options.
     
For example, for HTTP and Events, it indicates which of several available mechanisms should be used for asynchronous notifications such as long polling, websub (also see https://www.w3.org/TR/websub/), or server sent events (also see https://www.w3.org/TR/eventsource/). Please note that there is no restriction on the sub-protocol selection and other mechanisms can also be announced by this subprotocol term."""@en ;
  rdfs:range <https://w3id.org/linkml/Any> .

hctl:hasAdditionalOutputSchema a rdf:Property ;
  rdfs:label "hasAdditionalOutputSchema" ;
  rdfs:comment """This optional term can be used to define a data schema for
                an additional response if it differs from the default
                output data schema. 
                Rather than a <code>DataSchema</code> object, the
                name of a previous definition given in a 
                <code>schemaDefinitions</code> map must be used."""@en ;
  rdfs:range <https://w3id.org/linkml/Any> .

hctl:hasAnchor a rdf:Property ;
  rdfs:label "hasAnchor" ;
  rdfs:comment "By default, the context, or anchor, of a link conveyed in the Link header field is the URL of the representation it is associated with, as defined in RFC7231, Section 3.1.4.1, and is serialized as a URI." ;
  rdfs:range <https://w3id.org/linkml/Any> .

hctl:hasHreflang a rdf:Property ;
  rdfs:label "hasHreflang" ;
  rdfs:comment "The hreflang attribute specifies the language of a linked document. The value of this must be a valid language tag [[BCP47]]." ;
  rdfs:range <https://w3id.org/linkml/Any> .

hctl:hasOperationType a rdf:Property ;
  rdfs:label "hasOperationType" ;
  rdfs:comment "Indicates the semantic intention of performing the operation(s) described by the form." ;
  rdfs:range <https://w3id.org/linkml/Any> .

hctl:hasRelationType a rdf:Property ;
  rdfs:label "hasRelationType" ;
  rdfs:comment "A link relation type identifies the semantics of a link." ;
  rdfs:range <https://w3id.org/linkml/Any> .

hctl:hasSizes a rdf:Property ;
  rdfs:label "hasSizes" ;
  rdfs:comment "Target attribute that specifies one or more sizes for the referenced icon. Only applicable for relation type 'icon'. The value pattern follows {Height}x{Width} (e.g., \"16x16\", \"16x16 32x32\")" ;
  rdfs:range <https://w3id.org/linkml/Any> .

hctl:hasTarget a rdf:Property ;
  rdfs:label "hasTarget" ;
  rdfs:comment "target IRI of a link or submission target of a form." ;
  rdfs:range <https://w3id.org/linkml/Any> .

hctl:hintsAtMediaType a rdf:Property ;
  rdfs:label "hintsAtMediaType" ;
  rdfs:comment "Target attribute providing a hint indicating what the media type [IANA-MEDIA-TYPES] of the result of dereferencing the link should be." ;
  rdfs:range <https://w3id.org/linkml/Any> .

hctl:isSuccess a rdf:Property ;
  rdfs:label "isSuccess" ;
  rdfs:comment "Signals if the additional response should not be considered an error."@en ;
  rdfs:range <https://w3id.org/linkml/Any> .

hctl:returns a rdf:Property ;
  rdfs:label "returns" ;
  rdfs:comment """This optional term can be used if, e.g., the output communication metadata differ from input metadata (e.g., output contentType differ from the
     input contentType). The response name contains metadata that is only valid for the reponse messages."""@en ;
  rdfs:range <https://w3id.org/linkml/Any> .
