# Complete Subhedge Projection for Stepwise Hedge Automata +
## 11 Experiments with Streaming XPath Evaluation
### Experiments
#### 11.4.3 Comparison to External Tools  
QuiXPath was shown to be the most efficient large coverage external tool for regular XPath evaluation on Xml streams [4]. Therefore, we compare the efficiency of congruence projection to QuiXPath in Table 6, and thereby, by transitivity to the many alternative tools. We note that QuiXPath performs early query answering by compilation to possibly nondeterministic Nwas with selection states, without always being earliest. Apart from this, it bases its efficiency on both subtree projection and descendant projection.  
The experiments with QuiXPath in [4] use the parse-free time. Therefore, we do the same for congruence projection by reducing the measured overall time by 15 s of parsing time.  
Compared to the parsing-free times for the XPath queries without descendant axis, the earliest congruence projection demonstrates significant improvements. On average, our projection is only slower by a factor of 1.3-2.9 than QuiXPath. This shows that our  
\begin{table}
\begin{tabular}{c c c c c c c c} \hline \hline
**Query** & **Parse-Free** & **Parse-Free** & **Fract.** & **Query** & **Parse-Free** & **Parse-Free** & **Fract.** \\
**ID** & **Time (s)** & **Time (s)** & **ID** & **Time (s)** & **Time (s)** & **Time (s)** & **Fract.** \\  & **QuiXPath** & **Congr. Prj.** & & & **QuiXPath** & **Congr. Prj.** & \\ \hline A1 & 11.0 & 14.3 & 1.3 & A2 & 11.4 & 156.8 & 13.8 \\ \hline A4 & 11.6 & 18.2 & 1.6 & A3 & 11.5 & 18.4 & 1.6 \\ \hline A6 & 10.7 & 30.9 & 2.9 & A5 & 12.0 & & \\ \hline A7 & 8.6 & 15.5 & 1.8 & & & & \\ \hline A8 & 8.8 & 22.5 & 2.6 & & & & \\ \hline \hline \end{tabular}
\end{table}
Table 6: Comparison of of parse-free timings in seconds for XPathMark queries with QuiXPath and earliest congruence projection.  
\begin{table}
\begin{tabular}{c c c c c c} \hline \hline
**Query** & **Time (s)** & **Time (s)** & **Time Gain** & **Time Gain** & **Event Gain** \\
**ID** & **Snc** & **Congr** & **Snc** & **Congr** & **Congr** \\ \hline A1 & 72.8 & 29.3 & 92.3\% & 98.1\% & 98.9\% \\ \hline A2 & 664.6 & 171.8 & 8.5\% & 77.9\% & 81.1\% \\ \hline A3 & 666.1 & 33.4 & 10.9\% & 97.4\% & 97.8\% \\ \hline A4 & 78.5 & 33.2 & 92.4\% & 97.8\% & 98.9\% \\ \hline A5 & 77.7 & & 92.3\% & & \\ \hline A6 & 65.2 & 45.9 & 95.1\% & 96.9\% & 98.2\% \\ \hline A7 & 24.6 & 30.5 & 98.8\% & 98.0\% & 98.7\% \\ \hline A8 & 24.8 & 37.5 & 98.9\% & 97.3\% & 98.7\% \\ \hline \hline \end{tabular}
\end{table}
Table 5: Time gain for earliest safe-no-change and eearliest congruence projection, and the event gain of earliest congruence projection.  
implementation is already close to be competitive with the existing Xml streaming tools, while being the only one guaranteeing earliest query answering.  
For query A2 with a descendant axis, congruence projection is by a factor of 13.8 slower than QuiXPath. The reason is that QuiXPath supports descendant projection, while congruence projection concerns only subhedge. For query A3 with a descendant axis at the end, congruence projection is only by a factor of 1.6 behind, so descendant projection seems less relevant here.