Commit a17a67c6 authored by Thodoris Nestoridis's avatar Thodoris Nestoridis

Ontology version with Automotive

parent e6c217cf
This source diff could not be displayed because it is too large. You can view the blob instead.
...@@ -68,7 +68,7 @@ export class AddBoilerplateComponent implements OnInit { ...@@ -68,7 +68,7 @@ export class AddBoilerplateComponent implements OnInit {
prefixs = [ prefixs = [
{name: 'P1', details: "If/Unless <logical expression>", explanation: 'Expresses a logical condition. Paraphrases: in case, provided that, on condition that.'}, {name: 'P1', details: "If/Unless <logical expression>", explanation: 'Expresses a logical condition. Paraphrases: in case, provided that, on condition that.'},
{name: 'P2', details: "As soon as <occuring functionality>", explanation: 'Expresses a temporal stimulation concerned with the point in time of an completed occuring functionality. Paraphrases: in the moment, immediately, once.'}, {name: 'P2', details: "As soon as <occuring functionality>", explanation: 'Expresses a temporal stimulation concerned with the point in time of an completed occuring functionality. Paraphrases: in the moment, immediately, once.'},
{name: 'P3', details: "As long as <occuring functionality>", explanation: 'Expresses a temporal condition concerned with a period. The pre x clause and the main clause take place simultaneously. Paraphrases: meanwhile'}, {name: 'P3', details: "As long as <occuring functionality>", explanation: 'Expresses a temporal condition concerned with a period. The prefix clause and the main clause take place simultaneously. Paraphrases: meanwhile'},
]; ];
mains = [ mains = [
......
...@@ -4,19 +4,14 @@ ...@@ -4,19 +4,14 @@
<li class="breadcrumb-item" aria-current="page">Add Project</li> <li class="breadcrumb-item" aria-current="page">Add Project</li>
</ol> </ol>
</nav> </nav>
<div>
<div class="submit-form">
<div class="submit-form">
<form name="myForm" ngNativeValidate>
<div class="form-group"> <div class="form-group">
<label for="title">Requirement Title</label> <label for="title_bgroup">Requirement Title</label>
<input <input type="text" class="form-control" id="title_bgroup"
type="text"
class="form-control"
id="title_bgroup"
required required
[(ngModel)]="groupboilerplate.title_bgroup" [(ngModel)]="groupboilerplate.title_bgroup" name="title_bgroup">
name="title_bgroup"
/>
</div> </div>
<div class="form-group"> <div class="form-group">
<label for="description">Description of project</label> <label for="description">Description of project</label>
...@@ -29,6 +24,7 @@ ...@@ -29,6 +24,7 @@
name="description" name="description"
></textarea> ></textarea>
</div> </div>
</form>
<button (click)="saveBoilerplate()" class="btn btn-success" >Submit</button> <button (click)="saveBoilerplate()" class="btn btn-success" >Submit</button>
......
...@@ -23,7 +23,7 @@ ...@@ -23,7 +23,7 @@
[(ngModel)]="currentboilerplate.title" [(ngModel)]="currentboilerplate.title"
style="width: 63%;"/> style="width: 63%;"/>
</div> </div>
<div style="display: flex; flex-grow: grow; margin-top: 50px;"> <div style="display: flex; flex-grow: grow; margin-top: 50px; ">
<form class="form-group form-inline "> <form class="form-group form-inline ">
<mat-checkbox class="example-full-width" <mat-checkbox class="example-full-width"
[(ngModel)]="currentboilerplate.has_prefix" [(ngModel)]="currentboilerplate.has_prefix"
...@@ -113,12 +113,12 @@ ...@@ -113,12 +113,12 @@
<div *ngFor="let instan of item.Instance_of_Class| filter:searchText"> <div *ngFor="let instan of item.Instance_of_Class| filter:searchText">
<li> <li>
<mat-expansion-panel hideToggle> <mat-expansion-panel hideToggle>
<p>Description.</p>
<mat-expansion-panel-header> <mat-expansion-panel-header>
<mat-panel-title> <mat-panel-title>
{{instan.Instance}} {{instan.Instance}}
</mat-panel-title> </mat-panel-title>
</mat-expansion-panel-header> </mat-expansion-panel-header>
<p>{{instan.Comment}}</p>
</mat-expansion-panel> </mat-expansion-panel>
</li> </li>
</div> </div>
...@@ -139,9 +139,10 @@ ...@@ -139,9 +139,10 @@
<mat-expansion-panel hideToggle> <mat-expansion-panel hideToggle>
<mat-expansion-panel-header> <mat-expansion-panel-header>
<mat-panel-title> <mat-panel-title>
{{ instansub.instance}} {{ instansub.Instance}}
</mat-panel-title> </mat-panel-title>
</mat-expansion-panel-header> </mat-expansion-panel-header>
<p>{{instansub.Comment}}</p>
</mat-expansion-panel> </mat-expansion-panel>
</li> </li>
...@@ -159,12 +160,12 @@ ...@@ -159,12 +160,12 @@
<div *ngFor="let genin of section.GeneralInstances| filter:searchText"> <div *ngFor="let genin of section.GeneralInstances| filter:searchText">
<li> <li>
<mat-expansion-panel hideToggle> <mat-expansion-panel hideToggle>
<p>Description.</p>
<mat-expansion-panel-header> <mat-expansion-panel-header>
<mat-panel-title> <mat-panel-title>
{{genin.GeneralInstances}} {{genin.GeneralInstances}}
</mat-panel-title> </mat-panel-title>
</mat-expansion-panel-header> </mat-expansion-panel-header>
{{genin.Comment}}
</mat-expansion-panel> </mat-expansion-panel>
</li> </li>
</div> </div>
......
<div class="form-row"> <div fxLayoutAlign="end"> <mat-chip color="primary"> MAIN TEMPLATE : {{this.main}}</mat-chip> </div>
<div class="form-row">
<div class="col"> <div class="col">
<form class="form-group form-inline" ngNativeValidate> <form class="form-group form-inline" ngNativeValidate>
<mat-form-field class="example-full-width"> <mat-form-field class="example-full-width">
...@@ -20,7 +21,7 @@ ...@@ -20,7 +21,7 @@
</form> </form>
</div> </div>
<div class="col"> <div class="col">
<form class="form-group form-inline" [ngStyle]="(stateitemControlisDivVisible) ? {'visibility': 'visible'} : {'visibility': 'hidden'}"> <form class="form-group form-inline" [ngStyle]="(stateitemControlisDivVisible) ? {'visibility': 'visible'} : {'visibility': 'hidden'}">
<mat-form-field class="example-full-width"> <mat-form-field class="example-full-width">
<mat-label *ngIf="this.stateitemControl.value !=null">State or Item : {{this.stateitemControl.value.slice(0, this.stateitemControl.value.indexOf(':'))}}</mat-label> <mat-label *ngIf="this.stateitemControl.value !=null">State or Item : {{this.stateitemControl.value.slice(0, this.stateitemControl.value.indexOf(':'))}}</mat-label>
<input type="text" <input type="text"
...@@ -124,7 +125,7 @@ ...@@ -124,7 +125,7 @@
<form class="form-group form-inline" [ngStyle]="(numericalisDivVisible) ? {'visibility': 'visible'} : {'visibility': 'hidden'}"> <form class="form-group form-inline" [ngStyle]="(numericalisDivVisible) ? {'visibility': 'visible'} : {'visibility': 'hidden'}">
<mat-form-field class="example-full-width"> <mat-form-field class="example-full-width">
<mat-label>Numerical Value</mat-label> <mat-label>Numerical Value</mat-label>
<input type="number" matInput value=0 [(ngModel)]="currentmain.numerical" name="numerical"> <input type="text" matInput [(ngModel)]="currentmain.numerical" name="numerical">
</mat-form-field> </mat-form-field>
</form> </form>
</div> </div>
......
...@@ -86,6 +86,7 @@ export class MainDetailsComponent implements OnInit { ...@@ -86,6 +86,7 @@ export class MainDetailsComponent implements OnInit {
statevalue_system_connection_stateset: "", statevalue_system_connection_stateset: "",
}; };
message = ''; message = '';
main = '';
constructor( constructor(
private mainService: MainService, private mainService: MainService,
...@@ -173,8 +174,9 @@ export class MainDetailsComponent implements OnInit { ...@@ -173,8 +174,9 @@ export class MainDetailsComponent implements OnInit {
if (this.mainsyntax[x].Attributes.length > 1){ if (this.mainsyntax[x].Attributes.length > 1){
this.stsysconsetControlisDivVisible = true; this.stsysconsetControlisDivVisible = true;
//add the connection data //add the connection data
return 1;
} }
this.main = this.mainsyntax[x].Id
return 1;
} }
} }
} }
...@@ -192,6 +194,7 @@ export class MainDetailsComponent implements OnInit { ...@@ -192,6 +194,7 @@ export class MainDetailsComponent implements OnInit {
this.numericalisDivVisible = false; this.numericalisDivVisible = false;
// Extra Attribute // Extra Attribute
this.stsysconsetControlisDivVisible = false; this.stsysconsetControlisDivVisible = false;
this.main = "No boilerplate with this syntax"
} }
} }
......
...@@ -19,16 +19,16 @@ ...@@ -19,16 +19,16 @@
</mat-form-field> </mat-form-field>
</form> </form>
</div> </div>
<div class="col"> <div class="col" style="width: 300px;">
<form class="example-form form-inline"> <form class="form-group form-inline">
<mat-form-field> <mat-form-field class="example-full-width">
<mat-label *ngIf="subjectsControl.value !=null">Subject : {{subjectsControl.value.slice(0, subjectsControl.value.indexOf(':'))}}</mat-label> <mat-label *ngIf="subjectsControl.value !=null">Subject : {{subjectsControl.value.slice(0, subjectsControl.value.indexOf(':'))}}</mat-label>
<input type="text" <input type="text"
placeholder="Pick one" placeholder="Pick one"
aria-label="Number" aria-label="Number"
matInput matInput
required
[formControl]="subjectsControl" [formControl]="subjectsControl"
required
[matAutocomplete]="autosub" [matAutocomplete]="autosub"
> >
<mat-autocomplete autoActiveFirstOption #autosub="matAutocomplete" showPanel="true" [displayWith]="displayFn"> <mat-autocomplete autoActiveFirstOption #autosub="matAutocomplete" showPanel="true" [displayWith]="displayFn">
...@@ -42,8 +42,8 @@ ...@@ -42,8 +42,8 @@
</div> </div>
<div class="form-row"> <div class="form-row">
<div class="col"> <div class="col">
<form class="example-form form-inline"> <form class="form-group form-inline">
<mat-form-field> <mat-form-field class="example-full-width">
<mat-label>Verb or State</mat-label> <mat-label>Verb or State</mat-label>
<input type="text" <input type="text"
placeholder="Pick one" placeholder="Pick one"
...@@ -64,8 +64,8 @@ ...@@ -64,8 +64,8 @@
</div> </div>
<div class="form-row"> <div class="form-row">
<div class="col"> <div class="col">
<form class="example-form form-inline"> <form class="form-group form-inline">
<mat-form-field> <mat-form-field class="example-full-width">
<mat-label *ngIf="objectsControl.value !=null">Object : {{objectsControl.value.slice(0, objectsControl.value.indexOf(':'))}}</mat-label> <mat-label *ngIf="objectsControl.value !=null">Object : {{objectsControl.value.slice(0, objectsControl.value.indexOf(':'))}}</mat-label>
<input type="text" <input type="text"
placeholder="Pick one" placeholder="Pick one"
...@@ -84,9 +84,9 @@ ...@@ -84,9 +84,9 @@
</form> </form>
</div> </div>
<div class="col"> <div class="col">
<form class="example-form form-inline" > <form class="form-group form-inline" >
<fieldset disabled> <fieldset disabled>
<mat-form-field> <mat-form-field class="example-full-width">
<mat-label>Logic connectivity</mat-label> <mat-label>Logic connectivity</mat-label>
<input type="text" <input type="text"
placeholder="Pick one" placeholder="Pick one"
......
.example-form {
min-width: 150px;
max-width: 500px;
width: auto;
}
.example-full-width { .example-full-width {
width: 100%; width: 100%;
}
.mat-autocomplete {
width: 100%;
} }
\ No newline at end of file
...@@ -23,7 +23,7 @@ ...@@ -23,7 +23,7 @@
<form class="form-group form-inline"> <form class="form-group form-inline">
<mat-form-field class="example-full-width"> <mat-form-field class="example-full-width">
<mat-label>Numerical Value</mat-label> <mat-label>Numerical Value</mat-label>
<input type="number" matInput value=0 [(ngModel)]="currentsuffix.numerical" name="numerical"> <input type="text" matInput [(ngModel)]="currentsuffix.numerical" name="numerical">
</mat-form-field> </mat-form-field>
</form> </form>
</div> </div>
...@@ -36,7 +36,6 @@ ...@@ -36,7 +36,6 @@
aria-label="Number" aria-label="Number"
matInput matInput
[formControl]="mumerical_unitsControl" [formControl]="mumerical_unitsControl"
required
[matAutocomplete]="automumerical_units" [matAutocomplete]="automumerical_units"
> >
<mat-autocomplete autoActiveFirstOption #automumerical_units="matAutocomplete"> <mat-autocomplete autoActiveFirstOption #automumerical_units="matAutocomplete">
......
...@@ -10,7 +10,7 @@ from reqman.apps.reqtool.rest_api.services.parse_ontologies import * ...@@ -10,7 +10,7 @@ from reqman.apps.reqtool.rest_api.services.parse_ontologies import *
find_subclass_domain_range() find_subclass_domain_range()
#MAIN SYNTAX #MAIN SYNTAX
MAIN_SYNTAX = get_main_sytax() MAIN_SYNTAX = get_main_sytax()
#import pprint import pprint
#pprint.pprint(get_main_sytax()) #pprint.pprint(get_main_sytax())
MAIN_CHOICES = ( ("",""), ("M1", "M1"), MAIN_CHOICES = ( ("",""), ("M1", "M1"),
...@@ -124,7 +124,7 @@ class Main(models.Model): ...@@ -124,7 +124,7 @@ class Main(models.Model):
verb = models.CharField(choices=VERB_CHOICES, max_length=100) verb = models.CharField(choices=VERB_CHOICES, max_length=100)
#Between Verb - Object #Between Verb - Object
quantifier = models.CharField(choices=QUANTIFIER_CHOICES, max_length=100, blank=True) quantifier = models.CharField(choices=QUANTIFIER_CHOICES, max_length=100, blank=True)
numerical = models.IntegerField(blank=True, null=True) numerical = models.CharField(blank=True, null=True, max_length=10)
mumerical_units = models.CharField(choices=NUMBER_UNITS_CHOICES, max_length=100, blank=True) mumerical_units = models.CharField(choices=NUMBER_UNITS_CHOICES, max_length=100, blank=True)
#Οbject #Οbject
flow_function_interface_item_system_state_stateset = models.CharField(choices=FLOW_CHOICES + FUNCTION_CHOICES + INTERFACE_CHOICES + ITEM_CHOICES + SYSTEM_CHOICES +STATE_CHOICES + STATE_SET_CHOICES, max_length=100) flow_function_interface_item_system_state_stateset = models.CharField(choices=FLOW_CHOICES + FUNCTION_CHOICES + INTERFACE_CHOICES + ITEM_CHOICES + SYSTEM_CHOICES +STATE_CHOICES + STATE_SET_CHOICES, max_length=100)
......
...@@ -29,10 +29,10 @@ LOGICAL_EXPRESSION = ( ("",""), ...@@ -29,10 +29,10 @@ LOGICAL_EXPRESSION = ( ("",""),
VERB_CHOICES = get_verb_instances("LO#Verb") VERB_CHOICES = get_verb_instances("LO#Verb")
#Must read this info from the Ontology
PREFIX_CHOICES = ( ("If/Unless", "If/Unless"), PREFIX_CHOICES = ( ("If", "If"), ("Unless", "Unless"),
("As soon as", "As soon as"), ("As soon as", "As soon as"),
("As long as", "As long as") ("As long as", "As long as"), ("Once", "Once")
) )
...@@ -72,7 +72,7 @@ def create_infer_result(instance): ...@@ -72,7 +72,7 @@ def create_infer_result(instance):
class BoilerplateGroup(models.Model): class BoilerplateGroup(models.Model):
boilerplate_owner = models.ForeignKey(User, related_name='boilerplate_group_owner', on_delete=models.CASCADE) boilerplate_owner = models.ForeignKey(User, related_name='boilerplate_group_owner', on_delete=models.CASCADE)
title_bgroup = models.CharField(max_length=30, unique=True) title_bgroup = models.CharField(max_length=100, unique=True)
description = models.CharField(max_length=500) description = models.CharField(max_length=500)
def save(self, **kwargs): def save(self, **kwargs):
......
...@@ -19,11 +19,11 @@ SUFFIX_CHOICES = (("",""), ('S1', 'S1: <numerical-affirmative> j <closed-interva ...@@ -19,11 +19,11 @@ SUFFIX_CHOICES = (("",""), ('S1', 'S1: <numerical-affirmative> j <closed-interva
NUMERICAL_AFFIRMATIVE_CHOICES = (("MORE THAN", "MORE THAN"), ("LESS THAN", "LESS THAN"), ("EXACTLY","EXACTLY"), NUMERICAL_AFFIRMATIVE_CHOICES = (("MORE THAN", "MORE THAN"), ("LESS THAN", "LESS THAN"), ("EXACTLY","EXACTLY"),
("AT LEAST", "AT LEAST"), ("AT MOST", "AT MOST")) ("AT LEAST", "AT LEAST"), ("AT MOST", "AT MOST"))
NUMBER_UNITS_CHOICES = (("",""), ("METERS","METERS"), ("KILOMETERS","KILOMETERS"), ("VOLT","VOLT")) NUMBER_UNITS_CHOICES = (("",""), ("METERS","METERS"), ("KILOMETERS","KILOMETERS"), ("VOLT","VOLT"))
TIME_UNITS_CHOICES = (("SECONDS","SECONDS"), ("MINUTES","MINUTES"), ("MILLISECONDS","MILLISECONDS")) TIME_UNITS_CHOICES = (("SECONDS","SECONDS"), ("MINUTES","MINUTES"), ("MILLISECONDS","MILLISECONDS"), ("CYCLES","CYCLES"))
FLOW_CHOICES = get_instances("SAO#Flow") FLOW_CHOICES = get_instances("SAO#Flow")
# FLOW returns () # FLOW returns ()
S2_CHOICES = (("BEFORE","BEFORE"), ("AFTER","AFTER")) S2_CHOICES = (("BEFORE","BEFORE"), ("AFTER","AFTER"))
S3_CHOICES = (("EVERY","EVERY"), ("FOR A PERIOD OF","FOR A PERIOD OF"), ("WITHIN", "WITHIN"), ("for at least", "FOR AT LEAST")) S3_CHOICES = (("EVERY","EVERY"), ("FOR A PERIOD OF","FOR A PERIOD OF"), ("WITHIN", "WITHIN"), ("FOR AT LEAST", "FOR AT LEAST"))
S4_CHOICES = (("AT THE BEGINNING","AT THE BEGINNING"), ("AT THE END","AT THE END")) S4_CHOICES = (("AT THE BEGINNING","AT THE BEGINNING"), ("AT THE END","AT THE END"))
S5_6_CHOICES = (("AT EVEN INTERVALS","AT EVEN INTERVALS"), ("SEQUENTIALLY","SEQUENTIALLY")) S5_6_CHOICES = (("AT EVEN INTERVALS","AT EVEN INTERVALS"), ("SEQUENTIALLY","SEQUENTIALLY"))
...@@ -51,7 +51,7 @@ class Suffix(models.Model): ...@@ -51,7 +51,7 @@ class Suffix(models.Model):
#prefix templates #prefix templates
s_choices = models.CharField(choices=S_CHOICES, max_length=100, blank=True) s_choices = models.CharField(choices=S_CHOICES, max_length=100, blank=True)
#if S1 #if S1
numerical = models.IntegerField(blank=True, null=True) numerical = models.CharField(blank=True, null=True, max_length=10)
mumerical_units = models.CharField(choices=NUMBER_UNITS_CHOICES + TIME_UNITS_CHOICES, max_length=100, blank=True) mumerical_units = models.CharField(choices=NUMBER_UNITS_CHOICES + TIME_UNITS_CHOICES, max_length=100, blank=True)
#time_units = models.CharField(choices=TIME_UNITS_CHOICES, max_length=100, blank=True) #time_units = models.CharField(choices=TIME_UNITS_CHOICES, max_length=100, blank=True)
#if S2/S3 #if S2/S3
......
...@@ -4,7 +4,8 @@ from rdflib import ConjunctiveGraph, URIRef, RDFS, RDF, Namespace ...@@ -4,7 +4,8 @@ from rdflib import ConjunctiveGraph, URIRef, RDFS, RDF, Namespace
from reqman.apps.reqtool.rest_api.services.parse_ontologies import * from reqman.apps.reqtool.rest_api.services.parse_ontologies import *
from reqman.apps.reqtool.models.main_req import SYSTEM_CHOICES, FUNCTION_CHOICES, INTERFACE_CHOICES, FLOW_CHOICES, ITEM_CHOICES, STATE_CHOICES, STATE_SET_CHOICES from reqman.apps.reqtool.models.main_req import SYSTEM_CHOICES, FUNCTION_CHOICES, INTERFACE_CHOICES, FLOW_CHOICES, ITEM_CHOICES, STATE_CHOICES, STATE_SET_CHOICES
Ontology_file = "../../Ontologies/Mokos_18_1_7_47.ttl" #HERE
Ontology_file = "../../Ontologies/Autonomy_v1.ttl"
main_syntax = get_main_sytax_inference() main_syntax = get_main_sytax_inference()
......
...@@ -6,11 +6,15 @@ from rdflib import ConjunctiveGraph, URIRef, RDFS, RDF, Namespace ...@@ -6,11 +6,15 @@ from rdflib import ConjunctiveGraph, URIRef, RDFS, RDF, Namespace
#call("./../../Ontologies/s-get http://155.207.131.19:3030/Mokos_18_1_7_47/data default >> ../../Ontologies/data.ttl", shell=True) #call("./../../Ontologies/s-get http://155.207.131.19:3030/Mokos_18_1_7_47/data default >> ../../Ontologies/data.ttl", shell=True)
Ontology_file = "../../Ontologies/Mokos_18_1_7_47.ttl" #Ontology_file = "../../Ontologies/Mokos_18_1_7_47.ttl"
Ontology_file = "../../Ontologies/Autonomy_v1.ttl"
subClass_instances = "../../Ontologies/instances_subclass.txt" subClass_instances = "../../Ontologies/instances_subclass.txt"
list_of_DSO = ["http://delab.csd.auth.gr/ontologies/2018/SAO#","http://delab.csd.auth.gr/ontologies/2018/DSO#", "http://delab.csd.auth.gr/ontologies/2018/DSO-AOCS#", "http://delab.csd.auth.gr/ontologies/2018/DSO-AOCS-instances#"] #HERE
list_of_RMO = ["RMO", "RMO-instances", "DSO-AOCS-instances", "<http://delab.csd.auth.gr/ontologies/2018/RDO-instances"] list_of_DSO = ["http://delab.csd.auth.gr/ontologies/2018/SAO#","http://delab.csd.auth.gr/ontologies/2018/DSO#", "http://delab.csd.auth.gr/ontologies/2018/DSO-Automotive#", "http://delab.csd.auth.gr/ontologies/2018/DSO-Automotive-AVP#", "http://delab.csd.auth.gr/ontologies/2018/DSO-Automotive-AVP-instances#"]
#list_of_RMO = ["RMO", "RMO-instances", "DSO-AOCS-instances", "<http://delab.csd.auth.gr/ontologies/2018/RDO-instances"]
#list_of_RMO = ["RMO", "RMO-instances", "DSO-Automotive-AVP-instances", "<http://delab.csd.auth.gr/ontologies/2018/DSO-Automotive-AVP-instances"]
DSO = ["http://delab.csd.auth.gr/ontologies/2018/DSO#"] DSO = ["http://delab.csd.auth.gr/ontologies/2018/DSO#"]
Dictionary_Data = {} Dictionary_Data = {}
...@@ -62,7 +66,12 @@ def get_verb_instances(keyword): ...@@ -62,7 +66,12 @@ def get_verb_instances(keyword):
spliter_1 = data.split('$') spliter_1 = data.split('$')
spliter_2 = spliter_1[0].split("#") spliter_2 = spliter_1[0].split("#")
in_list.append(spliter_2[len(spliter_2) - 1]) in_list.append(spliter_2[len(spliter_2) - 1])
return tuple((str(n), str(n)) for n in (in_list)) for extra in in_list:
per = URIRef("http://delab.csd.auth.gr/ontologies/2018/LO#" +extra)
for s, p, o in g.triples((None, RDF.type, per)):
spl = s.split("#")
out_list.append(str(spl[1]))
return tuple((str(n), str(n)) for n in (out_list))
'''Get Instaces - return tuple''' '''Get Instaces - return tuple'''
...@@ -77,6 +86,12 @@ def get_instances(keyword): ...@@ -77,6 +86,12 @@ def get_instances(keyword):
spliter_1 = data.split('$') spliter_1 = data.split('$')
spliter_2 = spliter_1[0].split("#") spliter_2 = spliter_1[0].split("#")
in_list.append(spliter_2[len(spliter_2) - 1]) in_list.append(spliter_2[len(spliter_2) - 1])
for extra in in_list:
for uri in list_of_DSO:
per = URIRef(uri +extra)
for s, p, o in g.triples((None, RDFS.subClassOf, per)): #subClassOf
spl = s.split("#")
in_list.append(spl[len(spl) - 1])
for extra in in_list: for extra in in_list:
for uri in list_of_DSO: for uri in list_of_DSO:
p = URIRef(uri +extra) p = URIRef(uri +extra)
...@@ -178,7 +193,12 @@ def get_dmo_classes_and_comment(keyword): ...@@ -178,7 +193,12 @@ def get_dmo_classes_and_comment(keyword):
for s, p, o in g.triples((None, RDF.type, per)): for s, p, o in g.triples((None, RDF.type, per)):
spl = s.split("#") spl = s.split("#")
uri = spl[len(spl) - 2].split("/") uri = spl[len(spl) - 2].split("/")
dmo_dic_in = {'GeneralInstances': spl[len(spl) - 1]} find_comment_gen_instance = ""
for urired2 in list_of_DSO:
pop = URIRef(urired2 + spl[len(spl) - 1])
for q1, w1, m1 in g.triples((pop, RDFS.comment, None)):
find_comment_gen_instance = (str(m1).replace("\r","")).replace("\n","")
dmo_dic_in = {'GeneralInstances': spl[len(spl) - 1], "Comment": find_comment_gen_instance}
dic_list_in.append(dmo_dic_in) dic_list_in.append(dmo_dic_in)
for comment in out_list_instance: for comment in out_list_instance:
instance_list = [] instance_list = []
...@@ -187,7 +207,12 @@ def get_dmo_classes_and_comment(keyword): ...@@ -187,7 +207,12 @@ def get_dmo_classes_and_comment(keyword):
per = URIRef(uri +comment) per = URIRef(uri +comment)
for s2, p2, o2 in g.triples((None, RDF.type, per)): for s2, p2, o2 in g.triples((None, RDF.type, per)):
spl = s2.split("#") spl = s2.split("#")
instance_dict = {"Instance": spl[len(spl) - 1]} find_comment_main_instance = ""
for urired2 in list_of_DSO:
pop = URIRef(urired2 + spl[len(spl) - 1])
for q1, w1, m1 in g.triples((pop, RDFS.comment, None)):
find_comment_main_instance = (str(m1).replace("\r","")).replace("\n","")
instance_dict = {"Instance": spl[len(spl) - 1], "Comment": find_comment_main_instance}
instance_list.append(instance_dict) instance_list.append(instance_dict)
name_class = "" name_class = ""
comment_class = "" comment_class = ""
...@@ -200,7 +225,6 @@ def get_dmo_classes_and_comment(keyword): ...@@ -200,7 +225,6 @@ def get_dmo_classes_and_comment(keyword):
comment_class = (str(o).replace("\r","")).replace("\n","") comment_class = (str(o).replace("\r","")).replace("\n","")
suclass_dict = {} suclass_dict = {}
subclass_list = [] subclass_list = []
sub_ins = []
sub_ins_dict = {} sub_ins_dict = {}
for uri in list_of_DSO: for uri in list_of_DSO:
subclas_name = "" subclas_name = ""
...@@ -211,13 +235,20 @@ def get_dmo_classes_and_comment(keyword): ...@@ -211,13 +235,20 @@ def get_dmo_classes_and_comment(keyword):
subclas_name = spl1[len(spl1) - 1] subclas_name = spl1[len(spl1) - 1]
kop = URIRef(uri + spl1[len(spl1) - 1]) kop = URIRef(uri + spl1[len(spl1) - 1])
find_comment = "" find_comment = ""
find_comment_instance = ""
for q, w, m in g.triples((kop, RDFS.comment, None)): for q, w, m in g.triples((kop, RDFS.comment, None)):
find_comment = (str(m).replace("\r","")).replace("\n","") find_comment = (str(m).replace("\r","")).replace("\n","")
per3 = uri + spl1[len(spl1) - 1] sub_ins = []
for s2, p2, o2 in g.triples((None, RDF.type, per3)): for urired in list_of_DSO:
spl2 = s2.split("#") per3 = URIRef(urired + spl1[len(spl1) - 1])
sub_ins_dict = {"Instance": spl2[len(spl2) - 1]} for s2, p2, o2 in g.triples((None, RDF.type, per3)):
sub_ins.append(sub_ins_dict) spl2 = s2.split("#")
for urired2 in list_of_DSO:
kop2 = URIRef(urired2 + spl2[len(spl2) - 1])
for q1, w1, m1 in g.triples((kop2, RDFS.comment, None)):
find_comment_instance = (str(m1).replace("\r","")).replace("\n","")
sub_ins_dict = {"Instance": spl2[len(spl2) - 1], "Comment": find_comment_instance}
sub_ins.append(sub_ins_dict)
suclass_dict = {'SubClass_name': subclas_name, 'SubclassComment':find_comment, 'InstanceOfSubclass': sub_ins} suclass_dict = {'SubClass_name': subclas_name, 'SubclassComment':find_comment, 'InstanceOfSubclass': sub_ins}
subclass_list.append(suclass_dict) subclass_list.append(suclass_dict)
dmo_dic = {"Class": name_class, "Comment":comment_class, 'Subclass': subclass_list, 'Instance_of_Class':instance_list} dmo_dic = {"Class": name_class, "Comment":comment_class, 'Subclass': subclass_list, 'Instance_of_Class':instance_list}
...@@ -329,13 +360,19 @@ def get_related_to_subject(bnodes_uriref): ...@@ -329,13 +360,19 @@ def get_related_to_subject(bnodes_uriref):
'''Find Boilerplate Verb - return list''' '''Find Boilerplate Verb - return list'''
def get_verb(bnodes_uriref): def get_verb(bnodes_uriref):
verb_list = [] verb_list = []
out_list =[]
bnodes_uriref = [str(i) for i in bnodes_uriref] bnodes_uriref = [str(i) for i in bnodes_uriref]
for rel_to_sub in bnodes_uriref: for rel_to_sub in bnodes_uriref:
if "LO" in rel_to_sub: if "LO" in rel_to_sub:
tmp = rel_to_sub.split("#") tmp = rel_to_sub.split("#")
if tmp[1] != '': if tmp[1] != '':
verb_list.append(tmp[1]) verb_list.append(tmp[1])
return(verb_list) for extra in verb_list:
per = URIRef("http://delab.csd.auth.gr/ontologies/2018/LO#" +extra)
for s, p, o in g.triples((None, RDF.type, per)):
spl = s.split("#")
out_list.append(str(spl[1]))
return(out_list)
'''Check if Boilerplate has quantifier - return list''' '''Check if Boilerplate has quantifier - return list'''
...@@ -378,8 +415,9 @@ def get_attribute(bnodes_uriref, subjects, related_subjects, verbs): ...@@ -378,8 +415,9 @@ def get_attribute(bnodes_uriref, subjects, related_subjects, verbs):
if not "isRelatedTo" in i: if not "isRelatedTo" in i:
if not "isRelatedto" in i: if not "isRelatedto" in i:
tmp = i.split("#") tmp = i.split("#")
if tmp[1] != '': if(len(tmp) > 1):
tmp_list.append(tmp[1]) if tmp[1] != '':
tmp_list.append(tmp[1])
tmp_list = list(filter(("nil").__ne__, tmp_list)) tmp_list = list(filter(("nil").__ne__, tmp_list))
tmp_list = list(filter(("Restriction").__ne__, tmp_list)) tmp_list = list(filter(("Restriction").__ne__, tmp_list))
...@@ -519,8 +557,8 @@ def get_prefix_syntax(): ...@@ -519,8 +557,8 @@ def get_prefix_syntax():
if tmp_list2: if tmp_list2:
ver = get_verb(tmp_list2) ver = get_verb(tmp_list2)
prefix_dict[prefix]["Verbs"].append(ver) prefix_dict[prefix]["Verbs"].append(ver)
for i in ver: #for i in ver:
sub.remove(i) # sub.remove(i)
prefix_dict[prefix]["Suject"] = sub prefix_dict[prefix]["Suject"] = sub
return prefix_dict return prefix_dict
......
...@@ -83,6 +83,7 @@ class MainDetailsAPIView(RetrieveUpdateDestroyAPIView): ...@@ -83,6 +83,7 @@ class MainDetailsAPIView(RetrieveUpdateDestroyAPIView):
else: else:
BoilerplateData.objects.filter(owner_data=instance['boilerplate_of_main'].owner, boilerplate_data_id = instance['boilerplate_of_main']).update(main_data = mn ) BoilerplateData.objects.filter(owner_data=instance['boilerplate_of_main'].owner, boilerplate_data_id = instance['boilerplate_of_main']).update(main_data = mn )
instance = serializer.save(main_choices = curmain_choices[0]) instance = serializer.save(main_choices = curmain_choices[0])
#instance = serializer.save()
......
...@@ -158,19 +158,23 @@ class PrefixDetailsAPIView(RetrieveUpdateDestroyAPIView): ...@@ -158,19 +158,23 @@ class PrefixDetailsAPIView(RetrieveUpdateDestroyAPIView):
return queryset_prefix return queryset_prefix
def simple_prefix(self, prefix): def simple_prefix(self, prefix):
if prefix == "If/Unless": if prefix == "If":
return "P1" return "P1"
if prefix == "As soon as": if prefix == "As soon as":
return "P2" return "P2"
if prefix == "As long as": if prefix == "As long as":
return "P3" return "P3"
if prefix == "Once":
return "P1"
if prefix == "Unless":
return "P1"
#Custom actions when PUT #Custom actions when PUT
def perform_update(self, serializer): def perform_update(self, serializer):
instance = serializer.validated_data instance = serializer.validated_data
#add data in thn Model BoilerplateData #add data in thn Model BoilerplateData
print(instance) #print(instance)
es_instance = instance['system_fun_item'].rsplit(':', 1) es_instance = instance['system_fun_item'].rsplit(':', 1)
ev_instance =instance['state_or_verb'].rsplit(':', 1) ev_instance =instance['state_or_verb'].rsplit(':', 1)
ei_instance = instance['item_function_flow_statevalue'].rsplit(':', 1) ei_instance = instance['item_function_flow_statevalue'].rsplit(':', 1)
......
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