Skip to content

Commit

Permalink
Merge pull request #62 from HPI-Information-Systems/develop
Browse files Browse the repository at this point in the history
Release v1.1.0
  • Loading branch information
phpfs authored Mar 2, 2021
2 parents 5f9ea88 + 9725a9e commit 2b6a2b0
Show file tree
Hide file tree
Showing 157 changed files with 3,161 additions and 1,289 deletions.
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
#### [![General](https://github.com/HPI-Information-Systems/snowman/actions/workflows/general.yml/badge.svg)](https://github.com/HPI-Information-Systems/snowman/actions/workflows/general.yml) [![Documentation](https://github.com/HPI-Information-Systems/snowman/actions/workflows/docs.yml/badge.svg)](https://github.com/HPI-Information-Systems/snowman/actions/workflows/docs.yml) [![Release](https://github.com/HPI-Information-Systems/snowman/actions/workflows/package.yml/badge.svg)](https://github.com/HPI-Information-Systems/snowman/actions/workflows/package.yml)

Comparing data matching algorithms is still an unsolved topic in both industry and research.
With snowman, developers and researchers will be able to compare the performance of different data matching solutions or improve new algorithms.
With snowman, developers and researchers will be able to compare the performance of different data matching solutions or improve new algorithms.
Besides traditional metrics, the tool will also consider economic aspects like Soft KPIs.

_This tool is developed as part of a bachelor's project in collaboration with SAP SE._
Expand All @@ -17,7 +17,7 @@ In Q1 and Q2 of 2021, we aim to reach the following milestones:

[x] **Milestone 1:** Ability to add/delete datasets, experiments and matching solutions; binary comparison and basic behavior analysis; executable on all major platform
[ ] **Milestone 2:** Compare more than two experiments and create new experiments based on results; survey Soft KPIs, allow comparison based on KPIs
[ ] **Milestone 3:** Allow dynamic analysis based on threshold values; complex evaluations like precision/recall diagrams; group/cluster view for result sets
[ ] **Milestone 3:** Allow dynamic analysis based on threshold values; complex evaluations like precision/recall diagrams; group/cluster view for result sets

The precise progress is tracked through Github issues and project boards. Please get in touch in case you want a special feature included :)

Expand All @@ -28,7 +28,7 @@ _After reaching milestone 3, we plan to continue to work on further features whi
Contribution guidelines will follow soon. Until then, feel free to open an issue to report a bug or request a feature.
In case you want to contribute code, please first open an associated issue and afterwards a pull request containing the proposed solution.

## Documentation
## Documentation

Please see our documentation for further information: [Snowman Docs](https://hpi-information-systems.github.io/snowman/)

Expand Down
21 changes: 21 additions & 0 deletions app/package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

5 changes: 3 additions & 2 deletions app/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,15 @@
"name": "snowman-app",
"author": "Snowman Team",
"description": "Compare data matching algorithms with each other",
"version": "1.0.0",
"version": "1.1.0",
"license": "MIT",
"homepage": "./",
"private": true,
"dependencies": {
"@ionic/react": "^5.0.7",
"@ionic/react-router": "^5.0.7",
"immutable": "^4.0.0-rc.12",
"ionicons": "^5.0.0",
"katex": "^0.12.0",
"lodash": "^4.17.20",
"react": "^17.0.1",
"react-dom": "^17.0.1",
Expand All @@ -32,6 +32,7 @@
"@testing-library/react": "^11.2.2",
"@testing-library/user-event": "^12.6.0",
"@types/jest": "^26.0.19",
"@types/katex": "^0.11.0",
"@types/lodash": "^4.14.167",
"@types/papaparse": "^5.2.5",
"@types/react": "^16.14.2",
Expand Down
13 changes: 13 additions & 0 deletions app/src/api/apis/BenchmarkApi.ts
Original file line number Diff line number Diff line change
Expand Up @@ -21,20 +21,25 @@ import {
ExperimentIntersectionCount,
ExperimentIntersectionCountFromJSON,
ExperimentIntersectionCountToJSON,
ExperimentIntersectionMode,
ExperimentIntersectionModeFromJSON,
ExperimentIntersectionModeToJSON,
Metric,
MetricFromJSON,
MetricToJSON,
} from '../models';

export interface CalculateExperimentIntersectionCountRequest {
requestBody: Array<object>;
mode?: ExperimentIntersectionMode;
}

export interface CalculateExperimentIntersectionRecordsRequest {
requestBody: Array<object>;
startAt?: number;
limit?: number;
sortBy?: string;
mode?: ExperimentIntersectionMode;
}

export interface GetBinaryMetricsRequest {
Expand Down Expand Up @@ -62,6 +67,10 @@ export class BenchmarkApi extends runtime.BaseAPI {

const queryParameters: any = {};

if (requestParameters.mode !== undefined) {
queryParameters['mode'] = requestParameters.mode;
}

const headerParameters: runtime.HTTPHeaders = {};

headerParameters['Content-Type'] = 'application/json';
Expand Down Expand Up @@ -109,6 +118,10 @@ export class BenchmarkApi extends runtime.BaseAPI {
queryParameters['sortBy'] = requestParameters.sortBy;
}

if (requestParameters.mode !== undefined) {
queryParameters['mode'] = requestParameters.mode;
}

const headerParameters: runtime.HTTPHeaders = {};

headerParameters['Content-Type'] = 'application/json';
Expand Down
2 changes: 1 addition & 1 deletion app/src/api/apis/ExperimentsApi.ts
Original file line number Diff line number Diff line change
Expand Up @@ -341,5 +341,5 @@ export enum SetExperimentFileFormatEnum {
Magellan = 'magellan',
ClusterEr = 'clusterER',
Pilot = 'pilot',
Sigmod = 'sigmod2021'
Sigmod2021 = 'sigmod2021'
}
8 changes: 4 additions & 4 deletions app/src/api/models/ExperimentIntersection.ts
Original file line number Diff line number Diff line change
Expand Up @@ -27,10 +27,10 @@ export interface ExperimentIntersection {
header: Array<string>;
/**
*
* @type {Array<Array<Array<string>>>}
* @type {Array<Array<string>>}
* @memberof ExperimentIntersection
*/
data: Array<Array<Array<string>>>;
data: Array<Array<string>>;
}

export function ExperimentIntersectionFromJSON(json: any): ExperimentIntersection {
Expand All @@ -43,8 +43,8 @@ export function ExperimentIntersectionFromJSONTyped(json: any, ignoreDiscriminat
}
return {

'header': !exists(json, 'header') ? undefined : json['header'],
'data': !exists(json, 'data') ? undefined : json['data'],
'header': json['header'],
'data': json['data'],
};
}

Expand Down
14 changes: 11 additions & 3 deletions app/src/api/models/ExperimentIntersectionCount.ts
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,13 @@ export interface ExperimentIntersectionCount {
* @type {number}
* @memberof ExperimentIntersectionCount
*/
count: number;
numberRows: number;
/**
*
* @type {number}
* @memberof ExperimentIntersectionCount
*/
numberGroups: number;
}

export function ExperimentIntersectionCountFromJSON(json: any): ExperimentIntersectionCount {
Expand All @@ -37,7 +43,8 @@ export function ExperimentIntersectionCountFromJSONTyped(json: any, ignoreDiscri
}
return {

'count': json['count'],
'numberRows': json['numberRows'],
'numberGroups': json['numberGroups'],
};
}

Expand All @@ -50,7 +57,8 @@ export function ExperimentIntersectionCountToJSON(value?: ExperimentIntersection
}
return {

'count': value.count,
'numberRows': value.numberRows,
'numberGroups': value.numberGroups,
};
}

Expand Down
37 changes: 37 additions & 0 deletions app/src/api/models/ExperimentIntersectionMode.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
/* tslint:disable */
/* eslint-disable */
/**
* Snowman API
* _This document describes the REST API of the snowman data matching benchmark tool._ Comparing data matching algorithms is still an unsolved topic in both industry and research. With snowman, developers and researchers will be able to compare the performance of different data matching solutions or improve new algorithms.
*
* The version of the OpenAPI document: 1.0.0
* Contact: [email protected]
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/

/**
*
* @export
* @enum {string}
*/
export enum ExperimentIntersectionMode {
Pairs = 'PAIRS',
Clusters = 'CLUSTERS',
Investigative = 'INVESTIGATIVE'
}

export function ExperimentIntersectionModeFromJSON(json: any): ExperimentIntersectionMode {
return ExperimentIntersectionModeFromJSONTyped(json, false);
}

export function ExperimentIntersectionModeFromJSONTyped(json: any, ignoreDiscriminator: boolean): ExperimentIntersectionMode {
return json as ExperimentIntersectionMode;
}

export function ExperimentIntersectionModeToJSON(value?: ExperimentIntersectionMode | null): any {
return value as any;
}

24 changes: 20 additions & 4 deletions app/src/api/models/Metric.ts
Original file line number Diff line number Diff line change
Expand Up @@ -26,11 +26,23 @@ export interface Metric {
*/
name: string;
/**
* can contain latex math expressions denoted by surrounding dollar symbols ($<math expression>$)
*
* @type {string}
* @memberof Metric
*/
formula: string;
/**
*
* @type {string}
* @memberof Metric
*/
info?: string;
/**
*
* @type {string}
* @memberof Metric
*/
description: string;
infoLink?: string;
/**
*
* @type {number}
Expand All @@ -56,7 +68,9 @@ export function MetricFromJSONTyped(json: any, ignoreDiscriminator: boolean): Me
return {

'name': json['name'],
'description': json['description'],
'formula': json['formula'],
'info': !exists(json, 'info') ? undefined : json['info'],
'infoLink': !exists(json, 'infoLink') ? undefined : json['infoLink'],
'value': json['value'],
'range': json['range'],
};
Expand All @@ -72,7 +86,9 @@ export function MetricToJSON(value?: Metric | null): any {
return {

'name': value.name,
'description': value.description,
'formula': value.formula,
'info': value.info,
'infoLink': value.infoLink,
'value': value.value,
'range': value.range,
};
Expand Down
1 change: 1 addition & 0 deletions app/src/api/models/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,5 +8,6 @@ export * from './Experiment';
export * from './ExperimentAllOf';
export * from './ExperimentIntersection';
export * from './ExperimentIntersectionCount';
export * from './ExperimentIntersectionMode';
export * from './ExperimentValues';
export * from './Metric';
2 changes: 2 additions & 0 deletions app/src/app/App.View.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ import SideMenu from 'components/SideMenu/SideMenu';
import React, { useEffect } from 'react';
import { Redirect, Route } from 'react-router-dom';
import { ToastContainer } from 'react-toastify';
import ReactTooltip from 'react-tooltip';
import history from 'utils/history';
import {
getEmptyPath,
Expand Down Expand Up @@ -56,6 +57,7 @@ const AppView = ({ loadInitialState }: AppProps): JSX.Element => {
</IonRouterOutlet>
</IonSplitPane>
</IonReactRouter>
<ReactTooltip className="tooltip-fixed" html={true} place={'bottom'} />
<GlobalLoading />
<ToastContainer
autoClose={5000}
Expand Down
42 changes: 0 additions & 42 deletions app/src/components/AddAlgorithmDialog/AddAlgorithmDialog.tsx

This file was deleted.

Loading

0 comments on commit 2b6a2b0

Please sign in to comment.