Form structures

    @prefix foaf:  <http://xmlns.com/foaf/0.1/>.
    @prefix sched: <http://www.w3.org/ns/pim/schedule#>.
    @prefix cal:   <http://www.w3.org/2002/12/cal/ical#>.
    @prefix dc:    <http://purl.org/dc/elements/1.1/>.
    @prefix rdfs:  <http://www.w3.org/2000/01/rdf-schema#>.
    @prefix ui:    <http://www.w3.org/ns/ui#>.
    @prefix trip:  <http://www.w3.org/ns/pim/trip#>.
    @prefix vcard: <http://www.w3.org/2006/vcard/ns#>.
    @prefix xsd:   <http://www.w3.org/2001/XMLSchema#>.
    @prefix : <#>.
___________
Form dataRaw dataForm
# A simple group with two fields

:form a ui:Group;
  ui:parts (:part1 :part2).

      :part1 a ui:SingleLineTextField ;
      ui:property vcard:fn;
      ui:label "name" .

      :part2 a ui:EmailField ;
      ui:property vcard:hasEmail; # @@ chcek
      ui:label "email" .
:this vcard:fn "Alice";
               vcard:hasEmail  <mailto:alice@example.com> .
# A group with two fields and a nested subgroup

:form a ui:Group;
  ui:parts (:nameField :emailField :addresses) .

      :nameField a ui:SingleLineTextField ;
      ui:property vcard:fn;
      ui:label "name" .

      :emailField a ui:EmailField ;
      ui:property vcard:hasEmail; # @@ chcek
      ui:label "email" .

      :addresses
          a ui:Multiple ;  # -- Allows zero or one or more
          ui:part :oneAddress ;
          ui:property vcard:hasAddress .

          :oneAddress
              a ui:Group ;  # A subgroup of the main form
              ui:parts ( :street :locality :postcode :region :country ).

              :street
                  a ui:SingleLineTextField ;
                  ui:maxLength "128" ;
                  ui:property vcard:street-address ;
                  ui:size "40" .

              :locality
                  a ui:SingleLineTextField ;
                  ui:maxLength "128" ;
                  ui:property vcard:locality ;
                  ui:size "40" .

              :postcode
                  a ui:SingleLineTextField ;
                  ui:maxLength "25" ;
                  ui:property vcard:postal-code ;
                  ui:size "25" .

      :region
          a ui:SingleLineTextField ;
          ui:maxLength "128" ;
          ui:property vcard:region ;
          ui:size "40" .

      :country
          a ui:SingleLineTextField ;
          ui:maxLength "128" ;
          ui:property vcard:country-name ;
          ui:size "40" .

##### Data:

:this vcard:fn "Alice";
   vcard:hasEmail  <mailto:alice@example.com>  ;
   vcard:hasAddress [
        vcard:street-address "111 Accacia Avennue";
        vcard:country-name "UK"
      ],
      [
         vcard:street-address "101 Autumn Ave";
         vcard:country-name "USA"
      ] .