Skip to content


Subversion checkout URL

You can clone with
Download ZIP
Structured Data linter
HTML Ruby JavaScript CSS
Failed to load latest commit information.
assets Add reference to Release Notes and Issue Tracker to dropdown menu.
config Heroku updates: shielded-river-1101.
etc Update for 2.1 release.
examples Version 2.1.
good-relations Good Relations examples and snippets.
google-rs Linter fixes to align with RDF and rdf-reasoner changes.
lib/rdf Update for 2.1 release.
public Progress on using Angularjs. Update for 2.1 release.
script First parse with validation, and collection validation errors, if it …
spec Update for 2.1 release.
.gitignore Remove cache directory from repo.
.gitmodules Remove schema-org-rdf as a submodule.
.travis.yml Update travis Ruby version.
.yardopts Documentation and version update
Gemfile Move Gemfile dependencies into Gemfile and don't use gemspec to addre…
Gemfile.lock Move Gemfile dependencies into Gemfile and don't use gemspec to addre…
Procfile Update readme with instructions for running locally.
Rakefile Update examples with sdo-gozer (2.0).
UNLICENSE Add UNLICENCSE, note licensing terms, contributing and other updates …
VERSION Version 2.2.8. Progress on using Angularjs.
linter.gemspec Update dependency on rdf-reasoner to 0.2.1.

Structured Data Linter

Extract and validate embedded RDF markup in HTML and other formats.


The Structured Data Linter digests structured data, in the form of HTML marked-up with RDFa, JSON-LD, or Microdata, or other RDF technologies supported in [Linked Data][linkeddata].

The linter is part of the, and runs at

Output is expressed as HTML+RDFa in a Snippet format.

Running locally

To run locally, do a bundle install to load required dependencies. Then run with foreman or rackup:

foreman start


rackup examples

To update the examples from, run rake schema:examples. Warnings for these examples can be generated into {file:etc/schema-warnings.txt} by running rake schema:warnings; remember to run bundle install first.

Code layout

This application is represented as a Sinatra application implemented in Ruby.

assets                -- Assets for web application             -- [Rack][] configuration file, to start application
      parser.rb         -- Parse and transform input to RDFa.
      rdfa_template.rb  -- RDFa output templates in [Haml][]
      snippets          -- Snippet templates
      views             -- Templates for view generation in [Erubis][]
      writer.rb         -- Sub-class of [RDFa][] writer for generating snippet output.
    linter.rb         -- Controller defining HTTP endpoints
spec                  -- Tests
  test_data           -- Test Data



Setup notes

  • public/.htaccess
  • Bundle installed using:

    bundle install --path vendor/bundler

  • Start the server with:

    bundle exec shotgun -p 3000



  • Do your best to adhere to the existing coding conventions and idioms.
  • Don't use hard tabs, and don't leave trailing whitespace on any line.
  • Do document every method you add using [YARD][] annotations. Read the [tutorial][YARD-GS] or just look at the existing code for examples.
  • Don't touch the .gemspec, VERSION or AUTHORS files. If you need to change them, do so on your private branch only.
  • Do feel free to add yourself to the CREDITS file and the corresponding list in the the README. Alphabetical order applies.
  • Do note that in order for us to merge any non-trivial changes (as a rule of thumb, additions larger than about 15 lines of code), we need an explicit [public domain dedication][PDD] on record from you.


This is free and unencumbered public domain software. For more information, see or the accompanying {file:UNLICENSE} file.

Something went wrong with that request. Please try again.