Commit 04319c06 authored by Sylvain Schmitz's avatar Sylvain Schmitz

generate benchmark composition table

parent 6d10cf24
all: dist.dat axis-count.tex size-gte-100.tex matrices xslt.dat xqy.dat coverage-size.tex coverage-axis-step.tex numqueries.tex MAXcount.tex
all: dist.dat axis-count.tex size-gte-100.tex matrices xslt.dat xqy.dat coverage-size.tex coverage-axis-step.tex numqueries.tex MAXcount.tex composition.tex
SHELL := /bin/bash
......@@ -95,3 +95,6 @@ coverage-size.tex: coverage-size.sh benchmarks-all-full.xml $(wildcard ../../ben
coverage-axis-step.tex: coverage-axis-step.sh benchmarks-all-full.xml $(wildcard ../../benchmark/*-full.xml)
./$< `grep 'href' benchmarks-all-full.xml | sed -e 's/.*href="\([^"]*\).*/\1/'` > $@
composition.tex: composition.sh benchmarks-all-full.xml $(wildcard ../../benchmark/*-full.xml)
./$< > $@
#!/bin/bash
xslt=`grep 'xslt' benchmarks-all-full.xml | sed -e 's/.*href="\([^"]*\).*/\1/'`
xquery=`grep 'xquery' benchmarks-all-full.xml | sed -e 's/.*href="\([^"]*\).*/\1/'`
printf '\\begin{tabular}{lrrrr}\n'
printf '\\toprule\n'
printf 'Source & \\!\\!queries & \\!\\!XPath\\,1.0 & \\!\\!XPath\\,2.0 & \\!\\!XPath\,3.0\\\\\n'
printf '\\midrule\n'
# total number of XSLT queries
printf 'XSLT '
n=`grep '<ast' $xslt | wc -l`
printf "& %'.0f " $n
#coverage of standard XPath languages
for ((i=1; i < 4; ++i))
do
count=0
for file in $xslt
do
c=`xmlstarlet sel -N xqx="http://www.w3.org/2005/XQueryX" -t -c "count(//xpath[schemas/validation[@schema=\"xpath-$i.0.rnc\" and @valid=\"yes\"]])" $file`
count=$((count+c))
done
counts[$i]=$count
percent=`echo "scale=1; 100*$count/$n" | bc`
printf "& $percent\\\\%% "
done
printf '\\\\\n'
N=$n
# total number of XQuery queries
printf 'XQuery '
n=`grep '<ast' $xquery | wc -l`
printf "& %'.0f " $n
# coverage of standard XPath languages
for ((i=1; i < 4; ++i))
do
count=0
for file in $xquery
do
c=`xmlstarlet sel -N xqx="http://www.w3.org/2005/XQueryX" -t -c "count(//xpath[schemas/validation[@schema=\"xpath-$i.0.rnc\" and @valid=\"yes\"]])" $file`
count=$((count+c))
done
counts[$i]=$((count + counts[i]))
percent=`echo "scale=1; 100*$count/$n" | bc`
printf "& $percent\\\\%% "
done
printf '\\\\\n'
N=$((N + n))
printf '\\midrule\n'
printf 'Total '
printf "& %'.0f " $N
for ((i=1; i < 4; ++i))
do
count=${counts[i]}
percent=`echo "scale=1; 100*$count/$N" | bc`
printf "& $percent\\\\%% "
done
printf '\\\\\n'
printf '\\bottomrule\n'
printf '\\end{tabular}\n'
# \begin{tabular}{lrrrr}
# \toprule
# Source & \!\!queries & \!\!XPath\,1.0 & \!\!XPath\,2.0 & \!\!XPath\,3.0\\
# % \midrule
# % W3C QT & 207 & 132 & 138 & 207\\
# % XPathMark & 38 & 38 & 38 & 38\\
# \midrule
# DocBook & 7,620 & 7,620 & 7,620 & 7,620 \\
# HTMLBook & 752 & 752 & 752 & 752 \\
# eXist-db & 1,236 & 955 & 1,105 & 1,236 \\
# HisTEI & 483 & 361 & 471 & 483 \\
# MarkLogic & 196 & 139 & 184 & 191 \\
# XQJSON & 90 & 67 & 90 & 90 \\
# \midrule
# Total & 10,377 & 9,894 & 10,222 & 10,372\\
# & & (95\%) & (98\%) & (100\%)\\
# \bottomrule
# \end{tabular}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment