CDI Workflow Operator Modeling Wesley Deneke, Wing-Ning Li, & Craig Thompson - University of Arkansas
Problem
Problem • CDI operators have conditions on input to execute as expected • Constraints on data content: name data vs address data • Combinations of input fields: first name and last name • Data state: filtered, enhanced, updated, etc • Nothing enforces these constraints • Allows invalid workflows to be constructed • Large number of complex CDI operators • Results in a large number of workflow permutations • Requires domain experts to construct valid workflows • Experts further specialize by customer/group • Time consuming and error prone even for experts
Problem • How can domain knowledge of CDI operators and workflow be captured to allow workflow construction to be more efficient - Faster turn around - Better accuracy - Fewer errors - Lower required level of expertise
Approach
Scope • Excludes field identification/interrogation • Assume only a single data source - Homogenous data - Known state • Consider only operators with a defined set of input fields, output fields, and transformations • Assume operator execution is well-defined and assured
Conditions • Preconditions • Conditions that must be true to guarantee valid execution of the operator - Input combinations - Field content - Field state - Option settings • Postconditions • Conditions guaranteed to be true after an operator has undergone valid execution - Output fields - Output state
Objective • Develop a model to represent and enforce CDI operator conditions to guarantee valid workflow construction.
Operator Model • Operator - Input Fields - Output Fields - Input Requirement Expression - Options
Field Model • Field - Name - Category - Attributes
Field Model • Name - Already exists in domains - Ex: • cvFirstName1 • aaPriNumberBeforeCOA • IBBA_DPD_ State
Field Model • Category - Abstracts fields above their name and primitive data type to reflect knowledge of their content - Allows type safety on domain-specific types similar to object oriented programming - Meet higher level semantic relationships or conditions - Extensible - Domains contain a large number of field names and only experts may understand the content - Ex: • Name.Full • Name.First • Address.Primary • Address.City
Field Model • Attributes - Semantic descriptors of field state - Keep a heritage of state information as fields more through operators in a workflow - Allow operators to enforce inclusive and exclusive preconditions on the state of input fields - Ex: • Burst • AddressAbility • ConsumerLinked
Field Model • Representation - Ex: • cvAACityName::Address.City + AddressAbility + ProfanityFiltered • priAddress::Address.Primary + PAS - BusinessLinked
Input Requirement Expression • Definition - Boolean expression representing valid combinations and states of operator input fields - Includes descriptive predicates - Ex: [ UnparsedName::Name.Full ].Required && [ ParsedFirstName::Name.First ].NA && [ ParsedMiddleName::Name.Middle ].NA && [ ParsedLastName::Name.Last ].NA &&[ ParsedLastNameSuffix::Name.LastNameSuffix ].NA && [ AddressLine1::Address.Primary ].Required && [ ProfessionalTitle::Name.ProfTitle ].Optional &&[ PrimaryBusinessName::Name.Business ].Optional &&[ SecondaryBusinessName::Name.Business ].Optional && [ AddressLine2::Address.Secondary ].Optional && [ UnparsedCityStateZip::Address.CityStateZip ].Required && [ ParsedCity::Address.City ].NA && [ ParsedState::Address.State ].NA && [ ParsedZip::Address.Zip ].NA && [ ParsedZip4::Address.Zip4 ].NA && [ ParsedUrbName::Address.UrbName ].NA
Option Model • Option - Name - Default Value - OptionStates - Name (Value) - Input Requirement Expression - Output Fields
Option State • Definition - Depending on the setting of an option, the operator’s input requirements and resultant output fields may vary. - Each option states input requirement expression represents the additional requirements an input mapping must satisfy. - The output fields append extra fields and/or additional attributes to the output.
Example
Advantage Mail SIM PLID Postal PAS Coding Link Edit Name Appen Fail Check d
Advantage Mail • Starting Fields - Name::Name.Full - Address::Address.Primary - CityStateZip::Address.CityStateZip
Advantage Mail • PLID Input Fields - UnparsedCityStateZip::Address.City StateZip - UnparsedName::Name.Full - ParsedCity::Address.City - ParsedFirstName::Name.First - ParsedState::Address.State - ParsedMiddleName::Name.Middle - ParsedZip::Address.Zip - ParsedLastName::Name.Last - ParsedZip4::Address.Zip4 - ParsedLastNameSuffix::Name.Last - ParsedUrbName::Address.UrbNam NameSuffix e - ProfessionalTitle::Name.ProfTitle - PrimaryBusinessName::Name.Busi ness - SecondaryBusinessName::Name.B usiness - AddressLine1::Address.Primary - AddressLine2::Address.Secondary
Advantage Mail • PLID Input Requirement Expression [ UnparsedName::Name.Full ].Required && [ ParsedFirstName::Name.First ].NA && [ ParsedMiddleName::Name.Middle ].NA && [ ParsedLastName::Name.Last ].NA &&[ ParsedLastNameSuffix::Name.LastNameSuffix ].NA && [ AddressLine1::Address.Primary ].Required && [ ProfessionalTitle::Name.ProfTitle ].Optional &&[ PrimaryBusinessName::Name.Business ].Optional &&[ SecondaryBusinessName::Name.Business ].Optional && [ AddressLine2::Address.Secondary ].Optional && [ UnparsedCityStateZip::Address.CityStateZip ].Required && [ ParsedCity::Address.City ].NA && [ ParsedState::Address.State ].NA && [ ParsedZip::Address.Zip ].NA && [ ParsedZip4::Address.Zip4 ].NA && [ ParsedUrbName::Address.UrbName ].NA || [ UnparsedName::Name.Full ].NA && [ ParsedFirstName::Name.First ].Required && [ ParsedMiddleName::Name.Middle ].Optional && [ ParsedLastName::Name.Last ].Required &&[ ParsedLastNameSuffix::Name.LastNameSuffix ].Optional && [ AddressLine1::Address.Primary ].Required &&[ ProfessionalTitle::Name.ProfTitle ].Optional &&[ PrimaryBusinessName::Name.Business ].Optional &&[ SecondaryBusinessName::Name.Business ].Optional && [ AddressLine2::Address.Secondary ].Optional && [ UnparsedCityStateZip::Address.CityStateZip ].Required && [ ParsedCity::Address.City ].NA && [ ParsedState::Address.State ].NA && [ ParsedZip::Address.Zip ].NA && [ ParsedZip4::Address.Zip4 ].NA && [ ParsedUrbName::Address.UrbName ].NA || [ UnparsedName::Name.Full ].Required && [ ParsedFirstName::Name.First ].NA && [ ParsedMiddleName::Name.Middle ].NA && [ ParsedLastName::Name.Last ].NA &&[ ParsedLastNameSuffix::Name.LastNameSuffix ].NA && [ AddressLine1::Address.Primary ].Required && [ ProfessionalTitle::Name.ProfTitle ].Optional &&[ PrimaryBusinessName::Name.Business ].Optional &&[ SecondaryBusinessName::Name.Business ].Optional && [ AddressLine2::Address.Secondary ].Optional && [ UnparsedCityStateZip::Address.CityStateZip ].NA && [ ParsedCity::Address.City ].Required && [ ParsedState::Address.State ].Required && [ ParsedZip::Address.Zip ].Required && [ ParsedZip4::Address.Zip4 ].Optional && [ ParsedUrbName::Address.UrbName ].Optional || [ UnparsedName::Name.Full ].NA && [ ParsedFirstName::Name.First ].Required && [ ParsedMiddleName::Name.Middle ].Optional && [ ParsedLastName::Name.Last ].Required &&[ ParsedLastNameSuffix::Name.LastNameSuffix ].Optional && [ AddressLine1::Address.Primary ].Required &&[ ProfessionalTitle::Name.ProfTitle ].Optional &&[ PrimaryBusinessName::Name.Business ].Optional &&[ SecondaryBusinessName::Name.Business ].Optional && [ AddressLine2::Address.Secondary ].Optional && [ UnparsedCityStateZip::Address.CityStateZip ].NA && [ ParsedCity::Address.City ].Required && [ ParsedState::Address.State ].Required && [ ParsedZip::Address.Zip ].Required && [ ParsedZip4::Address.Zip4 ].Optional && [ ParsedUrbName::Address.UrbName ].Optional
Advantage Mail • PLID Options - Email Customer Report - Input Name Format - Output Mixed Names As - Output Single Word Name To - Address Parsing Mode - Perform Post Processing - Profane Word Filter - Burst Records
Advantage Mail • Email Customer Report • Y - Input Requirement: Null - Output Fields: Null • N - Input Requirement: Null - Output Fields: Null
Recommend
More recommend