1 INTRODUCTION
XML and related technologies are used extensively
for storing, managing, and exchanging information.
Our work is motivated by the consideration of docu-
ments describing requirements or business rules to be
met to achieve some designation or status. According
to (Business Rules Group 2000, Ross 1997), a busi-
ness rule is a statement that defines or constrains
some aspect of the business and is used to control the
behavior of the business. For example, in a university
calendar, we have rules that specify the valid collec-
tion of courses for a student to obtain a certain uni-
versity degree.
As shown in (McFadyen et al 2005), such rules
can be organized into a special structure, the so-
called synthesized query tree (SQT), to govern their
execution. An observation shows that such trees may
heavily overlap. Then, the separate storage of SQTs
not only leads to redundant space, but also causes
repeated evaluation of rules. For this reason, we frag-
ment individual SQTs and organize the sub-SQTs
into a hyper tree structure, in which a leaf node can
be a simple query or a subtree itself. This kind of
organization is similar to document fragmentation
(Salminen and Tompa 2001, Quint and Vatton 2004).
However, in our case, a fragment is a subtree repre-
senting a set of rules, which produces a piece of a
document dynamically. Our method also shares the
flavour of active XML documents (Abiteboul et al
2002, Abiteboul et al 2003, Bonifati et al 2001), by
which parts of the contents are generated by invoking
a program or a web service; but differs from these in
that we are concerned with the processing of business
rules, which are evaluated along a tree structure in a
bottom-up way.
The remainder of this paper is organized as fol-
lows. Next in section 2, we present the background
information on requirement documents and synthe-
sized query trees. In section 3, we present the SQT
fragmentation based on the so-called virtual SQTs,
which enable us to efficiently evaluate queries. Sec-
tion 4 presents a short conclusion and directions for
further work.
RULE-BASED QUERY TREE EVALUATION OVER
FRAGMENTED XML DOCUMENTS
Ron G. McFadyen
+
, Yangjun Chen
*
Department of Applied Computer Science, University of Winnipeg,
515 Portage Avenue, Winnipeg, Manitoba, Canada, R3B 2E9
+
Supported by NSERC 105709-03 (139988) (Natural Sciences and Engineering Council of Canada)
*
Supported by NSERC 239074-01 (242523) (Natural Sciences and Engineering Council of Canada)
Keywords: XML, business rule, query tree, query evaluation, document fragmentation and assembly.
Abstract: XML documents are used to hold information and to make exchanges between systems. In this paper, we con-
sider documents that embed knowledge and rules, which may contain considerable redundancy. To control
redundancy and to provide for efficient execution of queries, documents are decomposed into fragments that
are stored separately. Then, to materialize documents for end-users, they need to be dynamically constructed
from their sources (separately stored fragments) by evaluating rules, which requires database queries to be
executed according to the document structure.
199
G. McFadyen R. and Chen Y. (2006).
RULE-BASED QUERY TREE EVALUATION OVER FRAGMENTED XML DOCUMENTS.
In Proceedings of WEBIST 2006 - Second International Conference on Web Information Systems and Technologies - Internet Technology / Web
Interface and Applications, pages 199-205
DOI: 10.5220/0001237501990205
Copyright
c
SciTePress
2 REQUIREMENTS DOCUMENT
AND SQT STRUCTURE
In Figure 1, we show some typical majors found in a
university calendar. Their XML representation is
illustrated in Figure 2. In Figure 1, each document is
a requirement for graduation from a certain major.
For instance, in Figure 1(a), we specify that to
graduate with a 3-Year BSc in Geography a student
must satisfy all of: Graduation Requirement (com-
pletion of 90 credit hours), Residence Requirement
(completion of a minimum of 30 credit hours at the
university and a minimum of 18 credit hours in
Geography at the university), a General Requirement
(12 credit hours in Humanities subjects and 6 credit
hours in Science subjects), and a Major Requirement
for certain courses in Geography. The fact that all
four of these requirements must be met simultane-
ously is indicated by the attribute: combin-
ing=”AND”, associated with the element
GeographyRule in the second line of the document
shown in Figure 2.
As discussed in (McFadyen et al 2005), we can
construct a synthesized query tree over such a docu-
ment. (McFadyen et al 2005) presents two such tree
structures: the boolean and the general SQT; for sim-
plicity, here we only discuss the boolean SQT.
Definition 1: a boolean synthesized query tree
(BSQT) is a tree where each leaf node v is associated
3-Year BSc (Geography)
Graduation Requirement
90 credit hours
Residence Requirement
Degree: minimum 30 credit hours
Major: minimum 18 credit hours
General Degree Requirement
Humanities: 12 credit hours
Science: 6 credit hours
Major Requirement
Minimum 30 credit hours
Maximum 48 credit hours
Required Courses
23.202 Intro Geography I
23.203 Intro Geography II
23.331 Advanced Geography
Choice
23.205 Atmos Sci or 23.206 Earth Sci
a) Graduation Requirements - Geography
3-Year BSc (Physics)
Graduation Requirement
90 credit hours
Residence Requirement
Degree: minimum 30 credit hours
Major: minimum 18 credit hours
General Degree Requirement
Humanities: 12 credit hours
Science: 6 credit hours
Major Requirement
Minimum 36 credit hours
Maximum 54 credit hours
Required Courses
44.101 Intro Physics
44.203 Mechanics
44.331 Relativity
b) Graduation Requirements - Physics
Figure 1: Graduation Requirements.
Figure 2: XML for 3-Year BSc (Geography).
<GeographyRule title=“Degree Requirement for 3-Year BSc(Geography
)”
combining=”AND”>
<GraduationRule title=”Graduation Requirement”
display=”90 credit hours” query= “... ” ...>
</GraduationRule>
<ResidenceRule title = ”Residence Requirement”
combining = ”AND” >
<DegreeRule title = ”Degree”
display = ”minimum 30 credit hours”
query = ”SELECT sum(creditHours)
FROM studentHistory
WHERE studentNum = x
HAVING sum(creditHours) > 30” >
</DegreeRule>
<MajorRule title=”Major” display=”minimum 18 credit hours”
query=”... ” ...>
</MajorRule>
</ResidenceRule>
<GeneralRule title=”General Degree Requirement”
combining=”AND”>
<HumanitiesRule title=”Humanities”
display=”12 credit hours” query=”... ” ...>
</HumanitiesRule>
<ScienceRule title=”Science” display=”6 credit hours” query=”... “..
.>
</ScienceRule>
</GeneralRule>
<MajorRule> title=”Major Requirement”
combining=”AND”>
<MinMaxRule
display=”Minimum 30 credit hours, Maximum 48 credit hours”
query=”... “ ...>
</MinMaxRule>
<ReqCoursesRule title=”Required Courses”
combining=”AND”>
<Course
display=”23.202 Intro Geography I” query=”...” ...> </Course>
<Course
display=”23.203 Intro Geography II” query=”...” ...> </Course
>
<Course
display=”23.331 Advanced Geography” query=”...” ...> </Cours
e>
</ReqCoursesRule>
<ChoiceRule title=”Choice”
display=”23.205 Atmos Sci or 23.206 Earth Sci”
combining=”OR”>
<Course query=”...” ...></Course>
<Course query=”...” ...></Course>
</ChoiceRule>
</MajorRule>
</GeographyRule>
GROUP BY studentNum
and institution=”UW”
WEBIST 2006 - INTERNET TECHNOLOGY
200
with a boolean query , and each internal node v
is labelled with a tag T(v), and an operator θ = or ;
and each node v is assigned a boolean value, V(v),
determined as follows:
a) for a leaf node, V(v) is true if the return value
of is not empty; otherwise, it is false, and
b) for an internal node, with children v
1
, ... v
n
,
.
For instance, for the graduation requirement of
Geography, we will construct a tree structure as
shown in Figure 3, which represents the rules, que-
ries and relationships corresponding to the require-
ments shown in Figure 2. One of the defining
characteristics of a query tree is that database queries
are only present in leaf nodes.
To determine if a student can graduate, it is nec-
essary to evaluate the appropriate SQT and its que-
ries in the context of the student. Thus, to do this for
a number of students, we have to traverse the SQT
trees repeatedly, each time for a single student.
An observation of the queries present in the
leaves shows that a slight modification will facilitate
set processing. To see this, let’s have a look at the
query Q
1
shown in Figure 3. If we remove the condi-
tion studentNum = x from the where-clause, the exe-
cution of the query will find all the students with
grade point 1 and more than 90 credit hours.
Now, for a given set of students, to check whether
they are eligible to get a degree, we traverse the
query tree bottom-up. During this process, all the
queries attached with the leaf nodes are evaluated
against the student records and the results are trans-
ferred to the internal nodes for further checking the
specified logic conditions.
For students of a different major, a different SQT
will be instantiated and traversed. Obviously, if two
SQTs share a common subtree, this subtree will be
traversed two times and its queries executed twice.
For example, the General requirement in the docu-
ment shown in Figure 1(a) is completely the same as
the General requirement shown in Figure 1(b). If we
evaluate the General subtree on its own it is traversed
once and its queries are executed once. The returned
result is then separated according to student majors
and transferred to the parent in the respective SQTs.
In this way, the common subtree is evaluated only
once. This observation leads to the SQT fragments
discussed in the next section.
Qv
()
Qv
()
Vv
()
Vv
1
()
=
θ
Vv
2
()θθ
Vv
n
()
Residence
Degree
Major
General
Major
Required
Courses
Huma-
Science
Graduation
or-node:
Choice
Complete 3-Year BSc (Geography)
and-node:
Figure 3: A Boolean SQT for graduation requirements.
Q
1
:
Q
1
Q
2
Q
3
Q
4
Q
5
Q
6
Q
7
Q
8
Q
9
Q
10
Q
11
select *
from StudentHistory
where studentNum =
x
and
gradePoint >= 1
group by studentNum
having sum(crHours >=90)
Q
2
:
select *
from StudentHistory
where studentNum =
x
and
institution = ‘UW
group by studentNum
having sum(crHours >=30)
Q
3
:
select *
from StudentHistory
where studentNum =
x
and
major = ‘Geography’
group by studentNum
having sum(crHours >=18)
Q
4
:
select *
from StudentHistory
where studentNum =
x
and
area = ‘humanities
group by studentNum
having sum(crHours >=12)
Q
5
:
select *
from StudentHistory
where studentNum =
x
and
area = ‘science
group by studentNum
having sum(crHou rs >=6)
Q
6
:
select *
from StudentHistory
where studentNum =
x
and
courseNum = 23.205
Q
7
:
select *
from StudentHistory
where studentNum =
x
and
courseNum = 23.206
Q
8
:
select *
from StudentHistory
where studentNum =
x
and
courseNum = 23.202
Q
9
:
select *
from StudentHistory
where studentNum =
x
and
courseNum = 23.203
Q
10
:
select *
from StudentHistory
where studentNum =
x
and
courseNum = 23.331
Q
11
:
select *
from StudentHistory
where studentNum =
x
and
major = ‘Geography’
group by studentNum
having
sum(30 <= crHours <= 48)
nities
group by studentNum
group by studentNum
group by studentNum
group by studentNum
group by studentNum
RULE-BASED QUERY TREE EVALUATION OVER FRAGMENTED XML DOCUMENTS
201
3 DOCUMENTS:
FRAGMENTATION AND
EVALUATION
In this section, we discuss SQT fragmentation. First,
we show how to fragment SQTs in 3.1. Then, we dis-
cuss how to evaluate fragmented SQTs in 3.2.
3.1 SQT Fragmentation
In (McFadyen et al 2005), two kinds of SQTs:
boolean SQTs and general SQTs are defined. Both
can be fragmented to speed up query evaluation. For
simplicity, however, we show only how to fragment
the boolean SQTs and the general SQTs can be han-
dled in a similar way.
First, we introduce the concept of virtual boolean
synthesized query trees, based on which the boolean
SQT fragmentation is conducted.
Definition 2: a virtual boolean synthesized query
tree (VBSQT) is a tree where a leaf node v is either
a) associated with a boolean query , or
b) specifies a fragment that is another VBSQT
(such a leaf node is called a virtual leaf node),
and each internal node v is labelled with a tag T(v),
and an operator θ = or ; and each node v is
assigned a boolean value, V(v), determined as fol-
lows:
a) for a leaf node that is a query, V(v) is true if the
return value of is not empty; otherwise, it
is false, and
b) for a leaf node that specifies a fragment, V(v) is
the value of the fragment, and
c) for an internal node, with children v
1
, ... v
n
,
.
For instance, the tree shown in Figure 4(a) is a
virtual version of the tree shown in Figure 3, in
which the leaf nodes labelled with v
1
, v
2
, and v
3
rep-
resent the three trees shown in Figure 4(b), respec-
tively. They are singled out since they also belong to
other SQTs. To see this, examine the tree shown in
Figure 4(c), which is a VBSQT for the 3-Year BSc in
Physics and where v
1
, v
2
, and v
3
are three of its leaf
nodes, too.
When more than two SQTs are involved, more
complicated SQT fragmentation has to be considered
as illustrated in Figure 5.
In this figure, we show three SQTs: T
1
, T
2
, and
T
3
. Among them, T
1
and T
2
share a common subtree
T’; and T
2
and T
3
share a different common subtree
T’. Furthermore, T’ itself is a subtree of T’. In such
a case, we will generate five VBSQTs. They are T
1
/
T’ (which represents the tree obtained by replacing
T’ with a virtual leaf node in T
1
), T
2
/T’, T
3
/T’’, T’/
T’’, and T’’.
Qv
()
Qv
()
Vv
()
Vv
1
()
=
θ
Vv
2
()θθ
Vv
n
()
Major
Required
Courses
Choice
Q
6
Q
7
Q
8
Q
9
Q
10
Q
11
Complete 3-Year BSc (Geography)
v
3
v
2
v
1
Graduatio
n
Q
1
v
1
:
Residence
Degre
e
Major
Q
2
Q
3
v
2
:
General
Huma-
Science
Q
4
Q
5
v
3
:
nities
(a)
(b)
Major
Required
Courses
Q
14
Q
15
Q
16
Q
17
v
3
v
1
Complete 3-Year BSc (Physics)
(c)
Figure 4: Illustration for SQT fragmentation.
v
2
Residence
Major
Q
3
T
1
T
2
T
T
T’’
T
3
T
’’
Figure 5: Fragmentation of three SQTs.
WEBIST 2006 - INTERNET TECHNOLOGY
202
As an example, consider a 3-Year BA (English)
major where the Humanities requirement is speci-
fied, but no specification for the Science require-
ment. Thus, the subtree representing the Humanities
requirement in the SQT for the English major is a
proper subtree of the General requirement in the
Geography major as illustrated in Figure 6(a), in
which v
4
represents the subtree shown in Figure 6(b).
Accordingly, the virtual SQT for the English major
will be of the form shown in Figure 7.
Note that the situation gets more complicated if
we allow for some other major that specifies the Sci-
ence requirement but not the Humanities. In such a
case, the General requirement would then have two
subtrees common to some different SQTs.
In general, we have the following algorithm to
fragment any number of SQTs. The algorithm is fol-
lowed by an example.
Algorithm SQT-fragmentation
1. Let T
1
, T
2
, ..., T
n
be SQT trees;
2. Let , ..., be all the subtrees shared by T
i
and
T
j
(i
j);
3. Repeat until fragments have been created for all
(i
j).
a) From unmarked subtrees, select and mark if
for all , (i,j
s,t). Generate a frag-
ment for . Mark any , if = .
b) For each , if , and there is no any
other such that , replace by
/.
4. Generate VBSQTs: T
1
/{all }, ..., T
n
/{all }.
To explain the SQT-fragmentation algorithm we
consider a more complicated scenario involving
Geography Physics, and English, which are consid-
ered as T
1
, T
2
, T
3
respectively in Step 1. Step 2 deter-
mines 9 common subtrees as shown below:
For Geography and Physics:
= Graduation subtree
= Degree subtree
= General subtree
For Geography and English:
= Graduation subtree
= Degree subtree
= Humanities subtree
For Physics and English:
= Graduation subtree
= Degree subtree
= Humanities subtree
In Step 3, we first generate 3 fragments for Grad-
uation requirement (= = ), Degree
requirement (= = ), and Humanities
requirement (= ) as these do not contain any
identified subtrees (see (a) in Step 3). Then, the frag-
ment for / will be created (see (b) in Step 3).
Finally, Step 4 generates the following VBSQTs: T
1
/
{ }, T
2
/{ }, T
3
/
{ }.
The fragmentation algorithm creates fragments
that, for a given set of documents, controls redun-
dancy present in rules by extracting common rules
into separate documents. Dividing a collection of
documents into sub-documents where those sub-doc-
uments are common components is a way of structur-
General
Science
Q
5
v
3
:
Figure 6: Humanities as a fragment of General.
Humanities
Q
4
v
4
v
4
:
(a) (b)
Δ
ij
1
Δ
ij
k
Δ
Δ
ij
l
Δ
st
k
Δ
ij
l
⊄Δ
s
t
k
Δ
ij
l
Δ
u
v
w
Δ
u
v
w
Δ
Δ
s
t
k
Δ
st
k
Δ
ij
l
Δ
u
v
w
Δ
st
k
Δ
uv
w
Δ
ij
l
⊃Δ
s
t
k
Δ
s
t
k
Δ
ij
l
Δ
s
t
k
Δ
s
t
k
Δ
1
2
1
Δ
1
2
2
Δ
1
2
3
Δ
1
3
1
Δ
1
3
2
Δ
1
3
3
Δ
2
3
1
Δ
2
3
2
Δ
2
3
3
Δ
1
2
1
Δ
1
3
1
Δ
2
3
1
Δ
1
2
2
Δ
1
3
2
Δ
2
3
2
Δ
1
3
3
Δ
2
3
3
Δ
1
2
3
Δ
1
3
3
Δ
1
2
1
Δ
1
2
2
Δ
1
2
3
Δ
1
2
1
Δ
1
2
2
Δ
1
2
3
Δ
1
2
1
Δ
1
2
2
Δ
1
3
3
v
4
v
1
Complete 3-Year BA (English)
Figure 7: VBSQT for English.
Major
Required
Courses
Choice
Q
21
Q
20
Q
19
Q
18
v
2
Residence
Major
Q
3
RULE-BASED QUERY TREE EVALUATION OVER FRAGMENTED XML DOCUMENTS
203
ing documents into manageable pieces that can be
considered separately or in combination.
Figure 8 presents the 3-Year BSc Geography doc-
ument as presented in Figures 4(a) and 4(b). Note the
use of the Xinclude feature of XML (XML.org 2005)
to link a pair of documents.
The next section discusses the evaluation of these
documents which requires the documents be re-
assembled in some way.
3.2 Evaluation of Fragmented SQTs
To determine the students who can graduate, we need
to evaluate the necessary SQTs for the students in
question. If we were to follow the procedure in
(McFadyen et al 2005) we would instantiate all SQTs
for each degree and every common fragment would
be evaluated many times. In contrast, we present
another more efficient procedure based on a frag-
ment graph for evaluating graduation status of stu-
dents.
In order to evaluate a fragmented SQT, we con-
struct a directed graph, called a fragment graph, in
which each node represents a fragment (or say, a
VBSQT), and we have an edge from a node frag
a
to
another node frag
b
if frag
b
frag
a
and there is not
any node frag
c
such that frag
b
frag
c
frag
a
. For
instance, the VBSQTs shown in Figures 4, 6 and 7
can be organized into graphs as shown in Figure 9(a)
and (b).
To evaluate the status of all students, we evaluate
the fragment graph bottom-up. During this process,
for each encountered node, we evaluate the VBSQT
represented by it and transfer the result obtained to
its parents. For example, consider Figure 9(a) for stu-
dents majoring in Geography and Physics. In a bot-
tom-up fashion, we first evaluate the SQTs
represented by v
1
, v
2
, and v
3
. The results are then
partitioned according to their majors and sent to the
corresponding parent nodes. In the next step, the
SQTs represented by the nodes labelled with Geogra-
phy and Physics are evaluated to find all the students
eligible to graduate.
The above process can be improved by using the
constants appearing in a query to speed up the com-
putation. For example, if we are considering only the
students majoring in Geography, we need to access
only part of the graph (marked grey) shown in Figure
9(a) or Figure 9(b).
<GeographyRule title=“Degree Requirement
for 3-Year BSc (Geography)”
combining=”AND”>
< Xinclude href=”GraduationRule.xml” >
<ResidenceRule title = ”Residence Requirement”
combining = ”AND” >
< Xinclude href=”DegreeRule.xml” >
<MajorRule title=”Major”, display=”minimum 18 credit hours”
query=”... ” ...>
</MajorRule>
</ResidenceRule>
< Xinclude href=”GeneralRule.xml” >
<MajorRule> title=”Major Requirement”
combining=”AND”>
<MinMaxRule
display=”Minimum 30 credit hours, Maximum 48 credit hours”
query=”... “ ...>
</MinMaxRule>”
<ReqCoursesRule title=”Required Courses”
combining=”AND”>
<Course
display=”23.202 Intro Geography I” query=”...” ...> </Course>
<Course
display=”23.203 Intro Geography II” query=”...” ...> </Course>
<Course
display=”23.331 Advanced Geography” query=”...” ...> </Course>
</ReqCoursesRule>
<ChoiceRule title=”Choice”
display=”23.205 Atmos Sci or 23.206 Earth Sci”
combining=”OR”>
<Course query=”...” ...></Course>
<Course query=”...” ...></Course>
</ChoiceRule>
</MajorRule>
</GeographyRule>
Figure 8: Requirements document referencing fragment
s
using the XML Xinclude feature.
v
1
v
2
v
3
3-Year BSc
(Geography)
3-Year BSc
(Physics)
(a) Fragment graph derived from Figure 4
Figure 9: Fragment graphs.
v
1
v
2
v
3
3-Year BSc
(Geography)
3-Year BSc
(Physics)
(b) Fragment graph derived from Figures 4, 6, 7
v
4
3-Year BA
(English)
WEBIST 2006 - INTERNET TECHNOLOGY
204
4 CONCLUSION AND FUTURE
WORK
In this paper, we consider a document type that
includes requirements and where a user comprehends
these requirements as rules to be followed to achieve
a certain designation. As a result, we consider each
document a single compound rule that may be
assembled from many fragments. When such a docu-
ment (e.g. 3-Year BSc Geography) is evaluated in a
certain context (e.g. for a specific student) there will
be a value generated for it. For this type of document,
fragmented SQTs succinctly represent document
content, evaluation and query requirements; a simple
tree traversal is required to evaluate or display a doc-
ument.
Since some requirements may appear many times
in different documents, these documents can exhibit
a great deal of redundancy. We have introduced an
algorithm to fragment a collection of documents, and
described an efficient approach for document evalua-
tion where each fragment/VBSQT is evaluated just
once, but many results are made available (i.e. for a
set of students).
We have developed a prototype system that
assembles and displays requirements documents
from fragments and determines on request the gradu-
ation status for students on a) an individual basis or
b) a set-oriented approach for handling many stu-
dents at one time. The former is useful by an individ-
ual student to measure their own progress, and the
latter approach is useful in a university setting at say,
the end of term, when students should be graduating.
The prototype has been constructed using Java, a
SAX parser, and student history data stored in a
mySQL relational database. Requirements docu-
ments are stored as fragments (related via Xinclude)
that are independent XML documents. Various func-
tions such as Logical And, Logical Or, Minimum,
and Arithmetic Add required for the general synthe-
sized query tree have been implemented.
We are examining algorithms for document eval-
uation, query optimization, discovery of common
subtrees, and other processing models such as the
pipe and filter architecture (Albin 2003).
We are examining other situations to apply the
query tree approach. We have not used functions that
return data in XML format. Such functions can be
used to perform an include operation, in the same
way that we have used Xinclude. Also, if we allow
functions as found in (Abiteboul et al 2002, Abite-
boul et al 2003, Bonifati et al 2001) that invoke arbi-
trary Web Services returning XML then our model
allows, as a special case, Active XML documents.
We intend to examine other issues related to the
processing of these query-based documents includ-
ing concerns such as “Which major, given my cur-
rent status, permits me to graduate most quickly?” or
“What are the added requirements if I were to do a
double major in Geography and Physics, instead of a
single major in Geography”?
REFERENCES
Abiteboul, S., Benjelloun, O., Manolescu I., Milo, T.,
Weber, R., 2002, Active XML: peer-to-peer data and
web services integration (demo), in Proceedings of
VLDB.
Abiteboul, S., Bonifati, A., Cobena, G., Manolescu, I.,
Milo, T., 2003, Dynamic XML documents with distri-
bution and replication, in SIGMOD 2003, June 9-12,
2003, San Diego, CA, USA.
Albin, S. T., The art of software architecture: design meth-
ods and techniques, Wiley Publishing, 2003, 1
st
edi-
tion, ISBN 0471228869.
Bonifati, A., Ceri, S. and Paraboschi, S., 2001, Active rules
for XML: A new paradigm for E-services, in VLDB
Journal, 10, 39-47.
Business Rules Group, Defining business rules: What are
they really?, 3rd. edition, July 2000, http://www.busi-
nessrulesgroup.org.
McFadyen, R., Chen, Y., Chan, F-Y., 2005, XML-based
evaluation of synthesized queries, in 1st International
Conference on Web Information Systems and Technolo-
gies (WEBIST 2005), 24-31, Miami, USA.
Quint, V., Vatton, I., 2004, Techniques for authoring com-
plex XML documents, in ACM Symposium on Docu-
ment Engineering (DOCENG 2004), Milwaukee,
Wisconsin, USA.
Ross, R. G., 1997, The business rule book, Business Rule
Solutions, Houston, 2
nd
edition.
Salminen, A., Tompa, F. W., 2001, Requirements for XML
document database systems, in ACM Symposium on
Document Engineering (DOCENG 2001), Atlanta,
Georgia, USA.
XML.org, http://www.w3.org/TR/xinclude/, retrieved June
8, 2005
RULE-BASED QUERY TREE EVALUATION OVER FRAGMENTED XML DOCUMENTS
205