CDI Workflow Operator Modeling Wesley Deneke, Wing-Ning Li, & - - PowerPoint PPT Presentation

cdi workflow operator modeling
SMART_READER_LITE
LIVE PREVIEW

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


slide-1
SLIDE 1

Wesley Deneke, Wing-Ning Li, & Craig Thompson - University of Arkansas

CDI Workflow Operator Modeling

slide-2
SLIDE 2

Problem

slide-3
SLIDE 3

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
slide-4
SLIDE 4

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
slide-5
SLIDE 5

Approach

slide-6
SLIDE 6

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

slide-7
SLIDE 7

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
slide-8
SLIDE 8

Objective

  • Develop a model to represent and enforce CDI
  • perator conditions to guarantee valid workflow

construction.

slide-9
SLIDE 9

Operator Model

  • Operator
  • Input Fields
  • Output Fields
  • Input Requirement Expression
  • Options
slide-10
SLIDE 10

Field Model

  • Field
  • Name
  • Category
  • Attributes
slide-11
SLIDE 11

Field Model

  • Name
  • Already exists in domains
  • Ex:
  • cvFirstName1
  • aaPriNumberBeforeCOA
  • IBBA_DPD_ State
slide-12
SLIDE 12

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
slide-13
SLIDE 13

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
slide-14
SLIDE 14

Field Model

  • Representation
  • Ex:
  • cvAACityName::Address.City + AddressAbility + ProfanityFiltered
  • priAddress::Address.Primary + PAS - BusinessLinked
slide-15
SLIDE 15

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

slide-16
SLIDE 16

Option Model

  • Option
  • Name
  • Default Value
  • OptionStates
  • Name (Value)
  • Input Requirement Expression
  • Output Fields
slide-17
SLIDE 17

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.
slide-18
SLIDE 18

Example

slide-19
SLIDE 19

Advantage Mail

PLID SIM Coding Postal PAS Link Appen d Edit Fail Name Check

slide-20
SLIDE 20

Advantage Mail

  • Starting Fields
  • Name::Name.Full
  • Address::Address.Primary
  • CityStateZip::Address.CityStateZip
slide-21
SLIDE 21

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

slide-22
SLIDE 22

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

slide-23
SLIDE 23

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
slide-24
SLIDE 24

Advantage Mail

  • Email Customer Report
  • Y
  • Input Requirement: Null
  • Output Fields: Null
  • N
  • Input Requirement: Null
  • Output Fields: Null
slide-25
SLIDE 25

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
slide-26
SLIDE 26

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
slide-27
SLIDE 27

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

slide-28
SLIDE 28

Advantage Mail

  • Address Parsing Mode
  • Favor Street Address
  • Input Requirement: Null
  • Output Fields: Null
  • Favor Non Street Address
  • Input Requirement: Null
  • Output Fields: Null
slide-29
SLIDE 29

Advantage Mail

  • Perform Post Processing
  • Y
  • Input Requirement: Null
  • Output Fields: Null
  • N
  • Input Requirement: Null
  • Output Fields: Null
slide-30
SLIDE 30

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

slide-31
SLIDE 31

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
slide-32
SLIDE 32

Conclusions

slide-33
SLIDE 33

Conclusions

  • Categories allow matching fields by content type.
  • Attributes represent field state and thereby

postconditions.

  • Input Requirements allow preconditions to be

enforced.

slide-34
SLIDE 34

Future Work

  • Evolve model to include more domain knowledge.
  • Resolve ambiguous preferences
  • Construct a planner to generate workflow from intent

language.

slide-35
SLIDE 35

Acknowledgments

  • Thanks to David Nash and Jeff Stires at Acxiom for

their help on this project.