Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
R
Requirement Formalization Tool
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Thodoris Nestoridis
Requirement Formalization Tool
Commits
e4ff295f
Commit
e4ff295f
authored
3 years ago
by
Thodoris Nestoridis
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
New inference proccess 1.4.2
parent
a80c458d
Changes
11
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
652 additions
and
79 deletions
+652
-79
boilerplate-details.component.html
...ts/boilerplate-details/boilerplate-details.component.html
+49
-10
boilerplate-details.component.ts
...ents/boilerplate-details/boilerplate-details.component.ts
+166
-17
main-details.component.ts
...src/app/components/main-details/main-details.component.ts
+1
-1
main.service.ts
reqtool/ReqmanAngular11/src/app/services/main.service.ts
+4
-0
main_req.py
reqtool/reqman/api/reqman/apps/reqtool/models/main_req.py
+10
-10
requirements.py
...ool/reqman/api/reqman/apps/reqtool/models/requirements.py
+11
-11
inference.py
...an/api/reqman/apps/reqtool/rest_api/services/inference.py
+49
-24
LICENSE
...reqman/apps/reqtool/rest_api/services/shacl-1.4.2/LICENSE
+201
-0
log4j2.properties
...s/reqtool/rest_api/services/shacl-1.4.2/log4j2.properties
+26
-0
urls.py
reqtool/reqman/api/reqman/apps/reqtool/rest_api/urls.py
+1
-0
main_req_views.py
.../api/reqman/apps/reqtool/rest_api/views/main_req_views.py
+134
-6
No files found.
reqtool/ReqmanAngular11/src/app/components/boilerplate-details/boilerplate-details.component.html
View file @
e4ff295f
...
@@ -10,11 +10,20 @@
...
@@ -10,11 +10,20 @@
</nav>
</nav>
<mat-grid-list
cols=
"2"
>
<mat-grid-list
cols=
"2"
>
<div
class=
"first"
>
<div
class=
"first"
>
<div
*
ngIf=
"get_metrics(currentboilerplate.title)"
style=
"margin-right: 50px;width: 90%;"
<div
*
ngIf=
"get_metrics(currentboilerplate.title)"
class=
"alert alert-warning"
role=
"alert"
>
style=
"display:flex; flex-direction: row; align-items: center;margin-bottom: 50px;"
>
<p
[
innerHTML
]="
getinferdata
()"
></p>
<mat-accordion>
<mat-expansion-panel
*
ngFor=
"let msection of mes_list"
class=
"alert alert-warning"
role=
"alert"
>
<mat-expansion-panel-header>
<mat-panel-title
[
innerHTML
]='
msection
.
Description
'
>
</mat-panel-title>
</mat-expansion-panel-header>
<p
[
innerHTML
]=
msection
.
Title
></p>
<p
[
innerHTML
]='
msection
.
Info
'
></p>
</mat-expansion-panel>
</mat-accordion>
</div>
</div>
<div
*
ngIf=
"currentboilerplate.id"
class=
"edit-form"
>
<div
*
ngIf=
"
currentboilerplate.id"
class=
"edit-form"
>
<form
ngNativeValidate
>
<form
ngNativeValidate
>
<div
class=
"form-group"
style=
"display:flex; flex-direction: row; align-items: center"
>
<div
class=
"form-group"
style=
"display:flex; flex-direction: row; align-items: center"
>
<label
for=
"title"
style=
"margin-right: 50px;"
>
Requirement title
</label>
<label
for=
"title"
style=
"margin-right: 50px;"
>
Requirement title
</label>
...
@@ -138,7 +147,12 @@
...
@@ -138,7 +147,12 @@
{{instan.Instance}}
{{instan.Instance}}
</mat-panel-title>
</mat-panel-title>
</mat-expansion-panel-header>
</mat-expansion-panel-header>
<p>
{{instan.Comment}}
</p>
<div
fxLayout=
"column"
>
<p
fxFlex
fxHide
.
xs
>
{{instan.Comment}}
</p>
<input
fxFlex
fxHide
.
xs
fxLayoutAlign=
"start"
class=
"btn btn-warning"
type=
"button"
value=
"Delete Instance"
(
click
)="
deleteInstance
(
section
.
Name
,
item
.
Class
,
'',
'',
'',
'',
instan
.
Instance
,
instan
.
Comment
)"
/>
</div>
</mat-expansion-panel>
</mat-expansion-panel>
</li>
</li>
</div>
</div>
...
@@ -205,8 +219,14 @@
...
@@ -205,8 +219,14 @@
<mat-panel-title>
<mat-panel-title>
{{ subsubsubsubinstansub.Instance}}
{{ subsubsubsubinstansub.Instance}}
</mat-panel-title>
</mat-panel-title>
</mat-expansion-panel-header>
</mat-expansion-panel-header>
<p>
{{subsubsubsubinstansub.Comment}}
</p>
<div
fxLayout=
"column"
>
<p
fxFlex
fxHide
.
xs
>
{{subsubsubsubinstansub.Comment}}
</p>
<input
fxFlex
fxHide
.
xs
fxLayoutAlign=
"start"
class=
"btn btn-warning"
type=
"button"
value=
"Delete Instance"
(
click
)="
deleteInstance
(
section
.
Name
,
item
.
Class
,
sub
.
SubClass_name
,
subsub
.
SubSubClass_name
,
subsubsub
.
SubSubClass_name
,
subsubsubsub
.
SubSubClass_name
,
subsubsubsubinstansub
.
Instance
,
subsubsubsubinstansub
.
Comment
)"
/>
</div>
</mat-expansion-panel>
</mat-expansion-panel>
</li>
</li>
</div>
</div>
...
@@ -227,7 +247,12 @@
...
@@ -227,7 +247,12 @@
{{ subsubsubinstansub.Instance}}
{{ subsubsubinstansub.Instance}}
</mat-panel-title>
</mat-panel-title>
</mat-expansion-panel-header>
</mat-expansion-panel-header>
<p>
{{subsubsubinstansub.Comment}}
</p>
<div
fxLayout=
"column"
>
<p
fxFlex
fxHide
.
xs
>
{{subsubsubinstansub.Comment}}
</p>
<input
fxFlex
fxHide
.
xs
fxLayoutAlign=
"start"
class=
"btn btn-warning"
type=
"button"
value=
"Delete Instance"
(
click
)="
deleteInstance
(
section
.
Name
,
item
.
Class
,
sub
.
SubClass_name
,
subsub
.
SubSubClass_name
,
subsubsub
.
SubSubClass_name
,
'',
subsubsubinstansub
.
Instance
,
subsubsubinstansub
.
Comment
)"
/>
</div>
</mat-expansion-panel>
</mat-expansion-panel>
</li>
</li>
</div>
</div>
...
@@ -248,7 +273,12 @@
...
@@ -248,7 +273,12 @@
{{ subsubinstansub.Instance}}
{{ subsubinstansub.Instance}}
</mat-panel-title>
</mat-panel-title>
</mat-expansion-panel-header>
</mat-expansion-panel-header>
<p>
{{subsubinstansub.Comment}}
</p>
<div
fxLayout=
"column"
>
<p
fxFlex
fxHide
.
xs
>
{{subsubinstansub.Comment}}
</p>
<input
fxFlex
fxHide
.
xs
fxLayoutAlign=
"start"
class=
"btn btn-warning"
type=
"button"
value=
"Delete Instance"
(
click
)="
deleteInstance
(
section
.
Name
,
item
.
Class
,
sub
.
SubClass_name
,
subsub
.
SubSubClass_name
,
'',
'',
subsubinstansub
.
Instance
,
subsubinstansub
.
Comment
)"
/>
</div>
</mat-expansion-panel>
</mat-expansion-panel>
</li>
</li>
</div>
</div>
...
@@ -270,7 +300,12 @@
...
@@ -270,7 +300,12 @@
{{ instansub.Instance}}
{{ instansub.Instance}}
</mat-panel-title>
</mat-panel-title>
</mat-expansion-panel-header>
</mat-expansion-panel-header>
<p>
{{instansub.Comment}}
</p>
<div
fxLayout=
"column"
>
<p
fxFlex
fxHide
.
xs
>
{{instansub.Comment}}
</p>
<input
fxFlex
fxHide
.
xs
fxLayoutAlign=
"start"
class=
"btn btn-warning"
type=
"button"
value=
"Delete Instance"
(
click
)="
deleteInstance
(
section
.
Name
,
item
.
Class
,
sub
.
SubClass_name
,
'',
'',
'',
instansub
.
Instance
,
instansub
.
Comment
)"
/>
</div>
</mat-expansion-panel>
</mat-expansion-panel>
</li>
</li>
...
@@ -297,7 +332,11 @@
...
@@ -297,7 +332,11 @@
{{genin.Instance}}
{{genin.Instance}}
</mat-panel-title>
</mat-panel-title>
</mat-expansion-panel-header>
</mat-expansion-panel-header>
{{genin.Comment}}
<div
fxLayout=
"column"
>
<p
fxFlex
fxHide
.
xs
>
{{genin.Comment}}
</p>
<input
fxFlex
fxHide
.
xs
fxLayoutAlign=
"start"
class=
"btn btn-warning"
type=
"button"
value=
"Delete Instance"
(
click
)="
deleteInstance
(
section
.
Name
,
'',
'',
''
,
'',
'',
genin
.
Instance
,
genin
.
Comment
)"
/>
</div>
</mat-expansion-panel>
</mat-expansion-panel>
</li>
</li>
</div>
</div>
...
...
This diff is collapsed.
Click to expand it.
reqtool/ReqmanAngular11/src/app/components/boilerplate-details/boilerplate-details.component.ts
View file @
e4ff295f
This diff is collapsed.
Click to expand it.
reqtool/ReqmanAngular11/src/app/components/main-details/main-details.component.ts
View file @
e4ff295f
...
@@ -135,9 +135,9 @@ export class MainDetailsComponent implements OnInit {
...
@@ -135,9 +135,9 @@ export class MainDetailsComponent implements OnInit {
}
}
ngOnInit
():
void
{
ngOnInit
():
void
{
this
.
getAllMain
(
this
.
route
.
snapshot
.
params
.
id
);
this
.
getchoices
();
this
.
getchoices
();
this
.
getmainchoices
(
this
.
route
.
snapshot
.
params
.
gb
);
this
.
getmainchoices
(
this
.
route
.
snapshot
.
params
.
gb
);
this
.
getAllMain
(
this
.
route
.
snapshot
.
params
.
id
);
}
}
ngDoCheck
()
{
ngDoCheck
()
{
...
...
This diff is collapsed.
Click to expand it.
reqtool/ReqmanAngular11/src/app/services/main.service.ts
View file @
e4ff295f
...
@@ -169,4 +169,8 @@ export class MainService {
...
@@ -169,4 +169,8 @@ export class MainService {
setinstances
(
gb
:
any
,
instance
:
any
,
comment
:
any
):
Observable
<
any
>
{
setinstances
(
gb
:
any
,
instance
:
any
,
comment
:
any
):
Observable
<
any
>
{
return
this
.
http
.
get
(
`
${
baseUrl2
}${
gb
}
`
+
`/main/choices/add`
+
`/
${
instance
}
`
+
`/
${
comment
}
/`
);
return
this
.
http
.
get
(
`
${
baseUrl2
}${
gb
}
`
+
`/main/choices/add`
+
`/
${
instance
}
`
+
`/
${
comment
}
/`
);
}
}
deleteinstances
(
gb
:
any
,
instance
:
any
,
comment
:
any
):
Observable
<
any
>
{
return
this
.
http
.
get
(
`
${
baseUrl2
}${
gb
}
`
+
`/main/choices/delete`
+
`/
${
instance
}
`
+
`/
${
comment
}
/`
);
}
}
}
This diff is collapsed.
Click to expand it.
reqtool/reqman/api/reqman/apps/reqtool/models/main_req.py
View file @
e4ff295f
...
@@ -121,21 +121,21 @@ class Main(models.Model):
...
@@ -121,21 +121,21 @@ class Main(models.Model):
boilerplate_of_main
=
models
.
ForeignKey
(
'reqtool.Boilerplate'
,
related_name
=
'main_boilerplate'
,
on_delete
=
models
.
CASCADE
)
boilerplate_of_main
=
models
.
ForeignKey
(
'reqtool.Boilerplate'
,
related_name
=
'main_boilerplate'
,
on_delete
=
models
.
CASCADE
)
main_owner
=
models
.
ForeignKey
(
User
,
related_name
=
'main_owner'
,
on_delete
=
models
.
CASCADE
)
main_owner
=
models
.
ForeignKey
(
User
,
related_name
=
'main_owner'
,
on_delete
=
models
.
CASCADE
)
#Subject
#Subject
sys_fun_inter
=
models
.
CharField
(
max_length
=
100
)
sys_fun_inter
=
models
.
CharField
(
max_length
=
100
0
)
#Between Subject - Verb
#Between Subject - Verb
state_item_before_verb
=
models
.
CharField
(
max_length
=
100
,
blank
=
True
)
state_item_before_verb
=
models
.
CharField
(
max_length
=
100
0
,
blank
=
True
)
statevalue_before_verb
=
models
.
CharField
(
max_length
=
100
,
blank
=
True
)
statevalue_before_verb
=
models
.
CharField
(
max_length
=
100
0
,
blank
=
True
)
#Verb
#Verb
shall
=
models
.
CharField
(
max_length
=
100
)
shall
=
models
.
CharField
(
max_length
=
100
0
)
verb
=
models
.
CharField
(
max_length
=
100
)
verb
=
models
.
CharField
(
max_length
=
100
0
)
#Between Verb - Object
#Between Verb - Object
quantifier
=
models
.
CharField
(
max_length
=
100
,
blank
=
True
)
quantifier
=
models
.
CharField
(
max_length
=
100
0
,
blank
=
True
)
numerical
=
models
.
CharField
(
blank
=
True
,
null
=
True
,
max_length
=
10
)
numerical
=
models
.
CharField
(
blank
=
True
,
null
=
True
,
max_length
=
10
00
)
mumerical_units
=
models
.
CharField
(
max_length
=
100
,
blank
=
True
)
mumerical_units
=
models
.
CharField
(
max_length
=
100
0
,
blank
=
True
)
#Οbject
#Οbject
flow_function_interface_item_system_state_stateset
=
models
.
CharField
(
max_length
=
100
)
flow_function_interface_item_system_state_stateset
=
models
.
CharField
(
max_length
=
100
0
)
#last definitions
#last definitions
statevalue_system_connection_stateset
=
models
.
CharField
(
max_length
=
100
,
blank
=
True
)
statevalue_system_connection_stateset
=
models
.
CharField
(
max_length
=
100
0
,
blank
=
True
)
#ID [M1-M16]
#ID [M1-M16]
main_choices
=
models
.
CharField
(
max_length
=
100
,
blank
=
True
)
main_choices
=
models
.
CharField
(
max_length
=
100
,
blank
=
True
)
...
...
This diff is collapsed.
Click to expand it.
reqtool/reqman/api/reqman/apps/reqtool/models/requirements.py
View file @
e4ff295f
...
@@ -158,7 +158,7 @@ class Boilerplate(models.Model):
...
@@ -158,7 +158,7 @@ class Boilerplate(models.Model):
owner
=
models
.
ForeignKey
(
User
,
related_name
=
'boilerplate'
,
on_delete
=
models
.
CASCADE
)
owner
=
models
.
ForeignKey
(
User
,
related_name
=
'boilerplate'
,
on_delete
=
models
.
CASCADE
)
group_of_boilerplate
=
models
.
ForeignKey
(
BoilerplateGroup
,
related_name
=
'owner_of_boilerplate'
,
on_delete
=
models
.
CASCADE
)
group_of_boilerplate
=
models
.
ForeignKey
(
BoilerplateGroup
,
related_name
=
'owner_of_boilerplate'
,
on_delete
=
models
.
CASCADE
)
created
=
models
.
DateTimeField
(
auto_now_add
=
True
)
created
=
models
.
DateTimeField
(
auto_now_add
=
True
)
title
=
models
.
CharField
(
max_length
=
30
,
unique
=
True
)
title
=
models
.
CharField
(
max_length
=
30
0
,
unique
=
True
)
has_prefix
=
models
.
BooleanField
(
default
=
False
)
has_prefix
=
models
.
BooleanField
(
default
=
False
)
has_main
=
models
.
BooleanField
(
default
=
False
)
has_main
=
models
.
BooleanField
(
default
=
False
)
has_suffix
=
models
.
BooleanField
(
default
=
False
)
has_suffix
=
models
.
BooleanField
(
default
=
False
)
...
@@ -212,18 +212,18 @@ class PrefixGroup(models.Model):
...
@@ -212,18 +212,18 @@ class PrefixGroup(models.Model):
class
Prefix
(
models
.
Model
):
class
Prefix
(
models
.
Model
):
prefixgroup
=
models
.
ForeignKey
(
PrefixGroup
,
related_name
=
'prefix'
,
on_delete
=
models
.
CASCADE
)
prefixgroup
=
models
.
ForeignKey
(
PrefixGroup
,
related_name
=
'prefix'
,
on_delete
=
models
.
CASCADE
)
prefix_boilerplate
=
models
.
ForeignKey
(
Boilerplate
,
related_name
=
'prefix_boilerplate'
,
on_delete
=
models
.
CASCADE
)
prefix_boilerplate
=
models
.
ForeignKey
(
Boilerplate
,
related_name
=
'prefix_boilerplate'
,
on_delete
=
models
.
CASCADE
)
prefix
=
models
.
CharField
(
max_length
=
100
)
prefix
=
models
.
CharField
(
max_length
=
100
0
)
#state value constraint
#state value constraint
system_fun_item
=
models
.
CharField
(
max_length
=
100
)
system_fun_item
=
models
.
CharField
(
max_length
=
100
0
)
state_or_verb
=
models
.
CharField
(
max_length
=
100
)
state_or_verb
=
models
.
CharField
(
max_length
=
100
0
)
#occuring functionality
#occuring functionality
item_function_flow_statevalue
=
models
.
CharField
(
max_length
=
100
)
item_function_flow_statevalue
=
models
.
CharField
(
max_length
=
100
0
)
#state value constraint OR occuring functionality
#state value constraint OR occuring functionality
logical_expression
=
models
.
CharField
(
max_length
=
100
,
blank
=
True
)
logical_expression
=
models
.
CharField
(
max_length
=
100
0
,
blank
=
True
)
#Logic connectivity Prefix1 (and/or/xor) Prefix2
#Logic connectivity Prefix1 (and/or/xor) Prefix2
logic_connective
=
models
.
CharField
(
max_length
=
100
,
blank
=
True
)
logic_connective
=
models
.
CharField
(
max_length
=
100
0
,
blank
=
True
)
#Prefix value P1/P2/P3
#Prefix value P1/P2/P3
simple_prefix
=
models
.
CharField
(
max_length
=
100
,
blank
=
True
)
simple_prefix
=
models
.
CharField
(
max_length
=
100
0
,
blank
=
True
)
def
__init__
(
self
,
*
args
,
**
kwargs
):
def
__init__
(
self
,
*
args
,
**
kwargs
):
...
@@ -265,7 +265,7 @@ class BoilerplateData(models.Model):
...
@@ -265,7 +265,7 @@ class BoilerplateData(models.Model):
class
InferenceResults
(
models
.
Model
):
class
InferenceResults
(
models
.
Model
):
owner_infer
=
models
.
ForeignKey
(
User
,
related_name
=
'owner_infer'
,
on_delete
=
models
.
CASCADE
)
owner_infer
=
models
.
ForeignKey
(
User
,
related_name
=
'owner_infer'
,
on_delete
=
models
.
CASCADE
)
infer_group_of_boilerplate
=
models
.
ForeignKey
(
BoilerplateGroup
,
related_name
=
'infer_owner_of_boilerplate'
,
on_delete
=
models
.
CASCADE
)
infer_group_of_boilerplate
=
models
.
ForeignKey
(
BoilerplateGroup
,
related_name
=
'infer_owner_of_boilerplate'
,
on_delete
=
models
.
CASCADE
)
ontology_file
=
models
.
CharField
(
max_length
=
100
,
blank
=
True
)
ontology_file
=
models
.
CharField
(
max_length
=
100
0
,
blank
=
True
)
inference_data
=
models
.
CharField
(
default
=
""
,
max_length
=
1000000
,
blank
=
True
)
inference_data
=
models
.
CharField
(
default
=
""
,
max_length
=
1000000
,
blank
=
True
)
def
save
(
self
,
**
kwargs
):
def
save
(
self
,
**
kwargs
):
...
@@ -280,7 +280,7 @@ class InferenceResults(models.Model):
...
@@ -280,7 +280,7 @@ class InferenceResults(models.Model):
class
BoilerplateGroupClassesInstances
(
models
.
Model
):
class
BoilerplateGroupClassesInstances
(
models
.
Model
):
classes_instances_group_of_boilerplate
=
models
.
ForeignKey
(
BoilerplateGroup
,
related_name
=
'classes_instances_owner_of_boilerplate'
,
on_delete
=
models
.
CASCADE
)
classes_instances_group_of_boilerplate
=
models
.
ForeignKey
(
BoilerplateGroup
,
related_name
=
'classes_instances_owner_of_boilerplate'
,
on_delete
=
models
.
CASCADE
)
classes_instances_owner
=
models
.
ForeignKey
(
User
,
related_name
=
'classes_instances_owner'
,
on_delete
=
models
.
CASCADE
)
classes_instances_owner
=
models
.
ForeignKey
(
User
,
related_name
=
'classes_instances_owner'
,
on_delete
=
models
.
CASCADE
)
ontology_file
=
models
.
CharField
(
default
=
""
,
max_length
=
100
,
blank
=
True
)
ontology_file
=
models
.
CharField
(
default
=
""
,
max_length
=
100
0
,
blank
=
True
)
prefix_choices
=
JSONField
()
prefix_choices
=
JSONField
()
prefix_logcon_choices
=
JSONField
()
prefix_logcon_choices
=
JSONField
()
prefix_verb_choices
=
JSONField
()
prefix_verb_choices
=
JSONField
()
...
@@ -306,5 +306,5 @@ class BoilerplateGroupClassesInstances(models.Model):
...
@@ -306,5 +306,5 @@ class BoilerplateGroupClassesInstances(models.Model):
class
BoilerplateGroupDictionary
(
models
.
Model
):
class
BoilerplateGroupDictionary
(
models
.
Model
):
classes_instances_group_of_boilerplate_dic
=
models
.
ForeignKey
(
BoilerplateGroup
,
related_name
=
'classes_instances_owner_of_boilerplate_dic'
,
on_delete
=
models
.
CASCADE
)
classes_instances_group_of_boilerplate_dic
=
models
.
ForeignKey
(
BoilerplateGroup
,
related_name
=
'classes_instances_owner_of_boilerplate_dic'
,
on_delete
=
models
.
CASCADE
)
classes_instances_owner_dic
=
models
.
ForeignKey
(
User
,
related_name
=
'classes_instances_owner_dic'
,
on_delete
=
models
.
CASCADE
)
classes_instances_owner_dic
=
models
.
ForeignKey
(
User
,
related_name
=
'classes_instances_owner_dic'
,
on_delete
=
models
.
CASCADE
)
ontology_file_dic
=
models
.
CharField
(
default
=
""
,
max_length
=
100
,
blank
=
True
)
ontology_file_dic
=
models
.
CharField
(
default
=
""
,
max_length
=
100
0
,
blank
=
True
)
Dictionary_Data
=
JSONField
()
Dictionary_Data
=
JSONField
()
This diff is collapsed.
Click to expand it.
reqtool/reqman/api/reqman/apps/reqtool/rest_api/services/inference.py
View file @
e4ff295f
...
@@ -82,10 +82,10 @@ def exportboiltottl(ontfile,project, prefix, boilerplate, main, suffix):
...
@@ -82,10 +82,10 @@ def exportboiltottl(ontfile,project, prefix, boilerplate, main, suffix):
g
.
load
(
'../../Ontologies/'
+
ontfile
,
format
=
"turtle"
)
g
.
load
(
'../../Ontologies/'
+
ontfile
,
format
=
"turtle"
)
else
:
else
:
g
.
load
(
ontfile
,
format
=
"turtle"
)
g
.
load
(
ontfile
,
format
=
"turtle"
)
print
(
ontfile
)
#
print(ontfile)
#remove the requirements from the RDO-instances
#remove the requirements from the RDO-instances
previous_req
=
URIRef
(
"http://delab.csd.auth.gr/ontologies/2018/RDO-instances#"
)
#
previous_req = URIRef("http://delab.csd.auth.gr/ontologies/2018/RDO-instances#")
g
.
remove
((
previous_req
,
None
,
None
))
#
g.remove((previous_req, None, None))
for
i
in
range
(
len
(
boilerplate
)):
for
i
in
range
(
len
(
boilerplate
)):
title
=
boilerplate
[
i
][
0
][
'title'
]
title
=
boilerplate
[
i
][
0
][
'title'
]
g
.
add
((
per_instances
+
title
,
RDF
.
type
,
rdo
+
'Requirement'
))
g
.
add
((
per_instances
+
title
,
RDF
.
type
,
rdo
+
'Requirement'
))
...
@@ -135,7 +135,6 @@ def exportboiltottl(ontfile,project, prefix, boilerplate, main, suffix):
...
@@ -135,7 +135,6 @@ def exportboiltottl(ontfile,project, prefix, boilerplate, main, suffix):
if
(
main
[
i
][
0
][
j
]
!=
""
):
if
(
main
[
i
][
0
][
j
]
!=
""
):
instance_file
,
splitter_1
=
getinstancefile
(
main
[
i
][
0
][
j
],
g
)
instance_file
,
splitter_1
=
getinstancefile
(
main
[
i
][
0
][
j
],
g
)
if
(
splitter_1
[
0
]
==
'Item'
or
splitter_1
[
0
]
==
'Flow'
):
if
(
splitter_1
[
0
]
==
'Item'
or
splitter_1
[
0
]
==
'Flow'
):
print
(
main
[
i
][
0
][
j
])
g
.
add
((
per_instances
+
(
title
+
"_"
+
main
[
i
][
0
][
'main_choices'
]),
rbo
+
"isRelatedToTraversingConcept"
,
URIRef
(
str
(
instance_file
))
+
"#"
+
str
(
splitter_1
[
len
(
splitter_1
)
-
1
])))
g
.
add
((
per_instances
+
(
title
+
"_"
+
main
[
i
][
0
][
'main_choices'
]),
rbo
+
"isRelatedToTraversingConcept"
,
URIRef
(
str
(
instance_file
))
+
"#"
+
str
(
splitter_1
[
len
(
splitter_1
)
-
1
])))
else
:
else
:
g
.
add
((
per_instances
+
(
title
+
"_"
+
main
[
i
][
0
][
'main_choices'
]),
rbo
+
"isRelatedTo"
+
splitter_1
[
0
],
URIRef
(
str
(
instance_file
))
+
"#"
+
str
(
splitter_1
[
len
(
splitter_1
)
-
1
])))
g
.
add
((
per_instances
+
(
title
+
"_"
+
main
[
i
][
0
][
'main_choices'
]),
rbo
+
"isRelatedTo"
+
splitter_1
[
0
],
URIRef
(
str
(
instance_file
))
+
"#"
+
str
(
splitter_1
[
len
(
splitter_1
)
-
1
])))
...
@@ -253,36 +252,62 @@ def shacl(ontotlogy_file):
...
@@ -253,36 +252,62 @@ def shacl(ontotlogy_file):
open
(
target
,
'w'
)
.
close
()
open
(
target
,
'w'
)
.
close
()
shutil
.
copyfile
(
file1
,
target
)
shutil
.
copyfile
(
file1
,
target
)
for
i
in
range
(
3
):
for
i
in
range
(
3
):
print
(
i
+
1
,
'Cycle of inferencing'
)
print
(
i
+
1
,
'Cycle of inferencing'
)
result
=
subprocess
.
check_output
([
"./reqman/apps/reqtool/rest_api/services/shacl-1.3.2/bin/shaclinfer.sh"
,
"-datafile"
,
target
])
#result = subprocess.check_output(["./reqman/apps/reqtool/rest_api/services/shacl-1.3.2/bin/shaclinfer.sh", "-datafile", target])
file_object
=
open
(
target
,
'a'
)
try
:
res
=
str
(
result
,
'utf-8'
)
result
=
subprocess
.
check_output
(
"./reqman/apps/reqtool/rest_api/services/shacl-1.4.2/bin/shaclinfer.sh -datafile "
+
target
+
" | grep -v -e 'WARN OntDocumentManager' -e 'at org.' -e 'org.apache.' -e '@'"
,
shell
=
True
)
file_object
.
write
(
res
.
strip
())
except
:
file_object
.
close
()
raise
APIException
(
"Problem during the Inferencing"
)
file_object
=
open
(
target
,
'a'
)
res
=
str
(
result
,
'utf-8'
)
file_object
.
write
(
res
.
strip
())
file_object
.
close
()
#need to fiil with all the metrics
#need to fiil with all the metrics
g
=
Graph
()
g
=
Graph
()
gon
=
Graph
()
g
.
load
(
target
,
format
=
"turtle"
)
g
.
load
(
target
,
format
=
"turtle"
)
gon
.
load
(
ontotlogy_file
,
format
=
"turtle"
)
req_list
=
[]
for
inf_metr
in
list_of_inference_metrics
:
for
inf_metr
in
list_of_inference_metrics
:
metrics_dict
[
inf_metr
]
=
[]
metrics_dict
[
inf_metr
]
=
[]
p
=
URIRef
(
"http://delab.csd.auth.gr/ontologies/2018/RDO#"
+
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
)):
for
s
,
p
,
o
in
g
.
triples
((
None
,
RDF
.
type
,
p
)):
#
metrics_dict["IncompleteRequirement"] = [s
]
#
e.g IncompleteRequirement': ['Req1', 'Req2'
]
get_title
=
str
(
s
)
.
split
(
"#"
)
get_title
=
str
(
s
)
.
split
(
"#"
)
if
get_title
[
1
]
not
in
req_list
:
req_list
.
append
(
get_title
[
1
])
metrics_dict
[
inf_metr
]
.
append
(
get_title
[
1
])
metrics_dict
[
inf_metr
]
.
append
(
get_title
[
1
])
for
inf_metr2
in
info_metric
:
metrics_dict
[
inf_metr2
]
=
[]
for
inf_metr2
in
info_metric
:
p
=
URIRef
(
"http://delab.csd.auth.gr/ontologies/2018/RDO#"
+
inf_metr2
)
#e.g isMissingOfInstance : ['Comment' : '...', {'Req1':['Instance1']}, {'Req2':['Instance2']}]
req_dict
=
{}
metrics_dict
[
inf_metr2
]
=
[]
req_dict
[
'Comment'
]
=
""
p
=
URIRef
(
"http://delab.csd.auth.gr/ontologies/2018/RDO#"
+
inf_metr2
)
for
scom
,
pcom
,
ocom
in
g
.
triples
((
p
,
RDFS
.
comment
,
None
)):
req_dict
=
{}
req_dict
[
'Comment'
]
=
str
(
ocom
)
req_dict
[
'Comment'
]
=
""
req_dict
[
get_title
[
1
]]
=
[]
for
scom
,
pcom
,
ocom
in
g
.
triples
((
p
,
RDFS
.
comment
,
None
)):
for
s1
,
p1
,
o1
in
g
.
triples
((
s
,
p
,
None
)):
req_dict
[
'Comment'
]
=
str
(
ocom
)
get_title2
=
str
(
o1
)
.
split
(
"#"
)
for
get_title
in
req_list
:
req_dict
[
get_title
[
1
]]
.
append
(
get_title2
[
1
])
req_dict
[
get_title
]
=
[]
metrics_dict
[
inf_metr2
]
.
append
(
req_dict
)
s
=
URIRef
(
"http://delab.csd.auth.gr/ontologies/2018/RDO-instances#"
+
get_title
)
print
(
metrics_dict
)
p
=
URIRef
(
"http://delab.csd.auth.gr/ontologies/2018/RDO#"
+
inf_metr2
)
for
s1
,
p1
,
o1
in
g
.
triples
((
s
,
p
,
None
)):
get_title2
=
str
(
o1
)
.
split
(
"#"
)
req_dict
[
get_title
]
.
append
(
get_title2
[
1
])
req_dict
[
get_title2
[
1
]]
=
[]
for
s3
,
p3
,
o3
in
gon
.
triples
((
None
,
None
,
o1
)):
sub
=
str
(
s3
)
.
split
(
"#"
)
ver
=
str
(
p3
)
.
split
(
"#"
)
obj
=
str
(
o3
)
.
split
(
"#"
)
req_dict
[
get_title2
[
1
]]
.
append
(
sub
[
1
]
+
' '
+
ver
[
1
]
+
' '
+
obj
[
1
])
for
s3
,
p3
,
o3
in
gon
.
triples
((
o1
,
None
,
None
)):
sub
=
str
(
s3
)
.
split
(
"#"
)
ver
=
str
(
p3
)
.
split
(
"#"
)
obj
=
str
(
o3
)
.
split
(
"#"
)
req_dict
[
get_title2
[
1
]]
.
append
(
'<i>'
+
sub
[
1
]
+
'</i> <u>'
+
ver
[
1
]
+
'</u> <i>'
+
obj
[
1
]
+
'</i>'
)
metrics_dict
[
inf_metr2
]
.
append
(
req_dict
)
#print(metrics_dict)
return
(
metrics_dict
)
return
(
metrics_dict
)
...
...
This diff is collapsed.
Click to expand it.
reqtool/reqman/api/reqman/apps/reqtool/rest_api/services/shacl-1.4.2/LICENSE
0 → 100644
View file @
e4ff295f
This diff is collapsed.
Click to expand it.
reqtool/reqman/api/reqman/apps/reqtool/rest_api/services/shacl-1.4.2/log4j2.properties
0 → 100644
View file @
e4ff295f
## Licensed under the terms of http://www.apache.org/licenses/LICENSE-2.0
status
=
error
name
=
PropertiesConfig
filters
=
threshold
filter.threshold.type
=
ThresholdFilter
filter.threshold.level
=
ALL
appender.console.type
=
Console
appender.console.name
=
STDOUT
appender.console.layout.type
=
PatternLayout
appender.console.layout.pattern
=
%d{HH:mm:ss} %-5p %-10c{1} :: %m%n
#appender.console.layout.pattern = [%d{yyyy-MM-dd HH:mm:ss}] %-5p %-10c{1} :: %m%n
rootLogger.level
=
INFO
rootLogger.appenderRef.stdout.ref
=
STDOUT
logger.jena.name
=
org.apache.jena
logger.jena.level
=
WARN
logger.arq-info.name
=
org.apache.jena.arq.info
logger.arq-info.level
=
INFO
logger.riot.name
=
org.apache.jena.riot
logger.riot.level
=
INFO
This diff is collapsed.
Click to expand it.
reqtool/reqman/api/reqman/apps/reqtool/rest_api/urls.py
View file @
e4ff295f
...
@@ -35,6 +35,7 @@ urlpatterns = [
...
@@ -35,6 +35,7 @@ urlpatterns = [
#MAIN CHOICES DATA
#MAIN CHOICES DATA
path
(
'groupboilerplates/<int:groupboil>/main/choices/'
,
main_req_views
.
MainChoicesViewSet
.
as_view
(),
name
=
'mainchoices'
),
path
(
'groupboilerplates/<int:groupboil>/main/choices/'
,
main_req_views
.
MainChoicesViewSet
.
as_view
(),
name
=
'mainchoices'
),
path
(
'groupboilerplates/<int:groupboil>/main/choices/add/<str:instance>/<str:comment>/'
,
main_req_views
.
MainChoicesAPIView
.
as_view
(),
name
=
'setmainchoices'
),
path
(
'groupboilerplates/<int:groupboil>/main/choices/add/<str:instance>/<str:comment>/'
,
main_req_views
.
MainChoicesAPIView
.
as_view
(),
name
=
'setmainchoices'
),
path
(
'groupboilerplates/<int:groupboil>/main/choices/delete/<str:instance>/<str:comment>/'
,
main_req_views
.
DeleteMainChoicesAPIView
.
as_view
(),
name
=
'deletemainchoices'
),
path
(
'main/choices/shall/'
,
main_req_views
.
ShallChoicesViewSet
.
as_view
(),
name
=
'mainshall'
),
path
(
'main/choices/shall/'
,
main_req_views
.
ShallChoicesViewSet
.
as_view
(),
name
=
'mainshall'
),
#SUFFIX CHOICES DATA
#SUFFIX CHOICES DATA
...
...
This diff is collapsed.
Click to expand it.
reqtool/reqman/api/reqman/apps/reqtool/rest_api/views/main_req_views.py
View file @
e4ff295f
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment