proto-wayic/cast/doc.task - Documentation in rough

    Waycast`
    - the waycast
        ( ./waycast
    - a principal component of the architecture
        ( http://reluk.ca/project/proto-wayic/architec/doc.task § Architecture
    - function
        - directly forms architectonic members U (Personally useful)
          and G (Relating the personal to the endmost goal of the person)
            ( http://reluk.ca/project/proto-wayic/architec/doc.task § Architectonic

    ────────────────────────────────────────────────────────────────────────────────────────────────────
    Configuration of a waycast`
    < see also: `proto-wayic.web` § configuration of a waycast
        ( http://reluk.ca/project/proto-wayic/web/doc.task
    * waycast root directory
        - configuration placed in files of the waycast root directory
        + waycast configuration file
            - `waycast.xml` -
            - this file governs the overall interpretation of the waycast
            - format: XML
                ( https://www.w3.org/TR/xml/
            < `engagement` -
                ( http://reluk.ca/project/proto-wayic/exec/doc.task
            < `waycast_names` -
                ( http://reluk.ca/project/proto-wayic/intercast/doc.task § waycast referencing
        + personal style sheet
            - `way_declaration_document.css` -
            < again, see `proto-wayic.web` § configuration of a waycast
        + personal presentation program
            - `way_declaration_document.js` -
            < again, see `proto-wayic.web` § configuration of a waycast
    + way declaration document
        - `*.xht` -
        < again, see proto-wayic.web § configuration of a waycast

    ────────────────────────────────────────────────────────────────────────────────────────────────────
    Design constraints`
    = remove these hence to topical §§
    [ ⤓ minimal
        - the necessary form of a waycast
        + ‘.xht’ extension
            - on the file name of each way declaration document
            - without it
                - on requesting the document from a ‘file’ scheme URL
                    - e.g. to view one’s original waycast which is stored on one’s local computer
                    - browsers would interpret the document as a text/xml media type
                      as opposed to what is proper for Wayscript
                        - namely application/xhtml+xml
                - so they would load it into the DOM as an XMLDocument
                  which could break co-loaded (JavaScript) programs that expect an HTMLDocument
        + a way root document
            ( § Way root document § ⤓ minimal content
        + relative referencing bounded by the waycast
            - all relative referencing in a waycast is bounded by the waycast
            - ensuring that no reference resolves to an extracast referent
            ∴ so bounded
                ∵ unbounded relative references would be liable to breakage
                    ∵ the waycast might be moved by the waycaster
                    ∵ the waycast is copyable
                        ∵ proto-wayic.architec § Fa Alterable in crucial functions by copy and change
                            ( http://reluk.ca/project/proto-wayic/architec/doc.task

    ────────────────────────────────────────────────────────────────────────────────────────────────────
    Formally intracast reference`
    - a relative reference that is formally self constrained to the boundary of the referring waycast
        ( e.g. in compliance with § Design constraints § relative referencing bounded by the waycast
    - given its (§) basic form and (§) resolution context
        - a formally intracast reference needs no further bounds checking
            ( e.g. by a waysource processor
        - its form alone constrains it to the waycast boundary
        - itself proof against an extracast referent
    - hence references of this type are *formally* intracast
    + purpose
        - compliance with design constraints
            ( § design constraints § relative referencing bounded by the waycast
    + typology
        * formally intracast reference
            * import reference
                ( http://reluk.ca/project/proto-wayic/intercast/doc.task
    + form
        ( [EBN]

          formally intracast reference = ? a relative reference without a dot segment,
            as per https://tools.ietf.org/html/rfc3986#section-4.2 (relative-ref)
               and https://tools.ietf.org/html/rfc3986#section-3.3 (dot-segment) ?;

          formally intracast reference with fragment =
            dotless relative part, [ '?', query ], '#', fragment ;

              dotless relative part = ? a relative part without a dot segment,
                as per https://tools.ietf.org/html/rfc3986#section-4.2 (relative-part)
                   and https://tools.ietf.org/html/rfc3986#section-3.3 (dot-segment) ?;

              query = ? as per https://tools.ietf.org/html/rfc3986#section-3.4 ?;

              fragment = ? as per https://tools.ietf.org/html/rfc3986#section-3.5 ?;

    + resolution
        - the reference is resolved in waycast context
            ( ./waycast_context
            - whereby a leading '/' (absolute path) grounds the reference on the waycast root directory
                ( path-absolute, https://tools.ietf.org/html/rfc3986#section-3.3
                ( ./waycast_root_directory

    ────────────────────────────────────────────────────────────────────────────────────────────────────
    Publication of a waycast`
    * cross origin responses are enabled
        < instructions to the waycaster: `./manual.task` § publication of a waycast § all files
        - all files of the waycast are served to the Web
          each with a response header of `Access-Control-Allow-Origin: *` -
            ( https://fetch.spec.whatwg.org/#http-access-control-allow-origin
            - as described in the manual
                ( `./manual.task` § publication of a waycast
        - rationale
            ∵ cross origin sharing of waycast files is likely to be a crucial function
              of an altered copy of this wayic
                ∵ cross origin sharing of waycast files is a crucial function of *this* wayic
                    - e.g. dependant parts refering to § cross origin responses are enabled, above
            ∵ this wayic is interoperable to altered copies in crucial functions
                ∵ proto-wayic.architec § Fi Interoperable to altered copies in crucial functions
                    ( http://reluk.ca/project/proto-wayic/architec/doc.task
    * waycast public identifier
        = here redact from notes
            ( http://reluk.ca/project/proto-wayic/cast/project.task § waycast relative references and waycast public locations § waycast public location

    ────────────────────────────────────────────────────────────────────────────────────────────────────
    Uniquely personal content`
    ( cf. http://reluk.ca/project/proto-wayic/origins/doc.task § Genotypic content
    ( cf. http://reluk.ca/w/Category:Draft#Bracket_markers_to_distinguish_meta-content_from_proper_content
    - waycast content that is improper to all but the waycaster
        - e.g. because it would sound wrong if others were to speak it
    - scoping rules
        - taken in order, these rules determine what text is uniquely personal
        ! these rules make no sense
            = cf. http://reluk.ca/project/proto-wayic/origins/project.task § demoting *uniquely personal* marks
            = sort it out
        < gross rules
            +1 include all of the waycast
            +2 include all lines of the way model
                - that is, any line of text between (in document order)
                  the first and last lines (inclusive) of a root waybit
                - why not outside the model?
                    - to avoid overdefining the rules below
                    - to avoid prematurely burdening (and possibly overburdening) the wayscribe
                      with marking tasks (q.v. below) where the text sharing tools
                      might never operate
            - any text *not* included by the rules above is out of scope
        < fine rules
            +3 include all lines marked as custom
                - mark form
                    ( instructions on writing the custom marks
                    * single line
                        - put "HERE CUSTOM" somewhere in the line
                    * multiple lines
                        - using two marks
                        - put "HERE DOWN CUSTOM" somewhere in the top line
                            - applies from top line (inclusive) down to bottom line (inclusive)
                            - without a bottom line marked
                                - applies down to the bottom of the document
                        - put "HERE UP CUSTOM" somewhere in the bottom line
                            - applies from bottom line (inclusive) up to top line (inclusive)
                            - without a top line marked, applies up to the top of the document
                    * defeating
                        - how to defeat an already written mark
                            - e.g. in order to quote a mark
                        - put elsewhere in the same line a second mark: "HERE CUSTOM"
                - on the possibility of marking custom mutations and deletions
                    - as opposed to pure insertions
                    - there is probably no need also to define CUSTOMIZED and DELETED marks
                    - a line of text that logically *demands* one to mutate or delete it
                      should have been marked as a custom line in the first place
                        - and that would be the correct thing to do after the fact
                        - while one that merely *allows* for such a change
                            - e.g. as an expression of disagreement
                            - is not properly custom
                            - rather (in this regard) it is a typical line
            - all text included by the rules above is in scope
        +5 any text that remains is not uniquely personal

  / Waycast ───────────────────────────────────────────────────────────────────────────── see at top ───

    ────────────────────────────────────────────────────────────────────────────────────────────────────
    Way root document`
    ( ./way_root_document
    - waycast file /way.xht
        ( name: way.xht
        ( location: waycast root directory
    - realizes the purpose of the waycast by declaring the waycaster's way
    [ ⤓ minimal content
        + a way declaration
            - a minimal declaration comprises a way root element in the form of an intercast joint
                ( http://reluk.ca/project/proto-wayic/intercast/ § Intercast joint
                = clarify the form
                    - a joint has *two* elements, not one
                = verify that it meets the formal contraints
                    - e.g. of the way root element, and of joint elements
                = verify that the subjoint elements would be on way
                    - covered that is by the definition of "on way"
            - this is also a typical way declaration, though not infrequently
              it would be amended by stemmaplasty


////////////////////////////////////////////////////////////////////////////////////////////////////////
// N o t e
/
   [EBN]  Extended Backus-Naur syntax notation, ISO/IEC 14977.
            ( http://standards.iso.org/ittf/PubliclyAvailableStandards/index.html
            ( https://www.cl.cam.ac.uk/~mgk25/iso-14977.pdf
            ( summary, https://en.wikipedia.org/wiki/Extended_Backus%E2%80%93Naur_form



                                     Copyright © 2017-2019 Michael Allan and contributors.  Licence MIT.