I don't know how to give an easy answer, so let me give a complex one. So, maybe 10 years ago, opencog had a question-answering system. It worked, in a small domain. It worked by parsing natural-language sentences, for example "A thermometer is an instrument" or "A violin is a musical instrument" and converting them to abstract graphs e.g. isA(thermometer, instrument) or isA(violin, mod(instrument, music)) and storing the abstract graphs in the atomspace. Questions, such as "What is an instrument?" were converted to isA(???, instrument) and a pattern-match was run to find everything that ??? would be. "fill in the blanks".
There are several obvious problems with this, as anyone who tries this finds out. You have to write special cases for all the different question types. One finds oneself curating an ever-more complex ruleset to handle all of these cases. And like any complex ruleset ... its buggy. Its fragile. questions can be misunderstood. Wrong, insane answers can be supplied. No commonsense... (despite this, people have created huge triple-stores and whatnot. I think that's a fundamentally wrong approach).
It was my hope to hand-write enough rules to get a general sense of what that rule-set is like, and then create systems that can learn and adjust the rules. Then I got side tracked solving other issues along the way. .. Such as creating a code base capable of such things. I still think I "know how" to do this, but it remains experimental and a bit out of reach. I did learn various important lessons along the way, but cannot quickly summarize.
What's I'm describing is not a "task" but a decade-long research program. If you want a short programming task, there are issue-lists of bugs to fix. Most of these require you to know system internals, though.
Here's one task, but maybe its rather complex... so, one project,
https://github.com/opencog/learn wants to induce grammar via unsupervised training on text. (and then later, from grammar, shallow and deep semantics, i.e. "do question answering right") We've been using English, but it became clear that the correct thing is really to create random grammars, then generate random sentences, and then see if the learning system can learn those random grammars. .. and use that as a scoring system, to track quality of learning.
So the task is ... create random grammars, and write the code to create a collection of random sentences. Sounds easy, but its surprisingly hard. I mean, its not a few days or a week, its a good bit longer. How much I can't say. Care to try that? Warning: it might be really very difficult, and so without a principled approach, you'll get nowhere. It will likely force you to understand certain basic concepts about grammars and computation and combinatorial explosion that you probably haven't ever had to think about before ...
-- Linas