Wesley Deneke, Wing-Ning Li, & Craig Thompson - University of Arkansas
CDI Workflow Operator Modeling Wesley Deneke, Wing-Ning Li, & - - PowerPoint PPT Presentation
CDI Workflow Operator Modeling Wesley Deneke, Wing-Ning Li, & - - PowerPoint PPT Presentation
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
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
- perator
- 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
- perator 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
- bject 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
- perators 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
PLID SIM Coding Postal PAS Link Appen d Edit Fail Name Check
Advantage Mail
- Starting Fields
- Name::Name.Full
- Address::Address.Primary
- CityStateZip::Address.CityStateZip
Advantage Mail
- PLID Input Fields
- UnparsedName::Name.Full
- ParsedFirstName::Name.First
- ParsedMiddleName::Name.Middle
- ParsedLastName::Name.Last
- ParsedLastNameSuffix::Name.Last
NameSuffix
- ProfessionalTitle::Name.ProfTitle
- PrimaryBusinessName::Name.Busi
ness
- SecondaryBusinessName::Name.B
usiness
- AddressLine1::Address.Primary
- AddressLine2::Address.Secondary
- UnparsedCityStateZip::Address.City
StateZip
- ParsedCity::Address.City
- ParsedState::Address.State
- ParsedZip::Address.Zip
- ParsedZip4::Address.Zip4
- ParsedUrbName::Address.UrbNam
e
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
Advantage Mail
- Input Name Format
- First Name First
- Input Requirement:
[ UnparsedName::Name.Full + FirstNameFirst ].Required || ( [ ParsedFirstName::Name.First ].Required && [ ParsedLastName::Name.Last ].Required
- Output Fields: Null
- Last Name First
- Input Requirement:
[ UnparsedName::Name.Full + LastNameFirst ].Required && [ ParsedFirstName::Name.First ].NA && [ ParsedMiddleName::Name.Middle ].NA && [ ParsedLastName::Name.Last ].NA && [ ParsedLastNameSuffix::Name.LastNameSuffix ].NA
- Output Fields: Null
- Mixed
- Input Requirement:
[ UnparsedName::Name.Full ].Required && [ ParsedFirstName::Name.First ].NA && [ ParsedMiddleName::Name.Middle ].NA && [ ParsedLastName::Name.Last ].NA && [ ParsedLastNameSuffix::Name.LastNameSuffix ].NA
- Output Fields: Null
Advantage Mail
- Output Mixed Names As
- First Name First
- Input Requirement: Null
- Output Fields: Null
- Last Name First
- Input Requirement: Null
- Output Fields: Null
- No Default
- Input Requirement: Null
- Output Fields: Null
Advantage Mail
- Output Single Word Name To
- First Name
- Input Requirement: Null
- Output Fields:
cvFirstName1::Name.First + SingleWordNameLoc
- Last Name
- Input Requirement: Null
- Output Fields:
cvFirstName1::Name.Last + SingleWordNameLoc
Advantage Mail
- Address Parsing Mode
- Favor Street Address
- Input Requirement: Null
- Output Fields: Null
- Favor Non Street Address
- Input Requirement: Null
- Output Fields: Null
Advantage Mail
- Perform Post Processing
- Y
- Input Requirement: Null
- Output Fields: Null
- N
- Input Requirement: Null
- Output Fields: Null
Advantage Mail
- Profane Word Filter
- Drop Words
- Input Requirement: Null
- Output Fields:
- cvFirstName1::Name.First + ProfanityFiltered, cvMiddleName1::Name.Middle + ProfanityFiltered, cvLastName1::Name.Last + ProfanityFiltered,
cvProfTitle1:: Name.ProfTitle + ProfanityFiltered, cvPrimaryBusiness::Name.Business + ProfanityFiltered, cvSecondaryBusiness::Name.Business + ProfanityFiltered, cvPrimaryAddress::Address.Primary + ProfanityFiltered, cvSecondaryAddress::Address.Secondary + ProfanityFiltered, cvAAPriNumber::Address.PriNumber + ProfanityFiltered, cvAAPreDir1::Address.PreDir + ProfanityFiltered, cvAAPriName::Address.PriName + ProfanityFiltered, cvAASuffix1::Address.Suffix + ProfanityFiltered, cvAAPostDir::Address.PostDir + ProfanityFiltered, cvAASecUnitDes::Address.SecUnitDes + ProfanityFiltered, cvAASecNumber::Address.SecNumber + ProfanityFiltered, cvAABusName::Name.Business + ProfanityFiltered, cvAAOutPRUrb::Address.UrbName + ProfanityFiltered, cvAACityName::Address.City + ProfanityFiltered, cvAAStateAbbrev::Address.State + ProfanityFiltered, cvAAZIPCode::Address.Zip + ProfanityFiltered, cvAAAddonCode::Address.Zip4 + ProfanityFilteredDo Not Drop Words
- Input Requirement:
- Output Fields:
cvFirstName1::Name.First + ProfanityScanned, cvMiddleName1::Name.Middle + ProfanityScanned, cvLastName1::Name.Last + ProfanityScanned, cvProfTitle1:: Name.ProfTitle + ProfanityScanned, cvPrimaryBusiness::Name.Business + ProfanityScanned, cvSecondaryBusiness::Name.Business + ProfanityScanned, cvPrimaryAddress::Address.Primary + ProfanityScanned, cvSecondaryAddress::Address.Secondary + ProfanityScanned, cvAAPriNumber::Address.PriNumber + ProfanityScanned, cvAAPreDir1::Address.PreDir + ProfanityScanned, cvAAPriName::Address.PriName + ProfanityScanned, cvAASuffix1::Address.Suffix + ProfanityScanned, cvAAPostDir::Address.PostDir + ProfanityScanned, cvAASecUnitDes::Address.SecUnitDes + ProfanityScanned, cvAASecNumber::Address.SecNumber + ProfanityScanned, cvAABusName::Name.Business + ProfanityScanned, cvAAOutPRUrb::Address.UrbName + ProfanityScanned, cvAACityName::Address.City + ProfanityScanned, cvAAStateAbbrev::Address.State + ProfanityScanned, cvAAZIPCode::Address.Zip + ProfanityScanned, cvAAAddonCode::Address.Zip4 + ProfanityScanned
Advantage Mail
- Burst Records
- Y
- Input Requirement:
[ UnparsedName::Name.Full ].Required && [ ParsedFirstName::Name.First ].NA && [ ParsedMiddleName::Name.Middle ].NA && [ ParsedLastName::Name.Last ].NA && [ ParsedLastNameSuffix::Name.LastNameSuffix ].NA
- Output Fields:
cvFirstName1::Name.First + Burst, cvMiddleName1::Name.Middle + Burst, cvLastName1::Name.Last + Burst
- N
- Input Requirement: Null
- Output Fields: Null
Conclusions
Conclusions
- Categories allow matching fields by content type.
- Attributes represent field state and thereby
postconditions.
- Input Requirements allow preconditions to be
enforced.
Future Work
- Evolve model to include more domain knowledge.
- Resolve ambiguous preferences
- Construct a planner to generate workflow from intent
language.
Acknowledgments
- Thanks to David Nash and Jeff Stires at Acxiom for
their help on this project.