Skip to content

Commit 2b6a2b0

Browse files
authored
Merge pull request #62 from HPI-Information-Systems/develop
Release v1.1.0
2 parents 5f9ea88 + 9725a9e commit 2b6a2b0

File tree

157 files changed

+3161
-1289
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

157 files changed

+3161
-1289
lines changed

README.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
#### [![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)
77

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

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

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

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

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

31-
## Documentation
31+
## Documentation
3232

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

app/package-lock.json

Lines changed: 21 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

app/package.json

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,15 @@
22
"name": "snowman-app",
33
"author": "Snowman Team",
44
"description": "Compare data matching algorithms with each other",
5-
"version": "1.0.0",
5+
"version": "1.1.0",
66
"license": "MIT",
77
"homepage": "./",
8-
"private": true,
98
"dependencies": {
109
"@ionic/react": "^5.0.7",
1110
"@ionic/react-router": "^5.0.7",
1211
"immutable": "^4.0.0-rc.12",
1312
"ionicons": "^5.0.0",
13+
"katex": "^0.12.0",
1414
"lodash": "^4.17.20",
1515
"react": "^17.0.1",
1616
"react-dom": "^17.0.1",
@@ -32,6 +32,7 @@
3232
"@testing-library/react": "^11.2.2",
3333
"@testing-library/user-event": "^12.6.0",
3434
"@types/jest": "^26.0.19",
35+
"@types/katex": "^0.11.0",
3536
"@types/lodash": "^4.14.167",
3637
"@types/papaparse": "^5.2.5",
3738
"@types/react": "^16.14.2",

app/src/api/apis/BenchmarkApi.ts

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,20 +21,25 @@ import {
2121
ExperimentIntersectionCount,
2222
ExperimentIntersectionCountFromJSON,
2323
ExperimentIntersectionCountToJSON,
24+
ExperimentIntersectionMode,
25+
ExperimentIntersectionModeFromJSON,
26+
ExperimentIntersectionModeToJSON,
2427
Metric,
2528
MetricFromJSON,
2629
MetricToJSON,
2730
} from '../models';
2831

2932
export interface CalculateExperimentIntersectionCountRequest {
3033
requestBody: Array<object>;
34+
mode?: ExperimentIntersectionMode;
3135
}
3236

3337
export interface CalculateExperimentIntersectionRecordsRequest {
3438
requestBody: Array<object>;
3539
startAt?: number;
3640
limit?: number;
3741
sortBy?: string;
42+
mode?: ExperimentIntersectionMode;
3843
}
3944

4045
export interface GetBinaryMetricsRequest {
@@ -62,6 +67,10 @@ export class BenchmarkApi extends runtime.BaseAPI {
6267

6368
const queryParameters: any = {};
6469

70+
if (requestParameters.mode !== undefined) {
71+
queryParameters['mode'] = requestParameters.mode;
72+
}
73+
6574
const headerParameters: runtime.HTTPHeaders = {};
6675

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

121+
if (requestParameters.mode !== undefined) {
122+
queryParameters['mode'] = requestParameters.mode;
123+
}
124+
112125
const headerParameters: runtime.HTTPHeaders = {};
113126

114127
headerParameters['Content-Type'] = 'application/json';

app/src/api/apis/ExperimentsApi.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -341,5 +341,5 @@ export enum SetExperimentFileFormatEnum {
341341
Magellan = 'magellan',
342342
ClusterEr = 'clusterER',
343343
Pilot = 'pilot',
344-
Sigmod = 'sigmod2021'
344+
Sigmod2021 = 'sigmod2021'
345345
}

app/src/api/models/ExperimentIntersection.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -27,10 +27,10 @@ export interface ExperimentIntersection {
2727
header: Array<string>;
2828
/**
2929
*
30-
* @type {Array<Array<Array<string>>>}
30+
* @type {Array<Array<string>>}
3131
* @memberof ExperimentIntersection
3232
*/
33-
data: Array<Array<Array<string>>>;
33+
data: Array<Array<string>>;
3434
}
3535

3636
export function ExperimentIntersectionFromJSON(json: any): ExperimentIntersection {
@@ -43,8 +43,8 @@ export function ExperimentIntersectionFromJSONTyped(json: any, ignoreDiscriminat
4343
}
4444
return {
4545

46-
'header': !exists(json, 'header') ? undefined : json['header'],
47-
'data': !exists(json, 'data') ? undefined : json['data'],
46+
'header': json['header'],
47+
'data': json['data'],
4848
};
4949
}
5050

app/src/api/models/ExperimentIntersectionCount.ts

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,13 @@ export interface ExperimentIntersectionCount {
2424
* @type {number}
2525
* @memberof ExperimentIntersectionCount
2626
*/
27-
count: number;
27+
numberRows: number;
28+
/**
29+
*
30+
* @type {number}
31+
* @memberof ExperimentIntersectionCount
32+
*/
33+
numberGroups: number;
2834
}
2935

3036
export function ExperimentIntersectionCountFromJSON(json: any): ExperimentIntersectionCount {
@@ -37,7 +43,8 @@ export function ExperimentIntersectionCountFromJSONTyped(json: any, ignoreDiscri
3743
}
3844
return {
3945

40-
'count': json['count'],
46+
'numberRows': json['numberRows'],
47+
'numberGroups': json['numberGroups'],
4148
};
4249
}
4350

@@ -50,7 +57,8 @@ export function ExperimentIntersectionCountToJSON(value?: ExperimentIntersection
5057
}
5158
return {
5259

53-
'count': value.count,
60+
'numberRows': value.numberRows,
61+
'numberGroups': value.numberGroups,
5462
};
5563
}
5664

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
/* tslint:disable */
2+
/* eslint-disable */
3+
/**
4+
* Snowman API
5+
* _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.
6+
*
7+
* The version of the OpenAPI document: 1.0.0
8+
* Contact: snowman@groups.sap.com
9+
*
10+
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
11+
* https://openapi-generator.tech
12+
* Do not edit the class manually.
13+
*/
14+
15+
/**
16+
*
17+
* @export
18+
* @enum {string}
19+
*/
20+
export enum ExperimentIntersectionMode {
21+
Pairs = 'PAIRS',
22+
Clusters = 'CLUSTERS',
23+
Investigative = 'INVESTIGATIVE'
24+
}
25+
26+
export function ExperimentIntersectionModeFromJSON(json: any): ExperimentIntersectionMode {
27+
return ExperimentIntersectionModeFromJSONTyped(json, false);
28+
}
29+
30+
export function ExperimentIntersectionModeFromJSONTyped(json: any, ignoreDiscriminator: boolean): ExperimentIntersectionMode {
31+
return json as ExperimentIntersectionMode;
32+
}
33+
34+
export function ExperimentIntersectionModeToJSON(value?: ExperimentIntersectionMode | null): any {
35+
return value as any;
36+
}
37+

app/src/api/models/Metric.ts

Lines changed: 20 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,11 +26,23 @@ export interface Metric {
2626
*/
2727
name: string;
2828
/**
29-
* can contain latex math expressions denoted by surrounding dollar symbols ($<math expression>$)
29+
*
30+
* @type {string}
31+
* @memberof Metric
32+
*/
33+
formula: string;
34+
/**
35+
*
36+
* @type {string}
37+
* @memberof Metric
38+
*/
39+
info?: string;
40+
/**
41+
*
3042
* @type {string}
3143
* @memberof Metric
3244
*/
33-
description: string;
45+
infoLink?: string;
3446
/**
3547
*
3648
* @type {number}
@@ -56,7 +68,9 @@ export function MetricFromJSONTyped(json: any, ignoreDiscriminator: boolean): Me
5668
return {
5769

5870
'name': json['name'],
59-
'description': json['description'],
71+
'formula': json['formula'],
72+
'info': !exists(json, 'info') ? undefined : json['info'],
73+
'infoLink': !exists(json, 'infoLink') ? undefined : json['infoLink'],
6074
'value': json['value'],
6175
'range': json['range'],
6276
};
@@ -72,7 +86,9 @@ export function MetricToJSON(value?: Metric | null): any {
7286
return {
7387

7488
'name': value.name,
75-
'description': value.description,
89+
'formula': value.formula,
90+
'info': value.info,
91+
'infoLink': value.infoLink,
7692
'value': value.value,
7793
'range': value.range,
7894
};

app/src/api/models/index.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,5 +8,6 @@ export * from './Experiment';
88
export * from './ExperimentAllOf';
99
export * from './ExperimentIntersection';
1010
export * from './ExperimentIntersectionCount';
11+
export * from './ExperimentIntersectionMode';
1112
export * from './ExperimentValues';
1213
export * from './Metric';

0 commit comments

Comments
 (0)