My name is Shazma Siddiqui. I am a 2nd year student of masters of Computer Applications in NIT Raipur. I am a GSoC’22 student contributor and I am working on “Schema.org” project.
About the project
Data is the new big thing for search engines in today’s time but it can be difficult for web crawlers to effectively interpret the context of the data. To deliver better search results, web crawlers need to have a context of the data and to understand the data better, structured data is used. Structured data is the data which conforms to a data model, has a well defined structure, follows a consistent order and can be easily accessed and used by a person or a computer program. It is used by search engines to generate rich snippets, which are small pieces of information that will then appear in search results making the search results more relevant.
Currently Joomla! has rich snippets implemented but it uses inline microdata to implement rich snippets which is difficult to modify from the backend as it is hard coded into the html. With this project I’ll be working on making it easier for the user to dynamically integrate structured data from the backend.
Project Plan
For the dynamic integration of structured data I’ll be using schema.org which provides a universally recognized format for structuring data on the Web. There are different ways to implement schema markup but for this project I’ll be using JSON-LD as it can be inserted into the web page without disrupting other contents or HTML and it is easy to store in the database. This project will help users to add, update or delete schema markup on the articles from the backend. It will give users an option to select the type of schema from the available schema types and then insert values for the attributes of schema properties in the form.
Progress
Draft of the PR: https://github.com/joomla-projects/gsoc22_schema.org/pull/2
Till now I have created a basic com_schemaorg component. Different types of schemas can be added in future using plugins for com_schemaorg plugin group. I have created a system plugin which will add Schema form in Article Edit View with one form field ‘Schema type’. By default Schema type is selected as None. This system plugin will import other plg_schemaorg_xxx plugins and will store form data in JSON format to create schema markup. Then this schema markup will be injected into the head element of the article in the frontend.
Schema form in Article Edit View
Schema form added into the Article Edit View using plg_system_schema plugin.
Schema type selected as ‘None’.
Subform displayed after selection of schema type
To add schema types I have created a com_schemaorg plugin, plg_schemaorg_recipe. This plugin will add an option in the existing schema type list.
All other attributes of Recipe schema type will be displayed after ‘Recipe’ is the selected schema type.
Mentors
- Rishabh Ranjan Jha
- Anurag Kumar
- Benjamin Trenkle
- Tushar Malik
Project Goals
Similar to the plg_schemaorg_recipe plugin, I will be creating multiple plugins to handle different types of schemas. Plugins will be imported using system plugin. Fetch data from existing form fields and create a schema markup in JSON LD format, which will be finally injected into the head tag of the article.