Commit 26eddc62 authored by Thodoris Nestoridis's avatar Thodoris Nestoridis

chart for inferencing

parent 197defb6
This source diff could not be displayed because it is too large. You can view the blob instead.
This diff is collapsed.
......@@ -1626,6 +1626,11 @@
"schema-utils": "^2.7.0"
}
},
"@juggle/resize-observer": {
"version": "3.3.1",
"resolved": "https://registry.npmjs.org/@juggle/resize-observer/-/resize-observer-3.3.1.tgz",
"integrity": "sha512-zMM9Ds+SawiUkakS7y94Ymqx+S0ORzpG3frZirN3l+UlXUmSUR7hF4wxCVqW+ei94JzV5kt0uXBcoOEAuiydrw=="
},
"@ng-bootstrap/ng-bootstrap": {
"version": "9.0.2",
"resolved": "https://registry.npmjs.org/@ng-bootstrap/ng-bootstrap/-/ng-bootstrap-9.0.2.tgz",
......@@ -4766,6 +4771,22 @@
"safer-buffer": "^2.1.0"
}
},
"echarts": {
"version": "5.1.2",
"resolved": "https://registry.npmjs.org/echarts/-/echarts-5.1.2.tgz",
"integrity": "sha512-okUhO4sw22vwZp+rTPNjd/bvTdpug4K4sHNHyrV8NdAncIX9/AarlolFqtJCAYKGFYhUBNjIWu1EznFrSWTFxg==",
"requires": {
"tslib": "2.0.3",
"zrender": "5.1.1"
},
"dependencies": {
"tslib": {
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz",
"integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ=="
}
}
},
"ee-first": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
......@@ -8303,6 +8324,14 @@
"resolved": "https://registry.npmjs.org/ng2-search-filter/-/ng2-search-filter-0.5.1.tgz",
"integrity": "sha512-noN8R+Gyxo5ZuboEOvq+u0zKio6pEf1IVYQTCZfAfXm6ONmzWu/M2xK0di9oVUprDbPBQXCGUuvD5i2GD+35HA=="
},
"ngx-echarts": {
"version": "7.0.1",
"resolved": "https://registry.npmjs.org/ngx-echarts/-/ngx-echarts-7.0.1.tgz",
"integrity": "sha512-DDRwEssQRjjgPElEjF1emORoUEnF6OMZ20xnQBLueSHitM7XnIUErYVe9GMmm/jCtI+iPvJPEedyxMPl62nHLw==",
"requires": {
"tslib": "^2.0.0"
}
},
"nice-try": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz",
......@@ -15110,6 +15139,21 @@
"requires": {
"tslib": "^2.0.0"
}
},
"zrender": {
"version": "5.1.1",
"resolved": "https://registry.npmjs.org/zrender/-/zrender-5.1.1.tgz",
"integrity": "sha512-oeWlmUZPQdS9f5hK4pV21tHPqA3wgQ7CkKkw7l0CCBgWlJ/FP+lRgLFtUBW6yam4JX8y9CdHJo1o587VVrbcoQ==",
"requires": {
"tslib": "2.0.3"
},
"dependencies": {
"tslib": {
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz",
"integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ=="
}
}
}
}
}
......@@ -23,12 +23,15 @@
"@angular/platform-browser": "~11.1.2",
"@angular/platform-browser-dynamic": "~11.1.2",
"@angular/router": "~11.1.2",
"@juggle/resize-observer": "^3.3.1",
"@ng-bootstrap/ng-bootstrap": "^9.0.2",
"angular-notifier": "^6.0.1",
"bootstrap": "^4.6.0",
"echarts": "^5.1.2",
"jwt-decode": "^3.1.2",
"moment": "^2.29.1",
"ng2-search-filter": "^0.5.1",
"ngx-echarts": "^7.0.1",
"rxjs": "~6.6.0",
"tslib": "^2.0.0",
"zone.js": "~0.11.3"
......
......@@ -34,6 +34,7 @@ import { GroupboilComponent } from './components/groupboil/groupboil.component';
import { AddGroupboilComponent } from './components/add-groupboil/add-groupboil.component';
import { InstancesListComponent } from './components/instances-list/instances-list.component';
import { Ng2SearchPipeModule } from 'ng2-search-filter';
import { NgxEchartsModule } from 'ngx-echarts';
@NgModule({
......@@ -69,6 +70,9 @@ import { Ng2SearchPipeModule } from 'ng2-search-filter';
BrowserAnimationsModule,
MaterialModule,
FlexLayoutModule,
NgxEchartsModule.forRoot({
echarts: () => import('echarts')
}),
],
providers: [
AuthService,
......
......@@ -81,3 +81,32 @@
</table>
<mat-paginator #paginator [pageSizeOptions]="[10, 20]" showFirstLastButtons></mat-paginator>
</div>
<div echarts [options]="chartOption" class="demo-chart"></div>
<div class="content">
<div fxLayout="row wrap">
<div fxFlex="33%">
<mat-card class="example-card">
<mat-card-header>
<div class="example-header-image"></div>
<mat-card-title>N. Requirements</mat-card-title>
<mat-card-subtitle>{{getnumreq()}}</mat-card-subtitle>
</mat-card-header>
</mat-card>
<mat-card class="example-card">
<mat-card-header>
<div class="example-header-image"></div>
<mat-card-title>Complete Requirement</mat-card-title>
<mat-card-subtitle>{{getnumreq()}}</mat-card-subtitle>
</mat-card-header>
</mat-card>
<mat-card class="example-card">
<mat-card-header>
<div class="example-header-image"></div>
<mat-card-title>Incomplete Requirement</mat-card-title>
<mat-card-subtitle>{{getnumreq()}}</mat-card-subtitle>
</mat-card-header>
</mat-card>
</div>
</div>
</div>
\ No newline at end of file
......@@ -7,3 +7,8 @@
table {
width: 100%;
}
.example-card {
width: auto;
height: auto;
margin-right: 5px;
}
\ No newline at end of file
......@@ -7,6 +7,7 @@ import { PrefixService } from 'src/app/services/prefix.service';
import { ActivatedRoute, Router } from '@angular/router';
import {MatTableDataSource} from '@angular/material/table';
import {MatPaginator} from '@angular/material/paginator';
import { EChartsOption } from 'echarts';
......@@ -19,6 +20,28 @@ import {MatPaginator} from '@angular/material/paginator';
export class BoilerplateListComponent implements OnInit {
chartOption: EChartsOption = {
tooltip: {
trigger: 'item'
},
legend: {
top: '5%',
left: 'center'
},
series: [
{
type: 'pie',
radius: ['40%', '70%'],
data: [
{value: 1048, name: '1'},
{value: 735, name: '2'},
{value: 580, name: '3'},
{value: 484, name: '4'},
{value: 300, name: '5'} ]
},
],
};
boilerplates?: Boilerplate[];
boilerplatesdata?: BoilerplateData[];
currentBoilerplate?: Boilerplate;
......@@ -39,7 +62,7 @@ export class BoilerplateListComponent implements OnInit {
showSpinner = false;
exporting = false;
num = 1
list_of_inference_metrics = ["IncompleteRequirement", "AmbiguousRequirement","InconsistentRequirement","NoisyRequirement","OpaqueRequirement","RedundantRequirement"]
@ViewChild(MatPaginator) paginator= this.newdataSource.paginator;
......@@ -131,7 +154,18 @@ export class BoilerplateListComponent implements OnInit {
data => {
this.currentInfer = data[0];
this.infer = data;
console.log(data[0]);
const obj = JSON.parse(this.currentInfer['inference_data'].replace(/'/g,"\""))
var final = []
for (let i of this.list_of_inference_metrics){
if(obj[i] != undefined){
final.push({value: obj[i].length, name: i})}
if (this.chartOption?.series ){
this.chartOption.series = [{
type: 'pie',
radius: ['40%', '70%'],
data: final,
}]}}
},
error => {
console.log(error);
......@@ -172,5 +206,8 @@ export class BoilerplateListComponent implements OnInit {
}
return 0
}
getnumreq():any{
return this.boilerplatesdata?.length
}
}
......@@ -7,6 +7,8 @@ from reqman.apps.reqtool.models.main_req import SYSTEM_CHOICES, FUNCTION_CHOICES
#HERE
Ontology_file = "../../Ontologies/Autonomy_v1.ttl"
list_of_inference_metrics = ["IncompleteRequirement", "AmbiguousRequirement",
"InconsistentRequirement","NoisyRequirement","OpaqueRequirement","RedundantRequirement"]
main_syntax = get_main_sytax_inference()
......@@ -99,8 +101,6 @@ def exportboiltottl(project, prefix, boilerplate, main, suffix):
def shacl(ontotlogy_file):
metrics_dict = {}
metrics_dict["IncompleteRequirement"] = []
metrics_dict["AmbiguousRequirement"] = []
file1 = ontotlogy_file + ".ttl"
target = ontotlogy_file+"infer.ttl"
open(target, 'w').close()
......@@ -116,16 +116,14 @@ def shacl(ontotlogy_file):
#need to fiil with all the metrics
g = Graph()
g.load(target, format="turtle")
p = URIRef("http://delab.csd.auth.gr/ontologies/2018/RDO#IncompleteRequirement")
for inf_metr in list_of_inference_metrics:
metrics_dict[inf_metr] = []
p = URIRef("http://delab.csd.auth.gr/ontologies/2018/RDO#"+inf_metr)
for s, p, o in g.triples((None, RDF.type, p)):
#metrics_dict["IncompleteRequirement"] = [s]
get_title = str(s).split("#")
metrics_dict["IncompleteRequirement"].append(get_title[1])
p = URIRef("http://delab.csd.auth.gr/ontologies/2018/RDO#AmbiguousRequirement")
for s, p, o in g.triples((None, RDF.type, p)):
#metrics_dict["IncompleteRequirement"] = [s]
get_title = str(s).split("#")
metrics_dict["AmbiguousRequirement"].append(get_title[1])
metrics_dict[inf_metr].append(get_title[1])
print(metrics_dict)
return(metrics_dict)
def findclassofmain(listofmain):
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment