Commit 8e5709be authored by Thomas Huetter's avatar Thomas Huetter

change to public tree-similarity repository

parent b57f7a50
......@@ -17,8 +17,8 @@ endif()
# Build executable with the experiments.
add_executable(
ted-join-experiments # EXECUTABLE NAME
src/experiments.cc # EXECUTABLE SOURCE
ted-join-experiments # EXECUTABLE NAME
src/join_algs/join_algs_experiments.cc # EXECUTABLE SOURCE
)
target_link_libraries(
ted-join-experiments # TARGET EXECUTABLE NAME
......@@ -55,16 +55,17 @@ add_library(
)
target_include_directories(
TreeSimilarity INTERFACE
external/tree-similarity-private/src/allpairs
external/tree-similarity-private/src/cost_model
external/tree-similarity-private/src/data_structures
external/tree-similarity-private/src/join
external/tree-similarity-private/src/label
external/tree-similarity-private/src/node
external/tree-similarity-private/src/parser
external/tree-similarity-private/src/tree_to_set_converter
external/tree-similarity-private/src/ted
external/tree-similarity-private/src/ted_ub
external/tree-similarity/src/cost_model
external/tree-similarity/src/data_structures
external/tree-similarity/src/join
external/tree-similarity/src/join/tjoin
external/tree-similarity/src/join/tang
external/tree-similarity/src/join/naive
external/tree-similarity/src/label
external/tree-similarity/src/node
external/tree-similarity/src/parser
external/tree-similarity/src/ted
external/tree-similarity/src/ted_ub
)
# Let the compiler know to find the header files in TreeSimilarity library.
......
......@@ -9,7 +9,7 @@ cd external
# Timing library.
git clone git@frosch.cosy.sbg.ac.at:wmann/common-code.git
# Tree Similarity library.
git clone git@frosch.cosy.sbg.ac.at:thuetter/tree-similarity-private.git
git clone -b develop https://github.com/DatabaseGroup/tree-similarity.git
```
Then execute the following from the project's root directory.
......
{
"datasets": [
"bolzano/bolzano_sorted.bracket"
],
"thresholds": [
1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0,
11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0
],
"algorithms": [
{ "name": "t_join",
"verification_algorithm" : "Touzet",
"upperbound": "greedy"
},
{ "name": "tang_join",
"verification_algorithm" : "Touzet",
"upperbound": "none"
}
]
}
\ No newline at end of file
{
"datasets": [
"dblp/dblp_no_www_sorted.bracket"
],
"thresholds": [
1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0
],
"algorithms": [
{ "name": "t_join",
"verification_algorithm" : "Touzet",
"upperbound": "greedy"
}
]
}
\ No newline at end of file
{
"datasets": [
"python/python_sorted.bracket"
],
"thresholds": [
1.0, 2.0, 5.0, 10.0, 15.0, 20.0
],
"algorithms": [
{ "name": "t_join",
"verification_algorithm" : "Touzet",
"upperbound": "greedy"
}
]
}
\ No newline at end of file
{
"datasets": [
"/sentiment/sentiment_sorted.bracket"
],
"thresholds": [
1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0,
11.0, 12.0, 13.0, 14.0, 15.0
],
"algorithms": [
{ "name": "t_join",
"verification_algorithm" : "Touzet",
"upperbound": "greedy"
},
{ "name": "tang_join",
"verification_algorithm" : "Touzet",
"upperbound": "none"
}
]
}
\ No newline at end of file
{
"datasets": [
"swissprot/swissprot_sorted.bracket"
],
"thresholds": [
1.0, 5.0, 10.0, 15.0, 20.0, 25.0, 30.0,
35.0, 40.0, 45.0, 50.0, 55.0, 60.0
],
"algorithms": [
{ "name": "t_join",
"verification_algorithm" : "Touzet",
"upperbound": "greedy"
}
]
}
\ No newline at end of file
{
"datasets": [
"/home/mpawlik/Remote/ted-join-experiments/datasets/L_preprocessed.txt"
],
"thresholds": [
10.0
],
"algorithms": [
"--tzd", "--lg"
]
}
\ No newline at end of file
This diff is collapsed.
-- Parameters of a ted experiment (for normalization):
-- ted_experiment_timestamp timestamp,
-- experiments_source_commit varchar(127),
-- algorithm_source_commit varchar(127),
-- hostname varchar(127),
-- dataset_filename varchar(127) REFERENCES dataset(filename)
-- Common algorithm attributes:
--
-- IMPORTANT: Apply to all if modified.
-- execution_id bigserial PRIMARY KEY,
-- ted_experiment_params_id integer REFERENCES ted_experiment_params(ted_experiment_params_id),
-- tree_id_1 integer,
-- tree_id_2 integer,
-- tree_size_1 integer,
-- tree_size_2 integer,
-- ted_value decimal,
-- subproblems bigint,
-- runtime bigint
-- Only TEDk algs:
-- has_ted_mapping boolean, -- if TRUE ted_value >=0; if FALSE ted_value = NULL
-- ted_threshold decimal,
-- There is a tuple in this table for each execution of the experiments binary.
DROP TABLE IF EXISTS ted_experiment_params CASCADE;
CREATE TABLE ted_experiment_params (
ted_experiment_params_id serial PRIMARY KEY,
ted_experiment_timestamp timestamp,
experiments_source_commit varchar(127),
algorithm_source_commit varchar(127),
hostname varchar(127),
dataset_filename varchar(127) REFERENCES dataset(filename)
);
DROP TABLE IF EXISTS ted_zhangshasha;
CREATE TABLE ted_zhangshasha (
execution_id bigserial PRIMARY KEY,
ted_experiment_params_id integer NOT NULL REFERENCES ted_experiment_params(ted_experiment_params_id),
tree_id_1 integer,
tree_id_2 integer,
tree_size_1 integer,
tree_size_2 integer,
ted_value decimal,
subproblems bigint,
runtime double precision
);
DROP TABLE IF EXISTS ted_apted;
CREATE TABLE ted_apted (
execution_id bigserial PRIMARY KEY,
ted_experiment_params_id integer NOT NULL REFERENCES ted_experiment_params(ted_experiment_params_id),
tree_id_1 integer,
tree_id_2 integer,
tree_size_1 integer,
tree_size_2 integer,
ted_value decimal,
subproblems bigint,
runtime double precision
);
-- Touzet's algorithm - baseline version without the depth-based pruning
DROP TABLE IF EXISTS tedk_touzet;
CREATE TABLE tedk_touzet (
execution_id bigserial PRIMARY KEY,
ted_experiment_params_id integer NOT NULL REFERENCES ted_experiment_params(ted_experiment_params_id),
tree_id_1 integer,
tree_id_2 integer,
tree_size_1 integer,
tree_size_2 integer,
ted_value decimal,
subproblems bigint,
runtime double precision,
has_ted_mapping boolean, -- if TRUE ted_value >=0; if FALSE ted_value = NULL
ted_threshold decimal
);
-- Touzet's algorithm - with depth-based pruning
DROP TABLE IF EXISTS tedk_touzetd;
CREATE TABLE tedk_touzetd (
execution_id bigserial PRIMARY KEY,
ted_experiment_params_id integer NOT NULL REFERENCES ted_experiment_params(ted_experiment_params_id),
tree_id_1 integer,
tree_id_2 integer,
tree_size_1 integer,
tree_size_2 integer,
ted_value decimal,
subproblems bigint,
runtime double precision,
has_ted_mapping boolean, -- if TRUE ted_value >=0; if FALSE ted_value = NULL
ted_threshold decimal
);
-- Label-guided upper bound
DROP TABLE IF EXISTS tedk_labelguided;
CREATE TABLE tedk_labelguided (
execution_id bigserial PRIMARY KEY,
ted_experiment_params_id integer NOT NULL REFERENCES ted_experiment_params(ted_experiment_params_id),
tree_id_1 integer,
tree_id_2 integer,
tree_size_1 integer,
tree_size_2 integer,
ted_value decimal,
subproblems bigint,
runtime double precision,
ted_threshold decimal
);
\ No newline at end of file
This diff is collapsed.
This diff is collapsed.
......@@ -19,14 +19,14 @@
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
// SOFTWARE.
/// \file src/experiments.h
/// \file src/join_algs/join_algs_experiments.h
///
/// \details
/// Implements an experimental environment that executes algorithms in located in
/// in the folder external/.
#ifndef EXPERIMENTS_H
#define EXPERIMENTS_H
#ifndef JOIN_ALGS_EXPERIMENTS_H
#define JOIN_ALGS_EXPERIMENTS_H
#include <iostream>
#include <time.h>
......@@ -37,23 +37,15 @@
#include "node.h"
#include "string_label.h"
#include "bracket_notation_parser.h"
#include "allpairs_generic.h"
#include "allpairs_multiset_baseline.h"
#include "allpairs_multiset_dsf.h"
#include "allpairs_multiset_two_layer.h"
#include "allpairs_generic_self_join.h"
#include "allpairs_multiset_baseline_self_join.h"
#include "allpairs_multiset_dsf_self_join.h"
#include "allpairs_multiset_two_layer_self_join.h"
#include "partition_based_self_join.h"
#include "naive_self_join.h"
#include "t_join.h"
#include "tang_join.h"
#include "naive_join.h"
#include "unit_cost_model.h"
#include "tree_to_set_converter.h"
#include "tree_to_set_converter_multiset.h"
#include "tree_to_set_converter_multiset_baseline.h"
#include "label_set_converter.h"
#include "binary_tree_converter.h"
#include "zhang_shasha.h"
#include "touzet.h"
#include "greedy_ub.h"
#include "apted.h"
#endif // EXPERIMENTS_H
#endif // JOIN_ALGS_EXPERIMENTS_H
#!/usr/bin/env python
#!/usr/bin/env python3
# The MIT License (MIT)
# Copyright (c) 2017 Thomas Huetter.
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to deal
# in the Software without restriction, including without limitation the rights
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
# copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in
# all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
# SOFTWARE.
'''
File name: experiments.py
Author: Thomas Huetter
......@@ -19,7 +41,7 @@ from datetime import datetime
# TODO: Fix the paths depending on where is the script executed from.
# Everything is executed from the project's root.
binary_name = "build/ted-join-experiments"
algorithms_repository_path = "external/tree-similarity-private/"
algorithms_repository_path = "external/tree-similarity/"
# execute a command and return stdout
def get_stdout_cmd(callargs):
......@@ -53,9 +75,9 @@ def get_hostname():
return socket.gethostname()
# http://initd.org/psycopg/docs/sql.html#module-psycopg2.sql
def store_result(table_name, values_dict):
def store_result(service, table_name, values_dict):
# Connect to database.
db = psycopg2.connect("service=ted-join")
db = psycopg2.connect("service=" + service)
# Open a cursor to perform database operations
cur = db.cursor()
attributes = values_dict.keys()
......@@ -64,7 +86,6 @@ def store_result(table_name, values_dict):
sql.SQL(', ').join(map(sql.Identifier, attributes)),
sql.SQL(', ').join(map(sql.Placeholder, attributes))
)
print(query.as_string(cur))
cur.execute(query, values_dict)
db.commit()
# Close the cursor.
......@@ -77,27 +98,30 @@ def print_result(table_name, values_dict):
values_dict.update(algorithm_params)
print(values_dict)
parser = argparse.ArgumentParser()
parser.add_argument(
type=str,
dest='config_filename',
help="Path to experiments config file."
)
args = parser.parse_args()
# Fixed values for this execution - passed to all algorithms.
fixed_values = {
"experiments_timestamp" : get_experiments_timestamp(),
"algorithm_version" : get_algorithm_version(),
"experiments_version" : get_experiments_version(),
"hostname" : get_hostname()
}
data = json.load(open(args.config_filename))
for a in data['algorithms']:
for ub in data['upperbounds']:
for d in data['datasets']:
def main():
parser = argparse.ArgumentParser()
parser.add_argument('--config', type=str, required=True,
help="Path to experiments config file.")
parser.add_argument('--dataset_path', type=str, required=True,
help="Path to the root directory of the datasets.")
parser.add_argument('--service', type=str,
help="Service name for db connection. Specify this parameter to store the results in a database.")
args = parser.parse_args()
# Fixed values for this execution - passed to all algorithms.
fixed_values = {
"experiments_timestamp" : get_experiments_timestamp(),
"algorithm_version" : get_algorithm_version(),
"experiments_version" : get_experiments_version(),
"hostname" : get_hostname()
}
data = json.load(open(args.config))
for a in data['algorithms']:
for ds in data['datasets']:
for t in data['thresholds']:
# dataset path is composed of argument dataset_path and the path specified in the config
d = args.dataset_path + ds
path, filename = os.path.split(d)
experiment_params = {
"dataset_filename" : filename,
......@@ -106,29 +130,26 @@ for a in data['algorithms']:
# build command that needs to be executed
cmd = []
# call binary
if a['name'] == 'allpairs_self_join' or a['name'] == 'allpairs_multiset_baseline_self_join' or a['name'] == 'allpairs_multiset_dsf_self_join' or a['name'] == 'allpairs_multiset_two_layer_self_join' :
if a['name'] == 't_join' or a['name'] == 'tang_join':
algorithm_params = {
"verification_algorithm" : a['verification_algorithm'],
"similarity_function" : a['similarity_function'],
"upperbound" : ub
"upperbound" : a['upperbound']
}
cmd.extend((binary_name, d, str(t), a['name'], a['verification_algorithm'], a['similarity_function'], ub))
elif a['name'] == 'naive_self_join':
cmd.extend((binary_name, d, str(t), a['name'], a['verification_algorithm'], "", a['upperbound']))
elif a['name'] == 'naive_join':
algorithm_params = {
"verification_algorithm" : a['verification_algorithm']
}
cmd.extend((binary_name, d, str(t), a['name'], a['verification_algorithm'], "", ub))
elif a['name'] == 'partition_based_self_join':
algorithm_params = {
"verification_algorithm" : a['verification_algorithm'],
"upperbound" : ub
}
cmd.extend((binary_name, d, str(t), a['name'], a['verification_algorithm'], "", ub))
cmd.extend((binary_name, d, str(t), a['name'], a['verification_algorithm'], "", a['upperbound']))
cmd_output = get_stdout_cmd(cmd).strip()
result_data = json.loads(cmd_output.decode('utf-8'))
result_data.update(fixed_values)
result_data.update(experiment_params)
result_data.update(algorithm_params)
store_result(a['name'], result_data)
if args.service:
store_result(args.service, a['name'], result_data)
print_result(a['name'], result_data)
if __name__ == "__main__":
main()
\ No newline at end of file
#!/usr/bin/env python
#!/usr/bin/env python3
# The MIT License (MIT)
# Copyright (c) 2017 Thomas Huetter.
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to deal
# in the Software without restriction, including without limitation the rights
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
# copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in
# all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
# SOFTWARE.
'''
File name: local_experiments.py
Author: Thomas Huetter
Program: Wrapper script to call ../build/ted-join-experiments. Instead
of writing tothe database, the output is written to stdout in
of writing to the database, the output is written to stdout in
json format. Called from /src/.
'''
......
### Upperbound
python3 plot_experiments.py --config configs/upperbound/dblp_error.json --storeplot "./dblp_error.pdf"
python3 plot_experiments.py --config configs/upperbound/dblp_runtime_k.json --storeplot "./dblp_runtime_k_9305acf1.pdf"
python3 plot_experiments.py --config configs/upperbound/dblp_runtime.json --storeplot "./dblp_runtime_9305acf1.pdf"
python3 plot_experiments.py --config configs/upperbound/dblp_ted.json --storeplot "./dblp_ted.pdf"
python3 plot_experiments.py --config configs/upperbound/dblp_error.json --storeplot "./plots/dblp_error.pdf"
python3 plot_experiments.py --config configs/upperbound/dblp_runtime_k.json --storeplot "./plots/dblp_runtime_k_9305acf1.pdf"
python3 plot_experiments.py --config configs/upperbound/dblp_runtime.json --storeplot "./plots/dblp_runtime_9305acf1.pdf"
python3 plot_experiments.py --config configs/upperbound/dblp_ted.json --storeplot "./plots/dblp_ted.pdf"
python3 plot_experiments.py --config configs/upperbound/python_runtime_k.json --storeplot "./python_runtime_k_9305acf1.pdf"
python3 plot_experiments.py --config configs/upperbound/python_runtime.json --storeplot "./python_runtime_9305acf1.pdf"
python3 plot_experiments.py --config configs/upperbound/python_runtime_k.json --storeplot "./plots/python_runtime_k_9305acf1.pdf"
python3 plot_experiments.py --config configs/upperbound/python_runtime.json --storeplot "./plots/python_runtime_9305acf1.pdf"
python3 plot_experiments.py --config configs/upperbound/sentiment_error.json --storeplot "./sentiment_error.pdf"
python3 plot_experiments.py --config configs/upperbound/sentiment_runtime_k.json --storeplot "./sentiment_runtime_k_9305acf1.pdf"
python3 plot_experiments.py --config configs/upperbound/sentiment_runtime.json --storeplot "./sentiment_runtime_9305acf1.pdf"
python3 plot_experiments.py --config configs/upperbound/sentiment_ted.json --storeplot "./sentiment_ted.pdf"
python3 plot_experiments.py --config configs/upperbound/sentiment_error.json --storeplot "./plots/sentiment_error.pdf"
python3 plot_experiments.py --config configs/upperbound/sentiment_runtime_k.json --storeplot "./plots/sentiment_runtime_k_9305acf1.pdf"
python3 plot_experiments.py --config configs/upperbound/sentiment_runtime.json --storeplot "./plots/sentiment_runtime_9305acf1.pdf"
python3 plot_experiments.py --config configs/upperbound/sentiment_ted.json --storeplot "./plots/sentiment_ted.pdf"
python3 plot_experiments.py --config configs/upperbound/swissprot_runtime_k.json --storeplot "./swissprot_runtime_k_9305acf1.pdf"
python3 plot_experiments.py --config configs/upperbound/swissprot_runtime.json --storeplot "./swissprot_runtime_9305acf1.pdf"
python3 plot_experiments.py --config configs/upperbound/swissprot_runtime_k.json --storeplot "./plots/swissprot_runtime_k_9305acf1.pdf"
python3 plot_experiments.py --config configs/upperbound/swissprot_runtime.json --storeplot "./plots/swissprot_runtime_9305acf1.pdf"
### FPR
python3 plot_experiments.py --config configs/fpr/fpr_bolzano.json --storeplot "./bolzano_fpr.pdf"
python3 plot_experiments.py --config configs/fpr/fpr_dblp.json --storeplot "./dblp_fpr.pdf"
python3 plot_experiments.py --config configs/fpr/fpr_python.json --storeplot "./python_fpr.pdf"
python3 plot_experiments.py --config configs/fpr/fpr_sentiment.json --storeplot "./sentiment_fpr.pdf"
python3 plot_experiments.py --config configs/fpr/fpr_swissprot.json --storeplot "./swissprot_fpr.pdf"
python3 plot_experiments.py --config configs/fpr/fpr_bolzano.json --storeplot "./plots/bolzano_fpr.pdf"
python3 plot_experiments.py --config configs/fpr/fpr_dblp.json --storeplot "./plots/dblp_fpr.pdf"
python3 plot_experiments.py --config configs/fpr/fpr_python.json --storeplot "./plots/python_fpr.pdf"
python3 plot_experiments.py --config configs/fpr/fpr_sentiment.json --storeplot "./plots/sentiment_fpr.pdf"
python3 plot_experiments.py --config configs/fpr/fpr_swissprot.json --storeplot "./plots/swissprot_fpr.pdf"
### Pairs
python3 plot_experiments.py --config configs/pairs/tree_pairs_bolzano.json --storeplot "./bolzano_pairs.pdf"
python3 plot_experiments.py --config configs/pairs/tree_pairs_dblp.json --storeplot "./dblp_pairs.pdf"
python3 plot_experiments.py --config configs/pairs/tree_pairs_python.json --storeplot "./python_pairs.pdf"
python3 plot_experiments.py --config configs/pairs/tree_pairs_sentiment.json --storeplot "./sentiment_pairs.pdf"
python3 plot_experiments.py --config configs/pairs/tree_pairs_swissprot.json --storeplot "./swissprot_pairs.pdf"
python3 plot_experiments.py --config configs/pairs/tree_pairs_bolzano.json --storeplot "./plots/bolzano_pairs.pdf"
python3 plot_experiments.py --config configs/pairs/tree_pairs_dblp.json --storeplot "./plots/dblp_pairs.pdf"
python3 plot_experiments.py --config configs/pairs/tree_pairs_python.json --storeplot "./plots/python_pairs.pdf"
python3 plot_experiments.py --config configs/pairs/tree_pairs_sentiment.json --storeplot "./plots/sentiment_pairs.pdf"
python3 plot_experiments.py --config configs/pairs/tree_pairs_swissprot.json --storeplot "./plots/swissprot_pairs.pdf"
### Times
python3 plot_experiments.py --config configs/times/times_bolzano.json --storeplot "./bolzano_times.pdf"
python3 plot_experiments.py --config configs/times/times_dblp.json --storeplot "./dblp_times.pdf"
python3 plot_experiments.py --config configs/times/times_python.json --storeplot "./python_times.pdf"
python3 plot_experiments.py --config configs/times/times_sentiment.json --storeplot "./sentiment_times.pdf"
python3 plot_experiments.py --config configs/times/times_swissprot.json --storeplot "./swissprot_times.pdf"
python3 plot_experiments.py --config configs/times/times_bolzano.json --storeplot "./plots/bolzano_times.pdf"
python3 plot_experiments.py --config configs/times/times_dblp.json --storeplot "./plots/dblp_times.pdf"
python3 plot_experiments.py --config configs/times/times_python.json --storeplot "./plots/python_times.pdf"
python3 plot_experiments.py --config configs/times/times_sentiment.json --storeplot "./plots/sentiment_times.pdf"
python3 plot_experiments.py --config configs/times/times_swissprot.json --storeplot "./plots/swissprot_times.pdf"
......@@ -11,7 +11,7 @@
"colors": ["red", "green"],
"tables": [
{
"table_name": "partition_based_self_join",
"table_name": "tang_join",
"attributes": [
{
"attr_name": "avg(1.0 - (result_set_size::decimal / NULLIF(verification_candidates::decimal,0)))"
......@@ -20,22 +20,21 @@
"name": "$\\mathtt{Tang}$"
},
{
"table_name": "allpairs_multiset_dsf_self_join",
"table_name": "t_join",
"attributes": [
{
"attr_name": "avg(1.0 - (result_set_size::decimal / NULLIF(verification_candidates::decimal,0)))"
}
],
"name": "$\\mathtt{TJoin}$"
"name": "$\\mathtt{TJoin}$",
"constraints": {
"upperbound": "greedy"
}
}
],
"constraints": {
"experiments_version": "de8744854648746a76ce66b40ba84f1fe2d7bbe9",
"hostname": "cluster5",
"algorithm_version": "913a36996fc478c7e8f77fc638c450c79da4d149",
"dataset_filename": "L_preprocessed.txt",
"verification_algorithm": "Touzet",
"upperbound": "greedy"
"dataset_filename": "bolzano_sorted.bracket",
"verification_algorithm": "Touzet"
},
"x_axis": {
"db_column": "threshold",
......
......@@ -11,7 +11,7 @@
"colors": ["red", "green"],
"tables": [
{
"table_name": "partition_based_self_join",
"table_name": "tang_join",
"attributes": [
{
"attr_name": "avg(1.0 - (result_set_size::decimal / NULLIF(verification_candidates::decimal,0)))"
......@@ -20,21 +20,21 @@
"name": "$\\mathtt{Tang}$"
},
{
"table_name": "allpairs_multiset_dsf_self_join",
"table_name": "t_join",
"attributes": [
{
"attr_name": "avg(1.0 - (result_set_size::decimal / NULLIF(verification_candidates::decimal,0)))"
}
],
"name": "$\\mathtt{TJoin}$"
"name": "$\\mathtt{TJoin}$",
"constraints": {
"upperbound": "greedy"
}
}
],
"constraints": {
"experiments_version": "de8744854648746a76ce66b40ba84f1fe2d7bbe9",
"hostname": "cluster5",
"dataset_filename": "dblp_no_www_db8be93_sorted.bracket",
"verification_algorithm": "Touzet",
"upperbound": "greedy"
"dataset_filename": "dblp_no_www_sorted.bracket",
"verification_algorithm": "Touzet"
},
"x_axis": {
"db_column": "threshold",
......
......@@ -11,22 +11,21 @@
"colors": ["green"],
"tables": [
{
"table_name": "allpairs_multiset_dsf_self_join",
"table_name": "t_join",
"attributes": [
{
"attr_name": "avg(1.0 - (result_set_size::decimal / NULLIF(verification_candidates::decimal,0)))"
}
],
"name": "$\\mathtt{TJoin}$"
"name": "$\\mathtt{TJoin}$",
"constraints": {
"upperbound": "greedy"
}
}
],
"constraints": {
"hostname": "cluster1",
"algorithm_version": "168f9925b841335588aaa9060530a38addb0a044",
"dataset_filename": "python_ast_sorted.bracket",
"verification_algorithm": "Touzet",
"similarity_function": "HammingOptimal",
"upperbound": "greedy"
"dataset_filename": "python_sorted.bracket",
"verification_algorithm": "Touzet"
},
"x_axis": {
"db_column": "threshold",
......
......@@ -11,7 +11,7 @@
"colors": ["red", "green"],
"tables": [
{
"table_name": "partition_based_self_join",
"table_name": "tang_join",
"attributes": [
{
"attr_name": "avg(1.0 - (result_set_size::decimal / NULLIF(verification_candidates::decimal,0)))"
......@@ -20,22 +20,21 @@
"name": "$\\mathtt{Tang}$"