Skip to content


Subversion checkout URL

You can clone with
Download ZIP
Structured Data linter
HTML Ruby JavaScript CSS
Branch: master
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 First parse with validation, and collection validation errors, if it …
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 First parse with validation, and collection validation errors, if it …
public Progress on using Angularjs. Update examples with sdo-gozer (2.0).
script First parse with validation, and collection validation errors, if it …
spec First parse with validation, and collection validation errors, if it …
.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 Add rest-client to Gemfile, as it doesn't seem to get picked up from …
Gemfile.lock Version 2.2.7.
Procfile Heroku updates: shielded-river-1101. 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.7. 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.