Page MenuHomePhabricator

Fork NYPL emoji bot for Commons images (to give back 'similar' Commons images)
Closed, ResolvedPublic

Description

People who tweet an emoji to @NYPLEmoji get a similar image from the collections in response. The code for the project lives here: https://github.com/lolibrarian/NYPL-Emoji-Bot.

I propose creating a similar bot for Commons images. It will introduce a lot of people to the Commons collection and because it uses emoji, not words, it should translate for mobile/desktop users worldwide.

Primary mentor: @ArielGlenn, @Dereckson, @D3r1ck01
Co-mentor: we may add a co-mentor, tbd, @MelodyKramer expressed interest
Support: @Yurik for JavaScript/Node-specific issues
Skills required: Analysis, basic software architecture, JavaScript, NodeJS, Toolforge

Microtasks:

  • If Wikidata is considered a good way to map emojis with images, write a small script to import all emojis on Wikidata.
  • Explore the various possibilities of how to map emojis to Commons pictures, highlight for each idea the advantages and drawbacks.
  • <to be determined, any small task to explore this project is welcome>

Event Timeline

There are a very large number of changes, so older changes are hidden. Show Older Changes

@srishakatux I would be very interested in mentoring this project. I am a so-so dev (i.e. I can do it slowly but you'd never want to hire me to do that) but would be able to assist with design / comms / audience / project management...

@MelodyKramer just tweeted at @NYPLEmoji and got a reply back ;-) it is an interesting project! from @yuvipanda's tweets, it looks like he is chilling (or maybe not) around in India.

Actually, now I'm realizing that if for setting up a similar bot for commons images, we already have food available here: https://github.com/lolibrarian/NYPL-Emoji-Bot, it may not be a good fit for RGSOC but for Outreachy!

It would be great if you could mentor for the design part, and in the meanwhile let's find someone who could co-mentor along with you for the dev part?

@srishakatux That sounds good to me! There are several suggestions upthread re: dev, though I think @yuvipanda realized that we might just be able to create a list of Commons images that correlate to an emoji.

@Dereckson hey! wondering if you might be interested in mentoring this project along with Melody :)

Sumit updated the task description. (Show Details)

Hello, this is an interesting project, just tested an emoji via the NYPLEmoji bot and got an exciting image of a man smiling :). I wish to work on this project during Google-Summer-of-Code but need to have 1 more mentor to complete the list. @Dereckson, would you wish to mentor me on this project along side @MelodyKramer?

Something like this for commons can be really exciting considering commons is a large repo of images, we could have a lot of images to work with :). Great Idea/Project :)

@srishakatux and @D3r1ck01: yes I'm available to mentor this project.

@D3r1ck01 reached me on IRC and sent me a mail about this, and is partisan of a sound approach (crowdworking per Jame comment + curation from Commons + find a way to tag the pictures matching an emoji). With this approach, it could be a good fit for GSoC.

Another less manual option is to use a pre-existing emoji keyword library to match picture tags with emojis. (link: https://github.com/muan/emojilib) 🎉🎉🎉

@srishakatux, I'm interested in working on this project as an Outreachy project.

@Dereckson thanks for your willingness to mentor this project @Kattakdev reached out to me via email and expressed their interest in applying to this project, and were wondering if this would be available w/ Outreachy? It would be great if we make this project available for Outreachy as well, would you have any problem?

Another less manual option is to use a pre-existing emoji keyword library to match picture tags with emojis. (link: https://github.com/muan/emojilib) 🎉🎉🎉

Yes. I spoke with @Dereckson about this but the problem is that Wikimedia Commons doesn't yet have special tags to images (not yet). And it we have to do that, it will be a part of the project to tag all images on Wikimedia Commons which will be a tedious work to do (considering the millions of images on commons). Using Categories is a better idea but Wikidata too is a good way to perform the tasks but either ways, it will still be cumbersome. The best way (which is still to be done in the future) is to build an AI algorithm that will be trained to match emojis to images.

So far, the crowdworking approach is the best way (so far) and fit for a GSoC project as agreed by the mentors and other experienced devs chat on this ticket. But in conclusion, there is always a better way to solve a problem :)

@Dereckson I would also need your help in analyzing what is the scope of this project, how many hours of work it would be both for a beginner as well as an experienced developer to finish what has been proposed? I've added this project to the MW's GSOC page: https://www.mediawiki.org/wiki/Google_Summer_of_Code_2017#Build_a_similar_to_.40NYPLEmoji_bot_for_Commons_images. It would be great if you could help verify/edit the information on this page.

@D3r1ck01, good points. For an AI algorithm, there is Emojini, but it's not open source. (Link: https://emojini.curalate.com/) Attaching a pic because it can be quite impressive - I tested it with some Wikimedia Commons picture of the day.

Screen Shot 2017-03-22 at 13.42.07.png (634×1 px, 516 KB)

@srishakatux Yes, the project is suitable both for Outreachy and GSoC. I'm going to prepare an hour assessment.

@Dereckson Sweet! I just added the project to MW's Outreachy page. Whenever you make changes to the MW's GSOC page, copy them over to MW's Outreachy page as well, thank you :)

xSavitar updated the task description. (Show Details)
xSavitar updated the task description. (Show Details)

@Kattakdev If you wish to discuss the project a little bit, I'm available on Freenode, don't hesitate to get in touch on IRC.

Hello, my name is Sagal Adam and I would really be interested in working on this project for GSoC. Would there be any mentors available to discuss this with me? @srishakatux @Dereckson @ArielGlenn

This task (T63487) will come in handy for this project according to this proposal implementation approach: T160966.

Dereckson raised the priority of this task from Low to Medium.May 23 2017, 11:59 AM

[ Raising the priority as there is an actual plan to build this during GSoC. ]

Hello! Thank you for featuring this project in the previous edition of Google Summer of Code. Did the student complete the project requirements? In any case, please help modify the task description and add/remove the tags accordingly. Thank you!

This project was not completed. There is a live task which can be kept open if we want to close this one, see T164560. This one should be linked there so we don't lose ideas from it.

It looks like there is an interest from @D3r1ck01 to mentor this project in Google-Summer-of-Code (2018). @Ariel Just to confirm, would you willing to be a co-mentor? Is there much work left in this project, that it is still a good three-month project for a newcomer?

Very little code at all was written on the last incarnation of this project. If a student is interested this round, they should start out on toolforge, meaning that much of last year's configuration work would be irrelevant. The json file containing a partial mapping between emojis and images could be re-used and expanded, though I would encourage the student to explore other avenues for producing such a mapping, so that it is maintained after the project's end. And the generation of an image plus copyright info, or alternatively work on Twittercards on commons, would start from the beginning, nothing's been done on that front.

Given the above, I think the project is still a good one. And yes, I could be around to co-mentor. But if we're trying to get the band back together, @Dereckson what do you think? And are you interested?

Hi All,
I am Balaji from India. I have been working on chatbots for the last one year. I have developed an open-source Facebook Messenger chatbot to help hospitals to remind parents about their kid's vaccination days through Facebook Messenger and answer queries about the vaccination schedules. You can find the project at my GitHub repository. I have previously worked on a twitter bot for my hobby project too. I am interested to develop the NYPLEmoji like bot for Commons image as part of GSoC 2018.

@ArielGlenn @Dereckson I am interested to take up this project in GSoC 2018. Can I develop the bot from scratch using Ruby language?

My Ruby knowledge is next to nothing, so we'd have to make sure one of the co-mentors has that background. Except for that, as long as the bot performs well and isn't a resource hog, it doesn't matter what language it's written in.

@ArielGlenn I will make sure the bot performs well without any resource hog or performance issue. Currently, I am looking into the ways to automate the mapping of emojis to Commons images.

Hi @ArielGlenn I am interested in this project for GSoC 2018 and currently looking at a few micro tasks. Thanks

Hi @ArielGlenn I am interested in this project for GSoC 2018 and currently looking at a few micro tasks. Thanks

OK, both @D3r1ck01 and I are happy to answer any questions you might have during the application preparation period.

Okay, I can help for the Ruby part so yes I'm in to comentor the project.

Okay, I can help for the Ruby part so yes I'm into comentor the project.

@Dereckson : Thanks! That's great to hear.

@ArielGlenn and @D3r1ck01 : I would like to split the project into three parts as follows,

  1. Updating the Commons image HTML template to include relevant social cards meta tags for Twitter as mentioned here.
  2. Creating a twitter bot to reply to emojis.
  3. Creating a tool in Wikimedia toolforge or add feature inside the Wikimedia Commons Android app to let users map the relevant images to emojis

Looking for your suggestions on these ideas. If everything is fine, I would like to work on the wireframes for them.

This message is for students interested in working on this project for Google-Summer-of-Code (2018)

  • Student application deadline is March 27 16:00 UTC.
  • If you have questions about eligibility, please read the GSoC rules thoroughly here https://summerofcode.withgoogle.com/rules/. Wikimedia will not be responsible for verifying your eligibility and also not be able to make any decisions on this. For any clarifying questions, please email gsoc-support@google.com
  • Ensure that by now you have already discussed your implementation approach with your mentors, completed a few bugs/microtasks and made a plan to move forward with the proposal
  • I encourage you to start creating your proposals on Phabricator now to receive timely feedback on them from mentors. Do not wait until the last minute. Give your mentors at least a week's time to review your proposal, so that you could then incorporate any suggestions for changes. Learn how to submit a proposal in our participant's guide: https://www.mediawiki.org/wiki/Google_Summer_of_Code/Participants (Step 9)
  • Proposals that contain links to successfully merged patches before the application period and submitted on both Phabricator and GSoC portal will only be considered for the review process. So, between now and the application deadline, you could consider working on this task.
  • If you would like to chat with me more about the process or have questions, come and talk to me in the Zulip chat: https://wikimedia.zulipchat.com/

This message is for students interested in working on this project for Google-Summer-of-Code (2018)

  • Student application deadline is March 27 16:00 UTC.
  • If you have questions about eligibility, please read the GSoC rules thoroughly here https://summerofcode.withgoogle.com/rules/. Wikimedia will not be responsible for verifying your eligibility and also not be able to make any decisions on this. For any clarifying questions, please email gsoc-support@google.com
  • Ensure that by now you have already discussed your implementation approach with your mentors, completed a few bugs/microtasks and made a plan to move forward with the proposal
  • I encourage you to start creating your proposals on Phabricator now to receive timely feedback on them from mentors. Do not wait until the last minute. Give your mentors at least a week's time to review your proposal, so that you could then incorporate any suggestions for changes. Learn how to submit a proposal in our participant's guide: https://www.mediawiki.org/wiki/Google_Summer_of_Code/Participants (Step 9)
  • Proposals that contain links to successfully merged patches before the application period and submitted on both Phabricator and GSoC portal will only be considered for the review process. So, between now and the application deadline, you could consider working on this task.
  • If you would like to chat with me more about the process or have questions, come and talk to me in the Zulip chat: https://wikimedia.zulipchat.com/

@srishakatux Thanks for the references. I am working on few PoCs. I will be submitting my initial proposal before this Friday.

@D3r1ck01 I could see that you added NodeJS as a skill requirement for this project. But, we have discussed earlier in this thread that I would like to build this project from scratch using Ruby language. I would like to have your help in ToolForge. @Dereckson is interested in co-mentor for Ruby related tasks.

@ArielGlenn, @Dereckson @D3r1ck01 I have submitted a proposal for this project, Looking forward to hearing your feedback on it.

@Balaji030698, yes! The NYPL bot itself is written in NodeJS and if you're forking to build on it, then you should do it in NodeJS of course. Rebuilding the whole bot in Ruby is also an option but the only issue is reinventing the wheel? Do you have some reasons for doing this in Ruby? Would you be able to keep maintaining the bot after GSoC? ;)

Yes, I can help you on Toolforge, can you ping me on IRC or leave your questions here? I'll have a look :) @Dereckson as he said can help you in Ruby!

Thanks for sharing the draft proposal, we'll have a look and for me, I'll leave feedback directly on the proposal document. Thanks :)

In T143593#4067627, @D3r1ck01 wrote:

@Balaji030698, yes! The NYPL bot itself is written in NodeJS and if you're forking to build on it, then you should do it in NodeJS of course. Rebuilding the whole bot in Ruby is also an[[ URL | name ]] option but the only issue is reinventing the wheel?

Yes, I can help you on Toolforge, can you ping me on IRC or leave your questions here? I'll have a look :) @Dereckson as he said can help you in Ruby!

Thanks for sharing the draft proposal, we'll have a look and for me, I'll leave feedback directly on the proposal document. Thanks :)

Twitter is planning to discontinue their REST and Stream APIs by June 2018 and suggesting developers to migrate to the new Twitter Account Activity API. Since NYPLEmoji bot is using Twit npm module which relies on Stream and REST APIs, directly forking the NYPLEmoji bot could be risky. Especially, the Twit npm module isn't updated for the last 9 months. I have even notified NYPLEmoji bot developer regarding this in GitHub (Refer here)

Do you have some reasons for doing this in Ruby?

Earlier the project title was "Build a similar to @NYPLEmoji bot for Commons images." and there wasn't any specific tech stack mentioned, hence i decided to do this on Ruby. I have a very decent experience in building chatbots at Ruby.

Would you be able to keep maintaining the bot after GSoC? ;)

Yes, Sure! I have planned few future deliverables like analytics tools for the bot to find the number of tweets to the bot, most tweeted emoji to the bot and few more.

I'm language agnostic; as long as the bot doesn't hog resources on toolforge and does its job, and one of the mentors has the chops for code review in that language, it's fine. There are enough apis out there in various languages that it shouldn't matter what you choose.

Interesting news about the REST api, and annoying as well. Thanks for that heads up.

ping @ArielGlenn @rosalieper @D3r1ck01 Is there anything remaining in this task from GSoC'18? If not, then please consider marking it as resolved! Ensure no pull requests are remaining to be merged and deployed in production and documentation both on-wiki and in the code is complete. Same goes for T190163.

ArielGlenn claimed this task.

The 2018 proposal had a few differences from this one so there are things still to do. However they can be managed as separate tasks, I think that's more appropriate at this point. Thanks!