Open Standard Voting Localization with CAM

Similar documents
Dictionary Driven Exchange Content Assembly Blueprints

Quick Guide to CAM Dictionaries

NIEM. National. Information. Exchange Model. NIEM and Information Exchanges. <Insert Picture Here> Deploy. Requirements. Model Data.

Sedao Ltd. QuickChange PROject. User Manual for QuickChange PROject version 2.1.5

Search Page Basic Search Advanced Search Exploring search results Showing Properties Showing Details...

Configuring Optional and Advanced Tasks for External Content Integration

Table of Contents. Page 2 of 72. High Impact 4.0 User Manual

Reporting Center. Primary (Stand-Alone) Interface

Contents. Announcer Pro Version 4.6 Page 2 of 35 Version V4.6

SOA, Semantics, & Data Science

Contents. Common Site Operations. Home actions. Using SharePoint

Index A Access data formats, 215 exporting data from, to SharePoint, forms and reports changing table used by form, 213 creating, cont

Working with Charts Stratum.Viewer 6

Editing XML Data in Microsoft Office Word 2003

Quark XML Author October 2017 Update for Platform with Business Documents

What is OU Campus? Log into OU Campus

PAGES, NUMBERS, AND KEYNOTE BASICS

Global Standard for the Paper and Forest Products

Login: Quick Guide for Qualtrics May 2018 Training:

Quark XML Author September 2016 Update for Platform with Business Documents

WebStudio User Guide. OpenL Tablets BRMS Release 5.18

A Guide to Creating QuickReports

Introduction to web page creation

IBM Rational Rhapsody Gateway Add On. Customization Guide

BEAWebLogic. Portal. Tutorials Getting Started with WebLogic Portal

Corel Ventura 8 Introduction

Democracy Suite R EMS Audio Studio User Guide

Search Application User Guide

CA Productivity Accelerator 12.1 and Later

Database to XML Wizard

Visual Cash Focus - User Tip 8

EMC Documentum Forms Builder

DRAFT. Table of Contents About this manual... ix About CuteSITE Builder... ix. Getting Started... 1

QuickReports Guide. Creating a New Report

RoboHelp HTML Training

Using Mail Merge in Microsoft Word XP/2002

EQuIS Data Processor (EDP) User Manual

Document Template Authoring

How to Create Custom Name Badge Inserts with a Mail Merge in Microsoft Word 2007

Introduction to IBM Rational HATS For IBM System z (3270)

Executive Overview. business transaction information management. Why do Businesses Need CAM? The Issue of Context in Business Interchanges

#define 4 User Guide. Version 4.0. CGI Group Inc.

Table of Contents. Part I How do I... Part II Zetafax Client. Foreword. 3 Advanced tasks. 1 Menu options. Annotate a fax? View a text message?

Ektron Advanced. Learning Objectives. Getting Started

JSF Tools Reference Guide. Version: M5

OU EDUCATE TRAINING MANUAL

Table Of Contents. iii

Function. Description

Microsoft Office 2016 Mail Merge

Manual Physical Inventory Upload Created on 3/17/2017 7:37:00 AM

FrontPage Help Center. Topic: FrontPage Basics

Introduction to Topologi Markup Editor , 2005 Topologi Pty. Ltd.

This document contains information that will help you to create and send graphically-rich and compelling HTML s through the Create Wizard.

Microsoft Access Database How to Import/Link Data

Topaz Workbench Data Visualizer User Guide

Creating Web Pages with SeaMonkey Composer

Description of Hybrid Collections using Archivist Toolkit

Office Adapters for Quark Publishing Platform

SAS Model Manager 2.2. Tutorials

Creating labels in Ticket 2000.

Introduction to IBM Rational HATS For IBM System i (5250)

Excel 2013 Workshop. Prepared by

3. NetBeans IDE 6.0. Java. Fall 2009 Instructor: Dr. Masoud Yaghini

Modern Requirements4TFS 2018 Release Notes

XMLInput Application Guide

Free Microsoft Office 2010 training from MedCerts. Course Outline

Creating an with Constant Contact. A step-by-step guide

Centricity 2.0 Section Editor Help Card

Oracle Cloud. Using the Oracle Mapper Release 16.4 E

PST for Outlook Admin Guide

Microsoft Word 2010 Tutorial

BEAWebLogic. Integration. Transforming Data Using XQuery Mapper

OUTLOOK 2002 (XP): LEVEL 2

Kona ALL ABOUT FILES

Tutorial 8 Sharing, Integrating and Analyzing Data

OnPoint s Guide to MimioStudio 9

WPS Workbench. user guide. "To help guide you through using the WPS user interface (Workbench) to create, edit and run programs"

Administrative Training Mura CMS Version 5.6

Using Sitecore 5.3.1

A Guide to Quark Author Web Edition 2015

CEDMS User Guide

Explorer View document libraries, 165 form library, 183

Clay Tablet Connector for Sitecore. User Guide. Version 3.9.8

Table of Contents 2. Why do companies need Zetadocs PDF? Technical specifications Install Zetadocs Registering your evaluation version

Getting Started with BarTender

Enterprise Architect. User Guide Series. Model Exchange

Tutorials by All Creative Designs. Picasa 5 (3.9) Photo Editing Tutorial. How to download, install and use the Picasa Photo Editor

pi4soa 2.0 Getting Started Guide

Introduction to Topologi Professional Edition

$99.95 per user. SQL Server 2008 Integration Services CourseId: 158 Skill level: Run Time: 42+ hours (210 videos)

Microsoft Access Description

Enterprise Architect. User Guide Series. Model Navigation. Author: Sparx Systems. Date: 30/06/2017. Version: 1.0 CREATED WITH

Google Sites 101. Mrs. Wilson

Quark XML Author for FileNet 2.5 with BusDocs Guide

P6 Professional Reporting Guide Version 18

Million Book Universal Library Project :Manual for Metadata Capture, Digitization, and OCR

WebSphere. Clips and Tacks: Getting started with the IBM BPM suite of products

Creating Accessible Word Documents

Manage and Edit Sessions

Chapter 12 Creating Web Pages

Transcription:

Open Standard Voting Localization with CAM - Localization Mechanisms - Publishing Localizations - Leveraging Open Standards - XSD ingesting David RR Webber Chair OASIS CAM TC (Content Assembly Mechanism) E-mail: drrwebber@acm.org http://wiki.oasis-open.org/cam

Overview Goal is to promote the use of open public standards for voting systems Develop in-country localizations from standard international base set Provide common open public lexicon for elections management and verification Leverage XML and open standards approach, including NIEM* Provide developers with tools to aid delivery, documenting and testing of solutions *NIEM National Information Exchange Model slide 2

Approach Voting Localizations built from OASIS EML EML has 29 pre-built components (schema) for voting processes Use desktop visual editor to pick components Trim and select only what you need from each standard schema Desktop toolkit makes templates for the XML required Generate localization details Automatically build XML components to use Build your own dictionary, compare to EML standard Create readable documentation of details Test, Package and Publish The CAM desktop toolkit environment supports NIEM IEPD approach Available as Open Source on SourceForge.net Implementation of the public OASIS CAM standard for schema templates (camprocessor) slide 3

Localization Mechanisms Creating a Country Voting Localization Package

Localization Key Components 1 XML Schema EML Schema XSD aligns voting information model, processes and domain dictionary 2 3 Documentation Readable information use details (HTML), EML cross-reference Spreadsheet XML artifacts The localized schema and picklist.xml Key components (aka IEPD*) 4 Examples & Test Cases Realistic test XML instances for conformance and interoperability testing *IEPD Information Exchange Package Documentation slide 5

Localization Approach Steps EML Voting Exchange Manage 11 develop XML XSD 22 ingest Base CAM Template 33 localize Revised CAM Template 44 Local Generate XML XSD 55 Compare EML Dictionary Steps: 1. OASIS develops standard international XSD schema Implements the voting process, management and information exchange needs 2. Ingest the standard XSD into base CAM template 3. Apply localizations to CAM template Exclude unwanted optional components Align local exchange needs to standard Extend for local needs 4. Generate new localized XSD schema that conform to EML standard 5. Build dictionary cross-reference of localization usage 6. Publish documentation and examples 66 Publish Documentation + Examples slide 6

Creating a Package for Localization Step 1 - Ingest EML XSD rules, structure, annotations Step 2 - Select & mark out your use model in visual editor - Save your pick list selections - Compress template to desired structure Step 3 - Generate your localized use XSD schema subset Step 4 - Generate and test rich concrete data examples (complete with content hints / pass / fail / random options) - Run rules engine - Verify operation and outcomes Step 5 - Build localization documentation of structure elements, usage, rules and cross-reference map Step 6 Package, Publish and Share (IEPD) slide 7

Challenge: XSD schema has limitations! The schema contains the superset of voting exchange component variations for every country XSD syntax does not have direct context mechanisms Hence people make everything in schema optional Dependencies are not clear It is difficult to understand the constructs and to document the rules clearly for election authorities to verify It is hard to create test cases and instances (the pick list tough to visualize) These are all limitations inherent in W3C Schema language itself slide 8

Completing Localization Picture: Base EML XSD schema structure model CAM template + rules / refinements Documentation of use patterns (aka pick list + subset XSD) Test cases and examples Content hinting (localization use data) Validation engine for unit and regression testing Open standard, open platform and open source allows consistent agreements between participants slide 9

Localization Package Use Scenario Publish XML Structure Rules Context Examples Documentation 1 Package 2 Report Templates Results Validate Test Cases Test Testing, Agreement / Alignment. Developer Uses & Creates 3 XML Localization Content Hints Verify Result Outcomes html 4 XML Pass / Fail slide 10

Tutorial Base CAM templates (ingesting XSD schema ) step by step example Documenting the Localization Patterns Creating pick list selections Compressing template structure Subset XSD generation Publishing Localization package Cross-reference spreadsheet Documentation reporting options Generate use dictionary Testing and Conformance Creating Test Case examples Content Hinting Running Test Cases Advanced Techniques slide 11

Base CAM Templates (ingesting XSD Schema) Using jcam editor Wizard (http://www.jcam.org.uk)

EML V6.0 provides base CAM templates Templates come pre-packaged in the EML V6 download However, for completeness we show how to generate one slide 13

Ingesting XSD to CAM template format OASIS EML XSD Collection XML Schema XSLT XSLT tools tools process process entire entire EML EML XSD XSD collection collection Structure Common xsd Components CIQ xsd Rules Namespace INGEST Localization EML xsd Documentation EML xml CAM = Content Assembly Mechanism slide 14

Step 1 & 2 Pick the XSD schema to ingest Choose File / New Template 1 Specify XSD Location root directory 2 Pick XSD First location is the root folder for the XSD collection. Typically this is the same as the location for the XSD schema you want to ingest. (Complex XSD can have this in separate folder; hence need for option) slide 15

Step 3 Choose the XSD parent element Confirm and start the XSD ingesting 3 Choose XSD parent element From the dropdown list pick the correct root element you wish to use (EML). XSD s may have more than one collection in them (as shown here) or may not have the parent node element cleanly defined. The Wizard shows you the list of all possible ones it finds so you can select and confirm the right one. slide 16

Step 4 Ingesting complete Save Results Completed template is loaded and save dialogue appears 4 Processing usually takes a few seconds, some larger EML XSD can take a few minutes to process. 4 Tip: jcam runs the ingesting as a background task so you can continue to use the computer while such long ingesting is proceeding. slide 17

Step 5 Review ingested structure Completed template is shown in the structure navigator panel for review and editing 5 Template contains all the default content model and structure rules ingested from the XSD. All annotations and documentation from XSD also ingested (show as paperclip symbol). Code lists and typical content values inserted for easy visual reference. slide 18

Documenting the Localization Patterns Pick lists, documentation and XSD subset generation

Building a pick list Structure EML structure is all inclusive!!! Make pick list Rules Documentation MARK MARK WHAT WHAT IS IS NOT NOT NEEDED excluded items DESIRED RESULTS slide 20

Marking Items for exclude - pick list Can exclude at all levels within the structure excludetree() excludeelement() excludeattribute() Use XPath operators to control scope: Specific node Group of nodes Anywhere occurs in structure Contextually based on condition Can add new domain elements with own namespace to EML template slide 21

Using Editor to mark Exclude items Structure Editor Tools Select focus on item Invoke action menu (right mouse click) Pick action Tip: exclude rule display is context sensitive and only available on optional items Tip: use Add New Rule mode to specify different XPath for exclude (quick mode assumes current path ) slide 22

Export and Save completed pick list File Menu Option Select Export / Pick List and then specify filename of destination. Excluded items are designated with red dot in structure editor and italics font with no bold highlight slide 23

Pick List Details Pick lists provide a handy way to catalogue the localization model and can be re-used later by importing into other templates EXCLUDE FLAG VALUE Exported Example slide 24

Compress Operation File Menu Option Select option and specify filename for new copy of your template. Compress process removes all rules and structure items marked with an exclude statement. Note: ignores excludes that have a conditional context expression (advanced section technique). Note: You can retain both original and new compressed templates slide 25

Extending the base EML schema In addition to excluding existing optional components you may need to add new pieces New pieces should be assigned their own extension namespace prefix to identify them from the base EML components Typically the OASIS EML committee will review new pieces as candidates for adding to future versions of the standard Send comments and suggestions to election-comment@lists.oasis-open.org slide 26

Adding New Domain Elements 1 Select root element node in structure; right mouse click for context menu; select Add Namespace ; then enter prefix and URI 2 Select element node in structure; right mouse click for context menu; select Add Child Attribute / Element ; then enter prefix and name slide 27

Generating your EML use schema Once your localization details are completed you are ready to complete the remainder of the process This starts with generating your own new subset schema Then once schema details are OK creating test cases, cross-reference spreadsheet and documentation slide 28

Generating subset use schema File Menu Option Select Export CAM as XSD menu option 1 Confirm the location and filename, and namespace mode. 2 Select default for Mode to write a regular import set of XSD schema for each namespace slide 29

Schema subset generated Set of XSD files with filename and namespace suffix Each namespace file is import for those specific type definitions Reviewing XSD results in a schema visual editor tool slide 30

Information Restriction Considerations The CAM template allows full use of XPath conditional expressions and a rich set of over 30 functions including: setnumberrange(), setlength(), setlimit(), setdatemask(), setnumbermask(), restrictvalues(), lookup() Those that are compatible with XSD constraints will cause constraint schema assertions to be written out when exporting to schema In the advanced topics section we will look at cross field validations using XPath conditional rules slide 31

Generating Testing and Conformance Examples Generating base examples Customizing content with Hints Selecting valid and invalid modes Running rules validation check

Test Case Generation Quick Start File Menu Option Default directory to write examples into Name to be used for the examples How many examples to create Repeating elements count for Quick Test just click OK to use default settings slide 33

Test Case Results Active links to view the generated examples slide 34

Advanced Generation Options Use content type or item name (name is useful for checking backend transform processing) Use namespaces or not; if false is selected then XML instances are created with minimized namespace usage. Optional content hints (explained next ) Optional schema file validation link; use this to have example validate with EML schema or local subset schema How to handle optional items: all random none If you want deliberate errors for fail testing; (will give variety of data and structure errors) Use slider to pick a specific seed value or leave blank for random seed slide 35

Test Case Generator Feature Summary Make both Pass / Fail testing examples Content hinting so examples use real not fake data Test optional item logic with: all / random / none Uses exclude() assertions so does not include those items makes realistic examples of your use pattern Can pass in seed value use when adding and testing hints (each test case is labelled with its seed value) Make hundreds of test cases without manual editing Can link test case to XSD schema for structure tests You can modify XSLT tool for own testing needs slide 36

Run CAM Rules Check on Examples Run Menu Option 1 Pick Test Case Example to VALIDATE; click Finish to run validation rules Review validation results 2 3 slide 37

Content Hinting Mechanisms Designed to create realistic data examples Hints can be provided in two ways Firstly - using Value notes in annotations on specific items in the structure editor Second create your own Hints XML file and add matching rules to globally apply across your template(s) e.g. FirstName, LastName, Address, BirthDate, etc. Can export from one template, import into another slide 38

First Approach: annotation Value Hints Select focus on structure item Invoke action menu (right mouse click) Choose Edit Annotations slide 39

Then add Value annotation item 3 Select Value tab 2 4 1 Enter values terminated with character Click on Add New, then enter Value as Type and confirm OK 5 Re-run Example export to see results slide 40

Second: Hints File Mechanism (XML file) 1 like / with partial name matching use for component match on items e.g. first with name matches <nxnl:first_name> 2 key matching on tag name use for exact match of items 3 key / parent path matching use when same name occurs within different parents e.g. Country and Person / NameElement with different content and context Note: matching is case sensitive but ignores namespaces TIP: can use Export Hints to create initial XML file for editing slide 41

A- Using Examples Generator with Hints Select XML hints file to be used here slide 42

B- Import Hints into Annotations (merge) set and select as needed Option to autoreload new anno file into current template slide 43

Documentation Cross-Reference Spreadsheet Default reporting options

Generating Cross-Reference Spreadsheet Use Compare to Dictionary tool Compare to default EML-V6-dictionary Drag and Drop XML file into Microsoft Excel Review and save spreadsheet workbook slide 45

Dictionary Compare Tool Select compare tool menu option Browse and choose EML dictionary slide 46

Drag and Drop to Excel Spreadsheet Click OK slide 47

Documentation Layouts Five options Source XML Component details (XML) Tabular format (HTML) Interactive web page (wiki) Code list Tabular format page layout for data analyst use and designed to make rules and use patterns clear Each documentation layout XSLT script can be customized as desired slide 48

Tabular Documentation Documentation Menu Option Select Format, resulting HTML opens in browser viewer slide 49

Tabular HTML Content Details Clear use pattern Extended Code list handling Annotations XPath references and functions Enhanced Data type Logic slide 50

Summary Ingesting XSD Creating use pattern (aka pick list) Generating test examples Hints system Generate XSD schema subset Running tests

Localization Checklist Review 1 XML Schema EML Schema XSD aligns voting information model, processes and domain dictionary 2 Documentation Readable information use details (HTML), EML cross-reference Spreadsheet 3 4 XML artifacts The localized schema and picklist.xml Examples & Test Cases Realistic test XML instances for conformance and interoperability testing slide 52

Summary Capabilities covered Ingesting XSD to Template Creating use pattern (aka pick list) Generating test examples Hints system Generate local use XSD schema subset Running tests Generating documentation and spreadsheets Allows rapid localization development Enables consistent implementations Documentation provides clear details on structures, content, rules and definitions Cross-reference to EML standard slide 53

Advanced Techniques Extending rules for actual use cases Using XPath selector wizard Handling ingestion recursion issues SourceForge XSLT repository

Importing pick list operation File Menu Option Select Import and specify filename of your existing pick list xml. Import process matches the path expressions in your pick list to the XPath expressions in the template. Exclude statements generated for matching items. Makes it easy to re-apply a pick list on new versions of schemas, or on similar schemas with same blocks of content address, company, person, etc. slide 55

Illustrative EML requirements When Ballot type > 0 - AND Language code > 1 Require Ballot State = CA, NV, NM Resource Matching When Registered Voters Total < 1000 - AND Ballots > 1000 Audit alerting Region Restriction slide 56

Template rules syntax <as:businessusecontext> <as:rules> <as:default> <as:context> <as:constraint condition="//castballots /Total > 1000 and( // RegisteredVoters /Total < 1000 )" action="restrictvalues(// CastBallots/Total, Alert possible audit required ) "/> <as:constraint action="restrictvalues(//eml:administrativearea /eml:nameelement, 'CA NV NM')"/> </as:context> </as:default> </as:rules> </as:businessusecontext> slide 57

XPath selector wizard XPath syntax is automatically generated for you Check boxes allow user to select scope of rule action Conditional context rules can be optionally used Documentation notes can be added here slide 58

CAM Kit of XSLT tools used XSD 2 CAM extracts structure and rules and builds template from schema XML 2 pick list builds pick list from any XML instance (uses Level Depth setting) CAM 2 Examples Generates a collection of XML instance test cases Import/Export Hints Manage and apply content hinting across CAM templates CAM 2 XSD export Creates a subset XSD from CAM template slide 59

SourceForge XSLT svn repository Using any svn client the XSLT scripts can be retrieved from: https://camprocessor.svn.sourceforge.net/svnroot/camprocessor/ camed/uk.org.jcam.camed/trunk/xsl/ slide 60

Resources Selection of useful links and additional technical details

Simple EML 440 Example Example using the EML 440 cast vote schema Simplified to minimum requirements Example can be downloaded here: http://markmail.org/message/qyrpfq75mtctblyq slide 62

Resources: www.oasis-open.org/committees/election docs.oasis-open.org/election www.oasis-open.org/committees/cam wiki.oasis-open.org/cam docs.oasis-open.org/cam www.jcam.org.uk slide 63