Skip to main content

Python package for computing diefficiency metrics dief@t and dief@k.

Project description

Build Status Latest Release DOI License: MIT

Python Versions Package Format Package Status Package Version

 

Philipp D. Rohde, Nikoleta Themeliotou

diefpy

Python package for computing diefficiency metrics dief@t and dief@k.

The metrics dief@t and dief@k allow for measuring the diefficiency during an elapsed time period t or while k answers are produced, respectively. dief@t and dief@k rely on the computation of the area under the curve of answer traces, and thus capturing the answer rate concentration over a time interval.

This fork of the original diefpy repo by Maribel Acosta provides a complete Python3 version.

Description

Overview of Result Plots Figure 1: Overview of Result Plots.

Fig. 1 gives an overview of the result plots that can be produced using the package. Firstly the overall Execution Time for all the tests and approaches (NotAdaptive, Random and Selective) in the metrics data can be created as a bar plot. For evaluating the input tests an answer trace of each approach (NotAdaptive, Random and Selective) can be created which shows how many answers were produced. Finally two Radar Plots can be created. The Radar Plot on the left compares dief@t with other benchmark metrics in a specific test. The other benchmark metrics being total execution time, time for the first tuple, throughput, and completeness. The Radar Plot on the right compares dief@k at different answer completeness in a specific test by measuring the continuous efficiency of approaches when producing the first 25%, 50%, 75%, and 100% of the answers.

Usage

Compute dief@t and dief@k for the test Q9.rq based on the traces traces.csv and metrics metrics.csv provided as example in the package.

import diefpy
from pkg_resources import resource_filename

# Use answer traces provided in the package: Compare three approaches "Selective", "Not Adaptive", "Random" when executing the test "Q9.rq".
traces = diefpy.load_trace(resource_filename('diefpy', 'data/traces.csv')) 

# Plot answer traces for test "Q9.rq".
diefpy.plot_answer_trace(traces, "Q9.rq", ["#ECC30B","#D56062","#84BCDA"]).show()

# Compute dief@t when t is the time where the slowest approach produced the last answer.
diefpy.dieft(traces, 'Q9.rq')

# Compute dief@t after 7.5 time units (seconds) of execution. 
diefpy.dieft(traces, 'Q9.rq', 7.5)

# Compute dief@k when k is the minimum of retrieved answers across the approaches.
diefpy.diefk(traces, 'Q9.rq')

# Compute dief@k after 10 results.
diefpy.diefk(traces, 'Q9.rq', 10)

# Compute dief@k when k is 50% of the answers retrieved.
diefpy.diefk2(traces, 'Q9.rq', 0.5)

# Load the metrics.
metrics = diefpy.load_metrics(resource_filename('diefpy', 'data/metrics.csv'))

# Compute the metrics for performance analysis with dief@t.
exp1 = diefpy.performance_of_approaches_with_dieft(traces, metrics)

# Plot the metrics for performance analysis with dief@t.
diefpy.plot_performance_of_approaches_with_dieft(exp1, 'Q9.rq', ["#ECC30B","#D56062","#84BCDA"]).show()

# Compute the metrics for continuous efficiency with dief@k.
exp2 = diefpy.continuous_efficiency_with_diefk(traces)

# Plot the metrics for continuous efficiency with dief@k.
diefpy.plot_continuous_efficiency_with_diefk(exp2, 'Q9.rq', ["#ECC30B","#D56062","#84BCDA"]).show()

It is also possible to generate the plots for all the tests and receive a list of plots instead of a single plot by using the following functions:

diefpy.plot_all_answer_traces(traces, ["#ECC30B","#D56062","#84BCDA"])
diefpy.plot_all_performance_of_approaches_with_dieft(exp1, ["#ECC30B","#D56062","#84BCDA"])
diefpy.plot_all_continuous_efficiency_with_diefk(exp2, ["#ECC30B","#D56062","#84BCDA"])

Publications

[1] Maribel Acosta, Maria-Esther Vidal, York Sure-Vetter. Diefficiency Metrics: Measuring the Continuous Efficiency of Query Processing Approaches. In Proceedings of the International Semantic Web Conference, 2017. Nominated to Best Paper Award at the Resource Track. https://doi.org/10.1007/978-3-319-68204-4_1

[2] Maribel Acosta, Maria-Esther Vidal. Measuring the Performance of Continuous Query Processing Approaches with dief@t and dief@k. In the International Semantic Web Conference, Posters and Demos, 2017. online

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

diefpy-1.0.4.tar.gz (147.6 kB view details)

Uploaded Source

Built Distribution

diefpy-1.0.4-py3-none-any.whl (148.2 kB view details)

Uploaded Python 3

File details

Details for the file diefpy-1.0.4.tar.gz.

File metadata

  • Download URL: diefpy-1.0.4.tar.gz
  • Upload date:
  • Size: 147.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/32.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.63.0 importlib-metadata/4.11.2 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.9.10

File hashes

Hashes for diefpy-1.0.4.tar.gz
Algorithm Hash digest
SHA256 165240ac6430fe627bc92d469d1dda1cb526e989a5c4fa27cf65680e45d90d3c
MD5 48de9b69d8f3a7261dadd23e92414beb
BLAKE2b-256 80d2374108772493a81af55e9ca31f5eee6906cff91e4ea8a5d40f2e0693a9af

See more details on using hashes here.

Provenance

File details

Details for the file diefpy-1.0.4-py3-none-any.whl.

File metadata

  • Download URL: diefpy-1.0.4-py3-none-any.whl
  • Upload date:
  • Size: 148.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/32.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.63.0 importlib-metadata/4.11.2 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.9.10

File hashes

Hashes for diefpy-1.0.4-py3-none-any.whl
Algorithm Hash digest
SHA256 5a3e61541aaa00d43357bd82d192473b70f877c4d76e26d8d82d3a18b89b32c1
MD5 a1c5247f3be06721e47d5cd9a459c9cd
BLAKE2b-256 f8701204fac1e528938fa7fa90bfa78661207d532f66227966df6fb0108957aa

See more details on using hashes here.

Provenance

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page