Skip to content


Subversion checkout URL

You can clone with
Download ZIP
Structured Data linter
HTML Ruby JavaScript CSS

Release 2.2.9

* Updated parsers.
* Do better job of displaying intelligable messages on internal errors.
* Moved expansion and linter functionality to rdf-reasoner.
latest commit 278053884f
@gkellogg gkellogg authored
Failed to load latest commit information.
assets Do better job of displaying intelligable messages on internal errors.…
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 * Remove RDF::All::Reader, and just use normal RDF::Reader.for mechan…
public Progress on using Angularjs. Update for 2.1 release.
script First parse with validation, and collection validation errors, if it …
spec * Remove RDF::All::Reader, and just use normal RDF::Reader.for mechan…
.gitignore Remove cache directory from repo.
.gitmodules Remove schema-org-rdf as a submodule.
.travis.yml Move development dependencies into Gemfile.
.yardopts Documentation and version update
Gemfile Move development dependencies into Gemfile.
Gemfile.lock Update dependencies.
Procfile Heroku updates: shielded-river-1101. Remove unused spec/test_data.
Rakefile Update examples with sdo-gozer (2.0).
UNLICENSE Add UNLICENCSE, note licensing terms, contributing and other updates …
VERSION Version 2.2.9. Progress on using Angularjs.
linter.gemspec Moved expansion and linter functionality to rdf-reasoner.

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



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.