Announcing a proof of concept validator which is beginning to work

Announcing the dog-and-duck validator component.

This is a very basic command-line validator for ActivityStreams documents which sort-of works. It’s pre-alpha, proof of concept quality, it isn’t to be trusted and it will break.

Run it with

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

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

    -i, --input SOURCE    standard input   The file or URL to validate
    -o, --output DEST     standard output  The file to write to, defaults to standard out
    -f, --format FORMAT   :edn             The format to output, one of `edn` `csv` `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
    -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.

The following severity levels are understood:

  1. info things which are not actually faults, 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.

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.

4 Likes

Great work! It would be nice to have this as a web service, where developers can quickly paste some AS/AP object and validate it.

I’m certainly planning that, but I want to get confident that it’s delivering useful analysis first.