Dadepo Aderemi

Recap of YorubaName.com Hackathon

On 8th April 2018, we had the very first YorubaName.com hackathon, which was kindly hosted by HotelsNG. For a background information about the reason we put the hackathon together, do read: Get Set for YorubaName’s First Hackathon.

The turn out of developers at the hackathon was lower than expected, but this did not prevent us from going ahead with the objective of the hackathon: which is to work on some of the issues: bugs and feature requests previously recorded against the YorubaName code cases on GitHub.

At the end of the day, we were able to work on 5 issues. They include:

Facebook commenting system
https://github.com/Yorubaname/yorubaname-website/issues/41


With this, users of the dictionary will be able to share comments or stories they know about names in the dictionary. We believe this would add to the interactivity of the dictionary.

Show date modified in the dashboard
https://github.com/Yorubaname/yorubaname-dashboard/issues/25

This is a feature that helps lexicographers see when last any property of a name was updated.

Automatically Populate the etymology with values entered in morphology
https://github.com/Yorubaname/yorubaname-dashboard/issues/10

This is another issue that benefits the lexicographers managing names in the dictionary. It allows for the automatic population of the etymology with values entered in morphology. This should end up being a handy time-saving feature.

Remove the display of “See also” attribute
https://github.com/Yorubaname/yorubaname-website/issues/50

Every name entry in the dictionary has a “see also” attribute which allows users of the dictionary to see other entries that are similar to the ones they’re currently reading. We are removing this for now until it is properly activated.

Make it seamless to start up the website in development mode

This is a nice improvement that will improve the experience for developers who wants to work on the codebase. This involves the creation of a new application configuration file with settings that ensure the database tables are automatically created on the first run in development mode.

I would be reviewing, merging and deploying to production these changes in the coming days.

All in all, the hackathon was an eventful one for me, not only did we get to work on the issues listed above, it was also an opportunity to hang out with other volunteers of the YorubaName dictionary project. From the look of things, I think we should be having more of these events! 🙂

Special thanks to all who attended, to Adewale Abate(@Ace_KYD) for coming through, and also to HotelsNG for playing host.

Till the next hackathon, Cheers!

Getting Ready for The YorubaName.com Hackathon

The YorubaName Hackathon is almost 2 weeks away. In this post, I quickly share some things you can do as a developer to prepare for the up-coming event.

Installation Guide

The YorubaName.com application consists of two separate applications. The YorubaName Website Application and the YorubaName Dashboard Application. The Website application powers the backend services for www.yorubaname.com, while the Dashboard is the application through which lexicographers manage the entries in the dictionary.

Each application runs separately, have their code base live in separate repositories and have different software requirements.

For running and working on the YorubaName website application, you need to have the following installed

JDK 1.6+ (See installation guide)
MySQL (See installation guide)
Maven (See installation guide)

For running and working on the dashboard application, you need to have the following installed

Nodejs (See installation guide)
NPM (See installation guide)
Bower (See installation guide)
Grunt (See installation guide)

Architecture Guide

There are a couple of things you can do prior to the hackathon to get some understanding of the code base and how things tack together.

This includes:

Read the Contribution Guidelines for YorubaName Codebase.

Also, make sure to check the ReadMe for the website codebase and the ReadMe for the Dashboard. These contain essential information on how to install and run the application.

Another important thing to do in preparation for the hackathon is to watch the recorded webinar on how to get started working with the YorubaName codebase. This webinar shows how to install the required software, how to clone the codebase, and how to run both the website and dashboard application and have them interact with each other. Watching this video is highly recommended.

Last but not the least, if you have any question, please feel free to come along to our Gitter dev chat room and ask. I try my best to answer whatever questions you might have.

In case you are yet to register for the Hackathon, you can do so by following the registration link. Remember, the Hackathon is happening on April 8th, 2018, at HotelsNG: No 3, Birrel Avenue, off Herbert Macaulay Way, Sabo, Yaba, Lagos. It starts at 12 noon.

YorubaName.com Hackathon: The How and The What

As mentioned in the previous post, we would be holding the very first YorubaName.com hackathon come April 8th. It is going to be from 12:00 to 5:30 at HotelsNG.

Registration is already open, so if you are a developer who works with Java/Spring or JavaScript/AngularJs, and you want to come hack with other developers, then you can register here.

In this post, I am going to share a very brief overview of how the day is going to look like and the issues we plan to hack on.

How: The Agenda

At exactly 12 noon we will open our doors for developers to start coming in. This would be followed by a welcoming talk, where we get to know each other a little bit, reiterate the idea behind the hackathon, pass across necessary information etc.

Then Abati Adewale, a developer advocate at Ingressive would give a talk centered around GitHub. Since the Yorùbá Names project carries out all its development on GitHub, starting the hackathon with a technical talk about GitHub seems like the right thing to do.

After that, I will give a short talk on the architecture of the YorubaName.com codebase: how things stack together, the framework used etc. The aim would be to provide the basic information needed for the developers at the hackathon to start exploring the code base.

After this, developers will pair up, and dive into the codebase. This will see developers working on the issues that we have highlighted as the priority to be solved during the hackathon. The idea is to open as many pull request as possible, against the codebase, solving these issues before the end of the hackathon.

What: The Overview of issues to hack on

Even though participants would be free to go through the issues on GitHub and pick whichever they want to work on, we have created a list of issues we consider having a high priority and we wish to get resolved during the hackathon.

The list of issues is divided into two categories. Issues relating to the Dashboard and Issues relating to the Website App.

Find them below with respective links to the GitHub, where more details can be found.

Dashboard Website App
TTS customization

https://github.com/Yorubaname/yorubaname-dashboard/issues/26

Turn media links to hypertext https://github.com/Yorubaname/yorubaname-website/issues/82
Date Stamp

https://github.com/Yorubaname/yorubaname-dashboard/issues/25

https://github.com/Yorubaname/yorubaname-dashboard/issues/8

Geotag searching https://github.com/Yorubaname/yorubaname-website/issues/60
Homographs

https://github.com/Yorubaname/yorubaname-dashboard/issues/28

Temp Lexicographer login https://github.com/Yorubaname/yorubaname-website/issues/57
New entries to twitter

https://github.com/Yorubaname/yorubaname-dashboard/issues/15

Blog body on homepage https://github.com/Yorubaname/yorubaname-website/issues/56
Etymology breakdown

https://github.com/Yorubaname/yorubaname-dashboard/issues/10

https://github.com/Yorubaname/yorubaname-dashboard/issues/6

Things to delete https://github.com/Yorubaname/yorubaname-website/issues/50
Completion indicator

https://github.com/Yorubaname/yorubaname-dashboard/issues/3

Linkability between entries https://github.com/Yorubaname/yorubaname-website/issues/46
Backend collaborations

https://github.com/Yorubaname/yorubaname-dashboard/issues/22

Facebook commenting system https://github.com/Yorubaname/yorubaname-website/issues/41
Famous people/link

https://github.com/Yorubaname/yorubaname-dashboard/issues/24

Email confirmation of publishing https://github.com/Yorubaname/yorubaname-website/issues/38
Offline upload issues

https://github.com/Yorubaname/yorubaname-dashboard/issues/16

Protect contributor privacy https://github.com/Yorubaname/yorubaname-website/issues/17
List by contributors

https://github.com/Yorubaname/yorubaname-dashboard/issues/5

Name of the day https://github.com/Yorubaname/yorubaname-website/issues/9

Finally…

We will continue hacking till 5:30PM when finally we shall call it a day.

But that won’t be the end of it, as we hope after the hackathon, the participants would continue contributing code changes, bug fixes etc to the codebase.

As mentioned in Get Set for YorubaName’s First Hackathon, the Yorùbá Names Project has always been envisioned as a project to be driven by communal and collective effort. thus after the Hackathon, we hope to have more developers joining us on this journey of documenting all known Yoruba Names in an online dictionary.

You are a developer/designer, Not registered yet? Then do so using the registration form and join us for the Hackathon.

Get Set for YorubaName’s First Hackathon

On April 8th, 2018, YorubaName.com would be hosting its first ever hackathon.

At its very onset, the Yorùbá Names Project has always been envisioned as a project to be driven by communal and collective effort. Which is not surprising since language and culture, are artifacts that are forged by the commons. Who owns a people’s culture? or a people’s language? Or a peoples volume of names, other than the people themselves?

If someone adds an entry to the site, a second person updated the etymology to correct an error, a third person updated the geolocation while a fifth person added links to famous people bearing that name: At the end of the day, who owns the content that was created by these 5 people? The simple answer is no one owns it, but at the same time, it belongs to all of them.

This is the reason why we have embraced an Open Source model for the development of the Yorùbá Names Project. So that it can belong to all. All codebase for the project is available on GitHub. All development is done in the open on GitHub. All issue tracking is also done on GitHub. Everybody and anybody are welcome to contribute code to the codebase.

If someone designs the look and feel of the YorubaName website, and another hacks together the CSS and HTML, while another puts together the backend code that powers the site, who owns this technical creation that powers the dictionary? Again, the simple answer is: it belongs to all.

That is the spirit of collaborative and communal development we have embraced with the project. The Hackathon, come April, is yet another expression of this communal approach.

It is going to be an event where we bring together developers/designers, and together, work on fixing issues and implementing some of the feature requests that have been noted down on GitHub.

It would be on April 8th, 2018, and would be hosted at HotelsNG. The address is No 3, Birrel Avenue, off Herbert Macaulay Way, Sabo, Yaba, Lagos. It will be from 12:00 noon to 5:30 pm, its going to be a time of coding, debugging, fixing issues, learning and interacting with other developers!

Registration is now opened, so if you plan to attend, please register by following the link http://bit.ly/YN7Hackathon.

I would be providing more details, in the coming days, regarding various aspect of the Hackathon. Like the agenda, things to do to get prepared etc. So do keep an eye on this space, or better still follow me (@dadepo) and the YorubaName project(@YorubaName) on Twitter.

Achieving Multilingual User Interface

On November 14, 2017, we turned on the Multilingual feature for www.yorubaname.com, making it possible to view the content of the website not only in English but also in the Yorùbá language.

If you visit the Dictionary now, at the top right corner, you will find the language switch button.

This language switcher allows a user to toggle the language in which the content of the website is displayed. Right now, English and Yorùbá are supported. Clicking on YOR would switch the website’s’ language to Yorùbá.

Multilingual capabilities have always been a feature we planned for the YorùbáName dictionary. It was not an afterthought; we knew at the very beginning when we started working on the codebase for the YorùbáName dictionary, that we would like to support multiple languages.

Even though it was not going to be possible to have multilingual at launch, we made sure, the technical infrastructure to easily support multiple languages was in place. So that when the time came, it was easy to add another language, since the technical foundation that was needed has already been laid.

In this post, I will quickly give a broad overview of the technical aspect that enabled us to easily support a multilingual user interface. I will also mention the things we still need to do.

The Building Blocks

The YorùbáName website is built using Spring boot, which makes it easy to quickly hit the ground running when developing applications with the Spring Framework.

One of the advantages of having a framework like Spring at your disposal is the fact that there are already implementations for a lot of the supporting features, outside the business logic that is needed by a non-trivial web application.

So when it came to building the multi-lingual support into the YorùbáName website, it was a matter of assembling the necessary components and configuring them to taste, rather than having to develop the necessary moving parts that would be required for such a feature from scratch.

Spring framework provides 3 main components that were used to achieve our aim. But before I touch on them, let us imagine we need to build multi-lingual support into an application, but without the support of Spring. What would this entail? What are the things I might have to develop?

I can imagine I would have to build something that allows the user to select the language they are interested in. Then provide the mechanism that communicates the selected language to the rendering part of the application. Maybe using sessions, the URL, HTTP headers, cookies etc.

I would then need to make sure the rendering part of my application is built in such a way it can resolve to different texts depending on the selected language.

And all these would need to be built with user isolation in mind, so as to prevent one user’s language selection from interfering with the selection made by any of the other users visiting the web application.

These can be roughly grouped into recognizing language selected, rendering the content of the site in the selected language, and provide a per-user mechanism for switching language.

These stated capabilities are already available with Spring, and I now briefly explain what they are and how they were configured.

LocaleResolver

When a request is made, the LocaleResolver is the component responsible for determining which language is to be used when responding to the request. There are various places the LocaleResolver can look for in other to accomplish its task. These include the accept-language header in an HTTP request, the session or in the cookie.

The implementation we went with, uses the cookie.

So depending on a specific value set within the request cookie, the right language is used when constructing the response to be sent back to the user

The configuration looks like:

@Bean
public LocaleResolver localeResolver() {
CookieLocaleResolver cookieLocaleResolver = new CookieLocaleResolver();
cookieLocaleResolver.setDefaultLocale(Locale.ENGLISH);
cookieLocaleResolver.setCookieName(LANG);
return cookieLocaleResolver;
}
MessageSource

The messageSource is the component that helps in defining and grouping the translations for each language to be supported. As can be gleaned from the name, it provides the source for all of the text translation and makes it available depending on the language required.

So while the LocaleResolver component helps determine the language, the MessageSource helps in providing the translations for that language.

We are using property files as the mechanism for providing the language translations. You can see these files here

The MessageSource makes use of these property files to supply the required translations.

The configuration looks like:

@Bean
public ReloadableResourceBundleMessageSource messageSource() {
ReloadableResourceBundleMessageSource source = new ReloadableResourceBundleMessageSource();
source.setDefaultEncoding("UTF-8");
source.setBasename("classpath:/messages");
return source;
}
LocaleChangeInterceptor

Last but not the least is the LocalChangeInterceptor, which is the component that makes it possible to manually switch the current language as needed.

Since the LocalResolver mechanism uses cookies to convey the preferred language, the LocalChangeInterceptor updates the cookie value depending on the language selected.

This is the component that makes it possible to switch the language by clicking on the language selector.

The configuration looks like:

@Bean
public LocaleChangeInterceptor localeChangeInterceptor() {
LocaleChangeInterceptor lci = new LocaleChangeInterceptor();
lci.setParamName(LANG);
return lci;
}
// and then registered as an interceptor

...
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(localeChangeInterceptor());
}

For more on how things stack together on the code side of things, you can take a look at the Spring context configuration here

The Road Ahead

The work still needed to be done around internationalization and localization can be grouped into supporting more languages and providing a more exhaustive translation.

Support more languages. It is good to have the website in Yorùbá, but it would be better if we can add more Nigerian languages. This obviously needs the manpower needed to provide the translations. So if you are interested in helping make the YorùbáName dictionary available in another language, please do get in touch. :).

Please send an email to volunteer@yorubaname.com with “Translate” in the subject line.

Providing An Exhaustive Translation. As can be seen, not every single content on the website has been translated. Apart from this, the meaning of the names in the dictionary is still only in English.

We would like to improve on this, but it would require some extra work: from rethinking the data model used to store the names to providing the necessary tools that would support the lexicographers in managing the meaning of names in multiple languages. These are technical challenges, and tackling them won’t be trivial, but it sure promises to be fun. For example, instead of depending on static language translation files, what stops us from writing a custom implementation of the MessageSource interface to use the google translation API?

All of these are on our radar, and in due time, they would be worked on. So, if you are a developer and you are interested in helping out with the technical side of things, feel free to get in touch also 🙂

But in the meantime, as at now, do enjoy YorubaName.com in Yorùbá!

YorubaName is Seeking A Developer Intern

Hi People,

The Yorùbá Names Project is looking for an intern to support the development work at YorubaName.com.

If you’re interested, please send an email to volunteer@yorubaname.com with “Software Intern” in the subject line. In the body, let us know your skills, what draws you to our work, and how many hours per week you will have to volunteer.

We look forward to hearing from you.

Contribution Guidelines for YorubaName Codebase

This post provides bite-sized information that should help with the onboarding process for anyone who wants to contribute to the YorubaName dictionary project.

The skills needed to work on the YorubaName codebase are quite varied. This makes it possible for a diverse set of people with a wide range of technical skills to be able to join in the project: from developers/designers, UI/UX experts, to enthusiastic users and language lovers. This post provides the basic steps for all these types of people to get started.

Want to Contribute? Where to start?

Getting involved in the project is super easy.

Your first action point is to read the General Information README. It contains project-wide information that should be known to anyone working with the YorubaName codebase. Reading this would help provide clarity regarding the lay of the land and how different aspects of the codebase fit together.

The rest of the post explores the more specific guidelines.

Contributing as a developer to the Dashboard Application

The Dashboard application is a stand alone JavaScript application built with AngularJS. So if you are a JavaScript developer with some AngularJs chops, then this is where you may want to start:

  1. Clone and/or Fork the Dashboard application at https://github.com/Yorubaname/yorubaname-dashboard
  2. To understand how to run the application, go through the README at https://github.com/Yorubaname/yorubaname-dashboard/blob/master/README.md
  3. Ready to start coding? Then check the issue tracker at https://github.com/Yorubaname/yorubaname-dashboard/issues for a list of things you can start working on right away. Feel free to ask questions regarding the issues you are interested in working on in the issue tracker.
  4. If you have any questions regarding the project or the code base, feel free to drop by our gitter room at https://gitter.im/yorubaname-dictionary/dev, we would be eager answer your questions.

Contributing as a developer to the Core Website Application

The core of the dictionary and the website are written in Java using Spring boot. ElasticSearch is also used to power the search. So if you are comfortable with programming in Java and its ecosystem (or maybe you want to learn some more), this is where to start:

  1. Clone and/or Fork the Website application at https://github.com/Yorubaname/yorubaname-website
  2. To understand how to run the application, go through the README at https://github.com/Yorubaname/yorubaname-website/blob/master/README.md
  3. Ready to start coding? Then check the issue tracker at https://github.com/Yorubaname/yorubaname-website/issues for list of things you can start working on. Feel free to ask questions regarding the issues you are interested in working on in the issue tracker.
  4. If you have any questions regarding the project or the code base, feel free to drop by our gitter room at https://gitter.im/yorubaname-dictionary/dev, we would be eager answer your questions.

Contributing as a UX/UI designer

With the codebase of applications now on GitHub, someone with UX/UI experience can also easily see how the site is built and contribute in improving the user experience of the application. As a UX/UI expert the following steps should help in getting started:

  1. Read the general Information README here https://github.com/Yorubaname/general-information
  2. Explore the dictionary at http://www.yorubaname.com, and if you have any UI/UX suggestions then create an issue at https://github.com/Yorubaname/yorubaname-website/issues explaining the UX/UI improvements you have to suggest. Make sure to tag the issue with the UI/UX label.
  3. …OR: Peruse open issues with the UI/UX label in the Website Issue Tracker and Dashboard Issue Tracker and join in the conversation.

Contributing as a SEO expert

If you have expertise around SEO optimisation, then your ideas are also welcome. You are free to take a peek into the code base, and contribute your ideas on how to improve the SEO. You can either:

  1. Go to the GitHub issue tracker for the respective repository, and add issues explaining the changes you would suggest that would improve the SEO
    or
  2. If you know your way around code, clone and/or fork the codebase and create pull requests around SEO improvements.

Even if you are not a developer/designer/UI/UX expert, you can still contribute! The beauty of moving the development of the dictionary to GitHub is that it allows users to easily help shape the features that are built into the dictionary.

Contributing as a User

The codebase is not the only thing that is now on GitHub: our issue trackers, available in the form of the GitHub issues, can be found in the repositories. This is where we collect all bugs and feature requests that will be built into the dictionary. So if you encounter any bug or have any idea on how to improve the dictionary at www.yorubaname.com, then:

  1. Go to the GitHub issue tracker for the Website and the Dashboard, and add issues explaining the feature you want to see added to the dictionary. The developers will do their very best in building it.

So there you have it! Hopefully the information outlined should help make the process of getting started a lot easier.

Webinar for developers

If you’re still not quite sure, do not despair… To further aid people who would like to contribute to the project we are putting together a webinar on the 23rd of July targeted specifically towards developers where I will be:

  1. explaining how the different parts of the application fit together,
  2. how to setup the application on a local machine,
  3. how to get started writing code and contributing.

More details regarding the webinar can be found here. Register for free using this Google Form.

You should also connect with us on our social media channels: on Facebook here and on Twitter here.

Codebase now on GitHub!

One of the things we highlighted after the beta launch of Yorubaname.com was our desire to move the development of the YorubaName dictionary more into the public domain. In the post ‘What is in a Beta‘, I mentioned that moving forward, we would like to have both the project’s backlog and codebase accessible to the general public. This would empower whosoever is interested to be able to contribute to the building of what is fast growing to be the largest dictionary of Yorùbá names on the internet.

Today, I am happy to announce that we have done exactly that. The codebase that powers both the YorubaName.com website and YorubaName dashboard application can now be found on GitHub (https://github.com/Yorubaname) where you’ll have access to 3 repositories:

  1. The General-information: this contains basic general information needed to get started contributing to the project.
  2. The Yorubaname-dashboard: this contains the codebase for the dashboard application.
  3. The Yorubaname-website: this contains the codebase for the core dictionary and the website

With the codebase now on GitHub, we hope that the development effort behind the YorubaName dictionary, which started off in February 2015, and has been carried by four volunteer developers, will now grow to attract even more people willing to contribute expertise around software development to the project.

The development story: how it all started.

The development story of the YorubaName dictionary started off last year. It was kickstarted by an email I sent Kola Tubosun on a Friday, the 9th of January 2015.

The Yorùbá Name project had bobbed into my consciousness, though I can’t remember exactly how. If I were to guess, I would say it was via Twitter. I remember digging a little deeper into what the project was about and what it aimed to achieve and saying to myself: this would be something I would like to help bring to life.

So I got in touch with Kọ́lá, letting him know I would be interested in joining forces towards the building of the YorubaName dictionary. We exchanged a couple of emails, and by Monday, 12th of January 2015, while the fund raising drive was beginning to garner full speed on Indiegogo, we got working on our first task: setting up a prelaunch page for the project on www.yorubaname.com

Screenshot of the first landing page

Screenshot of the first landing page

Kọ́lá already knew Koko Godswill, a web/graphics designer who was also willing to volunteer and contribute to the project. He is largely responsible for the current look and feel of the dictionary. Not only did he help with the website, he has also worked a great deal towards meeting our various graphic design needs, most notably during the countdown to launch in February 2016 (See #YNLaunch).

But Koko was not to be the only person contributing. By February 2015, we got another contributor in the person of Esther Olatunde. She has helped tremendously in various ways, especially the setting up and the running of our blog at blog.yorubaname.com. We also had Luis from Brazil/UK who prepared a few mock-up wireframes on which we based earlier deliberations.

Then in April, Tola Odumosu got on board. He wrote about his motivation for volunteering here. Tola contributed substantial code to what later became the dashboard application which our lexicographers use to manage the name entries in the dictionary.

And thus from January 2015, Koko, Esther, Tola and myself were the developers who volunteered alongside Kola and the lexicography team to build the beta version of YorubaName.com released in February 2016. We were 4 technical people, located in different parts of the world: I was based in the Netherlands, Esther was contributing from Ghana, and Koko and Tola in Nigeria. We worked in our spare time towards the same goal and in a little over 12 months we were able to build a beta version of the dictionary, which at the time of writing has grown to contain over three thousand Yorùbá names.

The road ahead for the dev team

The current version of the YorubaName dictionary was made possible by the contribution of a handful of people. But now that we have opened up the codebase for more people to potentially get involved, the question is: what could be achieved next?

There is still a lot to be built. We have lots of interesting ideas and features yet to be implemented: from a ‘name finder’ feature – a tool to assist expecting parents in finding the perfect Yorùbá name for their children – to text-to-speech, to making the website more Wiki-like. We also plan on adding offline capabilities (especially for the dashboard application), improving the search experience, mobile optimisation etc.

So if you have a strong skill set in software development and you also happen to be passionate about culture and language, then the YorubaName project is something you would want to get involved with. Do not hesitate to get in touch on project@yorubaname.com. You can also, right away, fork the project on GitHub and let us start building this dictionary together!

What is in a Beta?

At about 10:30 on February 19, 2016, the Yorubaname.com dictionary became fully accessible to the general public.

This enabled users to not only search and view names in the dictionary, but to also submit names and suggest improvement for already published names.

The release on February 19, 2016 was the beta release of the Yorubaname.com dictionary, the result of about one year of active development.

What do we have in the Beta release?

We have a functional website for the dictionary, and a dashboard application to manage the names in the dictionary.

For a bit over twelve months, the Yorubaname development team has been neck deep busy, bringing to life the core functionalities that will be needed to run a name dictionary.

Little by little we saw the features slowly taking shape and about 2 months ago we agreed that the core foundation for the dictionary had been laid. We had made enough progress to have a functionally working dictionary although we might not have finished building all the features we wanted.

And this is what this Beta release is about: it signifies that the dictionary is now usable, with its core foundation laid, providing the groundwork for us to work on future features and improvements. I will quickly touch on some of the core part of the dictionary that is now functional with the beta release.

We now have a functional website
The Yorubaname dictionary is available at Yorubaname.com. It is the public facing part of the dictionary. In the beta release users can:

  1. Search the database for names
  2. View the details of names if already present in the database
  3. Submit a name, if a name is not present
  4. Submit feedback to names already published

Search the database for names
At the homepage at Yorubaname.com, a user can start their name search experience, by typing in the name in the search box. We provide an auto-complete feature to aid with this:

autocomplete

Auto-complete view

The auto-complete feature shows the first 5 entries that match what is being typed it is in no way a list of all the names in the dictionary. The user will know if a name exists by just pressing “enter” after entering the name, even if it does not show in the auto-complete bar.

Should a user have a specific name in mind, and know its tone marks, they would be happy to know that this beta version has an onscreen keyboard to help make their search as exact as possible:

Keyboard

Onscreen keyboard

Another alternative to aid with tone-marking is to grab the Yoruba keyboard layout we made for Windows and Mac users here.

View the details of names if already present in the database
When a name that has already been included in the dictionary is searched for, the user would be redirected to a result page with details like below;

entry

Name details view

The name entry page shows the following attributes of a name:

  • Meaning and extended meaning
  • Its morphology and gloss
  • Geo location, i.e. region a name is mostly found or where the name originates
  • Media links and famous people who bear the name
  • Variants to the name

Power User tip: you can try searching the database not just for a name but also using an English word…for example search for “love”…this is part of a feature we are working on, a sort of baby name finder, that allows parent to find the perfect name for their kids by specifying certain attributes.

Submit a name, if a name is not present
If per chance the name you are looking for is not in the database, do not despair: we have a functionality that allows the user to submit a name. Our lexicographers would see the suggested name and work on adding it to the database.

not-found

Name not found view

submit

Submit name view

Submit feedback to names already published
If a user thinks something is not accurate about a name, or some part of the attributes can be improved, then the user can contribute to making our dictionary more accurate by leaving a feedback for the name.

feedback-website

Submit feedback

names can also be listed alphabetically:

Alphabet

Alphabetic listing of names

This basically provides an overview of what we have worked on, with the beta release at Yorubaname.com. Next up is the back office: where I provide a brief overview of what comes with the beta release in terms of the dashboard application.

We now have a functional Dashboard

The website at Yorubaname.com is the public side of the Yorubaname dictionary, and is the major point of interaction for users. However, the past twelve months of work have not solely been about building this public facing side of the dictionary, we have also worked on the dashboard application: the part of Yorubaname.com used by lexicographers to manage the name entries in the dictionary.

home

Dashboard home page

With the beta release, we have been able to build the following core functionalities into the dashboard.

  1. Ability to add, modify, and delete names in the database
  2. Ability to publish names, which is the act of making names in the dictionary available to be seen on the dictionary website
  3. Ability to see all the feedback given by users to name entries
  4. Ability to see and react to names submitted by users
  5. An access control system that allows admins to control what lexicographers can do and not do within the dashboard

Here are some screenshots of how the dashboard looks

listing

Entry view

Add/Modify view

suggestednames

Suggested names view

Although a lot of work has gone into creating a very functional dashboard as of today, we have plans to make it much better in the coming months.

After a Beta, what’s next?

A lot.

The beta release was definitely a milestone, but it does not in any way mark the completion of our efforts with the Yorùbá Names Dictionary. There is still a lot to do and we are ever pumped up to continue what we have started.

Our backlog is bursting with interesting features, yet to be implemented: like the baby name finder tool I hinted at.

Apart from the new features, activities are on-going to refine the ones already implemented. Other things in the pipeline include a “Text to Speech” feature, which will give users the ability to hear the pronunciation of the listed names.

We will also be making the dictionary itself more wiki like, so as to enable more collaborative editing of name entries by users. Also, we plan to work on internalization which will allow the dictionary website to be available in other language apart from English. The list of the features still left to be built is almost endless and the interesting work is just beginning!

Another thing we would also like to do, moving forward, is to have the development of the application more in the open. This would involve us making our backlog public and moving the code base for both the dashboard and website to a public repository (most likely Github). This would be the first step towards having an open source tool out of the efforts of Yorùbá Names Dictionary, with the next step being extracting the core of yorubaname.com into a separate codebase.

Why open source? We believe and hope by making the software part of creating a dictionary (either for names or otherwise) available, we would be able to inspire others to create similar dictionaries, thereby contributing to capturing and preserving the wealth of knowledge that may be in languages that are not readily represented on the world wide web.

We wish to congratulate all who have been part of this journey thus far: the developers and volunteers who have helped in various capacities and the supporters who backed up the Indigogo fund.

Truth is…a ṣẹ̀ṣẹ̀ n mú ẹyẹ bọ̀ l’ápò ni.

What Google Tells Us About Interest In Yoruba And Yoruba Names

Google Trends is a tool that can be used to find out how often a particular term is searched for on Google, across various regions of the world, and in various languages. So, sometime last week, I decided to take it for a spin: I wanted to to have a feel of the search activities related to Yoruba language and specifically to “Yoruba names”.

Knowing that there are over 30 million Yoruba speakers in Nigeria, and that it is also spoken in parts of Togo, Republic of Benin, Brazil and Ghana, I was curious to see how these numbers of speakers reflect in search activities on Google. In this post, I will share with you some of the insights that were gleaned…yeah, thanks to Google.

Trends for search terms related to ‘Yoruba’

The strategy was not to only explore search activity for the specific search query “Yoruba Names” but also to take a look at the activity around related search-terms. To answer the question “What are the other common terms people search for, that relate to Yoruba names?”, I also took some general search terms into consideration, like the various exonyms and forms used to describe Yoruba language.

Google Trends also displays the search activities for terms that relate to the search term being explored, which makes it easier to have a more accurate feel of the other interest of the personae behind the searches.

Starting with the general term ‘Yoruba’, what are the search activities over time? Google Trends helps us answer this question, as seen in the graph below:

google-trends_yoruba

A search term makes it into this graph if the number of times it is searched for is 10% (or more) of the total number of search terms in a particular region. Looking at the graph above, we can see that the search frequency was mostly flat or slightly decreasing from 2005 to about 2011 from whence there has been a steady increase.

We may ask ourselves what could have been responsible for this change in trends? Increase in population? Increase in access to the Internet?

Regional data

Google Trends not only allows you to see the search volume trends over time, it can also display the breakdown of the search activities by country so as to determine which regions of the world contributed the most to the search term.

google-trends_regrional_interest

Not surprisingly, Nigeria tops the list, followed by Benin, Cuba, St. Helena, Côte d’Ivoire, Venezuela, Ghana, Panama, Bolivia and South Africa. This is an interesting piece of information to know, especially when building a service around the Yoruba language.

Related searches

Next, I explored the related searches that might help uncover orthogonal interests to the main search term. The data for this is presented below:

Related search terms to “Yoruba”

google-trends_related_searches

As shown in the table above, Movies, Language and Religion are the most searched for terms related to “Yoruba”.

The next step was an analysis of the search activity for the particular phrase “Yoruba Names”. For this phrase, I included the singular form “Yoruba Name” also. Here are the results:

google-trends_yoruba_names

The graph also shows there is an upward trend in search activities for “Yoruba Name/Names”.

Looking at how this is distributed over regions, we see;

google-trends_yoruba_names_regional_interest

Again, as expected, Nigeria is at the top, followed by the UK and the United States, countries which happen to be home to a lot of Nigerian expats/diasporas. Does having a high search activity for “Yoruba Name” from the these places mean that a lot of the Nigerian expats are still very much interested in giving their kids Yoruba names? It is possible, and even likely. It is also possible that some of the searches are as a result of academic or personal research endeavours.

Going another step ahead to examine the search activities of terms related to “Yoruba Name/Names” we see:

google-trends_yoruba_names_related_searches

Most of the search activities around Yoruba names seem to be for finding names for newborn babies. It is also worth noting that searches looking for female names seem to be more frequent than searches for male names. It would be interesting to know if there is any conclusion to be drawn from this.

Exonyms or alternative names for ‘Yoruba’

I went on to look up the search activities around the different exonyms, the Yoruba language has. Being a language that is not only spoken in Nigeria but also in other countries in West Africa and the Caribbean, and having thus come in contact with other language groups, there are quite a number of forms by which the language is referred to.

The different forms I searched for acitivity on was: Yáríbà, Yórúbáwá, Nàgó Ànàgó, Lùkúmì, and Akú. And out of all these terms, the only one that has enough search traffic to make it into Google trends is Lukumi (apart from Nago and Anago which apparently means something else in Poland and Japan respectively)

The data for Lukumi showed that most of its search activity is from the United states and that searches are mostly related to religion, which can be explained by the fact that Lukumi is not only a dialect of Yoruba language spoken by the Afro-Cuban ethnic group of Yoruba ancestry, it is also the official language of the Santería religion.

Comparison to other languages

Finally, I decided to find out how the search activities for Yoruba compares to other languages of the world. The result of this follows:

Yoruba vs English
google-trends_yoruba_english

Yoruba vs French
google-trends_yoruba_vs_french

Yoruba vs Chinese
google-trends_yoruba-vs-chinese

It is clear that English, French and Chinese dwarf the Yoruba language in terms of search activity on Google, which was to expected, taking into consideration the history and the population size behind these other languages.

But what about languages with a number of speakers comparable to that of Yoruba?

Yoruba (spoken by approximately 30 million people) vs Dutch (spoken mostly in the Netherlands, a country of 16.8 million (2013))
google_trends_yoruba-vs-dutch

Yoruba vs Norwegian (spoken in Norway a population of mostly 5.084 million (2013) people)
google-trends_yoruba-vs-norwegian

Yoruba vs Xhosa (spoken by approximately 7.6 million people in South Africa)
google-trends_yoruba-vs-xhosa

I guess we can then conclude that in order to have a greater search activity around a language, the size of the speaking population is not the determining factor, but what matters is rather how much that language is being used on the Internet.

Conclusions

Search activities around “Yoruba” either as a language or an ethnic group is showing a growing trend, although it can be argued, it should be doing better based on the number of speakers.

It can also be seen that most people searching for “Yoruba names” might be doing so to find names for their kids: perhaps the Yoruba name project should take this into the product development cycle and work on features that target parents and help them find names for their children?

We can also have a sense of the world regions where interest in Yoruba is highest.

Google Trends will continue to be part of the tools we use to gauge the trends around the Yoruba language and how it affects the Yoruba Name project. Feel free to play around with the tools yourself at www.google.com/trends, and if you stumble on any data you find interesting, do drop us a comment, we would be interested to know about it.