I am learning about the semantic web. So far what I know is that the whole idea of the semantic web is to add metadata to the data in your website in order to make the data in your website easier to read by a machine.

But I don't know if an average web developer can add this metadata to their website, or if this process of adding metadata to a website needs a specialized person to do it, I have found the following quote from this Wikipeda article:

While learning the basics of HTML is relatively straightforward, learning a knowledge representation language or tool requires the author to learn about the representation's methods of abstraction and their effect on reasoning. For example, understanding the class-instance relationship, or the superclass-subclass relationship, is more than understanding that one concept is a “type of” another concept. […] These abstractions are taught to computer scientists generally and knowledge engineers specifically but do not match the similar natural language meaning of being a "type of" something. Effective use of such a formal representation requires the author to become a skilled knowledge engineer in addition to any other skills required by the domain. […] Once one has learned a formal representation language, it is still often much more effort to express ideas in that representation than in a less formal representation […]. Indeed, this is a form of programming based on the declaration of semantic data and requires an understanding of how reasoning algorithms will interpret the authored structures.

I don't understand what is meant by the above quote, does it mean that you have to be a "skilled knowledge engineer" in order to know how to "add" semantic web to a website?

  • Adding semantic data simply means additional attributes and elements which can be parsed by search engines and the like. You certainly don't need to be a "knowledge engineer." A good example is product reviews. You can embed review data in a web page alongside what the user sees. developers.google.com/search/docs/data-types/…
    – Dan Wilson
    Sep 8, 2020 at 18:39

2 Answers 2


Short answer: Semantic HTML is one element of on-site SEO. It's about using HTML4/5 tags that communicate context and not just data to Google.

Have a look at this article, it's the best beginner friendly intro I've found online about semantic web: https://www.internetingishard.com/html-and-css/semantic-html/

Long answer:

HTML4/5 introduced tags that work like div's but have special names so search engines (and other devices) can interpret them to have additional meaning.

  • <h1> ... <h6> tags indicate document structure - I've rarely met anyone that gets this. You can have multiple <h1> tags! Laying them out thoughtfully requires no technical expertise.
  • Each of these tags have somewhat fuzzy and ambiguous meanings (compared to usual computer science concepts).
  • Their meanings can change depending on your usage - this is a pro and a con - and is difficult to communicate it implicitly. Just hope search engines understand.
  • They indicate context and may be interpreted by search engines and used by developers as they wish - despite W3C recommendations.
  • They don't affect functionality (there might be a rare exception, correct me if I'm wrong).

See below image (from the article) for the old way and the semantic web way to code.

enter image description here

You might ask why this isn't better known or more widely implemented?

  • Honestly, this is a subtle part of programming that requires a good understanding of SEO and shows no tangible results up-front and immediately.
  • It's completely invisible and doesn't change visual results. People don't notice either way.
  • Most web developers don't need to know SEO to be employed and promoted.
  • The results are extremely hard to demonstrate and therefore clients rarely ask for it or check if you're doing it well (or doing it at all).
  • Google has gotten quite intelligent that plenty of websites are ranked highly even without good semantic coding.

This is about using HTML tags intelligently on the website to communicate page structure to Google. This is primarily about on-site SEO. It involves coding your HTML thoughtfully, but isn't technically challenging.

A quality SEO person should be able to evaluate code and provide a developer with suggestions - assuming the developer didn't do this, doesn't know how to or wasn't paid to.

Clients, managers, stakeholders in practice don't care. I've learnt the hard way to avoid even bringing it up altogether; often clients think you're trying to sell them an unnecessary extra to make more money.


Do you need to be a knowledge engineer?

The quote means that if you are used to design web-sites and produce web-content, you may be an expert in structuring and presenting information, but might not necessarily be aware of how to add information about the information.

This does not mean that you have to be a knowledge engineer to succeed. But it means that you have to learn additional languages, to document the meaning (semantic) of the information you put on the web.

What is the semantic web?

The semantic is about the meaning of the information, and their relations. Let's use some analogies to get a rough idea:

  • Imagine you have some texts about companies and people in English, and a foreign language that you cannot understand. Reading words in the foreign language, not knowing if it's a noun, a verb or a name will not make the understanding easy. That's the way your computer sees the web. Now, imagine that you put some English tags in the text, to identify company names, individual names, dates, amounts, places and products. This will not help you to fully understand the text. But you'll start to see the structure, attach some meanings to links with other companies and links with persons. That's the start of the semantic web viewed by your computer.

  • The relation between the web and the semantic web, is somewhat similar to the relation between object oriented programming one one side, and modelling in UML on the other side. You can be a perfect programmer, write greate code and have a perfect understanding of the high-level design that you have implemented. But if you do not know the UML language, you’ll have to learn it if you want to express higher level knowledge about your code and express less more meaningful relation between the elements of your implementation.

How to express the semantic?

Expressing semantic for your web-content, means to structure the content, in such a way that it can be related to a known structure. This will be primarily done with markup tagging using for example the Ressource Desription Framework (RDF) or more probably its RDF/XML dialect.

What is important here is that semantic we is not just about structuring the content on web pages, but much more about creating links that convey some meaning. So it's not just semantic, but a semantic web, allowing to navigate from one concept to another and understanging not necessarily the full content, but at least what it is about.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.