/quack

Primary LanguageClojureGNU General Public License v2.0GPL-2.0

quack

If it walks like a duck, and it quacks like a duck, it's a duck.

A validator for ActivityStreams documents.

Part of the dog-and-duck project, q.v.

Installation

Download from http://example.com/FIXME.

Usage

java -jar target/dog-and-duck-0.1.0-standalone.jar -i resources/activitystreams-test-documents/vocabulary-ex10-jsonld.json -f html -o report.html -s info

Note that it is almost certain that in some places I have misinterpreted the spec. Of all 205 documents in the activitystreams-test-documents repository, not a single one passes validation, and that must be wrong.

Nevertheless I think that this is a basis on which a useful validator can be built. Feedback and contributions welcome.

Options

The full range of command-line switches is as follows:

  -i, --input SOURCE    standard in   The file or URL to validate.
  -o, --output DEST     standard out  The file to write to.
  -f, --format FORMAT   :edn          The format to output, one of `csv`, `edn`, `json`, `html`.
  -l, --language LANG   en-GB         The ISO 639-1 code for the language to output.
  -s, --severity LEVEL  :info         The minimum severity of faults to report.
  -r, --reify                         If set, reify objects referenced by URIs and check them.
  -h, --help                          Print this message and exit.

Note, though, that internationalisation files for languages other than British English have not yet been written, and that one is not complete.

Note also that reification is not, at the time of writing, working.

The following severity levels are understood:

  1. info things which are not actuallys fault, but issues noted during validation;
  2. minor things which I consider to be faults, but which don't actually breach the spec;
  3. should instances where the spec says something SHOULD be done, which isn't;
  4. must instances where the spec says something MUST be done, which isn't;
  5. critical instances where I believe the fault means that the object cannot be meaningfully processed.

Examples

...

Documentation

Full documentation is here.

Bugs

Many. Ducks like bugs.

License

Copyright © 2023 Simon Brooke

This Source Code is made available under GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version.