This document describes the test suite of the Shape Expressions Language.
The contents are inspired by the RDF test suite.
The tests are available in the folder tests which can also be downloaded as a simple file: tests.tar.gz, tests.zip.
The source code of this project is located in Github
There are four types of tests:
These tests contain example of Schema files
which can be parsed. They have type
<#a-string-syntax> rdf:type shext:PositiveSyntax ; mf:name "a-string-syntax" ; rdfs:comment "Shex Expression with an single arc rule" ; shext:status mf:proposed ; shext:schema <a-string.shex> ; .
These tests contain examples with bad syntax.
They have type
shext:NegativeSyntax and their structure is the same as
the previous tests.
These tests contain a reference to a schema (ShEx file)
and a reference to a RDF file (turtle file) that
can be parsed. They have type
They also contain a reference to a IRI in the turtle file and a list of shapes that the IRI should have according to the schema.
The tests are considered valid is the system can infer that the IRI has those shapes.
The following example declares a valid test where
ex:x has shape
ex:a in the
conjunction1.ttl using the
<#conjunction1> rdf:type shext:Valid ; mf:name "conjunction1" ; rdfs:comment "conjunction of two arcs" ; shext:status mf:proposed ; shext:schema <conjunction.shex> ; shext:instance <conjunction1.ttl> ; shext:iri ex:x ; shext:shape ex:a .
These tests contain schemas and RDFs that can be parsed. They also refer to a IRI which is part of the RDF graph but has no valid shape in the schema.
These tests have type
<#conjunction1> rdf:type shext:NotValid ; mf:name "conjunction2" ; rdfs:comment "conjunction of one arc fails" ; shext:status mf:proposed ; shext:schema <conjunction.shex> ; shext:instance <conjunction2.ttl> ; shext:iri ex:x .