@kirsty_hulse
Schema, JSON-LD & the semantic web
(plus arbitrary pictures of space)
Remains of a dead star, located 11,000 light-years away, taken by NASA's NuSTAR telescope
@kirsty_hulse
What that actually means…
How can we implement structured markup, to support a semantic web, when it is
complicated and expensive?
@kirsty_hulse
To do this, we need to have a uniform system that allows data sharing
The vision of the Semantic Web is to […] create a common framework that allows data to be shared
and reused
A ‘Galactic Gathering’ taken by the Hubble Telescope
@kirsty_hulse
From a search perspectiveFor search, the use of markup reinforces
meaning of the information
NASA's Orbiting Carbon Observatory (OCO)-2
@kirsty_hulse
Microdata (RDFa, microformats) are combined with HTML properties
Inside the Flame Nebula
@kirsty_hulse
JSON-LD […] is a way of exchanging data without using markup attributes in HTML
The Sun giving out X-rays
@kirsty_hulse
But the most important bit is…
JSON-LD does not need to be present in the <body> of a page. It can be embedded in a <script>
in the <head> of a page
Asteroid tracks in the stars taken by NASAs Nowise
@kirsty_hulse
A few weeks ago Google endorsed the use of JSON-LD as a method of adding markup for the tour dates
markup
@kirsty_hulse
Meaning there’s the potential for implementing structured markup to not be expensive, to not be complicated to not require development resource
Martian impact crater
@kirsty_hulse
The datalayer
“A data layer is an object that contains all of the information that you want to pass to Google Tag Manager
Rather than referencing variables, transaction information, page categories, and other important signals scattered throughout your page, Google Tag Manager is designed to easily reference information that you put in this data layer.”
@kirsty_hulse
Datalayer is excellent and wonderful because…
• Scalable • Flexible • Resolves security issues • Measurable (Mike Arnesen)
@kirsty_hulse
But…for a non developer…it’s actually fairly tricky and can require development resource
@kirsty_hulse
Implement a data layer for information that will change on a page by page basis
http://www.swellpath.com/2015/03/7-steps-to-pushing-json-structured-data-using-google-tag-manager/
@kirsty_hulse
But there is markup we can inject using JSON-LD via GTM without the data layer using Custom HTML Tags
@kirsty_hulse
<script type="application/ld+json"> { "@context": "http://schema.org", "@type": "WebSite", "url": "http://www.kirstyhulse.com/", "potentialAction": { "@type": "SearchAction", "target": "http://kirstyhulse.com/?s={search_term}", "query-input": "required name=search_term" } } </script>
@kirsty_hulse
This doesn’t guarantee inclusion however…
“The search box is triggered algorithmically based on the website and the user query — we display it when we think it might help the user refine their search.”
@kirsty_hulse
Social Markup
<script type="application/ld+json"> { "@context" : "http://schema.org", "@type" : "Person", "url" : "http://www.simoahava.com/", "name" : "Simo Ahava", "sameAs" : [ "http://fi.linkedin.com/in/simoahava", "http://plus.google.com/+SimoAhava", "http://www.twitter.com/SimoAhava" ] } </script>
@kirsty_hulse
Organisation and logos
<script type="application/ld+json"> { "@context": "http://schema.org/", "@type": "Organization", "url": "http://www.example.com/", "logo": "http://www.example.com/logo.png" } </script>