Saturday, August 13, 2016

Week 16 (13th August - 19th August)

  • Created an account on the Medium Website in which I will use to post my GSoC blog as recommended by the mentors.
  • Pencils down, Code clean up and documentation of various section of my codes. The various commits for the documentation are here: Docstring Fixes in ifttt-tests.pyCode Cleanup and Documentation and Code Cleanup.
  • Filling up the various occupations that IFTTT users will select as option in the IFTTT front-end in the birthday trigger configuration. Property used is occupation, so I am finding the most interesting occupations on Wikidata that will return results from Wikidata to fill up the IFTTT trigger occupation options.
  • Merged pull request to Wikimedia IFTTT GSoC branch here: Pull Request 15.
  • Combination of all my work in GSoC from the first day can be seen here (a list of all the commits): All commits.
  • Migration of the IFTTT application on Wikimedia Tool Labs from Grid Engine to Kebernetes. This was the suggestion from Stephen (primary mentor) and it sounded good and more over why not use recent tool labs technology. So the application now runs on Kebernetes.

Sunday, August 7, 2016

Week 15 (06th August - 12th August)

  • Started building the Birthday trigger view, for the base case, at this level, I limited all the subjects just to 10 and the trigger returned birthdays of entities on Wikidata.
  • Birthday trigger build using the Wikidata Query Service and SPARQL queries integrated into the flask app.
  • Created RSS for the birthday trigger which can be found in the popular_persons_birthday.xml template and also added a Unit tests for birthday trigger which is passing on tool labs.
  • Debugging of IFTTT endpoint tests for birthday trigger.
  • Birthday trigger endpoint test now passing on IFTTT and also tested it by creating a sample personal recipe and got an action for birthdays of people in Wikidata.
  • Improvement on the Birthday trigger so that it can use the lang trigger field to get the birthdays. This trigger field will be set on IFTTT recipe configuration by the user creating the trigger.
  • Fixed bug which prevented RSS content for the triggers to be translatable, now the RSS views for all the triggers are translatable in various languages provided the localization is available.
  • Modified the birthday trigger to get information about recent birthdays and ordering it in descending order of date. An example instance of the query can be found here: Recent birthdays for computer scientists and the query is below:
  • SELECT ?entity ?itemLabel ?propertyLabel ?date (year(?date) as ?year) 
    WHERE 
    {   
      ?entityS wdt:P569 ?date .   
       ?entityS wdt:P106 wd:Q82594 . 
        values ?property { wd:P106 } . 
        values ?item { wd:Q82594 } . 
                  SERVICE wikibase:label {
                   bd:serviceParam wikibase:language "en" . 
                             ?entityS rdfs:label ?entity . 
                       ?item rdfs:label ?itemLabel . 
                       ?property rdfs:label ?propertyLabel
                  } 
                FILTER (datatype(?date) = xsd:dateTime && month(?date) = month(now()) && day(?date) <= day(now()))
    } ORDER BY DESC(day(?date)) DESC(?year)
    • Added more trigger ingredients in the birthday trigger. Ingredients are now 3 instead of 1 which are; <lang>, <property> and <item>. These trigger ingredients optimizes the query to produce letter results and also gives room for the IFTTT users to customize the query to suite their needs.
    • Added options for property and item ingredients on the IFTTT front-end for users to select various options in creating recipes for birthday triggers.
    • Cleaned up the RSS view for birthday trigger to accommodate the new results that are returned like; age of the person, date of birth, properties and items etc....

Monday, August 1, 2016

Week 14 (30th July - August 5th)

  • Studying of Wikidata Items (objects) and Wikidata properties to come up with trigger ideas.
  • More trigger Ideas sent to mentors for evaluation, below are the trigger ideas
    • Notify me about the number of new Wikidata items added today.
    • Notify me about the number of new Wikidata item properties added today
    • Notify me about how many people have birthdays today (could be a very huge number). But this one will be limited to the amount of data in Wikidata (definitely not the whole world).
  • Worked on the "Experience gained through this project during GSoC" section of my GSoC blog post document and submitted for review to@Lydia_Pintscher.
  • Developed the "How my experience has affected my Day-to-Day life" of my blog post and submitted to @Lydia_Pintscher for review.
  • Developed the "About the project and what I have done so far" section of my blog post and submitted for review.
  • Finished developing the blog post, completed all the remaining parts of the blog and submitted for review.
  • Blog post finally reviewed and finishing of the blog post. Blog post divided into 3 parts and prepared for publishing. Done with blog :)