{ "@context": { "@vocab": "http://www.w3.org/ns/shacl#", "sh" : "http://www.w3.org/ns/shacl#", "rdf": "http://www.w3.org/1999/02/22-rdf-syntax-ns#", "rdfs" : "http://www.w3.org/2000/01/rdf-schema#", "xsd": "http://www.w3.org/2001/XMLSchema#", "comment": "rdfs:comment", "target" : { "@type" : "@id" }, "targetClass" : { "@type" : "@id" }, "targetObjectsOf" : { "@type" : "@id" }, "targetSubjectsOf" : { "@type" : "@id" }, "severity" : { "@type" : "@id" }, "result" : { "@type" : "@id" }, "detail" : { "@type" : "@id" }, "resultPath" : { "@type" : "@id" }, "resultSeverity" : { "@type" : "@id" }, "sourceShape" : { "@type" : "@id" }, "sourceConstraintComponent" : { "@type" : "@id" }, "prefixes" : { "@type" : "@id" }, "declare" : { "@type" : "@id" }, "namespace" : { "@type" : "xsd:anyURI" }, "shapesGraph" : { "@type" : "@id" }, "path" : { "@type" : "@id" }, "inversePath" : { "@type" : "@id" }, "alternativePath" : { "@type" : "@id", "@container" : "@list" }, "zeroOrMorePath" : { "@type" : "@id" }, "oneOrMorePath" : { "@type" : "@id" }, "zeroOrOnePath" : { "@type" : "@id" }, "parameter" : { "@type" : "@id" }, "validator" : { "@type" : "@id" }, "nodeValidator" : { "@type" : "@id" }, "propertyValidator" : { "@type" : "@id" }, "and" : { "@type" : "@id", "@container" : "@list" }, "class" : { "@type" : "@id" }, "ignoredProperties" : { "@type" : "@id", "@container" : "@list" }, "datatype" : { "@type" : "@id" }, "disjoint" : { "@type" : "@id" }, "equals" : { "@type" : "@id" }, "in" : { "@container" : "@list" }, "languageIn" : { "@container" : "@list" }, "lessThan" : { "@type" : "@id" }, "lessThanOrEquals" : { "@type" : "@id" }, "node" : { "@type" : "@id" }, "nodeKind" : { "@type" : "@id" }, "not" : { "@type" : "@id" }, "or" : { "@type" : "@id", "@container" : "@list" }, "property" : { "@type" : "@id" }, "qualifiedValueShape" : { "@type" : "@id" }, "xone" : { "@type" : "@id", "@container" : "@list" }, "sparql" : { "@type" : "@id" }, "derivedValues" : { "@type" : "@id" }, "group" : { "@type" : "@id" }, "returnType" : { "@type" : "@id" }, "resultAnnotation" : { "@type" : "@id" }, "annotationProperty" : { "@type" : "@id" }, "maxCount" : { "@type" : "xsd:integer" }, "maxLength" : { "@type" : "xsd:integer" }, "minCount" : { "@type" : "xsd:integer" }, "minLength" : { "@type" : "xsd:integer" }, "qualifiedMaxCount" : { "@type" : "xsd:integer" }, "qualifiedMinCount" : { "@type" : "xsd:integer" } }, "@graph" : [ { "@id" : "http://example.com/ns#PersonShape", "@type" : "NodeShape", "targetClass" : "http://example.com/ns#Person", "property" : [ { "path" : "http://example.com/ns#ssn", "datatype" : "xsd:string", "maxCount" : 1, "pattern" : "^\\d{3}-\\d{2}-\\d{4}$" }, { "path" : "http://example.com/ns#child", "class" : "http://example.com/ns#Person", "nodeKind" : "sh:IRI" }, { "comment" : "A person's parents are represented via ex:child used in the inverse direction.", "path" : { "inversePath" : "http://example.com/ns#child" }, "name" : "parent", "maxCount" : 2 } ], "closed" : true, "ignoredProperties" : [ "rdf:type" ] }, { "@id" : "http://example.com/ns#InvoiceShape", "@type" : "NodeShape", "property" : { "path" : "http://example.com/ns#customer", "class" : [ "http://example.com/ns#Customer", "http://example.com/ns#Person" ] } }, { "@id" : "http://example.com/ns#MultiplePatternsShape", "@type" : "NodeShape", "property" : [ { "path" : "http://example.com/ns#name", "pattern" : "^Start", "flags" : "i" }, { "path" : "http://example.com/ns#name", "pattern" : "End$" } ] }, { "@id" : "http://example.com/ns#TargetSubjectsOfExampleShape", "@type" : "NodeShape", "targetSubjectsOf" : "http://example.com/ns#knows" }, { "@id" : "http://example.com/ns#TargetObjectsOfExampleShape", "@type" : "NodeShape", "targetObjectsOf" : "http://example.com/ns#knows" }, { "@id" : "http://example.com/ns#MyShape", "@type" : "NodeShape", "targetNode" : "http://example.com/ns#MyInstance", "property" : [ { "path" : "http://example.com/ns#myProperty", "datatype" : "xsd:string", "minCount" : 1, "severity" : "sh:Warning" }, { "path" : "http://example.com/ns#myProperty", "maxLength" : 10, "message" : [ { "@language" : "en", "@value" : "Too many characters" }, { "@language" : "de", "@value" : "Zu viele Zeichen" } ] } ] }, { "@id" : "http://example.com/ns#ExampleNodeShapeWithPropertyShapes", "@type" : "NodeShape", "property" : [ { "path" : "http://example.com/ns#email", "name" : "e-mail", "description" : "We need at least one email value", "minCount" : 1 }, { "path" : { "@list" : [ "http://example.com/ns#knows", "http://example.com/ns#email" ] }, "name" : "Friend's e-mail", "description" : "We need at least one email for everyone you know", "minCount" : 1 } ] }, { "@id" : "http://example.com/ns#ExamplePropertyShape", "@type" : "PropertyShape", "description" : "We need at least one email value", "minCount" : 1, "path" : "http://example.com/ns#email" }, { "@id" : "http://example.com/ns#PersonFormShape", "@type" : "NodeShape", "property" : [ { "path" : "http://example.com/ns#firstName", "description" : "The person's given name(s)", "group" : "http://example.com/ns#NameGroup", "name" : "first name", "order" : 0 }, { "path" : "http://example.com/ns#lastName", "description" : "The person's last name", "group" : "http://example.com/ns#NameGroup", "name" : "last name", "order" : 1 }, { "path" : "http://example.com/ns#streetAddress", "description" : "The street address including number", "group" : "http://example.com/ns#AddressGroup", "name" : "street address", "order" : 11 }, { "path" : "http://example.com/ns#locality", "description" : "The suburb, city or town of the address", "group" : "http://example.com/ns#AddressGroup", "name" : "locality", "order" : 12 }, { "path" : "http://example.com/ns#postalCode", "description" : "The postal code of the locality", "group" : "http://example.com/ns#AddressGroup", "name" : [ "postal code", { "@language" : "en-us", "@value" : "zip code" } ], "order" : 13 } ] }, { "@id" : "http://example.com/ns#NameGroup", "@type" : "PropertyGroup", "rdfs:label" : "Name", "order" : 0 }, { "@id" : "http://example.com/ns#AddressGroup", "@type" : "PropertyGroup", "rdfs:label" : "Address", "order" : 1 } ] }