Title: Enterprise Modeling with Conceptual XML
1Enterprise Modeling with Conceptual XML
- Stephen W. Liddle
- Rollins Center for eBusiness and
- School of Accountancy Information Systems
- David W. Embley Reema Al-Kamha
- Department of Computer Science
- Brigham Young University, Provo, Utah, USA
2XML for Fun and Profit
- The benefits of XML are clear
- Great for hierarchical, mostly human-readable,
textual data - Meta-data travels with the data
- Standardized, commoditized data interchange
- XML enjoys a significant network effect
- Value of XML O(n2), where n is number of users
3Death by a Thousand Paper Cuts
- But XML also has disadvantages
- (Aside from minor issues like query-processing
and storage efficiency concerns) - Schema definitions are complex and numerous
- Details can be laborious, tedious
- Allows arbitrary amounts of heterogeneity
- The number of schemata increases geometrically
- Thanks to the network effect, XML is ubiquitous
- Rigid tree structure influences XML data modeling
4The Modern Enterprise
Wide variety of data sources Increasing
heterogeneity Increasing need for integration
Customers
Remote Divisions Employees
Employees
StrategicPartners
FIREWALL
Distributors ChannelPartners
Suppliers
From Carey, Enterprise Information Integration
XML to the Rescue!, ER2003
5Model-Driven Nirvana
- OMGs Model-Driven Architecture
- (MDA) hopes to lead us to
- the Promised Land
- Vision integrate all assets into one
enterprise-wide, global information appliance by
separating business logic from platform
technology - Reverse-engineer legacy components
- Semi-automated (at best)
Executable System
Abstract Model
Automated Mapping
6Mike Careys ER2003 Challenge to theConceptual
Modeling Community
- Produce a simple conceptual model that
- Works well with XML and XML Schema
- Abstracts well for conceptual entities and
relationships - Scales to handle large data sets and complex
object interrelationships - Allows for queries and defined views via XQuery
- Accommodates heterogeneity
7Our Vision Conceptual XML
- We have an answer to the challenge!
- Collectively weve been developing it for 30
years - Conceptual XML (C-XML) is a conceptual model
- High-level object and relationship sets
- Seamless abstraction
- Model-equivalent with XML Schema
8How C-XML Helps the Enterprise
9C-XML Example
Data frame annotations are not shown
10C-XML?XML Schema Translations
- We need information- and constraint-preserving
translations in both directions - Translations need not be inverses
- It is sufficient that they create equivalence
classes - Our community has created numerous XML generation
algorithms - But there hasnt been much work on the reverse
- We can guarantee certain good design properties
with respect to generated XML Schema
11C-XML Example
44 ltxselement name"Customer"
abstract"true"/gt 45 ltxselement
name"PreferredCustomer" substitutionGroup"Custom
er"gt 46 ltxscomplexTypegt 47
ltxsgroup ref"CustomerDetails"/gt 48
... 49 lt/xscomplexTypegt 50
lt/xselementgt 51 ltxselement name"RegularCustome
r" substitutionGroup"Customer"gt 52
ltxscomplexTypegt 53 ltxsgroup
ref"CustomerDetails"/gt 54
lt/xscomplexTypegt 55 lt/xselementgt
12C-XML Example
56 ltxsgroup name"CustomerDetails"gt 57
ltxssequencegt 58 ltxselement
name"CustomerName" type"xsstring"/gt 59
ltxselement name"CustomerAddr"
type"xsstring"/gt 60 ... 79
lt/xssequencegt 80 lt/xsgroupgt
13C-XML Example
11 ltxselement ... minOccurs"0" maxOccurs"5"gt
14C-XML Example
35 ltxskey name"OrderKey"gt 36 ltxsselector
xpath".//Order"/gt 37 ltxsfield
xpath"_at_OrderID"/gt 38 lt/xskeygt ... 60
ltxselement name"Order" minOccurs"0"
maxOccurs"unbounded"gt 61 ltxscomplexTypegt 62
ltxssequencegt ... 74
lt/xssequencegt 75 ltxsattribute
name"OrderID" type"xspositiveInteger"
use"required"/gt ... 77 lt/xscomplexTypegt 7
8 lt/xselementgt
15Converting XML Schema back to C-XML
- We separate structural from non-structural
concepts - Structural elements, attributes,
- Non-structural attribute types, order
constraints, - Algorithm overview
- Generate object sets for each element, attribute
- Connected by relationship sets
- Nested according to XML hierarchy
- Re-code all constraints in C-XML
16Initial Result of Reverse Conversion
17Strikingly Different?
18Or Not?
19Preserving Information and Constraints
- We formalize C-XML using predicate calculus
- See the paper for definitions, lemmas, theorems
- We claim that our translations between C-XML and
XML Schema preserve information and constraints
20View Mechanisms in C-XML
- High-level abstractions
- For model management, reducing cognitive load
- C-XML XQuery views
- Generate XQuery from conceptual description
- XQuery integration mappings
- For bringing together disparate chunks of XML
21C-XML XQuery Views
- Need to generate XQuery views from C-XML views
- XQuery can be cumbersome
- Must follow hierarchical XML layout
- C-XQuery borrows syntax from XQuery
- FLWOR expressions
- Path expressions are conceptual
- A//B designates path from A to B regardless of
hierarchy or intervening steps - Attribute/element distinction is not necessary
- Execution is by view unfolding and translation to
standard XQuery
22XQuery vs. C-XQuery
Consider conceptual path Item//OrderID
OrderID or _at_OrderID?
23Our Contributions
- A vision for applying conceptual modeling to the
task of enterprise-wide XML support - A framework to support the vision
- Information- and constraint-preserving mappings
between C-XML and XML Schema - Defined mechanisms for producing and using
first-class, high-level, conceptual abstractions - XQuery view definitions over both standard and
federated conceptual-model instances
www.deg.byu.edu
24C-XQuery Example
define view CustomersByItemsOrdered for item
in Item return ltItemgt item/ItemNr,
item/Description for customer in
item/Order/Customer return ltCustomergt
customer/CustomerName, customer/CustomerAddr
for order in customer/Order, item2 in
order/Item where item2 item return
ltOrdergt order/OrderDate, item2/Qty,
item2/SalePrice lt/Ordergt lt/Customergt
lt/Itemgt
25Views within Views
define view RecentNitrogenFertilizerCustomers fo
r i in CustomersByItemsOrdered where
i/Description Nitrogen Fertilizer return ltC
ustomergt for c in i/Customer let total
sum( for o in c/Order where
o/OrderDate gt add-days(current-date(),
-90) return o/Qty o/SalePrice
) return c/CustomerName,
Totaltotal lt/Customergt for c in
RecentNitrogenFertilizerCustomers/Customer where
c/Total gt 300 return ltPotentialThreatCustomergt
c/CustomerName, c/Total lt/PotentialThreatCustom
ergt
26C-XQuery Mapping
define view CatalogItemToItem for cItem in
CatalogItem let itemNr CatalogNr-to-ItemNr(c
Item) let price cItem/MSRP (1
cItem/MarkupPercent) return ltItemgt ltItemNrgtit
emNrlt/ItemNrgt ltDescriptiongtcItem/ShortNamelt/D
escriptiongt ltPricegtpricelt/Pricegt lt/Itemgt
27C-XML Workflow Diagram