diff --git a/tests/test_shapes.ttl b/tests/test_shapes.ttl
new file mode 100644
index 0000000..1c0b867
--- /dev/null
+++ b/tests/test_shapes.ttl
@@ -0,0 +1,145 @@
+@prefix ns1: .
+@prefix prov: .
+@prefix rdf: .
+@prefix rdfs: .
+@prefix sh: .
+@prefix xsd: .
+
+ a ns1:ShapeCatalog ;
+ rdfs:label "Shapes for https://eccenca.com/shapes_plugin/5072e1e3e96c40389116a6833d9a3867/data/" .
+
+ a sh:NodeShape ;
+ rdfs:label "Entity (prov:)"@en ;
+ sh:name "Entity (prov:)"@en ;
+ sh:property ,
+ ,
+ ;
+ sh:targetClass prov:Entity .
+
+ a sh:NodeShape ;
+ rdfs:label "vocab_Price"@en ;
+ sh:name "vocab_Price"@en ;
+ sh:property ,
+ ,
+ ,
+ ,
+ ,
+ ;
+ sh:targetClass .
+
+ a sh:NodeShape ;
+ rdfs:label "vocab_ProductCategory"@en ;
+ sh:name "vocab_ProductCategory"@en ;
+ sh:property ,
+ ,
+ ,
+ ;
+ sh:targetClass .
+
+ a sh:NodeShape ;
+ rdfs:label "Dataset (eccdi:)"@en ;
+ sh:name "Dataset (eccdi:)"@en ;
+ sh:property ;
+ sh:targetClass .
+
+ a sh:NodeShape ;
+ rdfs:label "vocab_Service"@en ;
+ sh:name "vocab_Service"@en ;
+ sh:property ,
+ ,
+ ,
+ ,
+ ,
+ ,
+ ,
+ ,
+ ;
+ sh:targetClass .
+
+ a sh:PropertyShape ;
+ rdfs:label "vocab_currency"@en ;
+ sh:name "vocab_currency"@en ;
+ sh:nodeKind sh:Literal ;
+ sh:path .
+
+ a sh:PropertyShape ;
+ rdfs:label "← was derived from (prov:)"@en ;
+ sh:name "← was derived from (prov:)"@en ;
+ sh:nodeKind sh:IRI ;
+ sh:path prov:wasDerivedFrom ;
+ ns1:inversePath true .
+
+ a sh:PropertyShape ;
+ rdfs:label "vocab_eligibleFor"@en ;
+ sh:name "vocab_eligibleFor"@en ;
+ sh:nodeKind sh:IRI ;
+ sh:path .
+
+ a sh:PropertyShape ;
+ rdfs:label "vocab_hasCategory"@en ;
+ sh:name "vocab_hasCategory"@en ;
+ sh:nodeKind sh:IRI ;
+ sh:path .
+
+ a sh:PropertyShape ;
+ rdfs:label "← vocab_hasCategory"@en ;
+ sh:name "← vocab_hasCategory"@en ;
+ sh:nodeKind sh:IRI ;
+ sh:path ;
+ ns1:inversePath true .
+
+ a sh:PropertyShape ;
+ rdfs:label "vocab_hasProductManager"@en ;
+ sh:name "vocab_hasProductManager"@en ;
+ sh:nodeKind sh:IRI ;
+ sh:path .
+
+ a sh:PropertyShape ;
+ rdfs:label "← vocab_price"@en ;
+ sh:name "← vocab_price"@en ;
+ sh:nodeKind sh:IRI ;
+ sh:path ;
+ ns1:inversePath true .
+
+ a sh:PropertyShape ;
+ rdfs:label "vocab_id"@en ;
+ sh:name "vocab_id"@en ;
+ sh:nodeKind sh:Literal ;
+ sh:path .
+
+ a sh:PropertyShape ;
+ rdfs:label "vocab_name"@en ;
+ sh:name "vocab_name"@en ;
+ sh:nodeKind sh:Literal ;
+ sh:path .
+
+ a sh:PropertyShape ;
+ rdfs:label "vocab_price"@en ;
+ sh:name "vocab_price"@en ;
+ sh:nodeKind sh:IRI ;
+ sh:path .
+
+ a sh:PropertyShape ;
+ rdfs:label "vocab_amount"@en ;
+ sh:name "vocab_amount"@en ;
+ sh:nodeKind sh:Literal ;
+ sh:path .
+
+ a sh:PropertyShape ;
+ rdfs:label "was derived from (prov:)"@en ;
+ sh:name "was derived from (prov:)"@en ;
+ sh:nodeKind sh:IRI ;
+ sh:path prov:wasDerivedFrom .
+
+ a sh:PropertyShape ;
+ rdfs:label "label (rdfs:)"@en ;
+ sh:name "label (rdfs:)"@en ;
+ sh:nodeKind sh:Literal ;
+ sh:path rdfs:label .
+
+ a sh:PropertyShape ;
+ rdfs:label "type (rdf:)"@en ;
+ sh:name "type (rdf:)"@en ;
+ sh:nodeKind sh:IRI ;
+ sh:path rdf:type .
+