<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (1.8.0_151) on Mon May 27 23:21:56 KST 2019 -->
<title>EvaluationMetric</title>
<meta name="date" content="2019-05-27">
<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../../../../../script.js"></script>
</head>
<body>
<script type="text/javascript"><!--
    try {
        if (location.href.indexOf('is-external=true') == -1) {
            parent.document.title="EvaluationMetric";
        }
    }
    catch(err) {
    }
//-->
var methods = {"i0":10,"i1":10,"i2":10};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!--   -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../../org/aksw/simba/quetsal/core/error/package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../../index-files/index-1.html">Index</a></li>
<li><a href="../../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li>Prev&nbsp;Class</li>
<li>Next&nbsp;Class</li>
</ul>
<ul class="navList">
<li><a href="../../../../../../index.html?org/aksw/simba/quetsal/core/error/EvaluationMetric.html" target="_top">Frames</a></li>
<li><a href="EvaluationMetric.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_top");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.top">
<!--   -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">org.aksw.simba.quetsal.core.error</div>
<h2 title="Class EvaluationMetric" class="title">Class EvaluationMetric</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li>java.lang.Object</li>
<li>
<ul class="inheritance">
<li>org.aksw.simba.quetsal.core.error.EvaluationMetric</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<hr>
<br>
<pre>public class <span class="typeNameLabel">EvaluationMetric</span>
extends java.lang.Object</pre>
<div class="block">This class provides methods pertaining to the accuracy of the cardinality estimators of the cost/cardinality-based engines.
 In particular, it contains methods to calculate the relative error, q-error, and cosine similarity error of the individual
 triple patterns, joins, and the complete query execution plan generated by the uderlying query processing engines.</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.summary">
<!--   -->
</a>
<h3>Constructor Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colOne" scope="col">Constructor and Description</th>
</tr>
<tr class="altColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/aksw/simba/quetsal/core/error/EvaluationMetric.html#EvaluationMetric--">EvaluationMetric</a></span>()</code>&nbsp;</td>
</tr>
</table>
</li>
</ul>
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method.summary">
<!--   -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>double</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/aksw/simba/quetsal/core/error/EvaluationMetric.html#getCosSimError-java.util.Vector-java.util.Vector-">getCosSimError</a></span>(java.util.Vector&nbsp;vecActualcard,
              java.util.Vector&nbsp;vecEstimatedCard)</code>
<div class="block">This method is for calculating the cosine similarity of query plan.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>double</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/aksw/simba/quetsal/core/error/EvaluationMetric.html#getQerror-java.util.Vector-java.util.Vector-">getQerror</a></span>(java.util.Vector&nbsp;vecActualcard,
         java.util.Vector&nbsp;vecEstimatedCard)</code>
<div class="block">This function returns the q-error corresponding to two vectors in arguments:
 1.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>protected double</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/aksw/simba/quetsal/core/error/EvaluationMetric.html#getRelativeError-int-int-">getRelativeError</a></span>(int&nbsp;actualCard,
                int&nbsp;estCard)</code>
<div class="block">This method is for calculating relative error between estimated and real cardinality</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
<!--   -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.detail">
<!--   -->
</a>
<h3>Constructor Detail</h3>
<a name="EvaluationMetric--">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>EvaluationMetric</h4>
<pre>public&nbsp;EvaluationMetric()</pre>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!--   -->
</a>
<h3>Method Detail</h3>
<a name="getQerror-java.util.Vector-java.util.Vector-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getQerror</h4>
<pre>public&nbsp;double&nbsp;getQerror(java.util.Vector&nbsp;vecActualcard,
                        java.util.Vector&nbsp;vecEstimatedCard)
                 throws java.lang.IllegalArgumentException</pre>
<div class="block">This function returns the q-error corresponding to two vectors in arguments:
 1. vector of actual cardinalities, 2. vector of estimated cardinalities. Note the ordering in both list is important,
 i.e., the ith element in both vectors corresponds to each other: real cardinality vs. corresponding estimated cardinaltiy.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>vecActualcard</code> - This vector contains values of actual cardinalities in a query plan (Joins or TPs or Both)</dd>
<dd><code>vecEstimatedCard</code> - This vector contains values of estimated cardinalities in a query plan (Joins or TPs or Both)</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>q-error value</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalArgumentException</code> - checks if arguments are correct</dd>
</dl>
</li>
</ul>
<a name="getCosSimError-java.util.Vector-java.util.Vector-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getCosSimError</h4>
<pre>public&nbsp;double&nbsp;getCosSimError(java.util.Vector&nbsp;vecActualcard,
                             java.util.Vector&nbsp;vecEstimatedCard)
                      throws java.lang.IllegalArgumentException</pre>
<div class="block">This method is for calculating the cosine similarity of query plan. It also expect two vectors 1. vector of actual cardinalities of all joins and triple patterns in the query plan, 2. vector of estimated cardinalities of all joins and triple patterns in the query plan. Note the ordering in both list is important, i.e., the ith element in both vectors corresponds to each other: real cardinality vs. corresponding estimated cardinaltiy.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>vecActualcard</code> - This vector contains values of actual cardinalities in a query plan (Joins or TPs or Both)</dd>
<dd><code>vecEstimatedCard</code> - This vector contains values of estimated cardinalities in a query plan (Joins or TPs or Both)</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>cosine similarity error value</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalArgumentException</code> - checks if arguments are correct</dd>
</dl>
</li>
</ul>
<a name="getRelativeError-int-int-">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>getRelativeError</h4>
<pre>protected&nbsp;double&nbsp;getRelativeError(int&nbsp;actualCard,
                                  int&nbsp;estCard)</pre>
<div class="block">This method is for calculating relative error between estimated and real cardinality</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>actualCard:</code> - Actual number of triples as a result of JOINs or triple patern query to endpoint.</dd>
<dd><code>estCard:</code> - Estimated number of triples as a result</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>relative error between actual and estimated results</dd>
</dl>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!--   -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.bottom.firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../../org/aksw/simba/quetsal/core/error/package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../../index-files/index-1.html">Index</a></li>
<li><a href="../../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li>Prev&nbsp;Class</li>
<li>Next&nbsp;Class</li>
</ul>
<ul class="navList">
<li><a href="../../../../../../index.html?org/aksw/simba/quetsal/core/error/EvaluationMetric.html" target="_top">Frames</a></li>
<li><a href="EvaluationMetric.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_bottom");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.bottom">
<!--   -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>
