-
Notifications
You must be signed in to change notification settings - Fork 1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Transition from component error to normal #1
Comments
I prefer option A), and actually I'd prefer to maintain also the link with the objective that was active when the I propose to keep the current information structure but add the type of error, as you suggest: What do you think? |
I'm not sure if I completely understand the use of the class FD_Error. Do you mean using this class for store the error_type of the FD? I mean, when a FG is in error, its FD should be instantiated as FD_error and change a ERROR_TYPE property to COMP_ERROR or NFR_ERROR? and the fd_error_log(FD, OBJECTIVE) would remain right? |
No, my suggestion is to store, as entry in the
but that would require a triplet |
Ok, I see it now. I will implement it. Thanks! |
@chcorbato, @marioney and I had a meeting today. For the restore case of a component, we have decided it is easier just coordinate with @marioney has a more explanatory diagram for this, but the idea is to have as objective status values: {"IN_ERROR_COMPONENT" , "IN_ERROR_NFR" , "IN_PROGRESS" , "UNGROUNDED" , "UNREACHABLE" , "UPDATABLE"} Possible contingencies: A) Laser failure When we receive The metacontrol reconfigures the system to a new FG. When the laser is restored, its status changes to B) NFR failure When we don't reach objective's NFR, we set the objective to IN_ERROR_NFR and store the FD in fd_error_log (FD, objective)` and search for a suitable FD. The rest of objective's status are managed by the metacontroller.
What do you think? |
I agree. Most of my questions below are clarifications to include in the MROS Final Report:
Who sets the
As a result of this, are there any additional changes in the ABox to those of the
Again, are this chagnes ni the ABox performed by SWRL rules? Which ones?
I assume this 3 ABox changes above are done by the reasoner code, NOT by SWRL rules, right?
LGTM! |
Yes, two rules one in the MROS ontology (FG in error) and other in TOMASys (Obj in error)
After configuration, a new FG is selected. Therefore, the metacontroller delete the
Rules in MROS in charge of this:
Three TOMASys rules are in charge of this:
Yes.
I will extend today this information in the MROS Final Report. |
Keep it open. To check the implementation on the reasoner side |
In the MROS doc we've been discussing about the current ontological reasoning limitations: Esther Aguado @chcorbato In MROS implementation, the manifestation of this problem are conflicting data property values. To keep track of the current solution, I'm going to specify what are the code-tricks we are using to solve this problem:
a. Component status switch from FALSE to RECOVERED -> delete FALSE status in laser component so a RECOVERED value can be added by metacontroller. |
So there are rules to assign a status of an FD for all situations, and the only "manual" action from the python code is to delete the previous status assigned when needed? |
Yes, thats it. |
Currently when a component is in error,
fd_realisability
is set as false.When an objective is in error (because of QA or component), the FD linked to the current FG is stored in the
fd_error_log
.Two approaches can be taken:
A) If we expand the objective status as proposed on this issue, we could change the
fd_error_log
structure. Currently thefd_error_log
is an object property that links FDs and objectives. This property indicates that a FD is not suitable anymore to solve a certain objective, for instance:fd_error_log(f_normal_mode, o_navigateA)
.I propose using it as a value property so we can have:
fd_error_log(f_normal_mode, "COMP_ERROR")
.If the error is due to non reaching QA objective's requirements, we would have
fd_error_log(f_normal_mode, "NFR_ERROR")
When a new objective is set, we could erase all NFR_ERRORs whereas when a component is repaired, we could erase al COMP_ERRORs. This way we avoid trying deprecated functions in both (component and NFR) restoration cases.
With this approach, we lose that link between FD and objective, but as we only have one objective at a time when we remove an objective and the errors linked to its QA, we are implicitly using that information.
B) Another approach could be forget about error logs and add a new realisability property. Currently we have a fd_realisability that links components required by FD. If we rename that with fd_comp_realisability and add a fd_qa_realisability, we could also capture runtime which FDs are not available because of not meeting objective's NFR. When a
component_status
is set true,fd_comp_realisability
will change to true. When anobjective_status
is set to UNREACHABLE before being removed,fd_qa_realisability
will change to true.Any of this approaches are intended to:
After a new objective definition, have all available FDs for that objective without the previous information of QA of past objectives.
However, this information may be used. We could use it to change the estimated QA values of a FD if they differ from the ones measured in the linked FG (I don't know if it that would be useful as I guess it depends a lot on the concrete objective and environment).
After a component restoration, re-set all required FDs to available.
What do you think? @marioney @chcorbato
The text was updated successfully, but these errors were encountered: