The Week 6

Greetings,

We met twice last week (Thursday and Monday) because the mentors suggested some changes to the code last Thursday, which I had to include by Monday. They also wanted to go through the code and do some refactoring.

Matthias proposed an idea which would lead to complete backward compatibility for annotations, and would also not cause any information loss, a thing which I thought would not possible to achieve simultaneously. Here's the idea:
  • First of all, we are going to have a main Metadata class which is going to store all the meta-information like the external resources linked to that component (Controlled Vocabulary terms, or CVTerms), history of that component, and listofKeyValue pairs present inside the annotations, a feature introduced in FBA-v3. We are going to have classes for each of these three inner metadata information, and an object of each class inside the Metadata class.
  • The annotation of a component will be an object of this metadata class and you can access the information corresponding to the three classes via annotation.cvterms, annotation.history and annotation.listofKeyValue.
  • In addition to these, we are also going to have a private variable on this Metadata class (_annotation) which is going to store the data of external resources in the old format.
  • The data of cvterm and annotation will be synchronized between each other i.e addition of a new cvterm will lead to the addition of new resources (if possible, because not each and every resource URI satisfy the present regular expression syntax) inside the private variable annotation.
  • Now whenever a user makes a call to the 'annotation' object of the component, the data inside this private variable will be returned. This data may not be complete, but it will be in the old syntax.
  • And a user who wants to get the complete data can get it from the cvtemrs object present inside this metadata object.
I changed the code accordingly and Matthias reviewed and improved the code on Monday, and suggested some changes which I was required to make until Thursday. He also wrote a few simple tests, that needed to pass using the new implementation. I made the changes and everything worked well in the next meeting. I am still cleaning up the code, and have even opened an issue on my forked repo to keep a track of it. I shall now start with the reading and writing of models using this new format. Also, since I was unable to cover the parsing of notes information last week, I will target it this week. The phase-1 evaluation will start soon, and I would complete this part before that. This will also lead to the completion of Milestone-2.. Also, I was unable to cover the parsing of notes information, which I will target this week. The phase-1 evaluation will start soon, and I would complete this part before that. This will also lead to the completion of Milestone-2.

That's all for this week.
Thanks for reading.

Comments

Popular posts from this blog

The Week 12

The Week 13

The Final Report