{"id":52113,"date":"2018-09-19T08:00:39","date_gmt":"2018-09-19T06:00:39","guid":{"rendered":"https:\/\/www.humanlevel.com\/sin-categorizar\/como-interpretar-schema-org-para-crear-datos-estructurados.html"},"modified":"2023-10-11T10:20:07","modified_gmt":"2023-10-11T08:20:07","slug":"how-to-interpret-schema-org-to-create-structured-data","status":"publish","type":"post","link":"https:\/\/www.humanlevel.com\/en\/blog\/seo\/how-to-interpret-schema-org-to-create-structured-data","title":{"rendered":"How to interpret schema.org to create structured data"},"content":{"rendered":"<div id=\"toc_container\" class=\"no_bullets\"><p class=\"toc_title\">Index<\/p><ul class=\"toc_list\"><li><a href=\"#Basic_concepts_of_the_schemaorg_data_model\">Basic concepts of the schema.org data model<\/a><ul><li><a href=\"#Class\">Class<\/a><\/li><li><a href=\"#Property_or_attribute\">Property or attribute<\/a><\/li><li><a href=\"#Object_or_instance_of_a_class\">Object or instance of a class<\/a><\/li><\/ul><\/li><li><a href=\"#Relationships_by_object_composition\">Relationships by object composition<\/a><\/li><li><a href=\"#Class_inheritance_relationships\">Class inheritance relationships<\/a><\/li><li><a href=\"#Polymorphism\">Polymorphism<\/a><\/li><li><a href=\"#Types_listed\">Types listed<\/a><\/li><li><a href=\"#Moving_from_conceptual_model_to_code\">Moving from conceptual model to code<\/a><\/li><li><a href=\"#Conclusions\">Conclusions<\/a><\/li><li><a href=\"#Additional_references\">Additional references<\/a><\/li><\/ul><\/div>\n<p><strong>Understanding <a href=\"https:\/\/schema.org\" target=\"_blank\" rel=\"noopener\">schema.org<\/a> documentation is not a simple task.<\/strong>to follow it, since we must have clear abstractions that are derived from the <a href=\"https:\/\/es.wikipedia.org\/wiki\/Resource_Description_Framework\" target=\"_blank\" rel=\"noopener\"><strong>RDF data model<\/strong><\/a> and which are, to a large extent, comparable to the <strong>object-oriented data model<\/strong>This subject is studied transversally with software design, object-oriented programming and object databases. But if we have the concepts clear, we will be able to create <strong>the data structure that best fits the information on our web site and the schema.org data model<\/strong>without being limited to what appears in the examples and without losing Google&#8217;s ability to understand the semantic information they provide.<\/p>\n<p>Structured data allows us to tell the Google robot <strong>the meaning of the information on our website<\/strong>, so that it can display <a href=\"https:\/\/www.humanlevel.com\/en\/blog\/seo\/rich-snippets-to-drive-more-traffic\">enriched results<\/a>, incorporate information into the knowledge graph, better interpret the information to display more relevant results and even to directly answer questions in <a title=\"View Fernando Maci\u00e1's presentation: Fighting for zero position in a mobile-only world\" href=\"https:\/\/www.humanlevel.com\/en\/blog\/seo\/fighting-for-position-0-in-a-mobile-only-world-fernando-macia-presentation-smxl-milan-2017\" target=\"_blank\" rel=\"noopener noreferrer\">position zero<\/a>. All this should <strong>bring<\/strong> us <strong>more good quality traffic<\/strong>.<\/p>\n<p>Structured data also facilitates the task of <em>scrapers<\/em> who want to extract the content of our website to incorporate it into their databases. If we have information that may be valuable to others, we should <strong>avoid this by blocking &#8220;bad&#8221; bots from the server configuration<\/strong>.<\/p>\n<p>Previously, the <a title=\"Go to entry what is structured data and schema.org?\" href=\"https:\/\/www.humanlevel.com\/en\/blog\/seo\/what-is-structured-data-and-schema-org\">basic concepts about structured data and schema.org<\/a> were explained in this blog, I recommend you to read it if you don&#8217;t know what I&#8217;m talking about here. If all this is already clear to you, let&#8217;s go deeper into the subject.<\/p>\n<h2><span id=\"Basic_concepts_of_the_schemaorg_data_model\">Basic concepts of the schema.org data model<\/span><\/h2>\n<p>Next, we are going to see the concepts of <strong>class, property and instance of a class<\/strong> that are basic to understand how information is modeled with structured data, since schema.org is a vocabulary restricted to a series of elements, where these concepts are used to define these elements.<\/p>\n<h3><span id=\"Class\">Class<\/span><\/h3>\n<p>Structured data is used to define things, and these can be any kind or type of thing, such as: people, places, products, actions such as creating or searching, creative works such as a blog or a book, events such as concerts or games, and intangible things such as offers or services. These kinds of things, here we are going to call them simply <strong>classes<\/strong>, although you can also find them under the name of <strong>types<\/strong> or <strong>entities<\/strong>.<\/p>\n<h3><span id=\"Property_or_attribute\">Property or attribute<\/span><\/h3>\n<p>The way to define each of the types of information or classes is by using <strong>properties<\/strong> to which we can assign the value we want. For example, if we have a kind of thing &#8220;product&#8221;, inside it could have a property &#8220;name&#8221;, which could be assigned the value &#8220;cup&#8221;, and another property &#8220;color&#8221;, which could be assigned the value &#8220;red&#8221;.<\/p>\n<p><strong>Each class can have different properties<\/strong> and schema.org will tell us what properties each of the classes of things we can define have. That is to say, for the product class, it will tell us that it has the property &#8220;name&#8221;, the property &#8220;color&#8221; and many others that are characteristic of the products. For another type of class such as &#8220;event&#8221;, we can have other properties such as &#8220;start date&#8221; and &#8220;end date&#8221;, which would not make sense in a product.<\/p>\n<h3><span id=\"Object_or_instance_of_a_class\">Object or instance of a class<\/span><\/h3>\n<p>When we take a class and <strong>assign values<\/strong> to <strong>each property<\/strong> for which we have information, it is said that what we are doing is creating an instance of the class. For example, if we give data to a concrete product, such as the red cup in the previous example, we would say that this cup is an instance or object of the product class.<\/p>\n<p>So <strong>the classes are like templates that tell us what data to fill in and, when we fill them in, we have the concrete objects or instances we want to obtain<\/strong>.<\/p>\n<h2><span id=\"Relationships_by_object_composition\">Relationships by object composition<\/span><\/h2>\n<p>At this point let me introduce nomenclature that is more typical of object-oriented programming and data modeling than of the RDF model, but which helps to simplify the explanation.<\/p>\n<p>We have already seen that we can assign values to a property, but these values can be of different types that here we are going to classify in: <strong>simple types<\/strong> or <strong>compound types<\/strong>. Simple types consist of assigning a value of a specific type. For your understanding, the easiest way is to take a look at the following list, where I list <strong>all the simple data types that schema.org allows<\/strong>:<\/p>\n<ul>\n<li><strong>Boolean<\/strong> value: the property can be true or false. For example, the <em>CreativeWork<\/em> class has the <em>isAccessibleForFree<\/em> property, to which we can assign the value <em>true<\/em> or <em>false<\/em>, depending on whether it is free or not.<\/li>\n<li><strong>Date<\/strong> type value: a date is assigned to the property in ISO 8601 format. For example, the <em>Product<\/em> class, has the property <em>releaseDate<\/em> (release date) to which we can assign the value 2018-01-30 which is equivalent to 30\/01\/2018.<\/li>\n<li><strong>Date and time<\/strong> type value: a date and time is assigned to the property in ISO 8601 format.<\/li>\n<li>Value of type <strong>number<\/strong>: it can be an integer or a number with decimals.<\/li>\n<li><strong>Text<\/strong> type value: this is an arbitrary text, such as the text &#8220;cup&#8221; that I have used in a previous example for the property &#8220;name&#8221;. This text can be of the URL type.<\/li>\n<li><strong>Time<\/strong> type value <strong>with the format<\/strong>: hh:mm:ss[Z|(+|-)hh:mm].<\/li>\n<\/ul>\n<p>The properties that allow the use of values with <strong>compound types, are those to which we can assign one or several objects<\/strong>, of one or different classes, so that <strong>within that property we will be able to define several other properties<\/strong>. Let&#8217;s look at an example: the class <a title=\"Go to the product class definition on schema.org\" href=\"https:\/\/schema.org\/Product\" target=\"_blank\" rel=\"noopener noreferrer\">product<\/a>has the property <em>review<\/em> (review) to which we can assign a value, which will be an instance of class <a title=\"Go to the definition of the Review class in schema.org\" href=\"https:\/\/schema.org\/Review\" target=\"_blank\" rel=\"noopener noreferrer\"><em>Review<\/em><\/a> where, in turn, we can fill in the &#8220;author&#8221; property as an instance of the class <a title=\"Go to the Person class definition on schema.org\" href=\"https:\/\/schema.org\/Person\" target=\"_blank\" rel=\"noopener noreferrer\"><em>Person<\/em><\/a> where we could finally fill in the property <em>name<\/em> of the person with a simple text data type. So we can say that we have a product object which is composed of a review object which in turn is composed of an author. This is what is known in the object-oriented model as a <strong>composition relationship<\/strong>.<\/p>\n<figure id=\"attachment_32665\" aria-describedby=\"caption-attachment-32665\" style=\"width: 992px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-32665\" src=\"https:\/\/www.humanlevel.com\/wp-content\/uploads\/propiedades-producto-schema-org.png\" alt=\"properties of the Product class in schema.org\" width=\"992\" height=\"299\" srcset=\"https:\/\/www.humanlevel.com\/wp-content\/uploads\/propiedades-producto-schema-org.png 992w, https:\/\/www.humanlevel.com\/wp-content\/uploads\/propiedades-producto-schema-org-720x217.png 720w, https:\/\/www.humanlevel.com\/wp-content\/uploads\/propiedades-producto-schema-org-768x231.png 768w\" sizes=\"auto, (max-width: 992px) 100vw, 992px\" \/><figcaption id=\"caption-attachment-32665\" class=\"wp-caption-text\">In the screenshot we see several properties of the product class that have simple data types and the <em>review<\/em> property that has a compound data type.<\/figcaption><\/figure>\n<p>By creating an instance of a product, we could navigate through all possible composition relationships and get to specify the information needed to populate almost all classes that are defined in schema.org. But this would not be correct since the idea of structured data is not to add as much information as possible, <strong>but to define for Google only that information that we are showing to the user<\/strong>. It is therefore not advisable to add a JSON-LD with all the information we have just to define a product.<\/p>\n<figure id=\"attachment_32668\" aria-describedby=\"caption-attachment-32668\" style=\"width: 1007px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-32668\" src=\"https:\/\/www.humanlevel.com\/wp-content\/uploads\/propiedades-con-varias-entidades-schema-org.png\" alt=\"attributes with several entities in schema.org\" width=\"1007\" height=\"464\" srcset=\"https:\/\/www.humanlevel.com\/wp-content\/uploads\/propiedades-con-varias-entidades-schema-org.png 1007w, https:\/\/www.humanlevel.com\/wp-content\/uploads\/propiedades-con-varias-entidades-schema-org-720x332.png 720w, https:\/\/www.humanlevel.com\/wp-content\/uploads\/propiedades-con-varias-entidades-schema-org-768x354.png 768w\" sizes=\"auto, (max-width: 1007px) 100vw, 1007px\" \/><figcaption id=\"caption-attachment-32668\" class=\"wp-caption-text\">There are properties to which we can assign an instance of a class to choose from several different ones. In the screenshot we see the <em>recipient<\/em> property to which we can assign an object that can be of type <em>AuthorizeAction<\/em> or <em>CommunicateAction<\/em> or &#8230;.<\/figcaption><\/figure>\n<p>Sometimes we can find properties <strong>marked in blue<\/strong>, instead of red. These are <strong>properties that have not yet been approved<\/strong>, so they are more likely to give us problems when it comes to Google interpreting them correctly.<\/p>\n<p><strong>Schema.org<\/strong> tells us the type or types of data that each property can have, although <strong>it does not specify some things that Google takes into account on its part<\/strong> and that are the following:<\/p>\n<ul>\n<li>It is not clear <strong>when we can repeat the same property several times<\/strong>. When this occurs, each repetition can have values with instances of different classes.<\/li>\n<li>It does not specify <strong>when a property is mandatory or recommended for Google<\/strong>.<\/li>\n<li>It does not say <strong>when a compound data type can be replaced by a simple text data type<\/strong> and Google will have no problem reading it. Although this can almost always be done, despite the fact that the definition does not specify it.<\/li>\n<\/ul>\n<p>It is normal that <strong>schema.org<\/strong> does not specify these aspects, since it <strong>is a vocabulary defined by several search engines<\/strong> and, afterwards, <strong>each one can add its own restrictions on this model<\/strong>.<br \/>\nIn <a title=\"Go to Google documentation for structured data\" href=\"https:\/\/developers.google.com\/search\/docs\/appearance\/structured-data\/article?hl=es\" target=\"_blank\" rel=\"noopener noreferrer\">Google&#8217;s documentation on structured data<\/a> we can find some of the information we would be missing in schema.org to make a correct implementation for Google.<\/p>\n<p>Therefore, to know if the structured data we are writing based on schema.org, meet Google&#8217;s requirements, we have no choice but to check it after writing it, using <a title=\"Google tool to check structured data\" href=\"https:\/\/developers.google.com\/search\/docs\/appearance\/structured-data?hl=es\" target=\"_blank\" rel=\"noopener noreferrer\">Google&#8217;s tool to check structured data<\/a>. And if we are interested in creating structured data to generate rich snippets, we can also use the <a title=\"Go to Google tool for rich results\" href=\"https:\/\/search.google.com\/test\/rich-results\">rich results tool<\/a>.<\/p>\n\n<h2><span id=\"Class_inheritance_relationships\">Class inheritance relationships<\/span><\/h2>\n<p>There are <strong>properties that are the same in several classes<\/strong> and to avoid having to define the same property several times in each class, schema.org makes use of a concept called <strong>class inheritance<\/strong>. This consists in the fact that one class can inherit from another, establishing a parent and child class relationship, so that <strong>the child class inherits all the properties of the parent class<\/strong>. Thus, a parent class can have several daughters that share the same properties.<br \/>\nIn schema.org the parent class par excellence is the class <em><a title=\"Go to definition of the Thing class in schema.org\" href=\"https:\/\/schema.org\/Thing\" target=\"_blank\" rel=\"noopener noreferrer\">Thing<\/a><\/em>, which defines common properties such as: name, description, url and image. As all schema.org classes inherit from <em>Thing, <\/em>their properties can be defined on any object we instantiate. Example:<\/p>\n<figure id=\"attachment_32675\" aria-describedby=\"caption-attachment-32675\" style=\"width: 987px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-32675\" src=\"https:\/\/www.humanlevel.com\/wp-content\/uploads\/herencia-de-clases-schema.org_.png\" alt=\"inheritance of the properties of an entity\" width=\"987\" height=\"830\" srcset=\"https:\/\/www.humanlevel.com\/wp-content\/uploads\/herencia-de-clases-schema.org_.png 987w, https:\/\/www.humanlevel.com\/wp-content\/uploads\/herencia-de-clases-schema.org_-720x605.png 720w, https:\/\/www.humanlevel.com\/wp-content\/uploads\/herencia-de-clases-schema.org_-768x646.png 768w\" sizes=\"auto, (max-width: 987px) 100vw, 987px\" \/><figcaption id=\"caption-attachment-32675\" class=\"wp-caption-text\">When we enter the definition of a class in schema.org, we can see the class it inherits from at the beginning (in the example <em>Thing<\/em> &gt; <em>Person<\/em>). Then it shows us the properties that are proper of the current class<em>(properties from Person<\/em>) and then the properties that are inherited<em>(properties from Thing<\/em>). However, it is also possible that the class does not define any property of its own. In this case, it would be used only to specify what type is being defined.<\/figcaption><\/figure>\n<p>Likewise, we can find classes that inherit from another one and that in turn inherit from another one and so on, so that they inherit properties from several classes, as in the example:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-32677\" src=\"https:\/\/www.humanlevel.com\/wp-content\/uploads\/herencia-schema-org.png\" alt=\"multi-level inheritance in schema.org\" width=\"996\" height=\"559\" srcset=\"https:\/\/www.humanlevel.com\/wp-content\/uploads\/herencia-schema-org.png 996w, https:\/\/www.humanlevel.com\/wp-content\/uploads\/herencia-schema-org-720x404.png 720w, https:\/\/www.humanlevel.com\/wp-content\/uploads\/herencia-schema-org-768x431.png 768w\" sizes=\"auto, (max-width: 996px) 100vw, 996px\" \/><\/p>\n<p>If we go to the end of the definition of a class, we can also see the child classes of the current class. In the following screenshot we see the child classes of the <em>Product<\/em> class:<br \/>\n<img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-32678\" src=\"https:\/\/www.humanlevel.com\/wp-content\/uploads\/hijos-producto.png\" alt=\"product child types in schema.org\" width=\"234\" height=\"170\" \/><\/p>\n<p>In <a title=\"Go to complete class hierarchy on schema.org\" href=\"https:\/\/schema.org\/docs\/full.html\" target=\"_blank\" rel=\"noopener noreferrer\">this link we have the complete class hierarchy<\/a>. This resource is useful in helping us decide what kind of object class is the most appropriate for defining the information that appears on the web.<\/p>\n<h2><span id=\"Polymorphism\">Polymorphism<\/span><\/h2>\n<p>Structured data allows for <strong>dynamic data types or polymorphic objects<\/strong> (from the Greek: that can take many forms). That objects are polymorphic means that <strong>a composite data type can take the form of any of its child classes or even a parent class<\/strong>. For example, the <a title=\"Go to the definition of the SocialMediaPosting class in schema.org\" href=\"https:\/\/schema.org\/SocialMediaPosting\" target=\"_blank\" rel=\"noopener noreferrer\">SocialMediaPosting<\/a> class has the <em>sharedContent<\/em> property which is of type <em>CreativeWork<\/em>. This, on the other hand, inherits from <em>Thing<\/em> and has several child classes, such as <em>Book<\/em>, so we could assign an object of type <em>Thing<\/em> or <em>Book<\/em> to the <em>sharedContent<\/em> property (although the specification says that it is a <em>CreativeWork<\/em>) and it would not be incorrect.<\/p>\n<p>This feature, which is rarely taken into account when modeling our data, offers a wide range of possibilities, <strong>allowing us to define our data in greater detail<\/strong> (using child classes) <strong>or, in less detail<\/strong> (using parent classes), if we are not clear about what they really are.<\/p>\n<h2><span id=\"Types_listed\">Types listed<\/span><\/h2>\n<p>The enumerated types are those that <strong>admit values from a list<\/strong>. For example, the <em>bookFormat<\/em> property of <a title=\"Go to Book class at schema.org\" href=\"https:\/\/schema.org\/Book\" target=\"_blank\" rel=\"noopener noreferrer\"><em>Book<\/em><\/a> class, admits values of the <em><a title=\"Go to the definition of the BookFormatType enumeration\" href=\"https:\/\/schema.org\/BookFormatType\" target=\"_blank\" rel=\"noopener noreferrer\">BookFormatType<\/a><\/em> class. If we go to its definition we see that it is not really a class, but an enumeration, because it inherits from <em>Enumeration<\/em> and also because enumerations usually have the word <em>Type<\/em> at the end of the name. If we go to the description, we see that we can assign the following types of enumerated values:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-32682\" src=\"https:\/\/www.humanlevel.com\/wp-content\/uploads\/enumerado-schema-org.png\" alt=\"values supported by an enumerated in schema.org\" width=\"207\" height=\"149\" \/><\/p>\n<p>To assign an enumerated value to a property, we must write the URL that represents the value we want. For example: &#8220;bookFormat=http:\/\/schema.org\/Paperback&#8221;.<\/p>\n<p>There are enumerations that do not have the Type tag. These take values defined in another vocabulary different from schema.org called <em><strong>Good Relations<\/strong><br \/>\n<\/em>for example the type <em><a title=\"Go to Good Relations enumerated data type on schema.org\" href=\"https:\/\/schema.org\/BusinessFunction\">BusinessFunction<\/a> <\/em>type, but the operation is the same as any other enumeration.<\/p>\n<p>We can also <strong>make up a text value and assign it<\/strong>, but then the robot will not understand the meaning of that value.<\/p>\n<h2><span id=\"Moving_from_conceptual_model_to_code\">Moving from conceptual model to code<\/span><\/h2>\n<p>Once we have already chosen which class we are going to use, which properties we are going to fill it with and which data types we have chosen for each of the available properties, we have to <strong>convert this data modeling to one of the structured data formats understood by Google<\/strong>. Let&#8217;s see an example assuming that we have the following data modeling for a book object shared on a social network and we will also add the author of the book:<\/p>\n<pre><code>\r\n<strong>https:\/\/schema.org\/SocialMediaPosting<\/strong>  &lt;= cogemos el tipo de datos publicaci\u00f3n de red social\r\n     <strong>sharedContent = http:\/\/schema.org\/Book<\/strong> &lt;= aunque el tipo de datos de sharedContent es CreativeWork cogemos un tipo derivado haciendo uso del polimorfismo\r\n     <strong>name = Marketing online 2.0<\/strong>\r\n     <strong>isbn = 978-8441532649<\/strong>\r\n     <strong>bookFormat = http:\/\/schema.org\/Paperback<\/strong> &lt;= como bookFormat usa una clase que en realidad es una enumeraci\u00f3n, le asignamos directamente el valor que le corresponde.\r\n     <strong>publisher = Anaya Multimedia<\/strong> &lt;= seg\u00fan la especificaci\u00f3n, la editorial debe ser de la clase organizaci\u00f3n o persona. Vamos a ver qu\u00e9 ocurre si nos saltamos la especificaci\u00f3n y le asignamos un texto directamente.\r\n     <strong>author = https:\/\/schema.org\/Person<\/strong> &lt;= aqu\u00ed la especificaci\u00f3n nos dice que podemos poner una organizaci\u00f3n o una persona, as\u00ed que ponemos una persona. Si fuera necesario, podr\u00edamos a\u00f1adir varios autores y algunos podr\u00edan ser personas y otros organizaciones. \r\n          <strong>givenName = Fernando <\/strong>\r\n          <strong>familyName = Maci\u00e1<\/strong>\r\n          <strong>jobTitle = CEO<\/strong>\r\n          <strong>brand = https:\/\/schema.org\/Organization<\/strong>\r\n               <strong>name = Human Level<\/strong>\r\n<\/code><\/pre>\n<p>There are many ways to express the conceptual data model, in the present case I have chosen this simple textual representation but I could have also represented it in UML.<\/p>\n<p>If Google has this information it can answer, among other things, the question who is the author of the book Marketing online 2.0? But for that, we need to convert it to code, which can be <strong> JSON-LD, Microdata or RDFa<\/strong>. First we will see how to do it with microdata and then with JSON-LD, which is the format currently suggested by Google as the best option.<\/p>\n<p>To transform it to microdata, we simply have to think of each class instance as being defined with &#8220;<strong>itemscope<\/strong>&#8221; and<strong>&#8220;itemtype=<\/strong>[URL de la clase en schema.org]&#8221;and properties with<strong>&#8220;itemprop=<\/strong>[nombre de la propiedad]&#8221;. When creating composition relationships, we will have to use &#8220;itemscope&#8221;, &#8220;itemtype&#8221; and &#8220;itemprop&#8221; at the same time, because we are declaring the type of class that we are going to use of a particular property. Below you have the above model written with microdata, so that you can compare it:<\/p>\n<pre><code>\r\n&lt;div itemscope itemtype=\"https:\/\/schema.org\/SocialMediaPosting\"&gt;\r\n     &lt;div itemprop=\"sharedContent\" itemscope itemtype=\"http:\/\/schema.org\/Book\"&gt;\r\n          &lt;p&gt;Libro: &lt;span itemprop=\"name\"&gt; Marketing online 2.0&lt;\/span&gt;&lt;\/p&gt;\r\n          &lt;p&gt;ISBN: &lt;span itemprop=\"isbn\"&gt; 978-8441532649&lt;\/span&gt;&lt;\/p&gt;\r\n          &lt;p&gt;\r\n          Formato: Tapa blanda &lt;link itemprop=\"bookFormat\" href=\"http:\/\/schema.org\/Paperback\" \/&gt;\r\n          &lt;\/p&gt;\r\n          &lt;!-- cuando que tenemos que definir una propiedad que no aparece igual al usuario y tiene un tipo de datos URL, se debe usar la etiqueta link con el atributo href, si es del tipo de datos Text, usaremos la etiqueta meta con el atributo content !--&gt; \r\n          &lt;p&gt;Editorial: &lt;span itemprop=\"publisher\"&gt;Anaya Multimedia&lt;\/span&gt;&lt;\/p&gt;\r\n          &lt;div itemprop=\"author\" itemscope itemtype=\"https:\/\/schema.org\/Person\"&gt;\r\n               &lt;p&gt;&lt;span itemprop=\"givenName\"&gt;Fernando&lt;\/span&gt; \r\n               &lt;span itemprop=\" familyName\"&gt;Maci\u00e1&lt;\/span&gt;\r\n               &lt;\/p&gt;\r\n               &lt;p&gt;\r\n                    &lt;span itemprop=\"jobTitle\"&gt;CEO&lt;\/span&gt; de\r\n                    &lt;span itemprop=\"brand\" itemscope itemtype=\"https:\/\/schema.org\/Organization\"&gt;\r\n                         &lt;span itemprop=\"name\"&gt;Human Level&lt;\/span&gt;\r\n                    &lt;\/span&gt;\r\n               &lt;\/p&gt;\r\n     \t&lt;\/div&gt;\r\n     &lt;\/div&gt;\r\n&lt;\/div&gt;\r\n\r\n<\/code><\/pre>\n<p>If we run this code in Google&#8217;s structured data tool, we don&#8217;t get any errors, just a couple of recommended property warnings, so Google would be able to interpret it correctly.<br \/>\n<img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-32700\" src=\"https:\/\/www.humanlevel.com\/wp-content\/uploads\/datos-estructurados-1.png\" alt=\"Google Structured Data Tool Result\" width=\"727\" height=\"585\" srcset=\"https:\/\/www.humanlevel.com\/wp-content\/uploads\/datos-estructurados-1.png 727w, https:\/\/www.humanlevel.com\/wp-content\/uploads\/datos-estructurados-1-720x579.png 720w\" sizes=\"auto, (max-width: 727px) 100vw, 727px\" \/><\/p>\n<p>Another thing to take into account in this example is that the property <em>Publisher<\/em>, according to schema.org should be of the class <em>Organization<\/em> or <em>Person<\/em>, however, when assigning a simple type value directly, the tool to check structured data does not give us an error, but assigns the class <em>Thing<\/em>, <strong>making use of polymorphism without realizing it<\/strong>. So Google doesn&#8217;t know if it&#8217;s an organization or a person but it knows it&#8217;s the publisher. This is useful to know, for when we ourselves <strong>are not sure what meaning to give to some property<\/strong>.<\/p>\n<p>With JSON-LD the code is simpler, here is how the code equivalent to the one above would look like:<\/p>\n<pre><code>\r\n&lt;script type=\"application\/ld+json\"&gt;\r\n{\r\n     \"@context\":\"https:\/\/schema.org\/\",\r\n     \"@type\":\"SocialMediaPosting\",\r\n     \"sharedContent\":{\r\n          \"@type\":\"Book\",\r\n          \"name\":\"Marketing online 2.0\",\r\n          \"isbn\":\"978-8441532649\",\r\n          \"bookFormat\": \"Paperback\",\r\n          \"publisher\":\"Anaya Multimedia\", \r\n          \"author\":{ \r\n               \"@type\":\"Person\",\r\n               \"givenName\":\"Fernando\",\r\n               \"familyName\":\"Maci\u00e1\",\r\n               \"jobTitle\":\"CEO\",\r\n               \"brand\":{\r\n     \t            \"@type\": \"Organization\",\r\n     \t            \"name\": \"Human Level\"\r\n               }\r\n          }\r\n     }\r\n}\r\n&lt;\/script&gt;\r\n<\/code><\/pre>\n<p>Here we define the <strong>name space<\/strong> of the vocabulary at the beginning &#8220;<strong>https<\/strong>:\/\/schema.org\/&#8221;, so there is no need to repeat it later in the rest of the code. It would also be valid to put &#8220;<strong>http<\/strong>:\/\/schema.org&#8221;, even if the page is under HTTPS, since <strong>this is not a link, but a way of saying that all the classes we are going to use belong to schema.org.<\/strong>. Namespaces are used in RDF to prevent two classes with the same name and from different vocabularies from getting confused, but here, for the time being, we will always have only one namespace.<\/p>\n<p>If in some property we have <strong>several values, in microdata we would simply repeat it, but in JSON-LD we put it with square brackets<\/strong>. Suppose we want to define a book with several publishers and several authors, let&#8217;s see how it would look with microdata and its equivalent JSON-LD:<\/p>\n<pre><code>\r\n&lt;div itemscope itemtype=\"http:\/\/schema.org\/Book\"&gt;\r\n     &lt;p&gt;Editorial: &lt;span itemprop=\"publisher\"&gt;editorial1&lt;\/span&gt;, \r\n     &lt;span itemprop=\"publisher\"&gt;editorial2&lt;\/span&gt;&lt;\/p&gt;\r\n     &lt;div itemprop=\"author\" itemscope itemtype=\"https:\/\/schema.org\/Person\" &gt;\r\n          &lt;p&gt;&lt;span itemprop=\"name\"&gt; autor1&lt;\/span&gt;&lt;\/p&gt;\r\n     &lt;\/div&gt;\r\n     &lt;div itemprop=\"author\" itemscope itemtype=\"https:\/\/schema.org\/Person\" &gt;\r\n          &lt;p&gt;&lt;span itemprop=\"name\"&gt; autor2&lt;\/span&gt;&lt;\/p&gt;\r\n     &lt;\/div&gt;\r\n&lt;\/div&gt;\r\n<\/code><\/pre>\n<pre><code>\r\n&lt;script type=\"application\/ld+json\"&gt;\r\n{\r\n     \"@context\":\"https:\/\/schema.org\/\",\r\n     \"@type\":\"Book\",\r\n     \"publisher\": [\"editorial1\", \"editorial2\"],\r\n     \"author\":[\r\n     { \r\n          \"@type\":\"Person\",\r\n          \"name\":\"autor1\"\r\n     },\r\n     {\r\n          \"@type\":\"Person\",\r\n          \"name\":\"autor2\"\r\n     }]\r\n}\r\n&lt;\/script&gt;\r\n<\/code><\/pre>\n<h2><span id=\"Conclusions\">Conclusions<\/span><\/h2>\n<p>Structured data (or semi-structured as it should technically be called), <strong>is difficult to model<\/strong>, but would be even more so if we were to use other vocabularies defined with RDF or OWL. I am referring to <a title=\"Go to entry: the future of the semantic web\" href=\"https:\/\/www.humanlevel.com\/en\/blog\/seo\/the-future-of-the-semantic-web\" target=\"_blank\" rel=\"noopener noreferrer\">semantic web<\/a> vocabularies, such as FOAF, SIOC, SKOS or Dublin Core, since they <strong>contain more complicated relationships<\/strong> than those we have already seen in the vocabulary proposed by the search engines in schema.org. So by applying schema.org correctly, we will have it easier and, with <strong>Google&#8217;s tools, we can be sure that the robot will know how to interpret the meaning of our data<\/strong>.<\/p>\n<h2><span id=\"Additional_references\">Additional references<\/span><\/h2>\n<ul>\n<li><a href=\"https:\/\/www.humanlevel.com\/en\/blog\/seo\/how-to-interpret-schema-org-to-create-structured-data\" target=\"_blank\" rel=\"noopener noreferrer\">Structured data equivalent to5 semantic tags<\/a> &#8211; Ram\u00f3n Saquete.<\/li>\n<li><a href=\"https:\/\/www.w3schools.com\/html\/default.asp\" target=\"_blank\" rel=\"noopener noreferrer\">HTML5<\/a><\/li>\n<li><a href=\"https:\/\/www.json.org\/json-en.html\" target=\"_blank\" rel=\"noopener noreferrer\">JSON<\/a><\/li>\n<li><a href=\"https:\/\/developers.google.com\/search\/docs\/appearance\/structured-data?hl=es\" target=\"_blank\" rel=\"noopener noreferrer\">Google Structured Data Validation Tool<\/a><\/li>\n<li><a href=\"https:\/\/www.jsonschemavalidator.net\/\" target=\"_blank\" rel=\"noopener noreferrer\">Schema implementation validator with JSON markup<\/a><\/li>\n<li><a href=\"https:\/\/developers.google.com\/search\/docs\/appearance\/structured-data\/intro-structured-data?hl=es\" target=\"_blank\" rel=\"noopener noreferrer\">Introduction to structured data<\/a> &#8211; Google.<\/li>\n<li><a href=\"https:\/\/www.humanlevel.com\/en\/blog\/seo\/what-is-structured-data-and-schema-org\" target=\"_blank\" rel=\"noopener noreferrer\">What is structured data and schema.org<\/a> &#8211; Mar\u00eda Navarro.<\/li>\n<li><a href=\"https:\/\/www.humanlevel.com\/en\/blog\/seo\/structured-data-questions-and-answers-with-google\" target=\"_blank\" rel=\"noopener noreferrer\">Structured data &#8211; questions and answers with Google.<\/a><\/li>\n<li><a href=\"https:\/\/www.humanlevel.com\/en\/digital-marketing-dictionary\/featured-snippets\" target=\"_blank\" rel=\"noopener noreferrer\">What are Featured Snippets<\/a> &#8211; Roc\u00edo Rodr\u00edguez.<\/li>\n<li><a href=\"https:\/\/www.humanlevel.com\/en\/blog\/seo\/rich-snippets-to-drive-more-traffic\" target=\"_blank\" rel=\"noopener noreferrer\">Rich snippets to get more traffic<\/a> &#8211; Jose E. Vicente.<\/li>\n<\/ul>\n\n","protected":false},"excerpt":{"rendered":"<p>Have you ever wondered how schema.org information is interpreted to create structured data? Did you know that you can create JSON-LD or microdata tailored to the data? Find out how it is done here.<\/p>\n","protected":false},"author":14,"featured_media":47787,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[349],"tags":[344],"class_list":["post-52113","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-seo","tag-structured-data","entry"],"yoast_head":"\n<title>How to interpret schema.org to create structured data | Human Level<\/title>\n<meta name=\"description\" content=\"Structured data allows us to tell the Google robot the meaning of the information on our website. Learn how to use schema.org with this post\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.humanlevel.com\/en\/blog\/seo\/how-to-interpret-schema-org-to-create-structured-data\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How to interpret schema.org to create structured data | Human Level\" \/>\n<meta property=\"og:description\" content=\"Structured data allows us to tell the Google robot the meaning of the information on our website. Learn how to use schema.org with this post\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.humanlevel.com\/en\/blog\/seo\/how-to-interpret-schema-org-to-create-structured-data\" \/>\n<meta property=\"og:site_name\" content=\"Human Level\" \/>\n<meta property=\"article:published_time\" content=\"2018-09-19T06:00:39+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-10-11T08:20:07+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.humanlevel.com\/wp-content\/uploads\/chema-para-datos-estructurados-e1569939164214.png\" \/>\n\t<meta property=\"og:image:width\" content=\"400\" \/>\n\t<meta property=\"og:image:height\" content=\"400\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Ram\u00f3n Saquete\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@Daiatron\" \/>\n<meta name=\"twitter:site\" content=\"@humanlevel\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Ram\u00f3n Saquete\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"17 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":[\"Article\",\"BlogPosting\"],\"@id\":\"https:\/\/www.humanlevel.com\/en\/blog\/seo\/how-to-interpret-schema-org-to-create-structured-data#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.humanlevel.com\/en\/blog\/seo\/how-to-interpret-schema-org-to-create-structured-data\"},\"author\":{\"name\":\"Ram\u00f3n Saquete\",\"@id\":\"https:\/\/www.humanlevel.com\/en#\/schema\/person\/11ad888926867985985a0210476bae94\"},\"headline\":\"How to interpret schema.org to create structured data\",\"datePublished\":\"2018-09-19T06:00:39+00:00\",\"dateModified\":\"2023-10-11T08:20:07+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.humanlevel.com\/en\/blog\/seo\/how-to-interpret-schema-org-to-create-structured-data\"},\"wordCount\":2973,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.humanlevel.com\/en#organization\"},\"image\":{\"@id\":\"https:\/\/www.humanlevel.com\/en\/blog\/seo\/how-to-interpret-schema-org-to-create-structured-data#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.humanlevel.com\/wp-content\/uploads\/chema-para-datos-estructurados-e1569939164214.png\",\"keywords\":[\"Structured data\"],\"articleSection\":[\"SEO\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.humanlevel.com\/en\/blog\/seo\/how-to-interpret-schema-org-to-create-structured-data#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.humanlevel.com\/en\/blog\/seo\/how-to-interpret-schema-org-to-create-structured-data\",\"url\":\"https:\/\/www.humanlevel.com\/en\/blog\/seo\/how-to-interpret-schema-org-to-create-structured-data\",\"name\":\"How to interpret schema.org to create structured data | Human Level\",\"isPartOf\":{\"@id\":\"https:\/\/www.humanlevel.com\/en#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.humanlevel.com\/en\/blog\/seo\/how-to-interpret-schema-org-to-create-structured-data#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.humanlevel.com\/en\/blog\/seo\/how-to-interpret-schema-org-to-create-structured-data#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.humanlevel.com\/wp-content\/uploads\/chema-para-datos-estructurados-e1569939164214.png\",\"datePublished\":\"2018-09-19T06:00:39+00:00\",\"dateModified\":\"2023-10-11T08:20:07+00:00\",\"description\":\"Structured data allows us to tell the Google robot the meaning of the information on our website. Learn how to use schema.org with this post\",\"breadcrumb\":{\"@id\":\"https:\/\/www.humanlevel.com\/en\/blog\/seo\/how-to-interpret-schema-org-to-create-structured-data#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.humanlevel.com\/en\/blog\/seo\/how-to-interpret-schema-org-to-create-structured-data\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.humanlevel.com\/en\/blog\/seo\/how-to-interpret-schema-org-to-create-structured-data#primaryimage\",\"url\":\"https:\/\/www.humanlevel.com\/wp-content\/uploads\/chema-para-datos-estructurados-e1569939164214.png\",\"contentUrl\":\"https:\/\/www.humanlevel.com\/wp-content\/uploads\/chema-para-datos-estructurados-e1569939164214.png\",\"width\":400,\"height\":400},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.humanlevel.com\/en\/blog\/seo\/how-to-interpret-schema-org-to-create-structured-data#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Portada\",\"item\":\"https:\/\/www.humanlevel.com\/en\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"How to interpret schema.org to create structured data\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.humanlevel.com\/en#website\",\"url\":\"https:\/\/www.humanlevel.com\/en\",\"name\":\"Human Level\",\"description\":\"Web positioning and online marketing consultant Human Level\",\"publisher\":{\"@id\":\"https:\/\/www.humanlevel.com\/en#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.humanlevel.com\/en?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.humanlevel.com\/en#organization\",\"name\":\"Human Level\",\"url\":\"https:\/\/www.humanlevel.com\/en\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.humanlevel.com\/en#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.humanlevel.com\/wp-content\/uploads\/logo-human-negro-1.jpg\",\"contentUrl\":\"https:\/\/www.humanlevel.com\/wp-content\/uploads\/logo-human-negro-1.jpg\",\"width\":268,\"height\":51,\"caption\":\"Human Level\"},\"image\":{\"@id\":\"https:\/\/www.humanlevel.com\/en#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/x.com\/humanlevel\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.humanlevel.com\/en#\/schema\/person\/11ad888926867985985a0210476bae94\",\"name\":\"Ram\u00f3n Saquete\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.humanlevel.com\/en#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/7a50f1a1974393853ee4f2423c9009f813cb107d3e7e20cf17cf8e86d407132e?s=96&d=simple_local_avatar&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/7a50f1a1974393853ee4f2423c9009f813cb107d3e7e20cf17cf8e86d407132e?s=96&d=simple_local_avatar&r=g\",\"caption\":\"Ram\u00f3n Saquete\"},\"description\":\"Desarrollador web y consultor SEO t\u00e9cnico en Human Level. Graduado en Ingenier\u00eda Inform\u00e1tica e Ingenier\u00eda T\u00e9cnica en Inform\u00e1tica de Sistemas. Tambi\u00e9n es T\u00e9cnico Superior en Desarrollo de Aplicaciones Inform\u00e1ticas y posteriormente obtuvo la Certificaci\u00f3n de Aptitud Pedag\u00f3gica. Experto en WPO e indexabilidad.\",\"sameAs\":[\"https:\/\/x.com\/Daiatron\"],\"url\":\"https:\/\/www.humanlevel.com\/en\/author\/ramon\"}]}<\/script>\n","yoast_head_json":{"title":"How to interpret schema.org to create structured data | Human Level","description":"Structured data allows us to tell the Google robot the meaning of the information on our website. Learn how to use schema.org with this post","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.humanlevel.com\/en\/blog\/seo\/how-to-interpret-schema-org-to-create-structured-data","og_locale":"en_US","og_type":"article","og_title":"How to interpret schema.org to create structured data | Human Level","og_description":"Structured data allows us to tell the Google robot the meaning of the information on our website. Learn how to use schema.org with this post","og_url":"https:\/\/www.humanlevel.com\/en\/blog\/seo\/how-to-interpret-schema-org-to-create-structured-data","og_site_name":"Human Level","article_published_time":"2018-09-19T06:00:39+00:00","article_modified_time":"2023-10-11T08:20:07+00:00","og_image":[{"width":400,"height":400,"url":"https:\/\/www.humanlevel.com\/wp-content\/uploads\/chema-para-datos-estructurados-e1569939164214.png","type":"image\/png"}],"author":"Ram\u00f3n Saquete","twitter_card":"summary_large_image","twitter_creator":"@Daiatron","twitter_site":"@humanlevel","twitter_misc":{"Written by":"Ram\u00f3n Saquete","Est. reading time":"17 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":["Article","BlogPosting"],"@id":"https:\/\/www.humanlevel.com\/en\/blog\/seo\/how-to-interpret-schema-org-to-create-structured-data#article","isPartOf":{"@id":"https:\/\/www.humanlevel.com\/en\/blog\/seo\/how-to-interpret-schema-org-to-create-structured-data"},"author":{"name":"Ram\u00f3n Saquete","@id":"https:\/\/www.humanlevel.com\/en#\/schema\/person\/11ad888926867985985a0210476bae94"},"headline":"How to interpret schema.org to create structured data","datePublished":"2018-09-19T06:00:39+00:00","dateModified":"2023-10-11T08:20:07+00:00","mainEntityOfPage":{"@id":"https:\/\/www.humanlevel.com\/en\/blog\/seo\/how-to-interpret-schema-org-to-create-structured-data"},"wordCount":2973,"commentCount":0,"publisher":{"@id":"https:\/\/www.humanlevel.com\/en#organization"},"image":{"@id":"https:\/\/www.humanlevel.com\/en\/blog\/seo\/how-to-interpret-schema-org-to-create-structured-data#primaryimage"},"thumbnailUrl":"https:\/\/www.humanlevel.com\/wp-content\/uploads\/chema-para-datos-estructurados-e1569939164214.png","keywords":["Structured data"],"articleSection":["SEO"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.humanlevel.com\/en\/blog\/seo\/how-to-interpret-schema-org-to-create-structured-data#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.humanlevel.com\/en\/blog\/seo\/how-to-interpret-schema-org-to-create-structured-data","url":"https:\/\/www.humanlevel.com\/en\/blog\/seo\/how-to-interpret-schema-org-to-create-structured-data","name":"How to interpret schema.org to create structured data | Human Level","isPartOf":{"@id":"https:\/\/www.humanlevel.com\/en#website"},"primaryImageOfPage":{"@id":"https:\/\/www.humanlevel.com\/en\/blog\/seo\/how-to-interpret-schema-org-to-create-structured-data#primaryimage"},"image":{"@id":"https:\/\/www.humanlevel.com\/en\/blog\/seo\/how-to-interpret-schema-org-to-create-structured-data#primaryimage"},"thumbnailUrl":"https:\/\/www.humanlevel.com\/wp-content\/uploads\/chema-para-datos-estructurados-e1569939164214.png","datePublished":"2018-09-19T06:00:39+00:00","dateModified":"2023-10-11T08:20:07+00:00","description":"Structured data allows us to tell the Google robot the meaning of the information on our website. Learn how to use schema.org with this post","breadcrumb":{"@id":"https:\/\/www.humanlevel.com\/en\/blog\/seo\/how-to-interpret-schema-org-to-create-structured-data#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.humanlevel.com\/en\/blog\/seo\/how-to-interpret-schema-org-to-create-structured-data"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.humanlevel.com\/en\/blog\/seo\/how-to-interpret-schema-org-to-create-structured-data#primaryimage","url":"https:\/\/www.humanlevel.com\/wp-content\/uploads\/chema-para-datos-estructurados-e1569939164214.png","contentUrl":"https:\/\/www.humanlevel.com\/wp-content\/uploads\/chema-para-datos-estructurados-e1569939164214.png","width":400,"height":400},{"@type":"BreadcrumbList","@id":"https:\/\/www.humanlevel.com\/en\/blog\/seo\/how-to-interpret-schema-org-to-create-structured-data#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Portada","item":"https:\/\/www.humanlevel.com\/en"},{"@type":"ListItem","position":2,"name":"How to interpret schema.org to create structured data"}]},{"@type":"WebSite","@id":"https:\/\/www.humanlevel.com\/en#website","url":"https:\/\/www.humanlevel.com\/en","name":"Human Level","description":"Web positioning and online marketing consultant Human Level","publisher":{"@id":"https:\/\/www.humanlevel.com\/en#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.humanlevel.com\/en?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.humanlevel.com\/en#organization","name":"Human Level","url":"https:\/\/www.humanlevel.com\/en","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.humanlevel.com\/en#\/schema\/logo\/image\/","url":"https:\/\/www.humanlevel.com\/wp-content\/uploads\/logo-human-negro-1.jpg","contentUrl":"https:\/\/www.humanlevel.com\/wp-content\/uploads\/logo-human-negro-1.jpg","width":268,"height":51,"caption":"Human Level"},"image":{"@id":"https:\/\/www.humanlevel.com\/en#\/schema\/logo\/image\/"},"sameAs":["https:\/\/x.com\/humanlevel"]},{"@type":"Person","@id":"https:\/\/www.humanlevel.com\/en#\/schema\/person\/11ad888926867985985a0210476bae94","name":"Ram\u00f3n Saquete","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.humanlevel.com\/en#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/7a50f1a1974393853ee4f2423c9009f813cb107d3e7e20cf17cf8e86d407132e?s=96&d=simple_local_avatar&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/7a50f1a1974393853ee4f2423c9009f813cb107d3e7e20cf17cf8e86d407132e?s=96&d=simple_local_avatar&r=g","caption":"Ram\u00f3n Saquete"},"description":"Desarrollador web y consultor SEO t\u00e9cnico en Human Level. Graduado en Ingenier\u00eda Inform\u00e1tica e Ingenier\u00eda T\u00e9cnica en Inform\u00e1tica de Sistemas. Tambi\u00e9n es T\u00e9cnico Superior en Desarrollo de Aplicaciones Inform\u00e1ticas y posteriormente obtuvo la Certificaci\u00f3n de Aptitud Pedag\u00f3gica. Experto en WPO e indexabilidad.","sameAs":["https:\/\/x.com\/Daiatron"],"url":"https:\/\/www.humanlevel.com\/en\/author\/ramon"}]}},"_links":{"self":[{"href":"https:\/\/www.humanlevel.com\/en\/wp-json\/wp\/v2\/posts\/52113","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.humanlevel.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.humanlevel.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.humanlevel.com\/en\/wp-json\/wp\/v2\/users\/14"}],"replies":[{"embeddable":true,"href":"https:\/\/www.humanlevel.com\/en\/wp-json\/wp\/v2\/comments?post=52113"}],"version-history":[{"count":3,"href":"https:\/\/www.humanlevel.com\/en\/wp-json\/wp\/v2\/posts\/52113\/revisions"}],"predecessor-version":[{"id":54829,"href":"https:\/\/www.humanlevel.com\/en\/wp-json\/wp\/v2\/posts\/52113\/revisions\/54829"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.humanlevel.com\/en\/wp-json\/wp\/v2\/media\/47787"}],"wp:attachment":[{"href":"https:\/\/www.humanlevel.com\/en\/wp-json\/wp\/v2\/media?parent=52113"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.humanlevel.com\/en\/wp-json\/wp\/v2\/categories?post=52113"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.humanlevel.com\/en\/wp-json\/wp\/v2\/tags?post=52113"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}