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

ui:Choice a rdfs:Class ;
  rdfs:subClassOf ui:Form , ui:Single .

ui:from a rdf:Property ;
  rdfs:label "from" ;
  rdfs:domain ui:Choice ;
  rdfs:range rdf:Class .

ui:part a rdf:Property ;
  rdfs:label "part"@en ;
  rdfs:domain ui:Form ;
  rdfs:range ui:Form .

ui:property a rdf:Property ;
  rdfs:label "property to be stored"@en ;
  rdfs:comment """Many fields prompt for information about a given property of the subject.
    When field is filled in, this gives which property is written into the data.""" ;
  rdfs:domain ui:Form ;
  rdfs:range rdf:Property .

ui:parts a rdf:Property ;
  rdfs:label "parts"@en ;
  rdfs:domain ui:Form ;
  rdfs:range rdf:Collection .

ui:DateTimeField a rdfs:Class ;
  rdfs:subClassOf ui:ValueField .

ui:size a rdf:Property ;
  rdfs:label "size of field" ;
  rdfs:domain ui:ValueField ;
  rdfs:range xsd:integer .

ui:maxValue a rdf:Property ;
  rdfs:label "max" ;
  rdfs:domain ui:ValueField ;
  rdfs:range <https://w3id.org/linkml/Any> .

ui:minValue a rdf:Property ;
  rdfs:label "min" ;
  rdfs:domain ui:ValueField ;
  rdfs:range <https://w3id.org/linkml/Any> .

ui:Plugin a rdfs:Class ;
  rdfs:label "Plugin"@en ;
  rdfs:comment "A plugin is a widget or app that can be called from a host app either by importing an external URL, by running an internal command, or by adding a custom element (web component) to the DOM." .

rdf:Collection a rdfs:Class .

ui:ColorField a rdfs:Class ;
  rdfs:subClassOf ui:ValueField .

ui:TriStateField a rdfs:Class ;
  rdfs:subClassOf ui:NumericField .

ui:DateField a rdfs:Class ;
  rdfs:subClassOf ui:ValueField .

ui:MultiLineTextField a rdfs:Class ;
  rdfs:subClassOf ui:TextField .

ui:maxLength a rdf:Property ;
  rdfs:label "max length of value" ;
  rdfs:domain ui:TextField ;
  rdfs:range xsd:integer .

rdf:List a rdfs:Class .

ui:TextField a rdfs:Class ;
  rdfs:subClassOf ui:ValueField .

ui:Layout a rdfs:Class ;
  rdfs:label "Layout"@en ;
  rdfs:comment "A rectangular page/screen container whose contained elements render stacked or side by side as determined by its ui:orientation." .

rdfs:Class a rdfs:Class .

ui:annotationForm a rdf:Property ;
  rdfs:label "annotation form" ;
  rdfs:comment """A form which may be used to add more infromation to an
instance of this class which we know something about.  Anything from
adding just add one more fact, to adding a whole lot of information about a specific
facet of the thing.
""" ;
  rdfs:domain rdfs:Class ;
  rdfs:range ui:Form .

ui:initialProperties a rdf:Property ;
  rdfs:label "initial properties" ;
  rdfs:comment """A really simple way of enabling user interfaces to
            create new information about a class of things is to make a define of properties
            to be specified when a information about a new item
            (\"New item\" here means an item which the system
            does not have prvious information about yet,
            not an items which has just been created,
            like new friend as opposed to new baby)""" ;
  rdfs:domain rdfs:Class ;
  rdfs:range rdf:List .

ui:creationForm a rdf:Property ;
  rdfs:label "creation form" ;
  rdfs:comment """A form which may be used to collect information about a
    hitherto locally undocumented instance instance of this class.""" ;
  rdfs:domain rdfs:Class ;
  rdfs:range ui:Form .

ui:sortBy a rdf:Property ;
  rdfs:label "sort by" ;
  rdfs:comment """A property which typically is used to sort
        members of a given class.""" ;
  rdfs:domain rdfs:Class ;
  rdfs:range rdf:Property .

ui:tableProperties a rdf:Property ;
  rdfs:label "table properties" ;
  rdfs:comment """This  is a crude way of specifying a table-based
            view for objects of this class.""" ;
  rdfs:domain rdfs:Class ;
  rdfs:range rdf:List .

ui:Form a rdfs:Class ;
  rdfs:comment """A form can be any type of single field, or typically a Group of several fields,
    including interspersed headings and comments.  """ .

ui:Command a rdfs:Class ;
  rdfs:label "Command"@en ;
  rdfs:comment "A plugin that loads by executing a command in the host script." .

ui:EmailField a rdfs:Class ;
  rdfs:subClassOf ui:ValueField .

ui:DecimalField a rdfs:Class ;
  rdfs:subClassOf ui:NumericField .

ui:PhoneField a rdfs:Class ;
  rdfs:subClassOf ui:ValueField .

ui:Menu a rdfs:Class ;
  rdfs:label "Menu"@en ;
  rdfs:comment "A collection of named actions which may be displayed as a visual menu or set of tabs or other UI." .

ui:ValueField a rdfs:Class ;
  rdfs:subClassOf ui:Form , ui:Single .

ui:Classifier a rdfs:Class ;
  rdfs:label "classifier" ;
  rdfs:comment """A classifier allows the user to select the type of an object.
    The possible types must be subclasses of some overall class, the \"category\".
    (Ideally, the superclass is also set up as the disjoint union of the subclasses,
    if they are disjoint.)

    The form normally stores the resulting classes using an r:type triple,
    but a different predicate can be used if required, so the classifier field
    needs is 'property' defined too.

    If the subclass selected itself is has subclasses defined, the user can
    recursively select from them in turn, as many levels as needed.""" ;
  rdfs:subClassOf ui:Form , ui:Single .

ui:category a rdf:Property ;
  rdfs:label "overall superclass"@en ;
  rdfs:comment "The superclass subclasses of which will be selected." ;
  rdfs:domain ui:Classifier ;
  rdfs:range rdfs:Class .

ui:Component a rdfs:Class ;
  rdfs:label "Component"@en ;
  rdfs:comment "A plugin that loads by including a custom-element web component." .

ui:Options a rdfs:Class ;
  rdfs:subClassOf ui:Form , ui:Single .

ui:dependingOn a rdf:Property ;
  rdfs:label "depending on"@en ;
  rdfs:comment "Many fields prompt for information about a given property of the subject" ;
  rdfs:domain ui:Options ;
  rdfs:range rdf:Property .

ui:NumericField a rdfs:Class ;
  rdfs:subClassOf ui:ValueField .

ui:NamedNodeURIField a rdfs:Class ;
  rdfs:label "Something by its URI" ;
  rdfs:comment """A NamedNodeURIField is like a SingleLineTextField, except
\t\tthat the value it generates is not a literal string but an RDF node with the given URI.
\t\tNormally users should not see URIs. When they do, this a way to do it.
\t\t""" ;
  rdfs:subClassOf ui:TextField .

rdf:Class a rdfs:Class .

ui:FloatField a rdfs:Class ;
  rdfs:subClassOf ui:NumericField .

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

ui:BooleanField a rdfs:Class ;
  rdfs:subClassOf ui:NumericField .

rdf:Property a rdfs:Class .

ui:Single a rdfs:Class .

ui:Link a rdfs:Class ;
  rdfs:label "Link"@en ;
  rdfs:comment "A plugin that loads by including an external IRI e.g. in an iframe or via transclusion." .

ui:IntegerField a rdfs:Class ;
  rdfs:subClassOf ui:NumericField .

ui:TimeField a rdf:Property ;
  rdfs:label "Time field"@en , "Campo de tiempo"@es ;
  rdfs:range <https://w3id.org/linkml/Any> .

ui:backgroundColor a rdf:Property ;
  rdfs:label "background color"@en ;
  rdfs:range ui:Color .

ui:backgroundImage a rdf:Property ;
  rdfs:label "background image"@en ;
  rdfs:comment "URI or base64 representation of an image" ;
  rdfs:range <https://w3id.org/linkml/Any> .

ui:base a rdf:Property ;
  rdfs:label "Base"@en , "Base"@es ;
  rdfs:range <https://w3id.org/linkml/Any> .

ui:color a rdf:Property ;
  rdfs:label "color"@en ;
  rdfs:range ui:Color .

ui:colorScheme a rdf:Property ;
  rdfs:label "color scheme"@en ;
  rdfs:comment "Preferred page color scheme; the value is a ui:ColorScheme instance, e.g. ui:DarkColorScheme." ;
  rdfs:range ui:ColorScheme .

ui:columns a rdf:Property ;
  rdfs:label "columns"@en ;
  rdfs:comment "On a ui:Layout: render the parts as a grid with this many columns." ;
  rdfs:range xsd:integer .

ui:contents a rdf:Property ;
  rdfs:label "Contents"@en , "Contenido"@es ;
  rdfs:range <https://w3id.org/linkml/Any> .

ui:defaultError a rdf:Property ;
  rdfs:label "Default error"@en , "Error predeterminado"@es ;
  rdfs:range <https://w3id.org/linkml/Any> .

ui:editorKeys a rdf:Property ;
  rdfs:label "editor keys"@en ;
  rdfs:comment "Preferred editor keybindings; the value is a ui:EditorKeys instance, e.g. ui:VimKeys." ;
  rdfs:range ui:EditorKeys .

ui:fontSize a rdf:Property ;
  rdfs:label "font size"@en ;
  rdfs:comment "Preferred page font size; the value is a ui:FontSize instance, e.g. ui:SmallFont." ;
  rdfs:range ui:FontSize .

ui:for a rdf:Property ;
  rdfs:label "for"@en ;
  rdfs:comment "The value for which this case is selected." ;
  rdfs:range <https://w3id.org/linkml/Any> .

ui:icon a rdf:Property ;
  rdfs:label "icon"@en ;
  rdfs:comment "Optional icon URL or emoji/text-string shown for a menu item." ;
  rdfs:range <https://w3id.org/linkml/Any> .

ui:ignorePattern a rdf:Property ;
  rdfs:label "ignore pattern"@en ;
  rdfs:comment "A filename/path glob pattern hidden from listings (e.g. \"*~\", \".*\"); repeatable." ;
  rdfs:range xsd:string .

ui:label a rdf:Property ;
  rdfs:label "Label"@en , "Etiqueta"@es ;
  rdfs:range <https://w3id.org/linkml/Any> .

ui:layout a rdf:Property ;
  rdfs:label "layout"@en ;
  rdfs:comment "Links a thing (e.g. a schema:WebApplication) to its root ui:Layout." ;
  rdfs:range ui:Layout .

ui:maxDateOffset a rdf:Property ;
  rdfs:label "Maximum date offset"@en , "Fecha máxima de desplazamiento"@es ;
  rdfs:range <https://w3id.org/linkml/Any> .

ui:maxDatetimeOffset a rdf:Property ;
  rdfs:label "Maximum datetime offset"@en , "Desplazamiento máximo de fecha y hora"@es ;
  rdfs:range <https://w3id.org/linkml/Any> .

ui:minDateOffset a rdf:Property ;
  rdfs:label "Minimum date offset"@en , "Fecha mínima compensada"@es ;
  rdfs:range <https://w3id.org/linkml/Any> .

ui:minDatetimeOffset a rdf:Property ;
  rdfs:label "Minimum datetime offset"@en , "Desplazamiento mínimo de fecha y hora"@es ;
  rdfs:range <https://w3id.org/linkml/Any> .

ui:minLength a rdf:Property ;
  rdfs:label "Min length"@en , "Longitud mínima"@es ;
  rdfs:range <https://w3id.org/linkml/Any> .

ui:name a rdf:Property ;
  rdfs:label "Name"@en , "Nombre"@es ;
  rdfs:range <https://w3id.org/linkml/Any> .

ui:oldValue a rdf:Property ;
  rdfs:label "Old value"@en , "Valor antiguo"@es ;
  rdfs:range <https://w3id.org/linkml/Any> .

ui:ordered a rdf:Property ;
  rdfs:label "ordered" ;
  rdfs:range xsd:Boolean .

ui:orientation a rdf:Property ;
  rdfs:label "orientation"@en ;
  rdfs:comment "The orientation of the menu; a ui:Orientation instance e.g. ui:Horizontal." ;
  rdfs:range ui:Orientation .

ui:parentProperty a rdf:Property ;
  rdfs:label "Parent property"@en , "Propiedad principal"@es ;
  rdfs:range <https://w3id.org/linkml/Any> .

ui:partsClone a rdf:Property ;
  rdfs:label "Parts clone"@en , "Clon de piezas"@es ;
  rdfs:range <https://w3id.org/linkml/Any> .

ui:pattern a rdf:Property ;
  rdfs:label "Pattern"@en , "Modelo"@es ;
  rdfs:range <https://w3id.org/linkml/Any> .

ui:privatePort a rdf:Property ;
  rdfs:label "private port"@en ;
  rdfs:comment "TCP port the private server, behind the router, listens on." ;
  rdfs:range xsd:integer .

ui:prompt a rdf:Property ;
  rdfs:label "user prompt" ;
  rdfs:comment """A string for the UI to use if the user needs a longer
        prompts than just a field name, the s:label. """ ;
  rdfs:range <https://w3id.org/linkml/Any> .

ui:proxy a rdf:Property ;
  rdfs:label "proxy"@en ;
  rdfs:comment "URL prefix that wraps a target URL for CORS proxying; the target is URI-encoded onto the end." ;
  rdfs:range xsd:string .

ui:proxyPort a rdf:Property ;
  rdfs:label "proxy port"@en ;
  rdfs:comment "TCP port the CORS proxy listens on." ;
  rdfs:range xsd:integer .

ui:publicPort a rdf:Property ;
  rdfs:label "public port"@en ;
  rdfs:comment "TCP port the public routing server (the origin clients talk to) listens on." ;
  rdfs:range xsd:integer .

ui:reference a rdf:Property ;
  rdfs:label "Reference"@en , "Referencia"@es ;
  rdfs:range <https://w3id.org/linkml/Any> .

ui:region a rdf:Property ;
  rdfs:label "region"@en ;
  rdfs:comment "The default target for menu items; a ui:Region instance e.g. ui:Modal." ;
  rdfs:range ui:Region .

ui:required a rdf:Property ;
  rdfs:label "Required"@en , "Requerido"@es ;
  rdfs:range <https://w3id.org/linkml/Any> .

ui:requiredError a rdf:Property ;
  rdfs:label "Required error"@en , "Error requerido"@es ;
  rdfs:range <https://w3id.org/linkml/Any> .

ui:seqeunce a rdf:Property ;
  rdfs:label "sequence number" ;
  rdfs:comment "The sequence in which this item is arranged with repect to other parts." ;
  rdfs:range xsd:integer .

ui:sortPriority a rdf:Property ;
  rdfs:label "sort priority" ;
  rdfs:comment """When individuals or classes must be sorted, then
        if they are given different values of sortPriority a user agent can
        use this as a hint to how to present information.""" ;
  rdfs:range xsd:integer .

ui:style a rdf:Property ;
  rdfs:label "style" ;
  rdfs:comment """Must be a valid CSS style string such as one could put in
        an HTML style attribute.  Depending on the user interface system, this can
        by given to individuals, classes or properties. It is up to a user interface
        which wants to draw on them to pick how it uses styles from which parts
        of the data it has.  For example, the style of a class may be picked
        to distinguish information about things in that class.""" ;
  rdfs:range <https://w3id.org/linkml/Any> .

ui:temperatureUnit a rdf:Property ;
  rdfs:label "temperature unit"@en ;
  rdfs:comment "Display unit(s) for temperature, each a ui:TemperatureUnit instance, e.g. ui:Celsius" ;
  rdfs:range ui:TemperatureUnit .

ui:use a rdf:Property ;
  rdfs:range ui:Form .

ui:valid a rdf:Property ;
  rdfs:label "Valid"@en , "Válida"@es ;
  rdfs:range <https://w3id.org/linkml/Any> .

ui:validationError a rdf:Property ;
  rdfs:label "Validation error"@en , "Error de validacion"@es ;
  rdfs:range <https://w3id.org/linkml/Any> .

ui:value a rdf:Property ;
  rdfs:label "Value"@en , "Valor"@es ;
  rdfs:range <https://w3id.org/linkml/Any> .

ui:values a rdf:Property ;
  rdfs:label "Values"@en , "Valores"@es ;
  rdfs:range <https://w3id.org/linkml/Any> .

ui:windowX a rdf:Property ;
  rdfs:label "window x"@en ;
  rdfs:comment "The x (horizontal) screen coordinate, in pixels, of an element or window's top-left corner." ;
  rdfs:range xsd:integer .

ui:windowY a rdf:Property ;
  rdfs:label "window y"@en ;
  rdfs:comment "The y (vertical) screen coordinate, in pixels, of  an element or window's top-left corner." ;
  rdfs:range xsd:integer .

ui:Color a rdfs:Datatype ;
  rdfs:label "hex color"@en ;
  rdfs:comment """Must be a valid CSS color string such as one could put in
\t\t\tan HTML style attribute.  This must be in the #xxxxxx form,
\t\t\t(with 6 digits of lowercase hex) so that it
\t\t\tcan work eg with Graphviz.
\t\t\tAs this is just an encoded array of RGB values,
\t\t\tyou can do math with these, such as blending, complement, etc.""" .

ui:FontSize a rdfs:Class ;
  rdfs:label "Font size"@en .

ui:LargeFont a ui:FontSize ;
  rdfs:label "Large"@en .

ui:SmallFont a ui:FontSize ;
  rdfs:label "Small"@en .

ui:MediumFont a ui:FontSize ;
  rdfs:label "Medium"@en .

ui:Region a rdfs:Class ;
  rdfs:label "Region"@en .

ui:Tab a ui:Region ;
  rdfs:label "Tab"@en .

ui:Dropdown a ui:Region ;
  rdfs:label "Dropdown"@en .

ui:Inline a ui:Region ;
  rdfs:label "Inline"@en .

ui:Window a ui:Region ;
  rdfs:label "Window"@en .

ui:Modal a ui:Region ;
  rdfs:label "Modal"@en .

ui:Floating a ui:Region ;
  rdfs:label "Floating"@en .

ui:Element a ui:Region ;
  rdfs:label "Element"@en .

ui:Orientation a rdfs:Class ;
  rdfs:label "Orientation"@en .

ui:Horizontal a ui:Orientation ;
  rdfs:label "Horizontal"@en .

ui:Vertical a ui:Orientation ;
  rdfs:label "Vertical"@en .

ui:Group a rdfs:Class ;
  rdfs:subClassOf ui:Form , ui:Single .

ui:FieldForm a ui:Group ;
  rdfs:label "Form for selecting a type of field" .

ui:CaseForm a ui:Group ;
  rdfs:label "Form for a conditional case in a form" .

ui:FormForm a ui:Group ;
  rdfs:label "Form for editing Forms" .

ui:Heading a rdfs:Class ;
  rdfs:subClassOf ui:Form , ui:Single .

ui:FF1 a ui:Heading .

ui:Comment a rdfs:Class ;
  rdfs:label "Comment"@en , "Comentario"@es ;
  rdfs:subClassOf ui:Form , ui:Single .

ui:FF3 a ui:Comment .

ui:Multiple a rdfs:Class ;
  rdfs:subClassOf ui:Form .

ui:FieldList a ui:Multiple .

ui:ColorScheme a rdfs:Class ;
  rdfs:label "Color scheme"@en .

ui:SystemColorScheme a ui:ColorScheme ;
  rdfs:label "System"@en .

ui:DarkColorScheme a ui:ColorScheme ;
  rdfs:label "Dark"@en .

ui:LightColorScheme a ui:ColorScheme ;
  rdfs:label "Light"@en .

ui:SingleLineTextField a rdfs:Class ;
  rdfs:subClassOf ui:TextField .

ui:FF2 a ui:SingleLineTextField .

ui:TemperatureUnit a rdfs:Class ;
  rdfs:label "Temperature unit"@en .

ui:Fahrenheit a ui:TemperatureUnit ;
  rdfs:label "Fahrenheit"@en .

ui:Celsius a ui:TemperatureUnit ;
  rdfs:label "Celsius"@en .

ui:EditorKeys a rdfs:Class ;
  rdfs:label "Editor keys"@en .

ui:DefaultKeys a ui:EditorKeys ;
  rdfs:label "Default"@en .

ui:VimKeys a ui:EditorKeys ;
  rdfs:label "Vim"@en .

ui:EmacsKeys a ui:EditorKeys ;
  rdfs:label "Emacs"@en .
