How to automate everyday work

Part of Booking.com page
A hotel booking site asks for dates and preferences, analyses Web resources for what is available and suggests appropriate "best deals".

This process works well for booking hotel rooms within a market of stand-alone apps, but integration of similar automation into everyday work requires processing know-how using a similar approach to the successful open-source software movement.

Here a hotel is used to introduce this new approach to handling diverse information. Diversity in the hotel industry is enormous, covering the full gamut of human activities - related to ownership; to design, planning, procurement, logistics, construction, and fittings, furnishings and equipment; and to business operations from security to accounts, health and safety to public relations, housekeeping to fine dining, not forgetting booking rooms, of course.

The people who contribute to these activities are also diverse ranging from highly trained professionals to unskilled workers. It is from such people that a genuinely new approach can be established, just as it was with retailing, banking and transportation years ago. There just needs to be the means to define real objectives and work with computer coders to figure out what is needed to work the Web productively to achieve them.

For example, activities may be diverse but common names provide links between different interests in different objectives.

A bed, a constituent part in hotel owner planning application and feasibility studies, is the same bed selected by hotel operator, modelled by designer, assembled by manufacturer, containerised and delivered by logistics company, man-handled into position by labourers, checked by quality control, made and remade by housekeeping, booked by customers, recorded in accounts and finally disposed of when worn out.

A good way to harness diversity, then, is for interested parties to identify names and addresses that establish what is worked on. Sets of aspects can then be attached to the names by different people for different purposes. Banks arrange money in accounts; here structured information is arranged in associations of named sets or nsets.

Sample nset

{
"Couplers": {
  "Label": "Couplers",
  "Type": "System",
  "Genus": "Root",
  "Store": "couplers",
  "Link": ["Hotel","Control"]
},
"Hotel": {
  "Label": "Hotel",
  "Type": "Coupler",
  "Genus": "Building",
  "Address": {
    "Country": "shared",
    "Town": "shared",
    "District": "Colombo 07",
    "Street": "Gregory's Road",
    "No": "73"
  },
  "Backtrack": ["Couplers"],
  "Link": ["10"],
  "Crosslink": ["11"],
  "shared": {
    "Country": "Sri Lanka",
    "Town": "Colombo",
    "Size": [4900,3633,2070]
  },
  "Bookings": {
    "Town": "shared",
    "Country": "shared",
    "District": "CBD",
    "Clientele": "Business",
    "Stars": "*****(5)"
  },
  "Design": {
    "Size": "shared"
  },
  "monitors": {
    "Hotel-0": {
      "show": true,
      "src": "model",
      "position": {
        "left": 826,
        "top": 13
      },
      "size": {
        "width": 431,
        "height": 404
      },
      "zIndex": 0,
      "camera": {
        "type": "Perspective",
        "position": [-400,-250,850]
      },
      "factor": 2,
      "update": "true"
    }
  },
  "index": 0
},
"10": {
  "Type": "Assembly",
  "Genus": "Building",
  "Label": "Guest tower",
  "Backtrack": ["Hotel"],
  "Link": ["1"],
  "index": 0,
  "Design": {
    "Size": "shared"
  },
  "shared": {
    "Size": [4900,3633,2070]
  }
},
"1": {
  "Type": "Assembly",
  "Genus": "Floor",
  "Label": "Floor",
  "Suffix": 1,
  "Backtrack": ["10"],
  "Link": ["2"],
  "index": 0,
  "shared": {
    "Level": 1,
    "Size": [4900,3633,2070]
  },
  "Bookings": {
    "Level": "shared",
    "Access": "Lift"
  },
  "Design": {
    "Size": "shared",
    "Alignment": {
      "to": "Origin"
    }
  }
},
"2": {
  "Type": "Assembly",
  "Genus": "Guestroom",
  "Label": "Guestroom",
  "Suffix": "1",
  "Backtrack": ["1"],
  "Link": ["3","4","18"],
  "index": 0,
  "Bookings": {
    "Vacant": "Dates",
    "Repair": "Dates"
  },
  "Design": {
    "Size": "shared",
    "Enclosure": [100],
    "Alignment": {
      "to": "Origin"
    },
    "expanded": [4900,3633,2070]
  },
  "shared": {
    "Size": [4700,3433,2070]
  }
},
"3": {
  "Type": "Assembly",
  "Genus": "Interiors",
  "Label": "Bedroom",
  "Backtrack": ["2"],
  "Link": ["5","16"],
  "index": 0,
  "Bookings": {
    "View": "Town",
    "Beds": "Two"
  },
  "Design": {
    "Size": "shared",
    "Alignment": {
      "to": "Origin"
    },
    "expanded": [2976,3433,1016]
  },
  "shared": {
    "Size": [2976,3433,1016]
  }
},
"5": {
  "Type": "Assembly",
  "Genus": "Bedset",
  "Label": "Bedset",
  "Backtrack": ["3"],
  "Link": ["14","7","15"],
  "index": 1,
  "Design": {
    "Size": "shared",
    "Footprint": {
      "Space": [600,600,0,600],
      "For": "7"
    },
    "Alignment": {
      "to": "Origin"
    },
    "expanded": [2976,2734,1016]
  },
  "shared": {
    "Size": [2676,2184,1016]
  }
},
"14": {
  "Type": "Product",
  "Category": "Furniture",
  "Genus": "Cabinet",
  "Label": "Bedside cabinet",
  "Backtrack": ["5"],
  "index": 0,
  "product": {
    "Product": "shared",
    "Size": "shared"
  },
  "Design": {
    "Product": "shared",
    "Size": "shared",
    "Alignment": {
      "to": "Origin"
    },
    "expanded": [400,367,558]
  },
  "shared": {
    "Product": "Bedside cabinet",
    "Size": "400x367x558",
    "Source": "Product/dae/",
    "Extension": ".dae",
    "size": [400,367,558]
  }
},
"7": {
  "Type": "Product",
  "Category": "Furniture",
  "Genus": "Bed",
  "Label": "Queen bed",
  "Backtrack": ["5"],
  "index": 1,
  "Bookings": {
    "Product": "shared"
  },
  "product": {
    "Product": "shared"
  },
  "Design": {
    "Product": "shared",
    "Size": "shared",
    "Margin": [50,50,0,50],
    "Alignment": {
      "this": ["top","left","floor"],
      "to": "14",
      "that": ["top","right","floor"]
    },
    "expanded": [1876,2184,1016]
  },
  "shared": {
    "Product": "Queen bed",
    "Size": "1776x2134x1016",
    "Source": "Product/dae/",
    "Extension": ".dae",
    "size": [1776,2134,1016]
  }
},
"15": {
  "Type": "Product",
  "Category": "Furniture",
  "Genus": "Cabinet",
  "Label": "Bedside cabinet",
  "Backtrack": ["5"],
  "index": 2,
  "product": {
    "Product": "shared",
    "Size": "shared"
  },
  "Design": {
    "Product": "shared",
    "Size": "shared",
    "Alignment": {
      "this": ["top","left","floor"],
      "to": "7",
      "that": ["top","right","floor"]
    },
    "expanded": [400,367,558]
  },
  "shared": {
    "Product": "Bedside cabinet",
    "Size": "400x367x558",
    "Source": "Product/dae/",
    "Extension": ".dae",
    "size": [400,367,558]
  }
},
"16": {
  "Type": "Assembly",
  "Genus": "Facilities",
  "Label": "Facilities",
  "Backtrack": ["3"],
  "Link": ["6"],
  "index": 0,
  "Design": {
    "Size": "shared",
    "Alignment": {
      "this": ["top","left"],
      "to": "5",
      "that": ["bottom","left"]
    },
    "expanded": [610,649,626]
  },
  "shared": {
    "Size": [610,649,626]
  }
},
"6": {
  "Type": "Product",
  "Category": "White goods",
  "Genus": "Minibar",
  "Label": "MiniFridge",
  "Backtrack": ["16"],
  "product": {
    "Product": "shared",
    "Size": "shared"
  },
  "Design": {
    "Product": "shared",
    "Size": "shared",
    "Rotation": [0,0,180],
    "Alignment": {
      "to": "Origin"
    },
    "expanded": [610,649,626]
  },
  "shared": {
    "Product": "Minibar",
    "Size": "610x649x626",
    "Source": "Product/dae/",
    "Extension": ".dae",
    "size": [610,649,626]
  }
},
"4": {
  "Type": "Assembly",
  "Genus": "Interiors",
  "Label": "Bathroom",
  "Backtrack": ["2"],
  "Link": ["8"],
  "index": 0,
  "Bookings": {
    "Shared": "No"
  },
  "Design": {
    "Size": "shared",
    "Rotation": [0,0,0],
    "Enclosure": [100],
    "Alignment": {
      "this": ["top","left"],
      "to": "3",
      "that": ["top","right"]
    },
    "expanded": [1724,2106,1030]
  },
  "shared": {
    "Size": [1524,1906,1030]
  }
},
"8": {
  "Type": "Assembly",
  "Genus": "Sanitaryware",
  "Label": "Sanitaryware",
  "Backtrack": ["4"],
  "Link": ["13","12","9"],
  "index": 0,
  "Design": {
    "Size": "shared",
    "Rotation": [0,0,270],
    "Alignment": {
      "to": "Origin"
    },
    "expanded": [1906,1524,1030]
  },
  "shared": {
    "Size": [1906,1524,1030]
  }
},
"13": {
  "Type": "Product",
  "Category": "Sanitaryware",
  "Genus": "Bath",
  "Label": "Bath",
  "Backtrack": ["8"],
  "index": 0,
  "product": {
    "Product": "shared",
    "Size": "shared"
  },
  "Design": {
    "Product": "shared",
    "Size": "shared",
    "Rotation": [0,0,270],
    "Alignment": {
      "to": "Origin"
    },
    "expanded": [1524,737,368]
  },
  "shared": {
    "Product": "Bath",
    "Size": "1524x737x368",
    "Source": "Product/dae/",
    "Extension": ".dae",
    "size": [1524,737,368]
  }
},
"12": {
  "Type": "Product",
  "Category": "Sanitaryware",
  "Genus": "WC",
  "Label": "WC",
  "Backtrack": ["8"],
  "index": 0,
  "product": {
    "Product": "shared",
    "Size": "shared"
  },
  "Design": {
    "Product": "shared",
    "Size": "shared",
    "Margin": [50,50,0,0],
    "Alignment": {
      "this": ["top","left","floor"],
      "to": "13",
      "that": ["top","right","floor"]
    },
    "expanded": [609,791,1030]
  },
  "shared": {
    "Product": "WC",
    "Size": "509x791x1030",
    "Source": "Product/dae/",
    "Extension": ".dae",
    "size": [509,791,1030]
  }
},
"9": {
  "Type": "Product",
  "Category": "Sanitaryware",
  "Genus": "Basin",
  "Label": "Basin",
  "Backtrack": ["8"],
  "index": 0,
  "product": {
    "Product": "shared",
    "Size": "shared"
  },
  "Design": {
    "Product": "shared",
    "Size": "shared",
    "Margin": [0,50,0,0],
    "Alignment": {
      "this": ["top","left","floor"],
      "to": "12",
      "that": ["top","right","floor"],
      "top": 800
    },
    "expanded": [560,428,357]
  },
  "shared": {
    "Product": "Basin",
    "Size": "510x428x357",
    "Source": "Product/dae/",
    "Extension": ".dae",
    "size": [510,428,357]
  }
},
"18": {
  "Type": "Product",
  "Category": "Joinery",
  "Genus": "Door",
  "Label": "Door",
  "Backtrack": ["2"],
  "product": {
    "Product": "shared",
    "Size": "shared"
  },
  "Design": {
    "Product": "shared",
    "Size": "shared",
    "Door": {
      "serves": "4",
      "side": "bottom",
      "align": "left",
      "handing": "right",
      "open": "in",
      "leaf": "hidden"
    },
    "expanded": [934,140,2070]
  },
  "shared": {
    "Product": "Door frame",
    "Source": "Product/dae/",
    "Extension": ".dae",
    "Size": "934x140x2070",
    "size": [934,140,2070]
  }
},
"Control": {
  "Label": "Control",
  "Type": "System",
  "Genus": "Coupler",
  "Backtrack": ["Couplers"],
  "index": 2,
  "monitors": {
    "Control": {
      "show": true,
      "src": "control",
      "position": {
        "left": 569,
        "top": 9
      },
      "size": {
        "width": 220,
        "height": 360
      },
      "zIndex": 100
    }
  }
},
"Sets": {
  "Type": "System",
  "Genus": "Dev",
  "Label": "Sets",
  "menu": ["Refresh","Remove"],
  "monitors": {
    "Sets-nset": {
      "show": true,
      "src": "json",
      "position": {
        "left": 20,
        "top": 1
      },
      "size": {
        "width": 526,
        "height": 443
      },
      "zIndex": 1,
      "titlebar": {
        "left": "",
        "right": "hide"
      },
      "selection": "Rerun",
      "update": "true"
    }
  }
},
"Automation": {
  "Type": "System",
  "Genus": "Dev",
  "Label": "Automation",
  "menu": ["Remove"],
  "monitors": {
    "Automation-0": {
      "show": false,
      "src": "methods",
      "position": {
        "left": 239,
        "top": 6
      },
      "size": {
        "width": 267,
        "height": 394
      },
      "zIndex": 1,
      "titlebar": {
        "left": "",
        "right": "hide"
      },
      "selection": "Show",
      "update": "false"
    }
  }
},
"bfig": {
  "Genus": "Dev",
  "font": {
    "family": "arial",
    "size": "15px"
  },
  "dims": {
    "rh": 24,
    "cw": "50%",
    "bh": 360,
    "bw": 220,
    "foc": "50%"
  },
  "colors": {
    "Atrail": ["rgb(233,245,233)"],
    "Backtrack": ["rgb(245,245,182)","rgb(160,82,45)"],
    "Control": ["rgb(240,240,240)"],
    "Body": ["rgb(192,192,192)"],
    "Device": ["rgb(233,245,233)"],
    "Faded": [null,"rgb(180,180,180)"],
    "Footer": ["rgb(180,180,180)"],
    "Tags": ["rgb(182,245,245)","rgb(0,0,200)"],
    "Crosslink": ["rgb(245,245,182)","rgb(160,82,45)"],
    "Key": ["rgb(182,245,182)","rgb(0,118,119)"],
    "Link": ["rgb(245,245,182)","rgb(160,82,45)"],
    "Link1": ["rgb(233,233,182)","rgb(160,82,45)"],
    "Link2": ["rgb(233,233,233)","rgb(160,82,45)"],
    "Manager": ["rgb(182,220,182)","rgb(0,118,119)"],
    "Monitor": ["rgb(182,220,182)","rgb(0,118,119)"],
    "Monitor1": ["rgb(255,230,225)","rgb(255,80,230)"],
    "Mons": ["rgb(180,180,180)"],
    "Name": ["rgb(255,255,255)","rgb(0,0,0)"],
    "On": ["rgb(255,230,230)","rgb(0,0,0)"],
    "Option": ["rgb(225,244,244)","rgb(0,0,200)"],
    "Trail": ["rgb(255,255,255)","rgb(0,0,0)"],
    "BarH": ["rgb(65,105,225)","rgb(255,255,255)"],
    "BarL": ["rgb(176,196,222)","rgb(255,255,255)"],
    "BarS": ["rgb(119,136,153)","rgb(255,255,255)"]
  }
},
"cfig": {
  "Genus": "Dev",
  "aTrail": {
    "device": ["Design"],
    "location": "lw1",
    "key": "Design",
    "aspect": "design",
    "manager": "Design",
    "fun": "Delete"
  },
  "coupled": "Hotel",
  "links": false,
  "node": "2",
  "nTrail": ["Couplers","Hotel","10","1","2"],
  "space": true,
  "toggle": ["Aspects","Names"],
  "trail": ["Couplers","Hotel","10","1","2","3","5"],
  "layer": {
    "1": ["m12","m9","m7"],
    "2": ["f7"]
  },
  "crosslink": {},
  "trace": {
    "list": {
      "Method": true,
      "Owner": true,
      "Coder": true,
      "Code": false
    },
    "active": "updateMonitors",
    "start": ["existing nset","setWins","setWin","barColors"]
  }
},
"monitors": {
  "Genus": "Dev",
  "trail": ["Automation-0","Views","Hide"],
  "list": ["New","Sets-nset","Automation-0","Hotel-0"],
  "action": ["Save","Publish","Monitors"],
  "show": ["Show"],
  "hide": ["Hide","Remove"],
  "new": ["Model"]
}
}

Here is an example of an assembly of nsets linked together to represent a singular entity brought into reality by diverse interested parties.

Recorded in specially punctuated plain text known as JSON, nsets can be read and edited by people and made into code by computers.

Owners keep nsets in online stores such as myjson.com/, secure but distributable.

Blazer

Owners open a "blazer" web page to work with their nset, much in the same way as they might open an eBanking page to view their accounts and make transactions.

Blazer control with 3D model and assembly monitors
A working prototype blazer is at glasier.hk/blazer/blazer.html
(open with any browser except Safari).

Blazers upload new or existing owner's root nset from selected online store. Nsets for new projects or activities are created with coupler devices. They can be for private or public use or shared with specific individuals.

Online stores provide unique IDs. Root IDs are preserved in owner's browser local storage; all others in their couplers. Invitations to collaborate include unique ids and permissions.

Only one coupled nset is active at a time. Unique number labels insulate coupled from root. Switching coupled is fast, ensures duplicate action calls are overwritten and saves changes on exit as directed.

Control

Uploads and converts nsets into sortable stacks of link names that initiate and direct digital action.

Selection, associative linking and animation handle the 3D characteristics of information.

So stacks can display different combinations in the same plane.

With names/aspects combination
However, working blazer control takes some getting use to, selecting words to move into focus rather than reading across to find values from row and column coordinate names. But benefits soon become not only obvious but the basis for greater automated connectivity. For example:

Identity tags are drawn from one or more classified stores of previously used words. The stores become more refined in use, meaningful indexes of personal, team, industry and global know-how.

Link provides for addition of new individual nsets and clones of complete assemblies. For example, one set of guestrooms can be cloned for a guestroom floor; one floor can be cloned for a multi storey guestroom tower.

Managers supply keys that enable owners review and manipulate different multimedia interpretations of nsets in different monitors.

Monitors

Monitor support for operations.
Monitors are separate secure web pages that are imported into special frames in the prototype blazer.

Later development will site monitors in remote locations linked in different combinations for specific projects and activities.

Monitors generate multiple views and analyses of the active nset. Assembly monitors display inner workings of nsets and devices.

Model monitors

The model monitor perhaps best illustrates how ways of working can be realigned to make the most of modern technology.

Here, models used for the prototype are downloaded from 3dwarehouse and converted for use with Threejs an established open source library for 3D computer graphics on the Web. Threejs examples indicate future sophisticated models could be produced by manufacturers with blazers.

The model monitor provides design manager keys to supplement the relationships and identities already established in nset assembly.

Plan view
For example, creating a bedset assembly ensures bed and beside cabinets are kept together, whereas the minibar at this stage has no restraints within the "elastic" bedroom space configuration.

Red, green and blue footprints and zones are visual aids, so that products and assemblies can be aligned to one another in containing spaces. Layouts can be automatically regenerated with simple variable criteria such as:

mirrored/flipped/rotated alignments
as generous circulation as possible
minimum allowances

The blazer prototype has two monitors to help the assembly process itself.

Set monitors

Set monitor displays different JSON records for nsets, recycle stores and so on. Experienced trailblazers can edit them directly. Invalid JSON and nset error-inducing entries are re-presented, not saved.

Automation monitor is currently used to test the integrity of automated blazer action following user selection. It is being developed as illustrated below as a platform for nset owner/coder interaction. It allows the general public to benefit from the kind of relationship institutions have with their IT professionals.

Selecting model manager as an example, model monitor inserts its device set (dset) into active nset. Owners can then select one key in control to work with coders on its supporting menus/variables and methods/functions

Both parties will also be able to interact to sequence method statements/function calls to be developed from the following basic set up.

Full and entry display filters
Method labels
Owner and Coder posts
Code extracted from control and monitor scripts

Individual monitors of both types can be switched to synchronise with each selection.

Because of the nature of nsets and their Web components blazers can, if required for backward compatibility, generate traditional models, blueprints, sketches, spreadsheets, diagrams and documents.

Blazers and monitors are capable of directing CNC machinery and 3D printing and augmented reality.

How blazing automates everyday work

Blazers extend postal addresses with unique names and addresses of each physical object they house. Like barcoding this is the key to automating tasks not only related to the objects themselves but to each part its address represents. Unlike the prototype web page, blazer components can be distributed in different locations and devices, linked over the Web to share nsets.

At the heart is a form of advertising in which nset models of products are offered to support design. In exchange for exposure at the right time and place, manufacturers accept dynamic competition in which their products can be tested and swapped with others at any time prior to firm order. Final selections benefit in the longer term from their placement in building nsets passed to end-users.

Interested parties set up and rehearse animated sequences rather than have to rely on specialist diagrams like Gannt charts. Parties responsible for executing work and robotic equipment report their achievements and needs, automatically monitoring progress and flagging up discrepancies.

Nsets are manipulated with monitor devices to test space planning and cost, timing and, finally, aesthetics. Subjective judgment is delayed in support of transparency and accountability. Forceful declarations on budget and time are replaced by awareness of commitments and options inherent in this way of working. In time, automation takes on almost all non-creative tasks including purchase orders, payments and book keeping.

Faculty of Architecture HKU with Hong Kong architecture behind

Assembling nsets can be initiated, perhaps experimentally in parallel with traditional processes, in one or more building projects, growing into an information network as links are made to progress design and construction, and later from links made for activities of users of the building.

This new architectural approach passes on its nsets to become information infrastructure, as much needed in modern architecture of towns, cities and villages as sewers, water, electricity and broadband.

Chris Glasier July 2018