# -*- mode: n3; outline-regexp: "[#]+ "; eval: (outline-minor-mode); -*-
# handy bits from outline mode:
#   C-c @ C-l	hide-leaves - on prefixes, entries, definitions
#   C-c @ C-s	show-subtree - on anything you're hacking
#  Note that incremental search opens leaves for the duration of the search.

# prefixes
@base <https://raw.githubusercontent.com/shexSpec/shexTest/master/validation/manifest> .
@prefix rdf:    <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs:   <http://www.w3.org/2000/01/rdf-schema#> .
@prefix mf:     <http://www.w3.org/2001/sw/DataAccess/tests/test-manifest#> .
@prefix sht:     <http://www.w3.org/ns/shacl/test-suite#> .
@prefix prov:   <http://www.w3.org/ns/prov#> .

 # TODO:
 #   focus* on empty.ttl
 #   ../schemas/1IRI_with_all_punctuationdot.shex
 #   ../schemas/1IRI_with_UCHAR.1dot.shex
 #   ../schemas/1val1STRING_LITERAL2.shex
 #   ../schemas/1val1STRING_LITERAL2_with_LANGTAG.shex
 #   ../schemas/1val1STRING_LITERAL2_with_subtag.shex
 #   ../schemas/1val1STRING_LITERAL_LONG1.shex
 #   ../schemas/1val1STRING_LITERAL_LONG2.shex
 #   ../schemas/1val1STRING_LITERAL_LONG2_with_LANGTAG.shex
 #   ../schemas/1val1STRING_LITERAL_LONG2_with_subtag.shex
 #   repeated OR
 #   1dotRefOR3 on..
 # 1IRIInline0, focusbnode0ORfocusPattern0
 # <#1dotAND1dotAND1dot>, <#open1dotAND1dotcloseAND1dot>, <#1dotANDopen1dotAND1dotclose>

 # 1val1dotMinuslanguage3.shex - 1val1dotMinusiri3.shex
 #         <#1val1dotMinusiri3_pass>
 #         <#1val1dotMinusiri3_v1>
 #         <#1val1dotMinusiri3_v2>
 #         <#1val1dotMinusiri3_v3>
 # 1val1dotMinuslanguageStem3.shex - 1val1dotMinusiriStem3.shex
 #         <#1val1dotMinusiriStem3_pass>
 #         <#1val1dotMinusiriStem3_v1>
 #         <#1val1dotMinusiriStem3_v2>
 #         <#1val1dotMinusiriStem3_v3>
 #         <#1val1dotMinusiriStem3_v1a>
 # 1val1literalAtlanguageStem.shex -
 # 1val1literalAtlanguageStemMinusliteralAtlanguage3 -


# entries
<> a mf:Manifest ;
    rdfs:comment "ShEx validation tests" ;
    mf:entries
    (
## empty
        <#0_empty>
        <#0_other>
        <#0_otherbnode>

## triple pattern
        <#1dot_fail-empty>
        <#1dot-base_fail-empty>
        <#1dot_fail-missing>
        <#1dot-base_fail-missing>
        <#1dot_pass-noOthers> <#1dot-base_pass-noOthers> <#1dotSemi_pass-noOthers> <#1dotLNex_pass-noOthers> <#1dotNS2_pass-noOthers> <#1dotNS2SingleComment_pass-noOthers> <#1dotLNexSingleComment_pass-noOthers> <#1dotLNdefault_pass-noOthers> <#1dotNSdefault_pass-noOthers> <#1dotLNex-HYPHEN_MINUS_pass-noOthers>
        <#1dot_pass-others_lexicallyEarlier>
        <#1dot_pass-others_lexicallyLater>
        <#bnode1dot_fail-missing>
        <#bnode1dot_pass-others_lexicallyEarlier>
        <#1inversedot_fail-empty>
        <#1inversedot_fail-missing>
        <#1inversedot_pass-noOthers>
        <#1inversedot_pass-over_lexicallyEarlier>
        <#1inversedot_pass-over_lexicallyLater>
        <#1Adot_pass>

## node kind
        <#1iri_pass-iri>
        <#1iri_fail-bnode>
        <#1iri_fail-literal>
        <#1bnode_fail-iri>
        <#1bnode_pass-bnode>
        <#1bnode_fail-literal>
        <#1literal_fail-iri>
        <#1literal_fail-bnode>
        <#1literal_pass-literal>
        <#1nonliteral_pass-iri>
        <#1focusnonLiteralLength-nonLiteralLength_fail-short>
        <#1focusnonLiteralLength-nonLiteralLength_pass>
        <#1nonliteral_pass-bnode>
        <#1nonliteral_fail-literal>

## datatype
        <#1datatype_missing>
        <#1datatype_nonLiteral>
        <#1datatype_langString>
        <#1datatype_wrongDatatype>
        <#1datatype_pass>
        <#1datatypelangString_pass>

### lexical form
        <#integer-n1_pass>
        <#integer-0_pass>
        <#integer-1_pass>
        <#integer-p1_pass>
        <#integer-empty_fail>
        <#integer-n1.0_fail>
        <#integer-p1.0_fail>
        <#integer-1E0_fail>
        <#integer-NaN_fail>
        <#integer-INF_fail>
        <#decimal-n1_pass>
        <#decimal-0_pass>
        <#decimal-1_pass>
        <#decimal-p1_pass>
        <#decimal-n1.0_pass>
        <#decimal-p1.0_pass>
        <#decimal-empty_fail>
        <#decimal-1E0_fail>
        <#decimal-NaN_fail>
        <#decimal-INF_fail>
        <#float-n1_pass>
        <#float-0_pass>
        <#float-1_pass>
        <#float-p1_pass>
        <#float-n1.0_pass>
        <#float-p1.0_pass>
        <#float-1elowercase0_pass>
        <#float-1E0_pass>
        <#float-NaN_pass>
        <#float-INF_pass>
        <#float-nINF_pass>
        <#float-empty_fail>
        <#float-pINF_fail>
        <#double-n1_pass>
        <#double-0_pass>
        <#double-1_pass>
        <#double-p1_pass>
        <#double-n1.0_pass>
        <#double-p1.0_pass>
        <#double-1E0_pass>
        <#double-1e0_pass>
        <#double-NaN_pass>
        <#double-INF_pass>
        <#double-nINF_pass>
        <#double-empty_fail>
        <#double-pINF_fail>
        <#nonPositiveInteger-n1_pass>
        <#nonPositiveInteger-0_pass>
        <#nonPositiveInteger-p0_pass>
        <#nonPositiveInteger-n0_pass>
        <#nonPositiveInteger-1_fail>
        <#nonPositiveInteger-p1_fail>
        <#nonPositiveInteger-1a_fail>
        <#nonPositiveInteger-a1_fail>
        <#negativeInteger-n1_pass>
        <#negativeInteger-0_fail>
        <#negativeInteger-p0_fail>
        <#negativeInteger-n0_fail>
        <#negativeInteger-1_fail>
        <#long-n1_pass>
        <#long-0_pass>
        <#long-1_pass>
        <#long-p1_pass>
        <#int-n1_pass>
        <#int-0_pass>
        <#int-1_pass>
        <#int-p1_pass>
        <#short-n32768_pass>
        <#short-0_pass>
        <#short-32767_pass>
        <#short-n32769_fail>
        <#short-32768_fail>
        <#byte-n128_pass>
        <#byte-0_pass>
        <#byte-127_pass>
        <#byte-empty_fail>
        <#byte-n129_fail>
        <#byte-128_fail>
        <#nonNegativeInteger-0_pass>
        <#nonNegativeInteger-n0_pass>
        <#nonNegativeInteger-p0_pass>
        <#nonNegativeInteger-1_pass>
        <#nonNegativeInteger-p1_pass>
        <#nonNegativeInteger-n1_fail>
        <#unsignedLong-0_pass>
        <#unsignedLong-1_pass>
        <#unsignedLong-n1_fail>
        <#unsignedInt-0_pass>
        <#unsignedInt-1_pass>
        <#unsignedInt-n1_fail>
        <#unsignedShort-0_pass>
        <#unsignedShort-65535_pass>
        <#unsignedShort-n1_fail>
        <#unsignedShort-65536_fail>
        <#unsignedByte-0_pass>
        <#unsignedByte-255_pass>
        <#unsignedByte-n1_fail>
        <#unsignedByte-256_fail>
        <#positiveInteger-1_pass>
        <#positiveInteger-n1_fail>
        <#positiveInteger-0_fail>
        <#string-empty_pass>
        <#string-a_pass>
        <#string-0_pass>
        <#boolean-true_pass>
        <#boolean-false_pass>
        <#boolean-0_pass>
        <#boolean-1_pass>
        <#boolean-empty_fail>
        <#boolean-TRUE_fail>
        <#boolean-FALSE_fail>
        <#boolean-tRuE_fail>
        <#boolean-fAlSe_fail>
        <#boolean-n1_fail>
        <#boolean-2_fail>
        <#boolean-10_fail>
        <#boolean-01_fail>
        <#dateTime-dt_pass>
        <#dateTime-empty_fail>
        <#dateTime-dT_fail>
        <#dateTime-d_fail>

## cardinality
###   dot cardinality
        <#1card2_fail0>
        <#1card2_fail1>
        <#1card2_pass2>
        <#1card2_fail3>
        <#1card25_fail0>
        <#1card25_fail1>
        <#1card25_pass2>
        <#1card25_pass3>
        <#1card25_pass4>
        <#1card25_pass5>
        <#1card25_fail6>
        <#1card2Star_fail0>
        <#1card2Star_fail1>
        <#1card2Star_pass2>
        <#1card2Star_pass3>
        <#1card2Star_pass6>
        # 1card2blank_... same as 1card2Star
        <#1cardOpt_pass0>
        <#1cardOpt_pass1>
        <#1cardOpt_fail2>
        <#1cardOpt_pass6>
        <#1cardPlus_fail0>
        <#1cardPlus_pass1>
        <#1cardPlus_pass2>
        <#1cardPlus_pass6>
        <#1cardStar_pass0>
        <#1cardStar_pass1>
        <#1cardStar_pass2>
        <#1cardStar_pass6>

###   non-dot cardinality
        <#1literalPlus_Is1_Ip1_La,Io1>

## shape reference
        <#1dotRef1_referent,referrer>
        <#1dotRef1_referrer,referent>
        <#1dotRef1_missingReferent>
        <#1dotRef1_selfReference>
        <#1dotRef1_missingSelfReference>
        <#1dotRef1_overReferrer>
        <#1dotRef1_overReferrer,overReferent>
        <#1dotRef1_overMatchesReferent>
        <#1refbnode1_pass>
        <#1refbnode1_fail-g1-arc>
        <#1refbnode1_fail-g2-arc>
        <#3circRefS123>
        <#3circRefPlus1_pass-open>
        <#3circRefPlus1_pass-recursiveData>
        <#1iriRef1_pass-iri>
        <#1iriRef1_fail-bnode>
        <#1bnodeRef1_fail-iri>
        <#1bnodeRef1_pass-bnode>

## inline
        <#1dotInline1_referrer,referent>
        <#1dotInline1_missingReferent>
        <#1dotInline1_selfReference>
        <#1dotInline1_missingSelfReference>
        <#1dotInline1_overReferrer>
        <#1dotInline1_overReferrer,overReferent>
        <#1dotInline1_overMatchesReferent>

## term equivalence
###   iri equivalence
        <#1val1IRIREF_pass>             # <S> { <p1> [<v1>] }
        <#1val1IRIREF_v2>
        <#1val1IRIREF_v1v2>

###   literal equivalence
####     lexical form
        <#1val1STRING_LITERAL1_pass>
        <#1val1STRING_LITERAL1_fail>
        <#1val1STRING_LITERAL1_with_all_controls_pass>
        <#1val1STRING_LITERAL1_with_all_controls_fail>
        <#1val1STRING_LITERAL1_with_all_punctuation_pass>
        <#1val1STRING_LITERAL1_with_all_punctuation_fail>
        <#1val1STRING_LITERAL1_with_ascii_boundaries_pass>
        <#1val1STRING_LITERAL1_with_ascii_boundaries_fail>
        <#1val1STRING_LITERAL1_with_UTF8_boundaries_pass>
        <#1val1STRING_LITERAL1_with_UTF8_boundaries_fail>
        <#1val1STRING_LITERAL1_with_ECHAR_escapes_pass>
        <#1val1STRING_LITERAL1_with_ECHAR_escapes_fail>

####     numeric equivalence
        <#1val1INTEGER_pass>            # <S> { <p1> [0] }
        <#1val1INTEGER_00>
        <#1val1DECIMAL_00>
        <#1val1DECIMAL_pass>
        <#1val1DECIMAL_Lab>
        <#1val1INTEGER_Lab>
        <#1val1DOUBLE_pass>             # <S> { <p1> [0E0] }
        <#1val1DOUBLE_0_0e0>
        # 1val1DOUBLElowercase_... same as 1val1DOUBLE
        # @@ eliminate as duplicate?
        <#1val1DOUBLElowercase_pass>    # <S> { <p1> [0e0] }
        <#1val1DOUBLElowercase_fail-0E0>
        <#1val1DOUBLElowercase_0_0e0>

####     language tag equivalence
        <#1val1LANGTAG_pass>            # <S> { <p1> ['ab'@en-fr] }
        <#1val1LANGTAG_Lab>
        <#1val1LANGTAG_LabLTen>
        <#1val1LANGTAG_LabLTen-fr-jura>
        <#1val1LANGTAG_LaLTen-fr>

####     datatyped literal equivalence
        <#1val1IRIREFDatatype_pass>    # <S> { <p1> ['ab'^^my:bloodType] }
        <#1val1IRIREFDatatype_Lab>
        <#1val1IRIREFDatatype_LabDTbloodType999>
        <#1val1IRIREFDatatype_LaDTbloodType>
        # 1val1LNDatatype_... same as 1val1IRIREFDatatype except prefixes

####     boolean equivalence
        <#1val1true_pass>               # <S> { <p1> [true] }
        <#1val1true_false>
        <#1val1true_ab>
        <#1val1false_pass>              # <S> { <p1> [false] }
        <#1val1false_true>
        <#1val1false_ab>

## facet
###   length
        <#1datatypeLength_fail-missing>
        <#1datatypeLength_fail-wrongDatatype>
        <#1datatypeLength_fail-short>
        <#1datatypeLength_pass>
        <#1datatypeLength_fail-long>
###   fractionDigits
        <#1literalFractiondigits_pass-decimal-short>
        # <#1literalFractiondigitsxsd-integer_fail-decimal-short> # for numericFacet ::= (numericFacet | numericLength) INTEGER (numericLiteral | string '^^' datatype )
        <#1literalFractiondigits_pass-decimal-equal>
        #  <#1literalFractiondigitsxsd-integer_pass-decimal-equal> # for numericFacet ::= (numericFacet | numericLength) INTEGER (numericLiteral | string '^^' datatype )
        <#1literalFractiondigits_fail-decimal-long>
        <#1literalFractiondigits_pass-decimal-equalLead>
        <#1literalFractiondigits_fail-decimal-longLead>
        <#1literalFractiondigits_pass-decimal-equalTrail>
        <#1literalFractiondigits_fail-decimal-longTrail>
        <#1literalFractiondigits_pass-decimal-equalLeadTrail>
        <#1literalFractiondigits_fail-decimal-longLeadTrail>
        <#1literalFractiondigits_pass-integer-short>
        <#1literalFractiondigits_pass-xsd_integer-short>
        <#1literalFractiondigits_fail-float-equal>
        <#1literalFractiondigits_fail-double-equal>
        <#1literalFractiondigits_fail-malformedxsd_decimal-1_23ab>
        <#1literalFractiondigits_fail-malformedxsd_decimal-1_2345ab>
        <#1literalFractiondigits_fail-malformedxsd_integer-1_2345>
        <#1literalFractiondigits_fail-iri>
        <#1literalFractiondigits_fail-bnode>
###   totalDigits
        <#1literalTotaldigits_pass-decimal-short>
        # <#1literalTotaldigitsxsd-integer_fail-decimal-short> # for numericFacet ::= (numericFacet | numericLength) INTEGER (numericLiteral | string '^^' datatype )
        <#1literalTotaldigits_pass-decimal-equal>
        #  <#1literalTotaldigitsxsd-integer_pass-decimal-equal> # for numericFacet ::= (numericFacet | numericLength) INTEGER (numericLiteral | string '^^' datatype )
        <#1literalTotaldigits_fail-decimal-long>
        <#1literalTotaldigits_pass-decimal-equalLead>
        <#1literalTotaldigits_fail-decimal-longLead>
        <#1literalTotaldigits_pass-decimal-equalTrail>
        <#1literalTotaldigits_fail-decimal-longTrail>
        <#1literalTotaldigits_pass-decimal-equalLeadTrail>
        <#1literalTotaldigits_fail-decimal-longLeadTrail>
        <#1literalTotaldigits_pass-integer-equal>
        <#1literalTotaldigits_pass-xsd_integer-short>
        <#1literalTotaldigits_pass-integer-equalLead>
        <#1literalTotaldigits_fail-integer-longLead>
        <#1literalTotaldigits_pass-integer-equalTrail>
        <#1literalTotaldigits_fail-integer-longTrail>
        <#1literalTotaldigits_pass-integer-equalLeadTrail>
        <#1literalTotaldigits_fail-integer-longLeadTrail>
        <#1literalTotaldigits_pass-byte-short>
        <#1literalTotaldigits_pass-byte-equal>
        <#1literalTotaldigits_fail-byte-long>
        <#1literalTotaldigits_fail-float-equal>
        <#1literalTotaldigits_fail-double-equal>
        <#1literalTotaldigits_fail-malformedxsd_decimal-1_23ab>
        <#1literalTotaldigits_fail-malformedxsd_decimal-1_2345ab>
        <#1literalTotaldigits_fail-malformedxsd_integer-1_2345>
        <#1literalTotaldigits_fail-iri>
        <#1literalTotaldigits_fail-bnode>
###   comparators
####     manual
        <#1literalMinexclusiveINTEGER_fail-low>
        <#1literalMinexclusiveINTEGER_pass-equal>
        <#1literalMinexclusiveINTEGER_pass-high>
        <#1literalMininclusiveINTEGER_fail-low>
        <#1literalMininclusiveINTEGER_pass-equal>
        <#1literalMininclusiveINTEGER_pass-high>
        <#1literalMaxexclusiveINTEGER_pass-low>
        <#1literalMaxexclusiveINTEGER_fail-equal>
        <#1literalMaxexclusiveINTEGER_fail-high>
        <#1literalMaxinclusiveINTEGER_pass-low>
        <#1literalMaxinclusiveINTEGER_pass-equal>
        <#1literalMaxinclusiveINTEGER_fail-high>
        <#1floatMininclusiveINTEGER_fail-low>
        <#1floatMininclusiveINTEGER_pass-equalLead>
        <#1floatMininclusiveINTEGER_pass-equalTrail>
        <#1floatMininclusiveINTEGER_pass-high>
        <#1integerMininclusiveINTEGER_fail-low>
        <#1integerMininclusiveINTEGER_pass-equal>
        <#1integerMininclusiveINTEGER_pass-equalLead>
        <#1integerMininclusiveINTEGER_pass-high>
        <#1floatMininclusiveINTEGERLead_pass-equal>
####     generated
        <#1integerMininclusiveINTEGER_fail-integer-low>
        <#1integerMininclusiveINTEGER_pass-integer-equal>
        <#1integerMininclusiveINTEGER_pass-integer-high>
        <#1integerMininclusiveINTEGERLead_fail-integer-low>
        <#1integerMininclusiveINTEGERLead_pass-integer-equal>
        <#1integerMininclusiveINTEGERLead_pass-integer-equalLead>
        <#1integerMininclusiveINTEGERLead_pass-integer-high>
        <#1integerMininclusiveDECIMAL_pass-integer-equal>
        <#1integerMininclusiveDECIMALLeadTrail_fail-integer-low>
        <#1integerMininclusiveDECIMALLeadTrail_pass-integer-equal>
        <#1integerMininclusiveDECIMALLeadTrail_pass-integer-equalLead>
        <#1integerMininclusiveDECIMALLeadTrail_pass-integer-high>
        <#1integerMininclusiveDECIMALint_fail-integer-low>
        <#1integerMininclusiveDECIMALint_pass-integer-equal>
        <#1integerMininclusiveDECIMALint_pass-integer-high>
        <#1integerMininclusiveDECIMALintLeadTrail_fail-integer-low>
        <#1integerMininclusiveDECIMALintLeadTrail_pass-integer-equal>
        <#1integerMininclusiveDECIMALintLeadTrail_pass-integer-equalLead>
        <#1integerMininclusiveDECIMALintLeadTrail_pass-integer-high>
        <#1integerMininclusiveDOUBLE_pass-integer-equal>
        <#1integerMininclusiveDOUBLELeadTrail_fail-integer-low>
        <#1integerMininclusiveDOUBLELeadTrail_pass-integer-equal>
        <#1integerMininclusiveDOUBLELeadTrail_pass-integer-equalLead>
        <#1integerMininclusiveDOUBLELeadTrail_pass-integer-high>
        <#1integerMininclusiveDOUBLEint_pass-integer-equal>
        <#1integerMininclusiveDOUBLEintLeadTrail_fail-integer-low>
        <#1integerMininclusiveDOUBLEintLeadTrail_pass-integer-equal>
        <#1integerMininclusiveDOUBLEintLeadTrail_pass-integer-equalLead>
        <#1integerMininclusiveDOUBLEintLeadTrail_pass-integer-high>
        <#1integerMininclusiveINTEGER_fail-decimal-equal>
        <#1integerMininclusiveINTEGER_fail-float-equal>
        <#1integerMininclusiveINTEGER_fail-double-equal>
        <#1integerMininclusiveINTEGER_fail-dateTime-equal>
        <#1integerMininclusiveINTEGER_fail-string-equal>
        <#1integerMininclusiveINTEGER_fail-byte-equal>
        <#1decimalMininclusiveINTEGER_fail-decimal-low>
        <#1decimalMininclusiveINTEGER_pass-decimal-high>
        <#1decimalMininclusiveINTEGERLead_fail-decimal-low>
        <#1decimalMininclusiveINTEGERLead_pass-decimal-high>
        <#1decimalMininclusiveDECIMAL_fail-decimal-low>
        <#1decimalMininclusiveDECIMAL_pass-decimal-equal>
        <#1decimalMininclusiveDECIMAL_pass-decimal-equalLeadTrail>
        <#1decimalMininclusiveDECIMAL_pass-decimal-high>
        <#1decimalMininclusiveDECIMALLeadTrail_fail-decimal-low>
        <#1decimalMininclusiveDECIMALLeadTrail_pass-decimal-equal>
        <#1decimalMininclusiveDECIMALLeadTrail_pass-decimal-equalLeadTrail>
        <#1decimalMininclusiveDECIMALLeadTrail_pass-decimal-high>
        <#1decimalMininclusiveDECIMALintLeadTrail_fail-decimal-low>
        <#1decimalMininclusiveDECIMALintLeadTrail_pass-decimal-high>
        <#1decimalMininclusiveDOUBLE_fail-decimal-low>
        <#1decimalMininclusiveDOUBLE_pass-decimal-equal>
        <#1decimalMininclusiveDOUBLE_pass-decimal-equalLeadTrail>
        <#1decimalMininclusiveDOUBLELeadTrail_fail-decimal-low>
        <#1decimalMininclusiveDOUBLELeadTrail_pass-decimal-equal>
        <#1decimalMininclusiveDOUBLELeadTrail_pass-decimal-equalLeadTrail>
        <#1decimalMininclusiveDOUBLELeadTrail_pass-decimal-high>
        <#1decimalMininclusiveDOUBLEintLeadTrail_fail-decimal-low>
        <#1decimalMininclusiveDOUBLEintLeadTrail_pass-decimal-high>
        <#1decimalMininclusiveDECIMAL_fail-float-equal>
        <#1decimalMininclusiveDECIMAL_fail-double-equal>
        <#1floatMininclusiveINTEGERLead_fail-float-low>
        <#1floatMininclusiveINTEGERLead_pass-float-high>
        <#1floatMininclusiveDECIMAL_pass-float-equal>
        <#1floatMininclusiveDECIMAL_pass-float-equalLeadTrail>
        <#1floatMininclusiveDECIMALLeadTrail_fail-float-low>
        <#1floatMininclusiveDECIMALLeadTrail_pass-float-equal>
        <#1floatMininclusiveDECIMALLeadTrail_pass-float-equalLeadTrail>
        <#1floatMininclusiveDECIMALLeadTrail_pass-float-high>
        <#1floatMininclusiveDECIMALintLeadTrail_fail-float-low>
        <#1floatMininclusiveDECIMALintLeadTrail_pass-float-high>
        <#1floatMininclusiveDOUBLE_pass-float-equal>
        <#1floatMininclusiveDOUBLE_pass-float-equalLeadTrail>
        <#1floatMininclusiveDOUBLELeadTrail_fail-float-low>
        <#1floatMininclusiveDOUBLELeadTrail_pass-float-equal>
        <#1floatMininclusiveDOUBLELeadTrail_pass-float-equalLeadTrail>
        <#1floatMininclusiveDOUBLELeadTrail_pass-float-high>
        <#1floatMininclusiveDOUBLEintLeadTrail_fail-float-low>
        <#1floatMininclusiveDOUBLEintLeadTrail_pass-float-high>
        <#1doubleMininclusiveINTEGERLead_fail-double-low>
        <#1doubleMininclusiveINTEGERLead_pass-double-high>
        <#1doubleMininclusiveDECIMAL_pass-double-equal>
        <#1doubleMininclusiveDECIMAL_pass-double-equalLeadTrail>
        <#1doubleMininclusiveDECIMALLeadTrail_fail-double-low>
        <#1doubleMininclusiveDECIMALLeadTrail_pass-double-equal>
        <#1doubleMininclusiveDECIMALLeadTrail_pass-double-equalLeadTrail>
        <#1doubleMininclusiveDECIMALLeadTrail_pass-double-high>
        <#1doubleMininclusiveDECIMALintLeadTrail_fail-double-low>
        <#1doubleMininclusiveDECIMALintLeadTrail_pass-double-high>
        <#1doubleMininclusiveDOUBLE_pass-double-equal>
        <#1doubleMininclusiveDOUBLE_pass-double-equalLeadTrail>
        <#1doubleMininclusiveDOUBLELeadTrail_fail-double-low>
        <#1doubleMininclusiveDOUBLELeadTrail_pass-double-equal>
        <#1doubleMininclusiveDOUBLELeadTrail_pass-double-equalLeadTrail>
        <#1doubleMininclusiveDOUBLELeadTrail_pass-double-high>
        <#1doubleMininclusiveDOUBLEintLeadTrail_fail-double-low>
        <#1doubleMininclusiveDOUBLEintLeadTrail_pass-double-high>
        <#1integerMinexclusiveINTEGER_fail-integer-low>
        <#1integerMinexclusiveINTEGER_fail-integer-equal>
        <#1integerMinexclusiveINTEGER_pass-integer-high>
        <#1integerMinexclusiveDECIMALint_fail-integer-low>
        <#1integerMinexclusiveDECIMALint_fail-integer-equal>
        <#1integerMinexclusiveDECIMALint_pass-integer-high>
        <#1integerMinexclusiveDOUBLEint_fail-integer-low>
        <#1integerMinexclusiveDOUBLEint_fail-integer-equal>
        <#1integerMinexclusiveDOUBLEint_pass-integer-high>
        <#1decimalMinexclusiveINTEGER_fail-decimal-low>
        <#1decimalMinexclusiveINTEGER_pass-decimal-high>
        <#1decimalMinexclusiveDECIMAL_fail-decimal-low>
        <#1decimalMinexclusiveDECIMAL_fail-decimal-equal>
        <#1decimalMinexclusiveDECIMAL_pass-decimal-high>
        <#1decimalMinexclusiveDOUBLE_fail-decimal-low>
        <#1decimalMinexclusiveDOUBLE_fail-decimal-equal>
        <#1decimalMinexclusiveDOUBLE_pass-decimal-high>
        <#1decimalMinexclusiveDECIMAL_fail-float-equal>
        <#1decimalMinexclusiveDECIMAL_fail-double-equal>
        <#1floatMinexclusiveINTEGER_fail-float-low>
        <#1floatMinexclusiveINTEGER_pass-float-high>
        <#1floatMinexclusiveDECIMAL_fail-float-low>
        <#1floatMinexclusiveDECIMAL_fail-float-equal>
        <#1floatMinexclusiveDECIMAL_pass-float-high>
        <#1floatMinexclusiveDOUBLE_fail-float-low>
        <#1floatMinexclusiveDOUBLE_fail-float-equal>
        <#1floatMinexclusiveDOUBLE_pass-float-high>
        <#1doubleMinexclusiveINTEGER_fail-double-low>
        <#1doubleMinexclusiveINTEGER_pass-double-high>
        <#1doubleMinexclusiveDECIMAL_fail-double-low>
        <#1doubleMinexclusiveDECIMAL_fail-double-equal>
        <#1doubleMinexclusiveDECIMAL_pass-double-high>
        <#1doubleMinexclusiveDOUBLE_fail-double-low>
        <#1doubleMinexclusiveDOUBLE_fail-double-equal>
        <#1doubleMinexclusiveDOUBLE_pass-double-high>
        <#1doubleMinexclusiveDECIMAL_fail-float-equal>
        <#1integerMaxinclusiveINTEGER_pass-integer-low>
        <#1integerMaxinclusiveINTEGER_pass-integer-equal>
        <#1integerMaxinclusiveINTEGER_fail-integer-high>
        <#1integerMaxinclusiveDECIMALint_pass-integer-low>
        <#1integerMaxinclusiveDECIMALint_pass-integer-equal>
        <#1integerMaxinclusiveDECIMALint_fail-integer-high>
        <#1integerMaxinclusiveDOUBLEint_pass-integer-low>
        <#1integerMaxinclusiveDOUBLEint_pass-integer-equal>
        <#1integerMaxinclusiveDOUBLEint_fail-integer-high>
        <#1decimalMaxinclusiveINTEGER_pass-decimal-low>
        <#1decimalMaxinclusiveINTEGER_fail-decimal-high>
        <#1decimalMaxinclusiveDECIMAL_pass-decimal-low>
        <#1decimalMaxinclusiveDECIMAL_pass-decimal-equal>
        <#1decimalMaxinclusiveDECIMAL_fail-decimal-high>
        <#1decimalMaxinclusiveDOUBLE_pass-decimal-low>
        <#1decimalMaxinclusiveDOUBLE_pass-decimal-equal>
        <#1decimalMaxinclusiveDOUBLE_fail-decimal-high>
        <#1decimalMaxinclusiveDECIMAL_fail-float-equal>
        <#1decimalMaxinclusiveDECIMAL_fail-double-equal>
        <#1floatMaxinclusiveINTEGER_pass-float-low>
        <#1floatMaxinclusiveINTEGER_fail-float-high>
        <#1floatMaxinclusiveDECIMAL_pass-float-low>
        <#1floatMaxinclusiveDECIMAL_pass-float-equal>
        <#1floatMaxinclusiveDECIMAL_fail-float-high>
        <#1floatMaxinclusiveDOUBLE_pass-float-low>
        <#1floatMaxinclusiveDOUBLE_pass-float-equal>
        <#1floatMaxinclusiveDOUBLE_fail-float-high>
        <#1doubleMaxinclusiveINTEGER_pass-double-low>
        <#1doubleMaxinclusiveINTEGER_fail-double-high>
        <#1doubleMaxinclusiveDECIMAL_pass-double-low>
        <#1doubleMaxinclusiveDECIMAL_pass-double-equal>
        <#1doubleMaxinclusiveDECIMAL_fail-double-high>
        <#1doubleMaxinclusiveDOUBLE_pass-double-low>
        <#1doubleMaxinclusiveDOUBLE_pass-double-equal>
        <#1doubleMaxinclusiveDOUBLE_fail-double-high>
        <#1doubleMaxinclusiveDECIMAL_fail-float-equal>
        <#1integerMaxexclusiveINTEGER_pass-integer-low>
        <#1integerMaxexclusiveINTEGER_fail-integer-equal>
        <#1integerMaxexclusiveINTEGER_fail-integer-high>
        <#1integerMaxexclusiveDECIMALint_pass-integer-low>
        <#1integerMaxexclusiveDECIMALint_fail-integer-equal>
        <#1integerMaxexclusiveDECIMALint_fail-integer-high>
        <#1integerMaxexclusiveDOUBLEint_pass-integer-low>
        <#1integerMaxexclusiveDOUBLEint_fail-integer-equal>
        <#1integerMaxexclusiveDOUBLEint_fail-integer-high>
        <#1decimalMaxexclusiveINTEGER_pass-decimal-low>
        <#1decimalMaxexclusiveINTEGER_fail-decimal-high>
        <#1decimalMaxexclusiveDECIMAL_pass-decimal-low>
        <#1decimalMaxexclusiveDECIMAL_fail-decimal-equal>
        <#1decimalMaxexclusiveDECIMAL_fail-decimal-high>
        <#1decimalMaxexclusiveDOUBLE_pass-decimal-low>
        <#1decimalMaxexclusiveDOUBLE_fail-decimal-equal>
        <#1decimalMaxexclusiveDOUBLE_fail-decimal-high>
        <#1decimalMaxexclusiveDECIMAL_fail-float-equal>
        <#1decimalMaxexclusiveDECIMAL_fail-double-equal>
        <#1decimalMaxexclusivexsd-byte_fail-byte-equal>
        <#1floatMaxexclusiveINTEGER_pass-float-low>
        <#1floatMaxexclusiveINTEGER_fail-float-high>
        <#1floatMaxexclusiveDECIMAL_pass-float-low>
        <#1floatMaxexclusiveDECIMAL_fail-float-high>
        <#1floatMaxexclusiveDOUBLE_pass-float-low>
        <#1floatMaxexclusiveDOUBLE_fail-float-high>
        <#1doubleMaxexclusiveINTEGER_pass-double-low>
        <#1doubleMaxexclusiveINTEGER_fail-double-equal>
        <#1doubleMaxexclusiveINTEGER_fail-double-high>
        <#1doubleMaxexclusiveINTEGERLead_fail-double-equal>
        <#1doubleMaxexclusiveDECIMAL_pass-double-low>
        <#1doubleMaxexclusiveDECIMAL_fail-double-equal>
        <#1doubleMaxexclusiveDECIMAL_fail-double-high>
        <#1doubleMaxexclusiveDECIMALLeadTrail_fail-double-equal>
        <#1doubleMaxexclusiveDECIMALint_fail-double-equal>
        <#1doubleMaxexclusiveDECIMALintLeadTrail_fail-double-equal>
        <#1doubleMaxexclusiveDOUBLE_pass-double-low>
        <#1doubleMaxexclusiveDOUBLE_fail-double-equal>
        <#1doubleMaxexclusiveDOUBLE_fail-double-high>
        <#1doubleMaxexclusiveDOUBLELeadTrail_fail-double-equal>
        <#1doubleMaxexclusiveDOUBLEint_fail-double-equal>
        <#1doubleMaxexclusiveDOUBLEintLeadTrail_fail-double-equal>
###   lengths
        <#1Length_fail-lit-short>
        <#1Length_pass-lit-equal>
        <#1Length_fail-lit-long>
        <#1literalLength_fail-lit-short>
        <#1literalLength_pass-lit-equal>
        <#1literalLength_fail-lit-long>
        <#1literalLength_fail-iri-equal>
        <#1literalLength_fail-bnode-equal>
        <#1iriLength_fail-iri-short>
        <#1iriLength_pass-iri-equal>
        <#1iriLength_fail-iri-long>
        <#1iriLength_fail-lit-equal>
        <#1iriLength_fail-bnode-equal>
        <#1iriRefLength1_fail-iri-short>
        <#1iriRefLength1_pass-iri-equal>
        <#1iriRefLength1_fail-iri-long>
        <#1iriRefLength1_fail-lit-equal>
        <#1iriRefLength1_fail-bnode-equal>
        <#1bnodeLength_fail-bnode-short>
        <#1bnodeLength_pass-bnode-equal>
        <#1bnodeLength_fail-bnode-long>
        <#1bnodeLength_fail-lit-equal>
        <#1bnodeLength_fail-iri-equal>
        <#1nonliteralLength_fail-iri-short>
        <#1nonliteralLength_pass-iri-equal>
        <#1nonliteralLength_fail-iri-long>
        <#1nonliteralLength_fail-lit-equal>
        <#1nonliteralLength_fail-bnode-short>
        <#1nonliteralLength_pass-bnode-equal>
        <#1nonliteralLength_fail-bnode-long>
        <#1literalMinlength_fail-lit-short>
        <#1literalMinlength_pass-lit-equal>
        <#1literalMinlength_pass-lit-long>
        <#1iriMinlength_fail-iri-short>
        <#1iriMinlength_pass-iri-equal>
        <#1iriMinlength_pass-iri-long>
        <#1bnodeMinlength_fail-bnode-short>
        <#1bnodeMinlength_pass-bnode-equal>
        <#1bnodeMinlength_pass-bnode-long>
        <#1nonliteralMinlength_fail-iri-short>
        <#1nonliteralMinlength_pass-iri-equal>
        <#1nonliteralMinlength_pass-iri-long>
        <#1nonliteralMinlength_fail-bnode-short>
        <#1nonliteralMinlength_pass-bnode-equal>
        <#1nonliteralMinlength_pass-bnode-long>
        <#1literalMaxlength_pass-lit-short>
        <#1literalMaxlength_pass-lit-equal>
        <#1literalMaxlength_fail-lit-long>
        <#1iriMaxlength_pass-iri-short>
        <#1iriMaxlength_pass-iri-equal>
        <#1iriMaxlength_fail-iri-long>
        <#1bnodeMaxlength_pass-bnode-short>
        <#1bnodeMaxlength_pass-bnode-equal>
        <#1bnodeMaxlength_fail-bnode-long>
        <#1nonliteralMaxlength_pass-iri-short>
        <#1nonliteralMaxlength_pass-iri-equal>
        <#1nonliteralMaxlength_fail-iri-long>
        <#1nonliteralMaxlength_pass-bnode-short>
        <#1nonliteralMaxlength_pass-bnode-equal>
        <#1nonliteralMaxlength_fail-bnode-long>
###   pattern
        <#1literalPattern_pass-lit-match>
        <#1literalPattern_fail-lit-short>
        <#1literalPattern_fail-ab>
        <#1literalPattern_fail-cd>
        <#1literalPatterni_pass-lit-match>
        <#1literalPatterni_pass-lit-BC>
        <#1literalPatterni_pass-lit-blowercaseC>
        <#1literalPattern_pass-lit-into>
        <#1literalPattern19_fail-iri-match>
        <#1literalPattern_fail-bnode-match>
        <#1literalPattern_with_all_controls_pass>
        <#1literalPattern_with_all_controls_fail>
        <#1literalPattern_with_all_punctuation_pass>
        <#1literalPattern_with_all_punctuation_fail>
        <#1literalPattern_with_ascii_boundaries_pass>
        <#1literalPattern_with_ascii_boundaries_fail>
        <#1literalPattern_with_UTF8_boundaries_pass>
        <#1literalPattern_with_UTF8_boundaries_fail>
        <#1literalPattern_with_REGEXP_escapes_pass>
        <#1literalPattern_with_REGEXP_escapes_fail>
        <#1literalPattern_with_REGEXP_escapes_fail_escaped>
        <#1literalPattern_with_REGEXP_escapes_escaped_pass>
        <#1literalPattern_with_REGEXP_escapes_escaped_fail_escapes>
        <#1literalPattern_with_REGEXP_escapes_escaped_fail_escapes_bare>
        <#1literalPattern_with_REGEXP_escapes_bare_pass>
        <#1literalPattern_with_REGEXP_escapes_bare_fail_escaped>
        <#1literalPattern_with_REGEXP_escapes_pass_bare>
        <#1literalPattern_with_REGEXP_escapes_bare_pass_escapes>
        <#1literalPatternEnd_fail-litEnd>
        <#1literalPatternDollar_pass-litDollar-match>
        <#1literalPattern_pass-StartlitEnd-match>
        <#1literalStartPatternEnd_CarrotbcDollar>
        <#1literalCarrotPatternDollar_pass-bc>
        <#1literalCarrotPatternDollar_pass-CarrotbcDollar>
        <#1literalPatternabEnd_fail-bnode-match>
        <#1literalStartPattern_pass-bc>
        <#1literalStartPattern_fail-CarrotbcDollar>
        <#1literalPatternEnd_pass-bc>
        <#1literalPatternEnd_pass-CarrotbcDollar>
        <#1literalPattern_pass-bcDollar>
        <#1literalStarPatternEnd_pass-bc>
        <#1literalPattern_pass-CarrotbcDollar>
        <#1literalPattern_with_all_meta_pass>
        <#1literalPattern_with_all_meta_pass-NA>
        <#1iriPattern_pass-iri-match>
        <#1iriPattern_fail-iri-short>
        <#1iriPattern_fail-iri-long>
        <#1iriPattern_fail-lit-match>
        <#1iriPattern_fail-bnode-match>
        <#1bnodePattern_pass-bnode-match>
        <#1bnodePattern_fail-bnode-short>
        <#1bnodePattern_fail-bnode-long>
        <#1bnodePattern_fail-lit-match>
        <#1bnodePattern_fail-iri-match>
        <#1nonliteralPattern_pass-iri-match>
        <#1nonliteralPattern_fail-iri-short>
        <#1nonliteralPattern_pass-iri-long>
        <#1nonliteralPattern_fail-lit-match>
        <#1nonliteralPattern_pass-bnode-match>
        <#1nonliteralPattern_fail-bnode-short>
        <#1nonliteralPattern_pass-bnode-long>

## value sets
        <#1val1dotMinusiri3_pass>
        <#1val1dotMinusiri3_v1>
        <#1val1dotMinusiri3_v2>
        <#1val1dotMinusiri3_v3>
        <#1val1refvsMinusiri3_pass>
        <#1val1refvsMinusiri3_v1>
        <#1val1refvsMinusiri3_v2>
        <#1val1refvsMinusiri3_v3>
        <#1val1dotMinusiriStem3_pass>
        <#1val1dotMinusiriStem3_v1>
        <#1val1dotMinusiriStem3_v2>
        <#1val1dotMinusiriStem3_v3>
        <#1val1dotMinusiriStem3_v1a>
        <#1val1iri_passv1>
        <#1val1iri_failv1a>
        <#1val1iriStem_passv1>
        <#1val1iriStem_passv1a>
        <#1val1iriStem_fail>
        <#1val1iriStem_fail-literalIv1>
        <#1val1iriStemMinusiri3_passIv>
        <#1val1iriStemMinusiri3_passIv4>
        <#1val1iriStemMinusiri3_fail-literalIv4>
        <#1val1iriStemMinusiri3_v1>
        <#1val1iriStemMinusiri3_fail-literalIv1>
        <#1val1iriStemMinusiri3_v2>
        <#1val1iriStemMinusiri3_v3>
        <#1val1iriStemMinusiri3_passIv1a>
        <#1val1iriStemMinusiriStem3_passIv>
        <#1val1iriStemMinusiriStem3_passIv4>
        <#1val1iriStemMinusiriStem3_v1>
        <#1val1iriStemMinusiriStem3_v2>
        <#1val1iriStemMinusiriStem3_v3>
        <#1val1iriStemMinusiriStem3_v1a>
        <#1val1literal_passv>
        <#1val1literal_failv1>
        <#1val1literalStem_passv1>
        <#1val1literalStem_passv1a>
        <#1val1literalStem_fail>
        <#1val1literaliriStem_fail-Iv1>
        <#1val1literalStemMinusliteral3_passLv>
        <#1val1literalStemMinusliteral3_passLv4>
        <#1val1literaliriStemMinusliteraliri3_fail-Iv4>
        <#1val1literalStemMinusliteral3_v1>
        <#1val1literaliriStemMinusliteraliri3_fail-Iv1>
        <#1val1literalStemMinusliteral3_v2>
        <#1val1literalStemMinusliteral3_v3>
        <#1val1literalStemMinusliteral3_passLv1a>
        <#1val1literalStemMinusliteralStem3_passLv>
        <#1val1literalStemMinusliteralStem3_passLv4>
        <#1val1literalStemMinusliteralStem3_v1>
        <#1val1literalStemMinusliteralStem3_v2>
        <#1val1literalStemMinusliteralStem3_v3>
        <#1val1literalStemMinusliteralStem3_v1a>
        <#1val1language_passLAtfr>
        <#1val1language_failLAtfr-be>
        <#1val1emptylanguageStem_passLAtfr>
        <#1val1emptylanguageStem_fail-literal>
        <#1val1emptylanguageStem_fail-empty>
        <#1val1emptylanguageStem_fail-integer>
        <#1val1emptylanguageStemMinuslanguage3_passLAtfr>
        <#1val1emptylanguageStemMinuslanguage3_failLAtfr-be>
        <#1val1emptylanguageStemMinuslanguage3_passLAtfr-be-fbcl>
        <#1val1emptylanguageStemMinuslanguageStem3_LAtfr>
        <#1val1emptylanguageStemMinuslanguageStem3_failLAtfr-be>
        <#1val1emptylanguageStemMinuslanguageStem3_LAtfr-be-fbcl>
        <#1val1emptylanguageStemMinuslanguageStem3_LAtfrc>
        <#1val1languageStem_passLAtfr>
        <#1val1languageStem_failLAtfrc>
        <#1val1languageStem_passLAtfr-be>
        <#1val1languageStem_passLAtfr-be-fbcl>
        <#1val1languageStem_fail>
        <#1val1literallanguageStem_failLAtfr>
        <#1val1languageStemMinuslanguage3_passLAtfr>
        <#1val1languageStemMinuslanguage3_passLAtfr-FR>
        <#1val1literallanguageStemMinusliterallanguage3_failLAtfr-FR>
        <#1val1languageStemMinuslanguage3_failLAtfr-be>
        <#1val1literallanguageStemMinusliterallanguage3_failLAtfr-BE>
        <#1val1languageStemMinuslanguage3_failLAtfr-cd>
        <#1val1languageStemMinuslanguage3_failLAtfr-ch>
        <#1val1languageStemMinuslanguage3_passLAtfr-be-fbcl>
        <#1val1languageStemMinuslanguageStem3_passLAtfr>
        <#1val1languageStemMinuslanguageStem3_LAtfrc>
        <#1val1languageStemMinuslanguageStem3_passLAtfr-FR>
        <#1val1languageStemMinuslanguageStem3_LAtfr-be>
        <#1val1languageStemMinuslanguageStem3_LAtfr-cd>
        <#1val1languageStemMinuslanguageStem3_LAtfr-ch>
        <#1val1languageStemMinuslanguageStem3_passLAtfr-bel>
        <#1val1languageStemMinuslanguageStem3_LAtfr-be-fbcl>

## triple expressions
###   AND tripleExpr

###   OR tripleExpr
        <#1dotOne2dot_pass_p1>
        <#1dotOne2dot_pass_p2p3>
        <#1dotOne2dot-oneOf_fail_p1p2p3>
        <#1dotOne2dot-someOf_fail_p1p2p3>
        #<#1dotOne2dot-firstOf_pass_p1p2p3>
        # open1dotOneopen2dotcloseclose_... same as 1dotOne2dot
        # @@ eliminate as duplicate?
        <#open1dotOneopen2dotcloseclose_pass_p1>
        <#open1dotOneopen2dotcloseclose_pass_p2p3>
        <#open1dotOneopen2dotcloseclose_fail_p1p2p3>
        # 1dotSemiOne2dotSemis ... same as 1dotOne2dot
        # open1dotSemiOne2dotsemisclose_... same as 1dotOne2dot
        # open1dotSemiOneopen2dotSemiscloseclose_... same as 1dotOne2dot
        # open1dotOne2dotclose_... same as 1dotOne2dot
        <#openopen1dotOne1dotclose1dotclose_pass_p1p3>
        <#openopen1dotOne1dotclose1dotclose_pass_p2p3>
        <#openopen1dotOne1dotclose1dotclose_fail_p1>
        <#openopen1dotOne1dotclose1dotclose_fail_p3>
        <#openopen1dotOne1dotclose1dotclose_fail_p1p2>
        # openopen1dotSemiOne1dotSemiclose1dotSemicloseSemi_... same as openopen1dotOne1dotclose1dotclose

## value expressions
###   value reference
        <#1val1vExprRefIRIREF1_fail-lit-short>
        <#1val1vExprRefIRIREF1_pass-lit-equal>
        <#1val1vExprRefbnode1_fail-lit-short>
        <#1val1vExprRefbnode1_pass-lit-equal>

###   AND valueExpr
        <#1dotShapeAND1dot3X_pass>
        <#1dotShapeAND1dot3X_fail>
        <#1dotRefAND3_failAll>
        <#1dotRefAND3_failShape2Shape3>
        <#1dotRefAND3_failShape1Shape3>
        <#1dotRefAND3_failShape1Shape2>
        <#1dotRefAND3_passShape1Shape2Shape3>
        <#1val1vExpr1AND1AND1Ref3_pass>
        <#1val1vExpr1AND1AND1Ref3_failvc1>
        <#1val1vExpr1AND1AND1Ref3_failvc2>
        <#1val1vExpr1AND1AND1Ref3_failvc3>
        <#1val1vExprRefAND3_pass>
        <#1val1vExprRefAND3_failvc3>
        <#1val1vExprRefAND3_failvc2>
        <#1val1vExprRefAND3_failvc1>
        <#1val1vExprAND3_pass>
        <#1val1vExprAND3_failvc1>
        <#1val1vExprAND3_failvc2>
        <#1val1vExprAND3_failvc3>

###   OR valueExpr
        <#refBNodeORrefIRI_ReflexiveIRI>
        <#refBNodeORrefIRI_ReflexiveShortIRI>
        <#refBNodeORrefIRI_IntoReflexiveIRI>
        <#refBNodeORrefIRI_IntoReflexiveBNode>
        <#refBNodeORrefIRI_CyclicIRI_IRI>
        <#refBNodeORrefIRI_CyclicIRI_BNode>
        <#refBNodeORrefIRI_CyclicIRI_ShortIRI>
        <#1dotRefOR3_fail>
        <#1dotRefOR3_passShape1>
        <#1dotRefOR3_passShape2>
        <#1dotRefOR3_passShape3>
        <#1dotRefOR3_passShape1Shape2Shape3>
        <#1val1vExpr1OR1OR1Ref3_fail>
        <#1val1vExpr1OR1OR1Ref3_passvc1>
        <#1val1vExpr1OR1OR1Ref3_passvc2>
        <#1val1vExpr1OR1OR1Ref3_passvc3>
        <#1val1vExpr1OR1OR1Ref3_passvc1vc2vc3>
        <#1val1vExprRefOR3_passvc1vc2vc3>
        <#1val1vExprRefOR3_passvc3>
        <#1val1vExprRefOR3_passvc2>
        <#1val1vExprRefOR3_passvc1>
        <#1val1vExprRefOR3_fail>
        <#1val1vExprOR3_fail>
        <#1val1vExprOR3_passvc1>
        <#1val1vExprOR3_passvc2>
        <#1val1vExprOR3_passvc3>
        <#1val1vExprOR3_passvc1vc2vc3>

###   NOT valueExpr
        <#1NOTIRI_passLv>
        <#1NOTIRI_failIo1>
        <#1NOTIRI_failempty>
        <#1NOTNOTIRI_failLv>
        <#1NOTNOTIRI_passIo1>
        <#1NOTvs_failIv1>
        <#1NOTvs_passIo1>
        <#1NOTvs_failempty>
        <#1NOTNOTvs_passIv1>
        <#1NOTNOTvs_failIo1>
        <#1NOTdot_failIv1>
        <#1NOTdot_failIo1>
        <#1NOTdot_failempty>
        <#1NOTNOTdot_passIv1>
        <#1NOTNOTdot_passIo1>
        <#1_NOTliteral_ANDvs_passIv1>
        <#1_NOTliteral_ANDvs_failIo1>
        <#1_NOTliteral_ANDvs_failLv>
        <#1NOT_literalANDvs__passIv1>
        <#1NOT_literalANDvs__passLv>
        <#1NOTliteralANDvs_passIv1>
        <#1NOTliteralANDvs_failIo1>
        <#1NOTliteralANDvs_failLv>
        <#1_NOTvs_ANDvs_failIv1>
        <#1_NOTvs_ANDvs_passIv2>
        <#1_NOTvs_ANDvs_failIv3>
        <#1NOT_vsANDvs__passIv1>
        <#1NOT_vsANDvs__passIv2>
        <#1NOT_vsANDvs__passIv3>
        <#1NOTvsANDvs_failIv1>
        <#1NOTvsANDvs_passIv2>
        <#1NOTvsANDvs_failIv3>
        <#1_NOTliteral_ORvs_passIv1>
        <#1_NOTliteral_ORvs_passIo1>
        <#1_NOTliteral_ORvs_failLv>
        <#1NOT_literalORvs__failIv1>
        <#1NOT_literalORvs__passIo1>
        <#1NOT_literalORvs__failLv>
        <#1NOTliteralORvs_passIv1>
        <#1NOTliteralORvs_passIo1>
        <#1NOTliteralORvs_failLv>
        <#1_NOTvs_ORvs_failIv1>
        <#1_NOTvs_ORvs_passIv2>
        <#1_NOTvs_ORvs_passIv3>
        <#1NOT_vsORvs__failIv1>
        <#1NOT_vsORvs__failIv2>
        <#1NOT_vsORvs__passIv3>
        <#1NOTvsORvs_failIv1>
        <#1NOTvsORvs_passIv2>
        <#1NOTvsORvs_passIv3>
        <#NOT1NOTvs_passIv1>
        <#NOT1NOTvs_passIv2>
        <#NOT1NOTvs_failIv3>

###   AND OR valueExpr
        <#1val1vExpr1AND1OR1Ref3_pass-vc1vc2>
        <#1val1vExpr1AND1OR1Ref3_pass-vc1vc2vc3>
        <#1val1vExpr1AND1OR1Ref3_pass-vc1vc3>
        <#1val1vExpr1AND1OR1Ref3_failvc1vc3>
        <#1val1vExpr1AND1OR1Ref3_failvc2vc3>
        <#1val1vExpr1AND1OR1Ref3_failvc1vc2vc3>
        <#1val1vExpr1OR1AND1Ref3_pass-vc1>
        <#1val1vExpr1OR1AND1Ref3_pass-vc1vc3>
        <#1val1vExpr1OR1AND1Ref3_pass-vc2vc3>
        <#1val1vExpr1OR1AND1Ref3_failvc1vc2>
        <#1val1vExpr1OR1AND1Ref3_failvc1vc3>
        <#1val1vExpr1OR1AND1Ref3_failvc1vc2vc3>

## repetitions
        <#open3Onedotclosecard2_fail-p1>
        <#open3Onedotclosecard2_pass-p1X2> #
        <#open3Onedotclosecard2_fail-p1X3>
        <#open3Onedotclosecard2_fail-p1X4>
        <#open3Onedotclosecard2_pass-p1p2>
        <#open3Onedotclosecard2_pass-p1p3>
        <#open3Onedotclosecard2_pass-p2p3>
        <#open3Onedotclosecard2_fail-p1p2p3> #

        <#open3Onedotclosecard23_fail-p1>
        <#open3Onedotclosecard23_pass-p1X2> #
        <#open3Onedotclosecard23_pass-p1X3> #
        <#open3Onedotclosecard23_fail-p1X4>
        <#open3Onedotclosecard23_pass-p1p2>
        <#open3Onedotclosecard23_pass-p1p3>
        <#open3Onedotclosecard23_pass-p2p3>
        <#open3Onedotclosecard23_pass-p1p2p3>
        <#open4Onedotclosecard23_fail-p1p2p3p4> #
        <#open3Eachdotclosecard23_pass-p1p2p3X3>

## shape expressions
###   AND shapeExpr
        <#1val1vShapeANDRef3_pass>

## closed
        <#1dotClosed_pass>
        <#1dotClosed_fail_lower>
        <#1dotClosed_fail_higher>
        <#FocusIRI2EachBnodeNested2EachIRIRef_pass>
        <#FocusIRI2EachBnodeNested2EachIRIRef_fail>

## extra
        <#1val1IRIREFExtra1_pass-iri1>
        <#1val1IRIREFExtra1_pass-iri2>
        <#1val1IRIREFExtra1Closed_pass-iri1>
        <#1val1IRIREFExtra1Closed_pass-iri2>
        <#1val1IRIREFExtra1Closed_fail-iri2_higher>
        <#1val1IRIREFClosedExtra1_pass-iri1>
        <#1val1IRIREFClosedExtra1_pass-iri2>
        <#1val1IRIREFClosedExtra1_fail-iri2_higher>
        <#1val2IRIREFExtra1_fail-iri2>
        <#1val2IRIREFPlusExtra1_pass-iri2>
        <#1val2IRIREFExtra1_pass-iri-bnode>
        <#1val1IRIREFExtra1p2_pass-iri1>
        <#1val1IRIREFExtra1p2_fail-iri2>
        <#1dotOne2dotExtra-someOf_pass_p1p2p3>
        <#1val1IRIREFExtra1One_pass-iri1>
        <#1val1IRIREFExtra1One_pass-iri2>
        <#1dotExtra1_pass-iri1>
        <#1dotExtra1_fail-iri2>
        <#3EachdotExtra3_pass-iri1> <#3Eachdot3Extra_pass-iri1> <#3EachdotExtra3NLex_pass-iri1>
        <#3EachdotExtra3_pass-iri2> <#3Eachdot3Extra_pass-iri2> <#3EachdotExtra3NLex_pass-iri2>

## start
        <#startRefIRIREF_pass-noOthers>
        <#startRefIRIREF_pass-others_lexicallyEarlier>
        <#startRefIRIREF_fail-missing>
        <#startRefbnode_pass-noOthers>
        <#startRefbnode_fail-missing>
        <#startInline_pass-noOthers>
        <#startEqualSpaceInline_pass-noOthers>
        <#startSpaceEqualInline_pass-noOthers>
        <#startInline_fail-missing>

## include
        <#2EachInclude1_pass>
        <#2EachInclude1-after_pass>
        <#2OneInclude1_pass>
        <#2OneInclude1-after_pass>

## annotations
        <#1dotAnnotIRIREF_pass>
        <#1dotAnnotIRIREF_missing>
        <#1dotPlusAnnotIRIREF_pass>
        <#1dotAnnotAIRIREF_pass>
        <#1dotAnnotSTRING_LITERAL1_pass>
        <#1dotAnnot3_pass>
        <#1dotAnnot3_missing>
        <#1inversedotAnnot3_pass>
        <#1inversedotAnnot3_missing>
        <#1dotShapeAnnotIRIREF_pass>
        <#1dotShapeAnnotIRIREF_missing>
        <#1dotShapePlusAnnotIRIREF_pass>
        <#1dotShapeAnnotAIRIREF_pass>
        <#1dotShapeAnnotSTRING_LITERAL1_pass>

## semantic actions
        <#1dotCode1_pass>
        <#1dotNoCode1_pass>
        <#1inversedotCode1_pass>
        <#1dotCode3_pass>
        <#1dotNoCode3_pass>
        <#1dotCode3fail_abort>
        <#1dotCodeWithEscapes1_pass>
        <#1dotShapeCode1_pass>
        <#1dotShapeNoCode1_pass>
        <#open3EachdotcloseCode1-p1p2p3>
        <#startCode1_pass>
        <#startNoCode1_pass>
        <#startCode1fail_abort>
        <#startCode1startRef_pass>
        <#startCode1startReffail_abort>
        <#startCode3_pass>
        <#startCode3fail_abort>

## annotations + semantic actions
        <#open3Eachdotclosecard23Annot3Code2-p1p2p3X3>

## focus constraint
### kind
        <#0focusIRI_other>
        <#0focusIRI_other_fail-bnodeFocusLabel>
        <#0focusIRI_empty>
        <#0focusIRI_empty_fail-bnodeFocusLabel>
        <#0focusBNODE_empty_fail-iriFocusLabel>
        <#0focusBNODE_empty>
        <#0focusBNODE_other_fail-iriFocusLabel>
        <#0focusBNODE_other>
        <#1focusIRI_dot_fail-bnodeFocusLabel>
        <#1focusIRI_dot_pass>
        <#1focusBNODE_dot_fail-iriFocusLabel-equal>
        <#1focusBNODE_dot_pass>
        <#1focusnonLiteral-dot_pass-iri-equal>


###  datatype
        <#focusdatatype_pass>
        <#focusdatatype_fail>
        <#focusdatatype_pass-empty>
        <#focusdatatype_fail-empty>

###  value sets
        <#focusvs_pass>
        <#focusvs_fail>

### AND focus
        <#1focusvsANDdatatype_fail>
        <#1focusvsANDIRI_pass>
        <#1focusvsANDIRI_fail>

### OR focus
        <#1focusvsORdatatype_pass-val>
        <#1focusvsORdatatype_fail-val>
        <#1focusvsORdatatype_pass-dt>
        <#1focusvsORdatatype_fail-dt>
        <#focusNOTRefOR1dot_pass-inOR>
        <#focusNOTRefOR1dot_fail-inNOT>
        <#focusNOTRefOR1dot_pass-other>

### NOT focus


### facet
#### length
        <#1focusLength-dot_fail-iri-short>
        <#1focusLength-dot_pass-iri-equal>
        <#1focusLength-dot_fail-iri-long>
        <#1focusLength-dot_fail-bnode-short>
        <#1focusLength-dot_pass-bnode-equal>
        <#1focusLength-dot_fail-bnode-long>

        <#1focusMinLength-dot_fail-iri-short>
        <#1focusMinLength-dot_pass-iri-equal>
        <#1focusMinLength-dot_pass-iri-long>
        <#1focusMinLength-dot_fail-bnode-short>
        <#1focusMinLength-dot_pass-bnode-equal>
        <#1focusMinLength-dot_pass-bnode-long>

        <#1focusMaxLength-dot_pass-iri-short>
        <#1focusMaxLength-dot_pass-iri-equal>
        <#1focusMaxLength-dot_fail-iri-long>
        <#1focusMaxLength-dot_pass-bnode-short>
        <#1focusMaxLength-dot_pass-bnode-equal>
        <#1focusMaxLength-dot_fail-bnode-long>

#### pattern
        <#1focusPattern-dot_fail-iri-match>
        <#1focusPattern-dot_fail-iri-short>
        <#1focusPattern-dot_pass-iri-match>
        <#1focusPattern-dot_fail-iri-long>
        <#1focusPatternB-dot_fail-iri-match>
        <#1focusPatternB-dot_fail-bnode-short>
        <#1focusPatternB-dot_pass-bnode-match>
        <#1focusPatternB-dot_pass-bnode-long>

### kind + length facet
        <#1focusIRILength_dot_fail-bnodeFocusLabel-equal>
        <#1focusIRILength_dot_fail-short>
        <#1focusIRILength_dot_pass>
        <#1focusIRILength_dot_fail-long>
        <#1focusBNODELength_dot_fail-iriFocusLabel-equal>
        <#1focusBNODELength_dot_fail-short>
        <#1focusBNODELength_dot_pass>
        <#1focusBNODELength_dot_fail-long>
        <#1focusnonLiteralLength-dot_pass-iri-equal>

### AND OR NOT
        <#NOT1dotOR2dot_pass-empty>
        <#NOT1dotOR2dot_pass-NoShape1>
        <#NOT1dotOR2dot_pass-Shape2>
        <#NOT1dotOR2dot_fail-Shape2>
        <#NOT1dotOR2dotX3_pass-empty>
        <#NOT1dotOR2dotX3_pass-NoShape1>
        <#NOT1dotOR2dotX3_pass-Shape2>
        <#NOT1dotOR2dotX3_fail-Shape2>
        <#NOT1dotOR2dotX3AND1_fail-empty>
        <#NOT1dotOR2dotX3AND1_fail-NoShape1>
        <#NOT1dotOR2dotX3AND1_pass-Shape2>
        <#NOT1dotOR2dotX3AND1_fail-Shape2>
        <#1NOTRefOR1dot_pass-inOR>
        <#1NOTRefOR1dot_fail-inNOT>
        <#1NOTRefOR1dot_pass-other>

## shape extern

        <#shapeExtern_pass>
        <#shapeExtern_fail>
        <#shapeExternRef_pass>
        <#shapeExternRef_fail>

## relative IRIs

        <#1dot-relative_pass-short-shape>
        <#1dot-relative_pass-relative-shape>

## manual schemas
        <#false-lead-excluding-value-shape>
        <#nPlus1>
        # <#nPlus1-greedy_fail>
        <#nPlus1-greedy-rewrite>
        <#skipped>
        <#open2Eachdotclosecard25c1dot>
        <#2Eachdot>
        <#PstarT>
        # <#PstarT-greedy>
        <#PTstar>
        # <#PTstar-greedy-fail>
        <#PTstar-greedy-rewrite>
        <#PstarTstar>
        <#P2T2>

## error reporting
        <#1dot_fail-empty-err>
        <#2dot_fail-empty-err>

## imports
###  shape reference
        <#2RefS1-IS2>
        <#2RefS1-IS2_fail-p2>
        <#2RefS2-IS1>
        <#2RefS1-Icirc>
        <#2RefS1-Icirc_fail-p2>
        <#3circRefS1-IS23>
        <#3circRefS1-IS23_pass-p1>
        <#3circRefS1-IS2-IS3>
        <#3circRefS3-IS12>
        <#3circRefS123-Icirc>
        <#3circRefS1-Icirc>
        <#3circRefS1-IS2-IS3-IS3>

### start shape reference
        <#start2RefS1-IstartS2>
        <#start2RefS2-IstartS1>

###  value reference
        <#1valExprRef-IV1_fail-lit-short>
        <#1valExprRef-IV1_pass-lit-equal>
        <#1valExprRefbnode-IV1_fail-lit-short>
        <#1valExprRefbnode-IV1_pass-lit-equal>

###  include (ref to triple expression)
        <#2EachInclude1-IS2_pass>

 # could steal from: <#2EachInclude1-after_pass> <#2OneInclude1_pass> <#2OneInclude1-after_pass>

## lists

        <#1list0PlusDot-empty_pass>
        <#1list0PlusDot-list_Iv1,Iv2,Iv3_pass>
        <#1list0PlusDot-list_Iv1,Iv2,Lx_pass>
        <#1list0PlusDot-manualList_Iv1,Iv2,Iv3_pass>
        <#1list0PlusDot-manualList_extraArc_Iv1,Iv2,Iv3_fail>
        # <#1list0PlusDot-manualList_circular_Iv1,Iv2,Iv3_fail>
        <#1list0PlusDot-manualList_2firsts_Iv1,Iv2,Iv3_fail>
        <#1list0PlusIri-empty_pass>
        <#1list0PlusIri-list_Iv1,Iv2,Iv3_pass>
        <#1list0PlusIri-list_Iv1,Iv2,Lx_fail>
        <#1list1PlusIri-empty_pass>
        <#1list1PlusIri-list_Iv1,Iv2,Iv3_pass>
        <#1list1PlusIri-list_Iv1,Iv2,Lx_fail>

## ShapeMaps
        <#node_kind_example>
        <#dependent_shape>
        <#recursion_example>

## Extends
        <#extends-abstract-multi-empty_fail-Ref2ExtraP>
        <#extends-abstract-multi-empty_fail-Ref1ExtraP>
        <#extends-abstract-multi-empty_fail-ReferrerExtraP>
        <#extends-abstract-multi-empty_fail-Ref1ExtraOR>
        <#extends-abstract-multi-empty_fail-missingRef2>
        <#extends-abstract-multi-empty_pass-missingOptRef1>
        <#extends-abstract-multi-empty_pass>

        <#ExtendsRepeatedP-pass>
        <#ExtendsRepeatedP-fail_vs>
        <#ANDAbstract-pass>
        <#ANDAbstract-fail_G1pattern>
        <#ANDAbstract-fail_pattern>
        <#AND3G-pass>
        <#AND3G-fail_G2pattern>
        <#AND3G-fail_G1Bpattern>
        <#ExtendAND3G-pass>
        <#ExtendAND3G-fail_EXTG1>
        <#ExtendAND3G-fail_ExtraP>
        <#ExtendAND3G-fail_G3pattern>
        <#ExtendAND3G-fail_EXTG1ANDG1>
        <#ExtendAND3G-fail_EXTG1pattern>
        <#ExtendAND3G-fail_G0>
        <#Extend3G-pass>
        <#Extend3G-t16>
        <#Extend3G-t17>
        <#Extend3G-t18>
        <#Extend3G-t19>
        <#Extend3G-t20>
        <#Extend3G-t21>
        <#ExtendANDExtend3GAND3G-pass>
        <#ExtendANDExtend3GAND3G-t23>
        <#ExtendANDExtend3GAND3G-t24>
        <#ExtendANDExtend3GAND3G-t25>
        <#ExtendANDExtend3GAND3G-t26>
        <#ExtendANDExtend3GAND3G-t27>
        <#ExtendANDExtend3GAND3G-t28>
        <#ExtendANDExtend3GAND3G-t29>
        <#ExtendANDExtend3GAND3G-t30>
        <#ExtendANDExtend3GAND3G-t31>
        <#ExtendANDExtend3GAND3G-t32>
        <#ExtendANDExtend3GAND3G-t33>
        <#ExtendANDExtend3GAND3G-t34>
        <#ExtendANDExtend3GAND3G-t35>
        <#vitals-RESTRICTS-pass_lie-Observation>
        <#vitals-RESTRICTS-pass_lie-Vital>
        <#vitals-RESTRICTS-pass_lie-BP>
        <#vitals-RESTRICTS-pass_lie-PostureVital>
        <#vitals-RESTRICTS-pass_lie-ReclinedVital>
        <#vitals-RESTRICTS-pass_lie-PostureBP>
        <#vitals-RESTRICTS-pass_lie-ReclinedBP>
        <#vitals-RESTRICTS-pass_lie-Posture>
        <#vitals-RESTRICTS-pass_lie-Reclined>
        <#vitals-RESTRICTS-pass_sit-Observation>
        <#vitals-RESTRICTS-pass_sit-Vital>
        <#vitals-RESTRICTS-pass_sit-BP>
        <#vitals-RESTRICTS-pass_sit-PostureVital>
        <#vitals-RESTRICTS-fail_sit-ReclinedVital>
        <#vitals-RESTRICTS-pass_sit-PostureBP>
        <#vitals-RESTRICTS-fail_sit-ReclinedBP>
        <#vitals-RESTRICTS-pass_sit-Posture>
        <#vitals-RESTRICTS-fail_sit-Reclined>
    ) .

# definitions
## empty {

<#0_empty> a sht:ValidationTest ;
    mf:name "0_empty" ;
    sht:trait sht:Empty ;
    rdfs:comment "<S1> {  } on {  }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/0.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <empty.ttl> ;
      sht:focus <http://a.example/dummy>
    ]
    .

<#0_other> a sht:ValidationTest ;
    mf:name "0_other" ;
    sht:trait sht:Empty ;
    rdfs:comment "<S1> {  } on { <s1> <p1> <o1> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/0.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Io1.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#0_otherbnode> a sht:ValidationTest ;
    mf:name "0_otherbnode" ;
    sht:trait sht:Empty , sht:ToldBNode ;
    rdfs:comment "<S1> {  } on { _:abcd <p1> <o1> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/0.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Babcd_Ip1_Io1.ttl> ;
      sht:focus _:abcd
    ]
    .

## } empty
## triple pattern {

<#1dot_fail-empty> a sht:ValidationFailure ;
    mf:name "1dot_fail-empty" ;
    sht:trait sht:TriplePattern ;
    rdfs:comment "<S1> { <p1> . } on {  }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1dot.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <empty.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1dot-base_fail-empty> a sht:ValidationFailure ;
    mf:name "1dot-base_fail-empty" ;
    sht:trait sht:TriplePattern ;
    rdfs:comment "BASE <…> <S1> { <p1> . } on {  }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1dot-base.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <empty.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1dot_fail-missing> a sht:ValidationFailure ;
    mf:name "1dot_fail-missing" ;
    sht:trait sht:TriplePattern ;
    rdfs:comment "<S1> { <p1> . } on { <s1> <p2> <o1> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1dot.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip2_Io1.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1dot-base_fail-missing> a sht:ValidationFailure ;
    mf:name "1dot-base_fail-missing" ;
    sht:trait sht:TriplePattern ;
    rdfs:comment "BASE <…> <S1> { <p1> . } on { <s1> <p2> <o1> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1dot-base.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip2_Io1.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1dot_pass-noOthers> a sht:ValidationTest ;
    mf:name "1dot_pass-noOthers" ;
    sht:trait sht:TriplePattern ;
    rdfs:comment "<S1> { <p1> . } on { <s1> <p1> <o1> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1dot.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Io1.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1dot-base_pass-noOthers> a sht:ValidationTest ;
    mf:name "1dot-base_pass-noOthers" ;
    sht:trait sht:TriplePattern ;
    rdfs:comment "BASE <…> <S1> { <p1> . } on { <s1> <p1> <o1> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1dot-base.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Io1.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1dotSemi_pass-noOthers> a sht:ValidationTest ;
    mf:name "1dotSemi_pass-noOthers" ;
    sht:trait sht:TriplePattern ;
    rdfs:comment "<S1> { :p1 .; } on { <s1> <p1> <o1> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1dotSemi.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Io1.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1dotLNex_pass-noOthers> a sht:ValidationTest ;
    mf:name "1dotLNex_pass-noOthers" ;
    sht:trait sht:TriplePattern ;
    rdfs:comment "PREFIX ex: <http://a.example/> ex:S1 { ex:p1 . } on { <s1> <p1> <o1> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1dotLNex.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Io1.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1dotNS2_pass-noOthers> a sht:ValidationTest ;
    mf:name "1dotNS2_pass-noOthers" ;
    sht:trait sht:TriplePattern ;
    rdfs:comment "PREFIX S1: <http://a.example/S1> PREFIX p1: <http://a.example/p1> S1: { p1: . } on { <s1> <p1> <o1> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1dotNS2.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Io1.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1dotNS2SingleComment_pass-noOthers> a sht:ValidationTest ;
    mf:name "1dotNS2SingleComment_pass-noOthers" ;
    sht:trait sht:TriplePattern ;
    rdfs:comment "PREFIX S1: <http://a.example/S1> PREFIX p1: <http://a.example/p1> S1: { p1:/*comment*/ . } on { <s1> <p1> <o1> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1dotNS2SingleComment.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Io1.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1dotLNexSingleComment_pass-noOthers> a sht:ValidationTest ;
    mf:name "1dotLNexSingleComment_pass-noOthers" ;
    sht:trait sht:TriplePattern ;
    rdfs:comment "PREFIX ex: <http://a.example/> ex:S1 { ex:p1/*comment*/ . } on { <s1> <p1> <o1> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1dotLNexSingleComment.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Io1.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1dotLNdefault_pass-noOthers> a sht:ValidationTest ;
    mf:name "1dotLNdefault_pass-noOthers" ;
    sht:trait sht:TriplePattern ;
    rdfs:comment "PREFIX : <http://a.example/> :S1 { :p1 . } on { <s1> <p1> <o1> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1dotLNdefault.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Io1.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1dotNSdefault_pass-noOthers> a sht:ValidationTest ;
    mf:name "1dotNSdefault_pass-noOthers" ;
    sht:trait sht:TriplePattern ;
    rdfs:comment "PREFIX : <http://a.example/p1> <S1> { : . } on { <s1> :p1 <o1> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1dotNSdefault.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Io1.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1dotLNex-HYPHEN_MINUS_pass-noOthers> a sht:ValidationTest ;
    mf:name "1dotLNex-HYPHEN_MINUS_pass-noOthers" ;
    sht:trait sht:TriplePattern ;
    rdfs:comment "PREFIX ex: <http://a.example/> ex:S1 { ex:p1- . } on { <s1> <p1-> <o1> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1dotLNex-HYPHEN_MINUS.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1HYPHEN_MINUS_Io1.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1dot_pass-others_lexicallyEarlier> a sht:ValidationTest ;
    mf:name "1dot_pass-others_lexicallyEarlier" ;
    sht:trait sht:TriplePattern ;
    rdfs:comment "<S> { <p1> . } on { <s1> <p0> <o0>; <p1> <o1> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1dot.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip0_Io0;Ip1_Io1.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1dot_pass-others_lexicallyLater> a sht:ValidationTest ;
    mf:name "1dot_pass-others_lexicallyLater" ;
    sht:trait sht:TriplePattern ;
    rdfs:comment "<S> { <p1> . } on { <s1> <p1> <o1>; <p2> <o2> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1dot.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Io1;Ip2_Io2.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#bnode1dot_fail-missing> a sht:ValidationFailure ;
    mf:name "bnode1dot_fail-missing" ;
    sht:trait sht:BNodeShapeLabel , sht:TriplePattern ;
    rdfs:comment "_:S { <p1> . } on { <s1> <p2> <o1> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/bnode1dot.shex> ;
      sht:shape _:S1 ;
      sht:data <Is1_Ip2_Io1.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#bnode1dot_pass-others_lexicallyEarlier> a sht:ValidationTest ;
    mf:name "bnode1dot_pass-others_lexicallyEarlier" ;
    sht:trait sht:BNodeShapeLabel , sht:TriplePattern ;
    rdfs:comment "_:S1 { <p1> . } on { <s1> <p0> <o0>; <p1> <o1> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/bnode1dot.shex> ;
      sht:shape _:S1 ;
      sht:data <Is1_Ip0_Io0;Ip1_Io1.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1inversedot_fail-empty> a sht:ValidationFailure ;
    mf:name "1inversedot_fail-empty" ;
    sht:trait sht:TriplePattern ;
    rdfs:comment "<S> { ^<p1> . } on {  }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1inversedot.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <empty.ttl> ;
      sht:focus <http://a.example/o1>
    ]
    .

<#1inversedot_fail-missing> a sht:ValidationFailure ;
    mf:name "1inversedot_fail-missing" ;
    sht:trait sht:TriplePattern ;
    rdfs:comment "<S> { ^<p1> . } on { <s1> <p2> <o1> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1inversedot.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip2_Io1.ttl> ;
      sht:focus <http://a.example/o1>
    ]
    .

<#1inversedot_pass-noOthers> a sht:ValidationTest ;
    mf:name "1inversedot_pass-noOthers" ;
    sht:trait sht:TriplePattern ;
    rdfs:comment "<S> { ^<p1> . } on { <sr> <p1> <o1> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1inversedot.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Io1.ttl> ;
      sht:focus <http://a.example/o1>
    ]
    .

<#1inversedot_pass-over_lexicallyEarlier> a sht:ValidationTest ;
    mf:name "1inversedot_pass-over_lexicallyEarlier" ;
    sht:trait sht:TriplePattern ;
    rdfs:comment "<S> { ^<p1> . } on { <s1> <p0> <o0>; <p1> <o1> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1inversedot.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip0_Io0;Ip1_Io1.ttl> ;
      sht:focus <http://a.example/o1>
    ]
    .

<#1inversedot_pass-over_lexicallyLater> a sht:ValidationTest ;
    mf:name "1inversedot_pass-over_lexicallyLater" ;
    sht:trait sht:TriplePattern ;
    rdfs:comment "<S> { ^<p1> . } on { <s1> <p1> <o1>; <p2> <o2> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1inversedot.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Io1;Ip2_Io2.ttl> ;
      sht:focus <http://a.example/o1>
    ]
    .

<#1Adot_pass> a sht:ValidationTest ;
    mf:name "1Adot_pass" ;
    sht:trait sht:TriplePattern ;
    rdfs:comment "<S> { a . } on { <s1> a <o1> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1Adot.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_a_Io1.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

## } triple pattern
## node kinds {

<#1iri_pass-iri> a sht:ValidationTest ;
    mf:name "1iri_pass-iri" ;
    sht:trait sht:NodeKind ;
    rdfs:comment "<S1> { <p1> IRI } on { <s1> <p1> <o1> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1iri.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Io1.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1iri_fail-bnode> a sht:ValidationFailure ;
    mf:name "1iri_fail-bnode" ;
    sht:trait sht:NodeKind ;
    rdfs:comment "<S1> { <p1> IRI } on { <s1> <p1> _:ab }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1iri.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Bab.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1iri_fail-literal> a sht:ValidationFailure ;
    mf:name "1iri_fail-literal" ;
    sht:trait sht:NodeKind ;
    rdfs:comment "<S1> { <p1> IRI } on { <s1> <p1> \"ab\" }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1iri.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Lab.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1bnode_fail-iri> a sht:ValidationFailure ;
    mf:name "1bnode_fail-iri" ;
    sht:trait sht:NodeKind ;
    rdfs:comment "<S1> { <p1> BNODE } on { <s1> <p1> <o1> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1bnode.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Io1.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1bnode_pass-bnode> a sht:ValidationTest ;
    mf:name "1bnode_pass-bnode" ;
    sht:trait sht:NodeKind ;
    rdfs:comment "<S1> { <p1> BNODE } on { <s1> <p1> _:ab }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1bnode.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Bab.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1bnode_fail-literal> a sht:ValidationFailure ;
    mf:name "1bnode_fail-literal" ;
    sht:trait sht:NodeKind ;
    rdfs:comment "<S1> { <p1> BNODE } on { <s1> <p1> \"ab\" }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1bnode.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Lab.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1literal_fail-iri> a sht:ValidationFailure ;
    mf:name "1literal_fail-iri" ;
    sht:trait sht:NodeKind ;
    rdfs:comment "<S1> { <p1> LITERAL } on { <s1> <p1> <o1> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1literal.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Io1.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1literal_fail-bnode> a sht:ValidationFailure ;
    mf:name "1literal_fail-bnode" ;
    sht:trait sht:NodeKind ;
    rdfs:comment "<S1> { <p1> LITERAL } on { <s1> <p1> _:ab }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1literal.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Bab.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1literal_pass-literal> a sht:ValidationTest ;
    mf:name "1literal_pass-literal" ;
    sht:trait sht:NodeKind ;
    rdfs:comment "<S1> { <p1> LITERAL } on { <s1> <p1> \"ab\" }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1literal.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Lab.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1nonliteral_pass-iri> a sht:ValidationTest ;
    mf:name "1nonliteral_pass-iri" ;
    sht:trait sht:NodeKind ;
    rdfs:comment "<S1> { <p1> NONLITERAL } on { <s1> <p1> <o1> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1nonliteral.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Io1.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1focusnonLiteralLength-nonLiteralLength_pass> a sht:ValidationTest ;
    mf:name "1focusnonLiteralLength-nonLiteralLength_pass" ;
    sht:trait sht:NodeKind ;
    rdfs:comment "<S1> NONLITERAL LENGTH 19 { <p1> NONLITERAL LENGTH 19 } on { <s1> <p1> <o1> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1focusnonLiteralLength-nonLiteralLength.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Io1.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1focusnonLiteralLength-nonLiteralLength_fail-short> a sht:ValidationFailure ;
    mf:name "1focusnonLiteralLength-nonLiteralLength_fail-short" ;
    sht:trait sht:NodeKind ;
    rdfs:comment "<S1> NONLITERAL LENGTH 19 { <p1> NONLITERAL LENGTH 19 } on { <s1> <p1> <o> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1focusnonLiteralLength-nonLiteralLength.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Io.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1nonliteral_pass-bnode> a sht:ValidationTest ;
    mf:name "1nonliteral_pass-bnode" ;
    sht:trait sht:NodeKind ;
    rdfs:comment "<S1> { <p1> NONLITERAL } on { <s1> <p1> _:ab }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1nonliteral.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Bab.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1nonliteral_fail-literal> a sht:ValidationFailure ;
    mf:name "1nonliteral_fail-literal" ;
    sht:trait sht:NodeKind ;
    rdfs:comment "<S1> { <p1> NONLITERAL } on { <s1> <p1> \"ab\" }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1nonliteral.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Lab.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

## } node kinds
## datatype {

<#1datatype_missing> a sht:ValidationFailure ;
    mf:name "1datatype_missing" ;
    sht:trait sht:Datatype ;
    rdfs:comment "<S> { <p1> <dt1> } on <s> in { <s1> <p2> \"ab\" }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1datatype.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Lab.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1datatype_nonLiteral> a sht:ValidationFailure ;
    mf:name "1datatype_nonLiteral" ;
    sht:trait sht:Datatype ;
    rdfs:comment "<S> { <p1> <dt1> } on <s> in { <s1> <p1> <dt1> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1datatype.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Idt1.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1datatype_langString> a sht:ValidationFailure ;
    mf:name "1datatype_langString" ;
    sht:trait sht:Datatype ;
    rdfs:comment "<S> { <p1> <dt1> } on <s> in { <s1> <p1> 'ab'@en }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1datatype.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_LabLTen.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1datatype_wrongDatatype> a sht:ValidationFailure ;
    mf:name "1datatype_wrongDatatype" ;
    sht:trait sht:Datatype ;
    rdfs:comment "<S> { <p1> <dt1> } on <s> in { <s1> <p1> 1.234 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1datatype.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_DEC1_234.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1datatype_pass> a sht:ValidationTest ;
    mf:name "1datatype_pass" ;
    sht:trait sht:Datatype ;
    rdfs:comment "<S> { <p1> <dt1> } on <s> in { <s1> <p1> 'ab'^^<dt1> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1datatype.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_dt1.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1datatypelangString_pass> a sht:ValidationTest ;
    mf:name "1datatypelangString_pass" ;
    sht:trait sht:Datatype ;
    rdfs:comment "<S> { <p1> rdf:langString } on <s> in { <s1> <p1> 'ab'@en }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1datatypelangString.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_LabLTen.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .
###   lexical form {

####    integer            -1 0 1 +1 | "" -1.0 +1.0 1E0
<#integer-n1_pass> a sht:ValidationTest ;
    mf:name "integer-n1_pass" ;
    sht:trait sht:ValidLexicalForm ;
    rdfs:comment "<S> { <p> xsd:integer} / { <s> <p> '-1'^^xsd:integer }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/datatypes.shex> ;
      sht:shape <http://a.example/S-integer> ;
      sht:data <datatypes-data.ttl> ;
      sht:focus <http://a.example/integer-n1>
    ]
    .

<#integer-0_pass> a sht:ValidationTest ;
    mf:name "integer-0_pass" ;
    sht:trait sht:ValidLexicalForm ;
    rdfs:comment "<S> { <p> xsd:integer} / { <s> <p> '0'^^xsd:integer }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/datatypes.shex> ;
      sht:shape <http://a.example/S-integer> ;
      sht:data <datatypes-data.ttl> ;
      sht:focus <http://a.example/integer-0>
    ]
    .

<#integer-1_pass> a sht:ValidationTest ;
    mf:name "integer-1_pass" ;
    sht:trait sht:ValidLexicalForm ;
    rdfs:comment "<S> { <p> xsd:integer} / { <s> <p> '1'^^xsd:integer }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/datatypes.shex> ;
      sht:shape <http://a.example/S-integer> ;
      sht:data <datatypes-data.ttl> ;
      sht:focus <http://a.example/integer-1>
    ]
    .

<#integer-p1_pass> a sht:ValidationTest ;
    mf:name "integer-p1_pass" ;
    sht:trait sht:ValidLexicalForm ;
    rdfs:comment "<S> { <p> xsd:integer} / { <s> <p> '+1'^^xsd:integer }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/datatypes.shex> ;
      sht:shape <http://a.example/S-integer> ;
      sht:data <datatypes-data.ttl> ;
      sht:focus <http://a.example/integer-p1>
    ]
    .

<#integer-empty_fail> a sht:ValidationFailure ;
    mf:name "integer-empty_fail" ;
    sht:trait sht:ValidLexicalForm ;
    rdfs:comment "<S> { <p> xsd:integer} / { <s> <p> ''^^xsd:integer }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/datatypes.shex> ;
      sht:shape <http://a.example/S-integer> ;
      sht:data <datatypes-data.ttl> ;
      sht:focus <http://a.example/integer-empty.0>
    ] ;
    .

<#integer-n1.0_fail> a sht:ValidationFailure ;
    mf:name "integer-n1.0_fail" ;
    sht:trait sht:ValidLexicalForm ;
    rdfs:comment "<S> { <p> xsd:integer} / { <s> <p> '-1.0'^^xsd:integer }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/datatypes.shex> ;
      sht:shape <http://a.example/S-integer> ;
      sht:data <datatypes-data.ttl> ;
      sht:focus <http://a.example/integer-n1.0>
    ] ;
    .

<#integer-p1.0_fail> a sht:ValidationFailure ;
    mf:name "integer-p1.0_fail" ;
    sht:trait sht:ValidLexicalForm ;
    rdfs:comment "<S> { <p> xsd:integer} / { <s> <p> '+1.0'^^xsd:integer }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/datatypes.shex> ;
      sht:shape <http://a.example/S-integer> ;
      sht:data <datatypes-data.ttl> ;
      sht:focus <http://a.example/integer-p1.0>
    ] ;
    .

<#integer-1E0_fail> a sht:ValidationFailure ;
    mf:name "integer-1E0_fail" ;
    sht:trait sht:ValidLexicalForm ;
    rdfs:comment "<S> { <p> xsd:integer} / { <s> <p> '1E0'^^xsd:integer }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/datatypes.shex> ;
      sht:shape <http://a.example/S-integer> ;
      sht:data <datatypes-data.ttl> ;
      sht:focus <http://a.example/integer-1E0>
    ] ;
    .

<#integer-NaN_fail> a sht:ValidationFailure ;
    mf:name "integer-NaN_fail" ;
    sht:trait sht:ValidLexicalForm ;
    rdfs:comment "<S> { <p> xsd:integer} / { <s> <p> 'NaN'^^xsd:integer }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/datatypes.shex> ;
      sht:shape <http://a.example/S-integer> ;
      sht:data <datatypes-data.ttl> ;
      sht:focus <http://a.example/integer-NaN>
    ] ;
    .

<#integer-INF_fail> a sht:ValidationFailure ;
    mf:name "integer-INF_fail" ;
    sht:trait sht:ValidLexicalForm ;
    rdfs:comment "<S> { <p> xsd:integer} / { <s> <p> 'INF'^^xsd:integer }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/datatypes.shex> ;
      sht:shape <http://a.example/S-integer> ;
      sht:data <datatypes-data.ttl> ;
      sht:focus <http://a.example/integer-INF>
    ] ;
    .

####    decimal            -1 0 1 +1 | "" -1.0 +1.0 1E0 NaN INF
<#decimal-n1_pass> a sht:ValidationTest ;
    mf:name "decimal-n1_pass" ;
    sht:trait sht:ValidLexicalForm ;
    rdfs:comment "<S> { <p> xsd:decimal} / { <s> <p> '-1'^^xsd:decimal }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/datatypes.shex> ;
      sht:shape <http://a.example/S-decimal> ;
      sht:data <datatypes-data.ttl> ;
      sht:focus <http://a.example/decimal-n1>
    ]
    .

<#decimal-0_pass> a sht:ValidationTest ;
    mf:name "decimal-0_pass" ;
    sht:trait sht:ValidLexicalForm ;
    rdfs:comment "<S> { <p> xsd:decimal} / { <s> <p> '0'^^xsd:decimal }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/datatypes.shex> ;
      sht:shape <http://a.example/S-decimal> ;
      sht:data <datatypes-data.ttl> ;
      sht:focus <http://a.example/decimal-0>
    ]
    .

<#decimal-1_pass> a sht:ValidationTest ;
    mf:name "decimal-1_pass" ;
    sht:trait sht:ValidLexicalForm ;
    rdfs:comment "<S> { <p> xsd:decimal} / { <s> <p> '1'^^xsd:decimal }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/datatypes.shex> ;
      sht:shape <http://a.example/S-decimal> ;
      sht:data <datatypes-data.ttl> ;
      sht:focus <http://a.example/decimal-1>
    ]
    .

<#decimal-p1_pass> a sht:ValidationTest ;
    mf:name "decimal-p1_pass" ;
    sht:trait sht:ValidLexicalForm ;
    rdfs:comment "<S> { <p> xsd:decimal} / { <s> <p> '+1'^^xsd:decimal }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/datatypes.shex> ;
      sht:shape <http://a.example/S-decimal> ;
      sht:data <datatypes-data.ttl> ;
      sht:focus <http://a.example/decimal-p1>
    ]
    .

<#decimal-n1.0_pass> a sht:ValidationTest ;
    mf:name "decimal-n1.0_pass" ;
    sht:trait sht:ValidLexicalForm ;
    rdfs:comment "<S> { <p> xsd:decimal} / { <s> <p> '-1.0'^^xsd:decimal }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/datatypes.shex> ;
      sht:shape <http://a.example/S-decimal> ;
      sht:data <datatypes-data.ttl> ;
      sht:focus <http://a.example/decimal-n1.0>
    ]
    .

<#decimal-p1.0_pass> a sht:ValidationTest ;
    mf:name "decimal-p1.0_pass" ;
    sht:trait sht:ValidLexicalForm ;
    rdfs:comment "<S> { <p> xsd:decimal} / { <s> <p> '+1.0'^^xsd:decimal }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/datatypes.shex> ;
      sht:shape <http://a.example/S-decimal> ;
      sht:data <datatypes-data.ttl> ;
      sht:focus <http://a.example/decimal-p1.0>
    ]
    .

<#decimal-empty_fail> a sht:ValidationFailure ;
    mf:name "decimal-empty_fail" ;
    sht:trait sht:ValidLexicalForm ;
    rdfs:comment "<S> { <p> xsd:decimal} / { <s> <p> ''^^xsd:decimal }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/datatypes.shex> ;
      sht:shape <http://a.example/S-decimal> ;
      sht:data <datatypes-data.ttl> ;
      sht:focus <http://a.example/decimal-empty>
    ] ;
    .

<#decimal-1E0_fail> a sht:ValidationFailure ;
    mf:name "decimal-1E0_fail" ;
    sht:trait sht:ValidLexicalForm ;
    rdfs:comment "<S> { <p> xsd:decimal} / { <s> <p> '1E0'^^xsd:decimal }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/datatypes.shex> ;
      sht:shape <http://a.example/S-decimal> ;
      sht:data <datatypes-data.ttl> ;
      sht:focus <http://a.example/decimal-1E0>
    ] ;
    .

<#decimal-NaN_fail> a sht:ValidationFailure ;
    mf:name "decimal-NaN_fail" ;
    sht:trait sht:ValidLexicalForm ;
    rdfs:comment "<S> { <p> xsd:decimal} / { <s> <p> 'NaN'^^xsd:decimal }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/datatypes.shex> ;
      sht:shape <http://a.example/S-decimal> ;
      sht:data <datatypes-data.ttl> ;
      sht:focus <http://a.example/decimal-NaN>
    ] ;
    .

<#decimal-INF_fail> a sht:ValidationFailure ;
    mf:name "decimal-INF_fail" ;
    sht:trait sht:ValidLexicalForm ;
    rdfs:comment "<S> { <p> xsd:decimal} / { <s> <p> 'INF'^^xsd:decimal }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/datatypes.shex> ;
      sht:shape <http://a.example/S-decimal> ;
      sht:data <datatypes-data.ttl> ;
      sht:focus <http://a.example/decimal-INF>
    ] ;
    .

####    float              -1 0 1 +1 -1.0 +1.0 | "" 1E0
####    float              -1 0 1 +1 -1.0 +1.0 1e0 1E0 NaN INF -INF | "" +INF
<#float-n1_pass> a sht:ValidationTest ;
    mf:name "float-n1_pass" ;
    sht:trait sht:ValidLexicalForm ;
    rdfs:comment "<S> { <p> xsd:float} / { <s> <p> '-1'^^xsd:float }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/datatypes.shex> ;
      sht:shape <http://a.example/S-float> ;
      sht:data <datatypes-data.ttl> ;
      sht:focus <http://a.example/float-n1>
    ]
    .

<#float-0_pass> a sht:ValidationTest ;
    mf:name "float-0_pass" ;
    sht:trait sht:ValidLexicalForm ;
    rdfs:comment "<S> { <p> xsd:float} / { <s> <p> '0'^^xsd:float }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/datatypes.shex> ;
      sht:shape <http://a.example/S-float> ;
      sht:data <datatypes-data.ttl> ;
      sht:focus <http://a.example/float-0>
    ]
    .

<#float-1_pass> a sht:ValidationTest ;
    mf:name "float-1_pass" ;
    sht:trait sht:ValidLexicalForm ;
    rdfs:comment "<S> { <p> xsd:float} / { <s> <p> '1'^^xsd:float }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/datatypes.shex> ;
      sht:shape <http://a.example/S-float> ;
      sht:data <datatypes-data.ttl> ;
      sht:focus <http://a.example/float-1>
    ]
    .

<#float-p1_pass> a sht:ValidationTest ;
    mf:name "float-p1_pass" ;
    sht:trait sht:ValidLexicalForm ;
    rdfs:comment "<S> { <p> xsd:float} / { <s> <p> '+1'^^xsd:float }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/datatypes.shex> ;
      sht:shape <http://a.example/S-float> ;
      sht:data <datatypes-data.ttl> ;
      sht:focus <http://a.example/float-p1>
    ]
    .

<#float-n1.0_pass> a sht:ValidationTest ;
    mf:name "float-n1.0_pass" ;
    sht:trait sht:ValidLexicalForm ;
    rdfs:comment "<S> { <p> xsd:float} / { <s> <p> '-1.0'^^xsd:float }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/datatypes.shex> ;
      sht:shape <http://a.example/S-float> ;
      sht:data <datatypes-data.ttl> ;
      sht:focus <http://a.example/float-n1.0>
    ]
    .

<#float-p1.0_pass> a sht:ValidationTest ;
    mf:name "float-p1.0_pass" ;
    sht:trait sht:ValidLexicalForm ;
    rdfs:comment "<S> { <p> xsd:float} / { <s> <p> '+1.0'^^xsd:float }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/datatypes.shex> ;
      sht:shape <http://a.example/S-float> ;
      sht:data <datatypes-data.ttl> ;
      sht:focus <http://a.example/float-p1.0>
    ]
    .

<#float-1elowercase0_pass> a sht:ValidationTest ;
    mf:name "float-1elowercase0_pass" ;
    sht:trait sht:ValidLexicalForm ;
    rdfs:comment "<S> { <p> xsd:float} / { <s> <p> '1e0'^^xsd:float }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/datatypes.shex> ;
      sht:shape <http://a.example/S-float> ;
      sht:data <datatypes-data.ttl> ;
      sht:focus <http://a.example/float-1e0>
    ]
    .

<#float-1E0_pass> a sht:ValidationTest ;
    mf:name "float-1E0_pass" ;
    sht:trait sht:ValidLexicalForm ;
    rdfs:comment "<S> { <p> xsd:float} / { <s> <p> '1E0'^^xsd:float }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/datatypes.shex> ;
      sht:shape <http://a.example/S-float> ;
      sht:data <datatypes-data.ttl> ;
      sht:focus <http://a.example/float-1E0>
    ]
    .

<#float-NaN_pass> a sht:ValidationTest ;
    mf:name "float-NaN_pass" ;
    sht:trait sht:ValidLexicalForm ;
    rdfs:comment "<S> { <p> xsd:float} / { <s> <p> 'NaN'^^xsd:float }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/datatypes.shex> ;
      sht:shape <http://a.example/S-float> ;
      sht:data <datatypes-data.ttl> ;
      sht:focus <http://a.example/float-NaN>
    ]
    .

<#float-INF_pass> a sht:ValidationTest ;
    mf:name "float-INF_pass" ;
    sht:trait sht:ValidLexicalForm ;
    rdfs:comment "<S> { <p> xsd:float} / { <s> <p> 'INF'^^xsd:float }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/datatypes.shex> ;
      sht:shape <http://a.example/S-float> ;
      sht:data <datatypes-data.ttl> ;
      sht:focus <http://a.example/float-INF>
    ]
    .

<#float-nINF_pass> a sht:ValidationTest ;
    mf:name "float-nINF_pass" ;
    sht:trait sht:ValidLexicalForm ;
    rdfs:comment "<S> { <p> xsd:float} / { <s> <p> '-INF'^^xsd:float }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/datatypes.shex> ;
      sht:shape <http://a.example/S-float> ;
      sht:data <datatypes-data.ttl> ;
      sht:focus <http://a.example/float-nINF>
    ]
    .

<#float-empty_fail> a sht:ValidationFailure ;
    mf:name "float-empty_fail" ;
    sht:trait sht:ValidLexicalForm ;
    rdfs:comment "<S> { <p> xsd:float} / { <s> <p> ''^^xsd:float }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/datatypes.shex> ;
      sht:shape <http://a.example/S-float> ;
      sht:data <datatypes-data.ttl> ;
      sht:focus <http://a.example/float-empty>
    ] ;
    .

<#float-pINF_fail> a sht:ValidationFailure ;
    mf:name "float-pINF_fail" ;
    sht:trait sht:ValidLexicalForm ;
    rdfs:comment "<S> { <p> xsd:float} / { <s> <p> '+INF'^^xsd:float }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/datatypes.shex> ;
      sht:shape <http://a.example/S-float> ;
      sht:data <datatypes-data.ttl> ;
      sht:focus <http://a.example/float-pINF>
    ] ;
    .



####    double             -1 0 1 +1 -1.0 +1.0 1e0 1E0 NaN INF -INF | "" +INF
<#double-n1_pass> a sht:ValidationTest ;
    mf:name "double-n1_pass" ;
    sht:trait sht:ValidLexicalForm ;
    rdfs:comment "<S> { <p> xsd:double} / { <s> <p> '-1'^^xsd:double }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/datatypes.shex> ;
      sht:shape <http://a.example/S-double> ;
      sht:data <datatypes-data.ttl> ;
      sht:focus <http://a.example/double-n1>
    ]
    .

<#double-0_pass> a sht:ValidationTest ;
    mf:name "double-0_pass" ;
    sht:trait sht:ValidLexicalForm ;
    rdfs:comment "<S> { <p> xsd:double} / { <s> <p> '0'^^xsd:double }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/datatypes.shex> ;
      sht:shape <http://a.example/S-double> ;
      sht:data <datatypes-data.ttl> ;
      sht:focus <http://a.example/double-0>
    ]
    .

<#double-1_pass> a sht:ValidationTest ;
    mf:name "double-1_pass" ;
    sht:trait sht:ValidLexicalForm ;
    rdfs:comment "<S> { <p> xsd:double} / { <s> <p> '1'^^xsd:double }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/datatypes.shex> ;
      sht:shape <http://a.example/S-double> ;
      sht:data <datatypes-data.ttl> ;
      sht:focus <http://a.example/double-1>
    ]
    .

<#double-p1_pass> a sht:ValidationTest ;
    mf:name "double-p1_pass" ;
    sht:trait sht:ValidLexicalForm ;
    rdfs:comment "<S> { <p> xsd:double} / { <s> <p> '+1'^^xsd:double }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/datatypes.shex> ;
      sht:shape <http://a.example/S-double> ;
      sht:data <datatypes-data.ttl> ;
      sht:focus <http://a.example/double-p1>
    ]
    .

<#double-n1.0_pass> a sht:ValidationTest ;
    mf:name "double-n1.0_pass" ;
    sht:trait sht:ValidLexicalForm ;
    rdfs:comment "<S> { <p> xsd:double} / { <s> <p> '-1.0'^^xsd:double }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/datatypes.shex> ;
      sht:shape <http://a.example/S-double> ;
      sht:data <datatypes-data.ttl> ;
      sht:focus <http://a.example/double-n1.0>
    ]
    .

<#double-p1.0_pass> a sht:ValidationTest ;
    mf:name "double-p1.0_pass" ;
    sht:trait sht:ValidLexicalForm ;
    rdfs:comment "<S> { <p> xsd:double} / { <s> <p> '+1.0'^^xsd:double }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/datatypes.shex> ;
      sht:shape <http://a.example/S-double> ;
      sht:data <datatypes-data.ttl> ;
      sht:focus <http://a.example/double-p1.0>
    ]
    .

<#double-1E0_pass> a sht:ValidationTest ;
    mf:name "double-1E0_pass" ;
    sht:trait sht:ValidLexicalForm ;
    rdfs:comment "<S> { <p> xsd:double} / { <s> <p> '1E0'^^xsd:double }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/datatypes.shex> ;
      sht:shape <http://a.example/S-double> ;
      sht:data <datatypes-data.ttl> ;
      sht:focus <http://a.example/double-1E0>
    ]
    .

<#double-1e0_pass> a sht:ValidationTest ;
    mf:name "double-1e0_pass" ;
    sht:trait sht:ValidLexicalForm ;
    rdfs:comment "<S> { <p> xsd:double} / { <s> <p> '1e0'^^xsd:double }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/datatypes.shex> ;
      sht:shape <http://a.example/S-double> ;
      sht:data <datatypes-data.ttl> ;
      sht:focus <http://a.example/double-1e0>
    ]
    .

<#double-NaN_pass> a sht:ValidationTest ;
    mf:name "double-NaN_pass" ;
    sht:trait sht:ValidLexicalForm ;
    rdfs:comment "<S> { <p> xsd:double} / { <s> <p> 'NaN'^^xsd:double }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/datatypes.shex> ;
      sht:shape <http://a.example/S-double> ;
      sht:data <datatypes-data.ttl> ;
      sht:focus <http://a.example/double-NaN>
    ]
    .

<#double-INF_pass> a sht:ValidationTest ;
    mf:name "double-INF_pass" ;
    sht:trait sht:ValidLexicalForm ;
    rdfs:comment "<S> { <p> xsd:double} / { <s> <p> 'INF'^^xsd:double }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/datatypes.shex> ;
      sht:shape <http://a.example/S-double> ;
      sht:data <datatypes-data.ttl> ;
      sht:focus <http://a.example/double-INF>
    ]
    .

<#double-nINF_pass> a sht:ValidationTest ;
    mf:name "double-nINF_pass" ;
    sht:trait sht:ValidLexicalForm ;
    rdfs:comment "<S> { <p> xsd:double} / { <s> <p> '-INF'^^xsd:double }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/datatypes.shex> ;
      sht:shape <http://a.example/S-double> ;
      sht:data <datatypes-data.ttl> ;
      sht:focus <http://a.example/double-nINF>
    ]
    .

<#double-empty_fail> a sht:ValidationFailure ;
    mf:name "double-empty_fail" ;
    sht:trait sht:ValidLexicalForm ;
    rdfs:comment "<S> { <p> xsd:double} / { <s> <p> ''^^xsd:double }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/datatypes.shex> ;
      sht:shape <http://a.example/S-double> ;
      sht:data <datatypes-data.ttl> ;
      sht:focus <http://a.example/double-empty>
    ] ;
    .

<#double-pINF_fail> a sht:ValidationFailure ;
    mf:name "double-pINF_fail" ;
    sht:trait sht:ValidLexicalForm ;
    rdfs:comment "<S> { <p> xsd:double} / { <s> <p> '+INF'^^xsd:double }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/datatypes.shex> ;
      sht:shape <http://a.example/S-double> ;
      sht:data <datatypes-data.ttl> ;
      sht:focus <http://a.example/double-pINF>
    ] ;
    .


####    nonPositiveInteger -1 0 +0 -0 | 1 +1 1a a1
<#nonPositiveInteger-n1_pass> a sht:ValidationTest ;
    mf:name "nonPositiveInteger-n1_pass" ;
    sht:trait sht:ValidLexicalForm ;
    rdfs:comment "<S> { <p> xsd:nonPositiveInteger} / { <s> <p> '-1'^^xsd:nonPositiveInteger }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/datatypes.shex> ;
      sht:shape <http://a.example/S-nonPositiveInteger> ;
      sht:data <datatypes-data.ttl> ;
      sht:focus <http://a.example/nonPositiveInteger-n1>
    ]
    .

<#nonPositiveInteger-0_pass> a sht:ValidationTest ;
    mf:name "nonPositiveInteger-0_pass" ;
    sht:trait sht:ValidLexicalForm ;
    rdfs:comment "<S> { <p> xsd:nonPositiveInteger} / { <s> <p> '0'^^xsd:nonPositiveInteger }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/datatypes.shex> ;
      sht:shape <http://a.example/S-nonPositiveInteger> ;
      sht:data <datatypes-data.ttl> ;
      sht:focus <http://a.example/nonPositiveInteger-0>
    ]
    .

<#nonPositiveInteger-p0_pass> a sht:ValidationTest ;
    mf:name "nonPositiveInteger-p0_pass" ;
    sht:trait sht:ValidLexicalForm ;
    rdfs:comment "<S> { <p> xsd:nonPositiveInteger} / { <s> <p> '+0'^^xsd:nonPositiveInteger }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/datatypes.shex> ;
      sht:shape <http://a.example/S-nonPositiveInteger> ;
      sht:data <datatypes-data.ttl> ;
      sht:focus <http://a.example/nonPositiveInteger-p0>
    ]
    .

<#nonPositiveInteger-n0_pass> a sht:ValidationTest ;
    mf:name "nonPositiveInteger-n0_pass" ;
    sht:trait sht:ValidLexicalForm ;
    rdfs:comment "<S> { <p> xsd:nonPositiveInteger} / { <s> <p> '-0'^^xsd:nonPositiveInteger }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/datatypes.shex> ;
      sht:shape <http://a.example/S-nonPositiveInteger> ;
      sht:data <datatypes-data.ttl> ;
      sht:focus <http://a.example/nonPositiveInteger-n0>
    ]
    .

<#nonPositiveInteger-1_fail> a sht:ValidationFailure ;
    mf:name "nonPositiveInteger-1_fail" ;
    sht:trait sht:ValidLexicalForm ;
    rdfs:comment "<S> { <p> xsd:nonPositiveInteger} / { <s> <p> '1'^^xsd:nonPositiveInteger }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/datatypes.shex> ;
      sht:shape <http://a.example/S-nonPositiveInteger> ;
      sht:data <datatypes-data.ttl> ;
      sht:focus <http://a.example/nonPositiveInteger-1>
    ] ;
    .

<#nonPositiveInteger-p1_fail> a sht:ValidationFailure ;
    mf:name "nonPositiveInteger-p1_fail" ;
    sht:trait sht:ValidLexicalForm ;
    rdfs:comment "<S> { <p> xsd:nonPositiveInteger} / { <s> <p> '+1'^^xsd:nonPositiveInteger }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/datatypes.shex> ;
      sht:shape <http://a.example/S-nonPositiveInteger> ;
      sht:data <datatypes-data.ttl> ;
      sht:focus <http://a.example/nonPositiveInteger-p1>
    ] ;
    .

<#nonPositiveInteger-1a_fail> a sht:ValidationFailure ;
    mf:name "nonPositiveInteger-1a_fail" ;
    sht:trait sht:ValidLexicalForm ;
    rdfs:comment "<S> { <p> xsd:nonPositiveInteger} / { <s> <p> '1a'^^xsd:nonPositiveInteger }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/datatypes.shex> ;
      sht:shape <http://a.example/S-nonPositiveInteger> ;
      sht:data <datatypes-data.ttl> ;
      sht:focus <http://a.example/nonPositiveInteger-1a>
    ] ;
    .

<#nonPositiveInteger-a1_fail> a sht:ValidationFailure ;
    mf:name "nonPositiveInteger-a1_fail" ;
    sht:trait sht:ValidLexicalForm ;
    rdfs:comment "<S> { <p> xsd:nonPositiveInteger} / { <s> <p> 'a1'^^xsd:nonPositiveInteger }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/datatypes.shex> ;
      sht:shape <http://a.example/S-nonPositiveInteger> ;
      sht:data <datatypes-data.ttl> ;
      sht:focus <http://a.example/nonPositiveInteger-a1>
    ] ;
    .


####    negativeInteger    -1 | 0 +0 -0 1 
<#negativeInteger-n1_pass> a sht:ValidationTest ;
    mf:name "negativeInteger-n1_pass" ;
    sht:trait sht:ValidLexicalForm ;
    rdfs:comment "<S> { <p> xsd:negativeInteger} / { <s> <p> '-1'^^xsd:negativeInteger }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/datatypes.shex> ;
      sht:shape <http://a.example/S-negativeInteger> ;
      sht:data <datatypes-data.ttl> ;
      sht:focus <http://a.example/negativeInteger-n1>
    ]
    .

<#negativeInteger-0_fail> a sht:ValidationFailure ;
    mf:name "negativeInteger-0_fail" ;
    sht:trait sht:ValidLexicalForm ;
    rdfs:comment "<S> { <p> xsd:negativeInteger} / { <s> <p> '0'^^xsd:negativeInteger }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/datatypes.shex> ;
      sht:shape <http://a.example/S-negativeInteger> ;
      sht:data <datatypes-data.ttl> ;
      sht:focus <http://a.example/negativeInteger-0>
    ] ;
    .

<#negativeInteger-p0_fail> a sht:ValidationFailure ;
    mf:name "negativeInteger-p0_fail" ;
    sht:trait sht:ValidLexicalForm ;
    rdfs:comment "<S> { <p> xsd:negativeInteger} / { <s> <p> '+0'^^xsd:negativeInteger }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/datatypes.shex> ;
      sht:shape <http://a.example/S-negativeInteger> ;
      sht:data <datatypes-data.ttl> ;
      sht:focus <http://a.example/negativeInteger-p0>
    ] ;
    .

<#negativeInteger-n0_fail> a sht:ValidationFailure ;
    mf:name "negativeInteger-n0_fail" ;
    sht:trait sht:ValidLexicalForm ;
    rdfs:comment "<S> { <p> xsd:negativeInteger} / { <s> <p> '-0'^^xsd:negativeInteger }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/datatypes.shex> ;
      sht:shape <http://a.example/S-negativeInteger> ;
      sht:data <datatypes-data.ttl> ;
      sht:focus <http://a.example/negativeInteger-n0>
    ] ;
    .

<#negativeInteger-1_fail> a sht:ValidationFailure ;
    mf:name "negativeInteger-1_fail" ;
    sht:trait sht:ValidLexicalForm ;
    rdfs:comment "<S> { <p> xsd:negativeInteger} / { <s> <p> '1'^^xsd:negativeInteger }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/datatypes.shex> ;
      sht:shape <http://a.example/S-negativeInteger> ;
      sht:data <datatypes-data.ttl> ;
      sht:focus <http://a.example/negativeInteger-1>
    ] ;
    .


####    long               -1 0 1 +1 |
<#long-n1_pass> a sht:ValidationTest ;
    mf:name "long-n1_pass" ;
    sht:trait sht:ValidLexicalForm ;
    rdfs:comment "<S> { <p> xsd:long} / { <s> <p> '-1'^^xsd:long }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/datatypes.shex> ;
      sht:shape <http://a.example/S-long> ;
      sht:data <datatypes-data.ttl> ;
      sht:focus <http://a.example/long-n1>
    ]
    .

<#long-0_pass> a sht:ValidationTest ;
    mf:name "long-0_pass" ;
    sht:trait sht:ValidLexicalForm ;
    rdfs:comment "<S> { <p> xsd:long} / { <s> <p> '0'^^xsd:long }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/datatypes.shex> ;
      sht:shape <http://a.example/S-long> ;
      sht:data <datatypes-data.ttl> ;
      sht:focus <http://a.example/long-0>
    ]
    .

<#long-1_pass> a sht:ValidationTest ;
    mf:name "long-1_pass" ;
    sht:trait sht:ValidLexicalForm ;
    rdfs:comment "<S> { <p> xsd:long} / { <s> <p> '1'^^xsd:long }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/datatypes.shex> ;
      sht:shape <http://a.example/S-long> ;
      sht:data <datatypes-data.ttl> ;
      sht:focus <http://a.example/long-1>
    ]
    .

<#long-p1_pass> a sht:ValidationTest ;
    mf:name "long-p1_pass" ;
    sht:trait sht:ValidLexicalForm ;
    rdfs:comment "<S> { <p> xsd:long} / { <s> <p> '+1'^^xsd:long }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/datatypes.shex> ;
      sht:shape <http://a.example/S-long> ;
      sht:data <datatypes-data.ttl> ;
      sht:focus <http://a.example/long-p1>
    ]
    .


####    int                -1 0 1 +1 |
<#int-n1_pass> a sht:ValidationTest ;
    mf:name "int-n1_pass" ;
    sht:trait sht:ValidLexicalForm ;
    rdfs:comment "<S> { <p> xsd:int} / { <s> <p> '-1'^^xsd:int }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/datatypes.shex> ;
      sht:shape <http://a.example/S-int> ;
      sht:data <datatypes-data.ttl> ;
      sht:focus <http://a.example/int-n1>
    ]
    .

<#int-0_pass> a sht:ValidationTest ;
    mf:name "int-0_pass" ;
    sht:trait sht:ValidLexicalForm ;
    rdfs:comment "<S> { <p> xsd:int} / { <s> <p> '0'^^xsd:int }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/datatypes.shex> ;
      sht:shape <http://a.example/S-int> ;
      sht:data <datatypes-data.ttl> ;
      sht:focus <http://a.example/int-0>
    ]
    .

<#int-1_pass> a sht:ValidationTest ;
    mf:name "int-1_pass" ;
    sht:trait sht:ValidLexicalForm ;
    rdfs:comment "<S> { <p> xsd:int} / { <s> <p> '1'^^xsd:int }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/datatypes.shex> ;
      sht:shape <http://a.example/S-int> ;
      sht:data <datatypes-data.ttl> ;
      sht:focus <http://a.example/int-1>
    ]
    .

<#int-p1_pass> a sht:ValidationTest ;
    mf:name "int-p1_pass" ;
    sht:trait sht:ValidLexicalForm ;
    rdfs:comment "<S> { <p> xsd:int} / { <s> <p> '+1'^^xsd:int }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/datatypes.shex> ;
      sht:shape <http://a.example/S-int> ;
      sht:data <datatypes-data.ttl> ;
      sht:focus <http://a.example/int-p1>
    ]
    .


####    short              -32768 0 32767 | -32769 32768
<#short-n32768_pass> a sht:ValidationTest ;
    mf:name "short-n32768_pass" ;
    sht:trait sht:ValidLexicalForm ;
    rdfs:comment "<S> { <p> xsd:short} / { <s> <p> '-32768'^^xsd:short }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/datatypes.shex> ;
      sht:shape <http://a.example/S-short> ;
      sht:data <datatypes-data.ttl> ;
      sht:focus <http://a.example/short-n32768>
    ]
    .

<#short-0_pass> a sht:ValidationTest ;
    mf:name "short-0_pass" ;
    sht:trait sht:ValidLexicalForm ;
    rdfs:comment "<S> { <p> xsd:short} / { <s> <p> '0'^^xsd:short }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/datatypes.shex> ;
      sht:shape <http://a.example/S-short> ;
      sht:data <datatypes-data.ttl> ;
      sht:focus <http://a.example/short-0>
    ]
    .

<#short-32767_pass> a sht:ValidationTest ;
    mf:name "short-32767_pass" ;
    sht:trait sht:ValidLexicalForm ;
    rdfs:comment "<S> { <p> xsd:short} / { <s> <p> '32767'^^xsd:short }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/datatypes.shex> ;
      sht:shape <http://a.example/S-short> ;
      sht:data <datatypes-data.ttl> ;
      sht:focus <http://a.example/short-32767>
    ]
    .

<#short-n32769_fail> a sht:ValidationFailure ;
    mf:name "short-n32769_fail" ;
    sht:trait sht:ValidLexicalForm ;
    rdfs:comment "<S> { <p> xsd:short} / { <s> <p> '-32769'^^xsd:short }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/datatypes.shex> ;
      sht:shape <http://a.example/S-short> ;
      sht:data <datatypes-data.ttl> ;
      sht:focus <http://a.example/short-n32769>
    ] ;
    .

<#short-32768_fail> a sht:ValidationFailure ;
    mf:name "short-32768_fail" ;
    sht:trait sht:ValidLexicalForm ;
    rdfs:comment "<S> { <p> xsd:short} / { <s> <p> '32768'^^xsd:short }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/datatypes.shex> ;
      sht:shape <http://a.example/S-short> ;
      sht:data <datatypes-data.ttl> ;
      sht:focus <http://a.example/short-32768>
    ] ;
    .


####    byte               -128 0 127 | "" -129 128
<#byte-n128_pass> a sht:ValidationTest ;
    mf:name "byte-n128_pass" ;
    sht:trait sht:ValidLexicalForm ;
    rdfs:comment "<S> { <p> xsd:byte} / { <s> <p> '-128'^^xsd:byte }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/datatypes.shex> ;
      sht:shape <http://a.example/S-byte> ;
      sht:data <datatypes-data.ttl> ;
      sht:focus <http://a.example/byte-n128>
    ]
    .

<#byte-0_pass> a sht:ValidationTest ;
    mf:name "byte-0_pass" ;
    sht:trait sht:ValidLexicalForm ;
    rdfs:comment "<S> { <p> xsd:byte} / { <s> <p> '0'^^xsd:byte }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/datatypes.shex> ;
      sht:shape <http://a.example/S-byte> ;
      sht:data <datatypes-data.ttl> ;
      sht:focus <http://a.example/byte-0>
    ]
    .

<#byte-127_pass> a sht:ValidationTest ;
    mf:name "byte-127_pass" ;
    sht:trait sht:ValidLexicalForm ;
    rdfs:comment "<S> { <p> xsd:byte} / { <s> <p> '127'^^xsd:byte }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/datatypes.shex> ;
      sht:shape <http://a.example/S-byte> ;
      sht:data <datatypes-data.ttl> ;
      sht:focus <http://a.example/byte-127>
    ]
    .

<#byte-empty_fail> a sht:ValidationFailure ;
    mf:name "byte-empty_fail" ;
    sht:trait sht:ValidLexicalForm ;
    rdfs:comment "<S> { <p> xsd:byte} / { <s> <p> ''^^xsd:byte }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/datatypes.shex> ;
      sht:shape <http://a.example/S-byte> ;
      sht:data <datatypes-data.ttl> ;
      sht:focus <http://a.example/byte-empty>
    ] ;
    .

<#byte-n129_fail> a sht:ValidationFailure ;
    mf:name "byte-n129_fail" ;
    sht:trait sht:ValidLexicalForm ;
    rdfs:comment "<S> { <p> xsd:byte} / { <s> <p> '-129'^^xsd:byte }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/datatypes.shex> ;
      sht:shape <http://a.example/S-byte> ;
      sht:data <datatypes-data.ttl> ;
      sht:focus <http://a.example/byte-n129>
    ] ;
    .

<#byte-128_fail> a sht:ValidationFailure ;
    mf:name "byte-128_fail" ;
    sht:trait sht:ValidLexicalForm ;
    rdfs:comment "<S> { <p> xsd:byte} / { <s> <p> '128'^^xsd:byte }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/datatypes.shex> ;
      sht:shape <http://a.example/S-byte> ;
      sht:data <datatypes-data.ttl> ;
      sht:focus <http://a.example/byte-128>
    ] ;
    .


####    nonNegativeInteger 0 -0 +0 1 +1 | -1
<#nonNegativeInteger-0_pass> a sht:ValidationTest ;
    mf:name "nonNegativeInteger-0_pass" ;
    sht:trait sht:ValidLexicalForm ;
    rdfs:comment "<S> { <p> xsd:nonNegativeInteger} / { <s> <p> '0'^^xsd:nonNegativeInteger }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/datatypes.shex> ;
      sht:shape <http://a.example/S-nonNegativeInteger> ;
      sht:data <datatypes-data.ttl> ;
      sht:focus <http://a.example/nonNegativeInteger-0>
    ]
    .

<#nonNegativeInteger-n0_pass> a sht:ValidationTest ;
    mf:name "nonNegativeInteger-n0_pass" ;
    sht:trait sht:ValidLexicalForm ;
    rdfs:comment "<S> { <p> xsd:nonNegativeInteger} / { <s> <p> '-0'^^xsd:nonNegativeInteger }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/datatypes.shex> ;
      sht:shape <http://a.example/S-nonNegativeInteger> ;
      sht:data <datatypes-data.ttl> ;
      sht:focus <http://a.example/nonNegativeInteger-n0>
    ]
    .

<#nonNegativeInteger-p0_pass> a sht:ValidationTest ;
    mf:name "nonNegativeInteger-p0_pass" ;
    sht:trait sht:ValidLexicalForm ;
    rdfs:comment "<S> { <p> xsd:nonNegativeInteger} / { <s> <p> '+0'^^xsd:nonNegativeInteger }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/datatypes.shex> ;
      sht:shape <http://a.example/S-nonNegativeInteger> ;
      sht:data <datatypes-data.ttl> ;
      sht:focus <http://a.example/nonNegativeInteger-p0>
    ]
    .

<#nonNegativeInteger-1_pass> a sht:ValidationTest ;
    mf:name "nonNegativeInteger-1_pass" ;
    sht:trait sht:ValidLexicalForm ;
    rdfs:comment "<S> { <p> xsd:nonNegativeInteger} / { <s> <p> '1'^^xsd:nonNegativeInteger }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/datatypes.shex> ;
      sht:shape <http://a.example/S-nonNegativeInteger> ;
      sht:data <datatypes-data.ttl> ;
      sht:focus <http://a.example/nonNegativeInteger-1>
    ]
    .

<#nonNegativeInteger-p1_pass> a sht:ValidationTest ;
    mf:name "nonNegativeInteger-p1_pass" ;
    sht:trait sht:ValidLexicalForm ;
    rdfs:comment "<S> { <p> xsd:nonNegativeInteger} / { <s> <p> '+1'^^xsd:nonNegativeInteger }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/datatypes.shex> ;
      sht:shape <http://a.example/S-nonNegativeInteger> ;
      sht:data <datatypes-data.ttl> ;
      sht:focus <http://a.example/nonNegativeInteger-p1>
    ]
    .

<#nonNegativeInteger-n1_fail> a sht:ValidationFailure ;
    mf:name "nonNegativeInteger-n1_fail" ;
    sht:trait sht:ValidLexicalForm ;
    rdfs:comment "<S> { <p> xsd:nonNegativeInteger} / { <s> <p> '-1'^^xsd:nonNegativeInteger }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/datatypes.shex> ;
      sht:shape <http://a.example/S-nonNegativeInteger> ;
      sht:data <datatypes-data.ttl> ;
      sht:focus <http://a.example/nonNegativeInteger-n1>
    ] ;
    .


####    unsignedLong       0 1 | -1
<#unsignedLong-0_pass> a sht:ValidationTest ;
    mf:name "unsignedLong-0_pass" ;
    sht:trait sht:ValidLexicalForm ;
    rdfs:comment "<S> { <p> xsd:unsignedLong} / { <s> <p> '0'^^xsd:unsignedLong }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/datatypes.shex> ;
      sht:shape <http://a.example/S-unsignedLong> ;
      sht:data <datatypes-data.ttl> ;
      sht:focus <http://a.example/unsignedLong-0>
    ]
    .

<#unsignedLong-1_pass> a sht:ValidationTest ;
    mf:name "unsignedLong-1_pass" ;
    sht:trait sht:ValidLexicalForm ;
    rdfs:comment "<S> { <p> xsd:unsignedLong} / { <s> <p> '1'^^xsd:unsignedLong }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/datatypes.shex> ;
      sht:shape <http://a.example/S-unsignedLong> ;
      sht:data <datatypes-data.ttl> ;
      sht:focus <http://a.example/unsignedLong-1>
    ]
    .

<#unsignedLong-n1_fail> a sht:ValidationFailure ;
    mf:name "unsignedLong-n1_fail" ;
    sht:trait sht:ValidLexicalForm ;
    rdfs:comment "<S> { <p> xsd:unsignedLong} / { <s> <p> '-1'^^xsd:unsignedLong }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/datatypes.shex> ;
      sht:shape <http://a.example/S-unsignedLong> ;
      sht:data <datatypes-data.ttl> ;
      sht:focus <http://a.example/unsignedLong-n1>
    ] ;
    .


####    unsignedInt        0 1 | -1
<#unsignedInt-0_pass> a sht:ValidationTest ;
    mf:name "unsignedInt-0_pass" ;
    sht:trait sht:ValidLexicalForm ;
    rdfs:comment "<S> { <p> xsd:unsignedInt} / { <s> <p> '0'^^xsd:unsignedInt }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/datatypes.shex> ;
      sht:shape <http://a.example/S-unsignedInt> ;
      sht:data <datatypes-data.ttl> ;
      sht:focus <http://a.example/unsignedInt-0>
    ]
    .

<#unsignedInt-1_pass> a sht:ValidationTest ;
    mf:name "unsignedInt-1_pass" ;
    sht:trait sht:ValidLexicalForm ;
    rdfs:comment "<S> { <p> xsd:unsignedInt} / { <s> <p> '1'^^xsd:unsignedInt }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/datatypes.shex> ;
      sht:shape <http://a.example/S-unsignedInt> ;
      sht:data <datatypes-data.ttl> ;
      sht:focus <http://a.example/unsignedInt-1>
    ]
    .

<#unsignedInt-n1_fail> a sht:ValidationFailure ;
    mf:name "unsignedInt-n1_fail" ;
    sht:trait sht:ValidLexicalForm ;
    rdfs:comment "<S> { <p> xsd:unsignedInt} / { <s> <p> '-1'^^xsd:unsignedInt }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/datatypes.shex> ;
      sht:shape <http://a.example/S-unsignedInt> ;
      sht:data <datatypes-data.ttl> ;
      sht:focus <http://a.example/unsignedInt-n1>
    ] ;
    .


####    unsignedShort      0 65535 | -1 65536
<#unsignedShort-0_pass> a sht:ValidationTest ;
    mf:name "unsignedShort-0_pass" ;
    sht:trait sht:ValidLexicalForm ;
    rdfs:comment "<S> { <p> xsd:unsignedShort} / { <s> <p> '0'^^xsd:unsignedShort }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/datatypes.shex> ;
      sht:shape <http://a.example/S-unsignedShort> ;
      sht:data <datatypes-data.ttl> ;
      sht:focus <http://a.example/unsignedShort-0>
    ]
    .

<#unsignedShort-65535_pass> a sht:ValidationTest ;
    mf:name "unsignedShort-65535_pass" ;
    sht:trait sht:ValidLexicalForm ;
    rdfs:comment "<S> { <p> xsd:unsignedShort} / { <s> <p> '65535'^^xsd:unsignedShort }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/datatypes.shex> ;
      sht:shape <http://a.example/S-unsignedShort> ;
      sht:data <datatypes-data.ttl> ;
      sht:focus <http://a.example/unsignedShort-65535>
    ]
    .

<#unsignedShort-n1_fail> a sht:ValidationFailure ;
    mf:name "unsignedShort-n1_fail" ;
    sht:trait sht:ValidLexicalForm ;
    rdfs:comment "<S> { <p> xsd:unsignedShort} / { <s> <p> '-1'^^xsd:unsignedShort }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/datatypes.shex> ;
      sht:shape <http://a.example/S-unsignedShort> ;
      sht:data <datatypes-data.ttl> ;
      sht:focus <http://a.example/unsignedShort-n1>
    ] ;
    .

<#unsignedShort-65536_fail> a sht:ValidationFailure ;
    mf:name "unsignedShort-65536_fail" ;
    sht:trait sht:ValidLexicalForm ;
    rdfs:comment "<S> { <p> xsd:unsignedShort} / { <s> <p> '65536'^^xsd:unsignedShort }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/datatypes.shex> ;
      sht:shape <http://a.example/S-unsignedShort> ;
      sht:data <datatypes-data.ttl> ;
      sht:focus <http://a.example/unsignedShort-65536>
    ] ;
    .


####    unsignedByte       0 255 | -1 256
<#unsignedByte-0_pass> a sht:ValidationTest ;
    mf:name "unsignedByte-0_pass" ;
    sht:trait sht:ValidLexicalForm ;
    rdfs:comment "<S> { <p> xsd:unsignedByte} / { <s> <p> '0'^^xsd:unsignedByte }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/datatypes.shex> ;
      sht:shape <http://a.example/S-unsignedByte> ;
      sht:data <datatypes-data.ttl> ;
      sht:focus <http://a.example/unsignedByte-0>
    ]
    .

<#unsignedByte-255_pass> a sht:ValidationTest ;
    mf:name "unsignedByte-255_pass" ;
    sht:trait sht:ValidLexicalForm ;
    rdfs:comment "<S> { <p> xsd:unsignedByte} / { <s> <p> '255'^^xsd:unsignedByte }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/datatypes.shex> ;
      sht:shape <http://a.example/S-unsignedByte> ;
      sht:data <datatypes-data.ttl> ;
      sht:focus <http://a.example/unsignedByte-255>
    ]
    .

<#unsignedByte-n1_fail> a sht:ValidationFailure ;
    mf:name "unsignedByte-n1_fail" ;
    sht:trait sht:ValidLexicalForm ;
    rdfs:comment "<S> { <p> xsd:unsignedByte} / { <s> <p> '-1'^^xsd:unsignedByte }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/datatypes.shex> ;
      sht:shape <http://a.example/S-unsignedByte> ;
      sht:data <datatypes-data.ttl> ;
      sht:focus <http://a.example/unsignedByte-n1>
    ] ;
    .

<#unsignedByte-256_fail> a sht:ValidationFailure ;
    mf:name "unsignedByte-256_fail" ;
    sht:trait sht:ValidLexicalForm ;
    rdfs:comment "<S> { <p> xsd:unsignedByte} / { <s> <p> '256'^^xsd:unsignedByte }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/datatypes.shex> ;
      sht:shape <http://a.example/S-unsignedByte> ;
      sht:data <datatypes-data.ttl> ;
      sht:focus <http://a.example/unsignedByte-256>
    ] ;
    .


####    positiveInteger    1 | -1 0
<#positiveInteger-1_pass> a sht:ValidationTest ;
    mf:name "positiveInteger-1_pass" ;
    sht:trait sht:ValidLexicalForm ;
    rdfs:comment "<S> { <p> xsd:positiveInteger} / { <s> <p> '1'^^xsd:positiveInteger }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/datatypes.shex> ;
      sht:shape <http://a.example/S-positiveInteger> ;
      sht:data <datatypes-data.ttl> ;
      sht:focus <http://a.example/positiveInteger-1>
    ]
    .

<#positiveInteger-n1_fail> a sht:ValidationFailure ;
    mf:name "positiveInteger-n1_fail" ;
    sht:trait sht:ValidLexicalForm ;
    rdfs:comment "<S> { <p> xsd:positiveInteger} / { <s> <p> '-1'^^xsd:positiveInteger }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/datatypes.shex> ;
      sht:shape <http://a.example/S-positiveInteger> ;
      sht:data <datatypes-data.ttl> ;
      sht:focus <http://a.example/positiveInteger-n1>
    ] ;
    .

<#positiveInteger-0_fail> a sht:ValidationFailure ;
    mf:name "positiveInteger-0_fail" ;
    sht:trait sht:ValidLexicalForm ;
    rdfs:comment "<S> { <p> xsd:positiveInteger} / { <s> <p> '0'^^xsd:positiveInteger }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/datatypes.shex> ;
      sht:shape <http://a.example/S-positiveInteger> ;
      sht:data <datatypes-data.ttl> ;
      sht:focus <http://a.example/positiveInteger-0>
    ] ;
    .


####    string             "" "a" "0"
<#string-empty_pass> a sht:ValidationTest ;
    mf:name "string-empty_pass" ;
    sht:trait sht:ValidLexicalForm ;
    rdfs:comment "<S> { <p> xsd:string} / { <s> <p> ''^^xsd:string }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/datatypes.shex> ;
      sht:shape <http://a.example/S-string> ;
      sht:data <datatypes-data.ttl> ;
      sht:focus <http://a.example/string-empty>
    ]
    .

<#string-a_pass> a sht:ValidationTest ;
    mf:name "string-a_pass" ;
    sht:trait sht:ValidLexicalForm ;
    rdfs:comment "<S> { <p> xsd:string} / { <s> <p> 'a'^^xsd:string }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/datatypes.shex> ;
      sht:shape <http://a.example/S-string> ;
      sht:data <datatypes-data.ttl> ;
      sht:focus <http://a.example/string-a>
    ]
    .

<#string-0_pass> a sht:ValidationTest ;
    mf:name "string-0_pass" ;
    sht:trait sht:ValidLexicalForm ;
    rdfs:comment "<S> { <p> xsd:string} / { <s> <p> '0'^^xsd:string }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/datatypes.shex> ;
      sht:shape <http://a.example/S-string> ;
      sht:data <datatypes-data.ttl> ;
      sht:focus <http://a.example/string-0>
    ]
    .


####    boolean            true false 0 1 | "" TRUE FALSE tRuE fAlSe -1 2 10 01
<#boolean-true_pass> a sht:ValidationTest ;
    mf:name "boolean-true_pass" ;
    sht:trait sht:ValidLexicalForm ;
    rdfs:comment "<S> { <p> xsd:boolean} / { <s> <p> 'true'^^xsd:boolean }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/datatypes.shex> ;
      sht:shape <http://a.example/S-boolean> ;
      sht:data <datatypes-data.ttl> ;
      sht:focus <http://a.example/boolean-true>
    ]
    .

<#boolean-false_pass> a sht:ValidationTest ;
    mf:name "boolean-false_pass" ;
    sht:trait sht:ValidLexicalForm ;
    rdfs:comment "<S> { <p> xsd:boolean} / { <s> <p> 'false'^^xsd:boolean }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/datatypes.shex> ;
      sht:shape <http://a.example/S-boolean> ;
      sht:data <datatypes-data.ttl> ;
      sht:focus <http://a.example/boolean-false>
    ]
    .

<#boolean-0_pass> a sht:ValidationTest ;
    mf:name "boolean-0_pass" ;
    sht:trait sht:ValidLexicalForm ;
    rdfs:comment "<S> { <p> xsd:boolean} / { <s> <p> '0'^^xsd:boolean }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/datatypes.shex> ;
      sht:shape <http://a.example/S-boolean> ;
      sht:data <datatypes-data.ttl> ;
      sht:focus <http://a.example/boolean-0>
    ]
    .

<#boolean-1_pass> a sht:ValidationTest ;
    mf:name "boolean-1_pass" ;
    sht:trait sht:ValidLexicalForm ;
    rdfs:comment "<S> { <p> xsd:boolean} / { <s> <p> '1'^^xsd:boolean }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/datatypes.shex> ;
      sht:shape <http://a.example/S-boolean> ;
      sht:data <datatypes-data.ttl> ;
      sht:focus <http://a.example/boolean-1>
    ]
    .

<#boolean-empty_fail> a sht:ValidationFailure ;
    mf:name "boolean-empty_fail" ;
    sht:trait sht:ValidLexicalForm ;
    rdfs:comment "<S> { <p> xsd:boolean} / { <s> <p> ''^^xsd:boolean }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/datatypes.shex> ;
      sht:shape <http://a.example/S-boolean> ;
      sht:data <datatypes-data.ttl> ;
      sht:focus <http://a.example/boolean-empty>
    ] ;
    .

<#boolean-TRUE_fail> a sht:ValidationFailure ;
    mf:name "boolean-TRUE_fail" ;
    sht:trait sht:ValidLexicalForm ;
    rdfs:comment "<S> { <p> xsd:boolean} / { <s> <p> 'TRUE'^^xsd:boolean }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/datatypes.shex> ;
      sht:shape <http://a.example/S-boolean> ;
      sht:data <datatypes-data.ttl> ;
      sht:focus <http://a.example/boolean-TRUE>
    ] ;
    .

<#boolean-FALSE_fail> a sht:ValidationFailure ;
    mf:name "boolean-FALSE_fail" ;
    sht:trait sht:ValidLexicalForm ;
    rdfs:comment "<S> { <p> xsd:boolean} / { <s> <p> 'FALSE'^^xsd:boolean }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/datatypes.shex> ;
      sht:shape <http://a.example/S-boolean> ;
      sht:data <datatypes-data.ttl> ;
      sht:focus <http://a.example/boolean-FALSE>
    ] ;
    .

<#boolean-tRuE_fail> a sht:ValidationFailure ;
    mf:name "boolean-tRuE_fail" ;
    sht:trait sht:ValidLexicalForm ;
    rdfs:comment "<S> { <p> xsd:boolean} / { <s> <p> 'tRuE'^^xsd:boolean }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/datatypes.shex> ;
      sht:shape <http://a.example/S-boolean> ;
      sht:data <datatypes-data.ttl> ;
      sht:focus <http://a.example/boolean-tRuE>
    ] ;
    .

<#boolean-fAlSe_fail> a sht:ValidationFailure ;
    mf:name "boolean-fAlSe_fail" ;
    sht:trait sht:ValidLexicalForm ;
    rdfs:comment "<S> { <p> xsd:boolean} / { <s> <p> 'fAlSe'^^xsd:boolean }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/datatypes.shex> ;
      sht:shape <http://a.example/S-boolean> ;
      sht:data <datatypes-data.ttl> ;
      sht:focus <http://a.example/boolean-fAlSe>
    ] ;
    .

<#boolean-n1_fail> a sht:ValidationFailure ;
    mf:name "boolean-n1_fail" ;
    sht:trait sht:ValidLexicalForm ;
    rdfs:comment "<S> { <p> xsd:boolean} / { <s> <p> '-1'^^xsd:boolean }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/datatypes.shex> ;
      sht:shape <http://a.example/S-boolean> ;
      sht:data <datatypes-data.ttl> ;
      sht:focus <http://a.example/boolean-n1>
    ] ;
    .

<#boolean-2_fail> a sht:ValidationFailure ;
    mf:name "boolean-2_fail" ;
    sht:trait sht:ValidLexicalForm ;
    rdfs:comment "<S> { <p> xsd:boolean} / { <s> <p> '2'^^xsd:boolean }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/datatypes.shex> ;
      sht:shape <http://a.example/S-boolean> ;
      sht:data <datatypes-data.ttl> ;
      sht:focus <http://a.example/boolean-2>
    ] ;
    .

<#boolean-10_fail> a sht:ValidationFailure ;
    mf:name "boolean-10_fail" ;
    sht:trait sht:ValidLexicalForm ;
    rdfs:comment "<S> { <p> xsd:boolean} / { <s> <p> '10'^^xsd:boolean }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/datatypes.shex> ;
      sht:shape <http://a.example/S-boolean> ;
      sht:data <datatypes-data.ttl> ;
      sht:focus <http://a.example/boolean-10>
    ] ;
    .

<#boolean-01_fail> a sht:ValidationFailure ;
    mf:name "boolean-01_fail" ;
    sht:trait sht:ValidLexicalForm ;
    rdfs:comment "<S> { <p> xsd:boolean} / { <s> <p> '01'^^xsd:boolean }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/datatypes.shex> ;
      sht:shape <http://a.example/S-boolean> ;
      sht:data <datatypes-data.ttl> ;
      sht:focus <http://a.example/boolean-01>
    ] ;
    .


####    dateTime           "2012-01-02T12:34.56Z" | "" "2012-01-02T" "2012-01-02"
<#dateTime-dt_pass> a sht:ValidationTest ;
    mf:name "dateTime-dt_pass" ;
    sht:trait sht:ValidLexicalForm ;
    rdfs:comment "<S> { <p> xsd:dateTime} / { <s> <p> '2012-01-02T12:34.56Z'^^xsd:dateTime }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/datatypes.shex> ;
      sht:shape <http://a.example/S-dateTime> ;
      sht:data <datatypes-data.ttl> ;
      sht:focus <http://a.example/dateTime-dt>
    ]
    .

<#dateTime-empty_fail> a sht:ValidationFailure ;
    mf:name "dateTime-empty_fail" ;
    sht:trait sht:ValidLexicalForm ;
    rdfs:comment "<S> { <p> xsd:dateTime} / { <s> <p> ''^^xsd:dateTime }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/datatypes.shex> ;
      sht:shape <http://a.example/S-dateTime> ;
      sht:data <datatypes-data.ttl> ;
      sht:focus <http://a.example/dateTime-empty>
    ] ;
    .

<#dateTime-dT_fail> a sht:ValidationFailure ;
    mf:name "dateTime-dT_fail" ;
    sht:trait sht:ValidLexicalForm ;
    rdfs:comment "<S> { <p> xsd:dateTime} / { <s> <p> '2012-01-02T'^^xsd:dateTime }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/datatypes.shex> ;
      sht:shape <http://a.example/S-dateTime> ;
      sht:data <datatypes-data.ttl> ;
      sht:focus <http://a.example/dateTime-dT>
    ] ;
    .

<#dateTime-d_fail> a sht:ValidationFailure ;
    mf:name "dateTime-d_fail" ;
    sht:trait sht:ValidLexicalForm ;
    rdfs:comment "<S> { <p> xsd:dateTime} / { <s> <p> '2012-01-02'^^xsd:dateTime }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/datatypes.shex> ;
      sht:shape <http://a.example/S-dateTime> ;
      sht:data <datatypes-data.ttl> ;
      sht:focus <http://a.example/dateTime-d>
    ] ;
    .

###   } lexical form
## } datatype
## cardinality {
###   dot cardinality {

<#1card2_fail0> a sht:ValidationFailure ;
    mf:name "1card2_fail0" ;
    sht:trait sht:DotCardinality ;
    rdfs:comment "<S> { <p1> .{2} } on {  }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1card2.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <empty.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1card2_fail1> a sht:ValidationFailure ;
    mf:name "1card2_fail1" ;
    sht:trait sht:DotCardinality ;
    rdfs:comment "<S> { <p1> .{2} } on { <s1> <p1> 'a' }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1card2.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_La.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1card2_pass2> a sht:ValidationTest ;
    mf:name "1card2_pass2" ;
    sht:trait sht:DotCardinality ;
    rdfs:comment "<S> { <p1> .{2} } on { <s1> <p1> 'a','b' }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1card2.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_La,Lb.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1card2_fail3> a sht:ValidationFailure ;
    mf:name "1card2_fail3" ;
    sht:trait sht:DotCardinality ;
    rdfs:comment "<S> { <p1> .{2} } on { <s1> <p1> 'a','b','c' }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1card2.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_La,Lb,Lc.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1card25_fail0> a sht:ValidationFailure ;
    mf:name "1card25_fail0" ;
    sht:trait sht:DotCardinality ;
    rdfs:comment "<S> { <p1> .{2,5} } on {  }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1card25.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <empty.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1card25_fail1> a sht:ValidationFailure ;
    mf:name "1card25_fail1" ;
    sht:trait sht:DotCardinality ;
    rdfs:comment "<S> { <p1> .{2,5} } on { <s1> <p1> 'a' }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1card25.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_La.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1card25_pass2> a sht:ValidationTest ;
    mf:name "1card25_pass2" ;
    sht:trait sht:DotCardinality ;
    rdfs:comment "<S> { <p1> .{2,5} } on { <s1> <p1> 'a','b' }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1card25.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_La,Lb.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1card25_pass3> a sht:ValidationTest ;
    mf:name "1card25_pass3" ;
    sht:trait sht:DotCardinality ;
    rdfs:comment "<S> { <p1> .{2,5} } on { <s1> <p1> 'a','b','c' }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1card25.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_La,Lb,Lc.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1card25_pass4> a sht:ValidationTest ;
    mf:name "1card25_pass4" ;
    sht:trait sht:DotCardinality ;
    rdfs:comment "<S> { <p1> .{2,5} } on { <s1> <p1> 'a','b','c','d' }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1card25.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_La,Lb,Lc,Ld.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1card25_pass5> a sht:ValidationTest ;
    mf:name "1card25_pass5" ;
    sht:trait sht:DotCardinality ;
    rdfs:comment "<S> { <p1> .{2,5} } on { <s1> <p1> 'a','b','c','d','e' }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1card25.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_La,Lb,Lc,Ld,Le.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1card25_fail6> a sht:ValidationFailure ;
    mf:name "1card25_fail6" ;
    sht:trait sht:DotCardinality ;
    rdfs:comment "<S> { <p1> .{2,5} } on { <s1> <p1> 'a','b','c','d','e','f' }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1card25.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_La,Lb,Lc,Ld,Le,Lf.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1card2Star_fail0> a sht:ValidationFailure ;
    mf:name "1card2Star_fail0" ;
    sht:trait sht:DotCardinality ;
    rdfs:comment "<S> { <p1> .{2,*} } on {  }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1card2Star.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <empty.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1card2Star_fail1> a sht:ValidationFailure ;
    mf:name "1card2Star_fail1" ;
    sht:trait sht:DotCardinality ;
    rdfs:comment "<S> { <p1> .{2,*} } on { <s1> <p1> 'a' }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1card2Star.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_La.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1card2Star_pass2> a sht:ValidationTest ;
    mf:name "1card2Star_pass2" ;
    sht:trait sht:DotCardinality ;
    rdfs:comment "<S> { <p1> .{2,*} } on { <s1> <p1> 'a','b' }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1card2Star.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_La,Lb.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1card2Star_pass3> a sht:ValidationTest ;
    mf:name "1card2Star_pass3" ;
    sht:trait sht:DotCardinality ;
    rdfs:comment "<S> { <p1> .{2,*} } on { <s1> <p1> 'a','b','c' }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1card2Star.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_La,Lb,Lc.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1card2Star_pass6> a sht:ValidationTest ;
    mf:name "1card2Star_pass6" ;
    sht:trait sht:DotCardinality ;
    rdfs:comment "<S> { <p1> .{2,*} } on { <s1> <p1> 'a','b','c','d','e','f' }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1card2Star.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_La,Lb,Lc,Ld,Le,Lf.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1cardOpt_pass0> a sht:ValidationTest ;
    mf:name "1cardOpt_pass0" ;
    sht:trait sht:DotCardinality ;
    rdfs:comment "<S> { <p1> .? } on {  }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1cardOpt.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <empty.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1cardOpt_pass1> a sht:ValidationTest ;
    mf:name "1cardOpt_pass1" ;
    sht:trait sht:DotCardinality ;
    rdfs:comment "<S> { <p1> .? } on { <s1> <p1> 'a' }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1cardOpt.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_La.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1cardOpt_fail2> a sht:ValidationFailure ;
    mf:name "1cardOpt_fail2" ;
    sht:trait sht:DotCardinality ;
    rdfs:comment "<S> { <p1> .? } on { <s1> <p1> 'a','b' }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1cardOpt.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_La,Lb.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1cardOpt_pass6> a sht:ValidationFailure ;
    mf:name "1cardOpt_pass6" ;
    sht:trait sht:DotCardinality ;
    rdfs:comment "<S> { <p1> .? } on { <s1> <p1> 'a','b','c','d','e','f' }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1cardOpt.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_La,Lb,Lc,Ld,Le,Lf.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1cardPlus_fail0> a sht:ValidationFailure ;
    mf:name "1cardPlus_fail0" ;
    sht:trait sht:DotCardinality ;
    rdfs:comment "<S> { <p1> .+ } on {  }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1cardPlus.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <empty.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1cardPlus_pass1> a sht:ValidationTest ;
    mf:name "1cardPlus_pass1" ;
    sht:trait sht:DotCardinality ;
    rdfs:comment "<S> { <p1> .+ } on { <s1> <p1> 'a' }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1cardPlus.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_La.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1cardPlus_pass2> a sht:ValidationTest ;
    mf:name "1cardPlus_pass2" ;
    sht:trait sht:DotCardinality ;
    rdfs:comment "<S> { <p1> .+ } on { <s1> <p1> 'a','b' }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1cardPlus.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_La,Lb.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1cardPlus_pass6> a sht:ValidationTest ;
    mf:name "1cardPlus_pass6" ;
    sht:trait sht:DotCardinality ;
    rdfs:comment "<S> { <p1> .+ } on { <s1> <p1> 'a','b','c','d','e','f' }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1cardPlus.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_La,Lb,Lc,Ld,Le,Lf.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1cardStar_pass0> a sht:ValidationTest ;
    mf:name "1cardStar_pass0" ;
    sht:trait sht:DotCardinality ;
    rdfs:comment "<S> { <p1> .* } on {  }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1cardStar.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <empty.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1cardStar_pass1> a sht:ValidationTest ;
    mf:name "1cardStar_pass1" ;
    sht:trait sht:DotCardinality ;
    rdfs:comment "<S> { <p1> .* } on { <s1> <p1> 'a' }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1cardStar.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_La.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1cardStar_pass2> a sht:ValidationTest ;
    mf:name "1cardStar_pass2" ;
    sht:trait sht:DotCardinality ;
    rdfs:comment "<S> { <p1> .* } on { <s1> <p1> 'a','b' }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1cardStar.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_La,Lb.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1cardStar_pass6> a sht:ValidationTest ;
    mf:name "1cardStar_pass6" ;
    sht:trait sht:DotCardinality ;
    rdfs:comment "<S> { <p1> .* } on { <s1> <p1> 'a','b','c','d','e','f' }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1cardStar.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_La,Lb,Lc,Ld,Le,Lf.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .
###   } dot cardinality
###   non-dot cardinality {
<#1literalPlus_Is1_Ip1_La,Io1> a sht:ValidationFailure ;
    mf:name "1literalPlus_Is1_Ip1_La,Io1" ;
    sht:trait sht:NonDotCardinality ;
    rdfs:comment "<S> { <p1> LITERAL+ } on { <s1> <p1> 'a', <o2> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1literalPlus.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_La,Io1.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

###   } non-dot cardinality
## } cardinality
## shape reference {

<#1dotRef1_referent,referrer> a sht:ValidationTest ;
    mf:name "1dotRef1_referent,referrer" ;
    sht:trait sht:ShapeReference ;
    rdfs:comment "<n2> in { <n2> <p2> \"X\" . <n1> <p1> <n2> } as <S1> in <S1> { <p1> @<S2> } <S2> { <p2> . }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1dotRef1.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <In2_Ip2_LX.In1_Ip1_In2.ttl> ;
      sht:focus <http://a.example/n1>
    ]
    .

<#1dotRef1_referrer,referent> a sht:ValidationTest ;
    mf:name "1dotRef1_referrer,referent" ;
    sht:trait sht:ShapeReference ;
    rdfs:comment "<n1> in { <n1> <p1> <n2> . <n2> <p2> \"X\" } as <S1> in <S1> { <p1> @<S2> } <S2> { <p2> . }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1dotRef1.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <In1_Ip1_In2.In2_Ip2_LX.ttl> ;
      sht:focus <http://a.example/n1>
    ]
    .

<#1dotRef1_missingReferent> a sht:ValidationFailure ;
    mf:name "1dotRef1_missingReferent" ;
    sht:trait sht:ShapeReference ;
    rdfs:comment "<n1> in { <n1> <p1> <n2> } as <S1> in <S1> { <p1> @<S2> } <S2> { <p2> . }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1dotRef1.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <In1_Ip1_In2.ttl> ;
      sht:focus <http://a.example/n1>
    ]
    .

<#1dotRef1_selfReference> a sht:ValidationTest ;
    mf:name "1dotRef1_selfReference" ;
    sht:trait sht:ShapeReference ;
    rdfs:comment "<n1> in { <n1> <p1> <n1> . <n1> <p2> \"X\" } as <S1> in <S1> { <p1> @<S2> } <S2> { <p2> . }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1dotRef1.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <In1_Ip1_In1.In1_Ip2_LX.ttl> ;
      sht:focus <http://a.example/n1>
    ]
    .

<#1dotRef1_missingSelfReference> a sht:ValidationFailure ;
    mf:name "1dotRef1_missingSelfReference" ;
    sht:trait sht:ShapeReference ;
    rdfs:comment "<n1> in { <n1> <p1> <n1> . <n2> <p2> \"X\" } as <S1> in <S1> { <p1> @<S2> } <S2> { <p2> . }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1dotRef1.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <In1_Ip1_In1.In2_Ip2_LX.ttl> ;
      sht:focus <http://a.example/n1>
    ]
    .

<#1dotRef1_overReferrer> a sht:ValidationFailure ;
    mf:name "1dotRef1_overReferrer" ;
    sht:trait sht:ShapeReference ;
    rdfs:comment "<n1> in { <n1> <p1> <n2>, <n3> . <n2> <p2> \"X\" } as <S1> in <S1> { <p1> @<S2> } <S2> { <p2> . }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1dotRef1.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <In1_Ip1_In2.In1_Ip1_In3.In2_Ip2_LX.ttl> ;
      sht:focus <http://a.example/n1>
    ]
    .

<#1dotRef1_overReferrer,overReferent> a sht:ValidationFailure ;
    mf:name "1dotRef1_overReferrer,overReferent" ;
    sht:trait sht:ShapeReference ;
    rdfs:comment "<n1> in { <n1> <p1> <n2>, <n3> . <n2> <p2> \"X\" . <n3> <p2> \"X\" } as <S1> in <S1> { <p1> @<S2> } <S2> { <p2> . }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1dotRef1.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <In1_Ip1_In2.In1_Ip1_In3.In2_Ip2_LX.In3_Ip2_LX.ttl> ;
      sht:focus <http://a.example/n1>
    ]
    .

<#1dotRef1_overMatchesReferent> a sht:ValidationTest ;
    mf:name "1dotRef1_overMatchesReferent" ;
    sht:trait sht:ShapeReference ;
    rdfs:comment "<n1> in { <n1> <p1> <n2> . <n2> <p2> \"X\" . <n3> <p1> \"X\" } as <S1> in <S1> { <p1> @<S2> } <S2> { <p2> . }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1dotRef1.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <In1_Ip1_In2.In2_Ip2_LX.In3_Ip1_LX.ttl> ;
      sht:focus <http://a.example/n1>
    ]
    .

 # !../schemas/1dotRefLNex1.shex
 # !../schemas/1dotRefSpaceLNex1.shex [1dotRefLNex1.shex]
 # !../schemas/1dotRefNS1.shex
 # !../schemas/1dotRefSpaceNS1.shex [1dotRefNS1.shex]

<#1refbnode1_pass> a sht:ValidationTest ;
    mf:name "1refbnode1_pass" ;
    sht:trait sht:ShapeReference ;
    rdfs:comment "<S1> { <p1> @_:S2 } _:S2 { <p2> . } on { <n1> <p1> <n2> . <n2> <p2> \"X\" }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1refbnode1.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <In1_Ip1_In2.In2_Ip2_LX.ttl> ;
      sht:focus <http://a.example/n1>
    ]
    .

<#1refbnode1_fail-g1-arc> a sht:ValidationFailure ;
    mf:name "1refbnode1_fail-g1-arc" ;
    sht:trait sht:ShapeReference ;
    rdfs:comment "<S1> { <p1> @_:S2 } _:S2 { <p2> . } on { <n1> <p2> <n2> . <n2> <p2> \"X\" }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1refbnode1.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <In1_Ip2_In2.In2_Ip2_LX.ttl> ;
      sht:focus <http://a.example/n1>
    ]
    .

<#1refbnode1_fail-g2-arc> a sht:ValidationFailure ;
    mf:name "1refbnode1_fail-g2-arc" ;
    sht:trait sht:ShapeReference ;
    rdfs:comment "<S1> { <p1> @_:S2 } _:S2 { <p2> . } on { <n1> <p1> <n2> . <n2> <p1> \"X\" }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1refbnode1.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <In1_Ip1_In2.In2_Ip1_LX.ttl> ;
      sht:focus <http://a.example/n1>
    ]
    .

 # !../schemas/1refbnode_with_leading_digit1.shex
 # !../schemas/1refbnode_with_leading_underscore1.shex
 # !../schemas/1refbnode_with_spanning_PN_CHARS1.shex
 # !../schemas/1refbnode_with_spanning_PN_CHARS_BASE1.shex

<#3circRefS123> a sht:ValidationTest ;
    mf:name "3circRefS123" ;
    sht:trait sht:Import ;
    rdfs:comment "<S1> { <p1> ., <p2> @<S2>? } <S2> { <p3> @<S3> } <S3> { <p4> @<S1> } on { <n1> <p1> \"X\" ; <p2> <n2> . <n2> <p3> <n3> . <n3> <p4> <n5> . <n5> <p1> \"X\" }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/3circRefS123.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <3circRefPlus1_pass-open.ttl> ;
      sht:focus <http://a.example/n1>
    ] ;
    mf:result <3circRefPlus1_pass-open.val>
    .

<#3circRefPlus1_pass-open> a sht:ValidationTest ;
    mf:name "3circRefPlus1_pass-open" ;
    sht:trait sht:ShapeReference , sht:EachOf ;
    rdfs:comment "<S1> { <p1> ., <p2> @<S2>? } <S2> { <p3> @<S3> } <S3> { <p4> @<S1> } <S4> { <p5> . } on { <n1> <p1> \"X\" ; <p2> <n2> . <n2> <p3> <n3> . <n3> <p4> <n5> . <n5> <p1> \"X\" }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/3circRefPlus1.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <3circRefPlus1_pass-open.ttl> ;
      sht:focus <http://a.example/n1>
    ]
    .

<#3circRefPlus1_pass-recursiveData> a sht:ValidationTest ;
    mf:name "3circRefPlus1_pass-recursiveData" ;
    sht:trait sht:ShapeReference , sht:EachOf , sht:RecursiveData ;
    rdfs:comment "<S1> { <p1> ., <p2> @<S2>? } <S2> { <p3> @<S3> } <S3> { <p4> @<S1> } <S4> { <p5> . } on { <n1> <p1> \"X\" ; <p2> <n2> . <n2> <p3> <n3> . <n3> <p4> <n1> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/3circRefPlus1.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <3circRefPlus1_pass-recursiveData.ttl> ;
      sht:focus <http://a.example/n1>
    ]
    .

<#1iriRef1_pass-iri> a sht:ValidationTest ;
    mf:name "1iriRef1_pass-iri" ;
    sht:trait sht:ShapeReference , sht:NodeKind ;
    rdfs:comment "<n1> in { <n1> <p1> <n2> . <n2> <p2> \"X\" } as <S1> in <S1> { <p1> IRI @<S2> } <S2> { <p2> . }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1iriRef1.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <In1_Ip1_In2.In2_Ip2_LX.ttl> ;
      sht:focus <http://a.example/n1>
    ]
    .

<#1iriRef1_fail-bnode> a sht:ValidationFailure ;
    mf:name "1iriRef1_fail-bnode" ;
    sht:trait sht:ShapeReference , sht:NodeKind ;
    rdfs:comment "<n1> in { <n1> <p1> _:n1 . _:n1 <p2> \"X\" } as <S1> in <S1> { <p1> IRI @<S2> } <S2> { <p2> . }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1iriRef1.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <In1_Ip1_Bn2.Bn2_Ip2_LX.ttl> ;
      sht:focus <http://a.example/n1>
    ]
    .

<#1bnodeRef1_fail-iri> a sht:ValidationFailure ;
    mf:name "1bnodeRef1_fail-iri" ;
    sht:trait sht:ShapeReference , sht:NodeKind ;
    rdfs:comment "<n1> in { <n1> <p1> <n2> . <n2> <p2> \"X\" } as <S1> in <S1> { <p1> BNODE @<S2> } <S2> { <p2> . }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1bnodeRef1.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <In1_Ip1_In2.In2_Ip2_LX.ttl> ;
      sht:focus <http://a.example/n1>
    ]
    .

<#1bnodeRef1_pass-bnode> a sht:ValidationTest ;
    mf:name "1bnodeRef1_pass-bnode" ;
    sht:trait sht:ShapeReference , sht:NodeKind ;
    rdfs:comment "<n1> in { <n1> <p1> _:n1 . _:n1 <p2> \"X\" } as <S1> in <S1> { <p1> BNODE @<S2> } <S2> { <p2> . }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1bnodeRef1.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <In1_Ip1_Bn2.Bn2_Ip2_LX.ttl> ;
      sht:focus <http://a.example/n1>
    ]
    .

## } shape reference
## inline {

<#1dotInline1_referrer,referent> a sht:ValidationTest ;
    mf:name "1dotInline1_referrer,referent" ;
    sht:trait sht:ShapeReference ;
    rdfs:comment "<n2> in { <n1> <p1> <n2> . <n2> <p2> \"X\" } as <S1> in <S1> { <p1> { <p2> . } }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1dotInline1.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <In1_Ip1_In2.In2_Ip2_LX.ttl> ;
      sht:focus <http://a.example/n1>
    ]
    .

<#1dotInline1_missingReferent> a sht:ValidationFailure ;
    mf:name "1dotInline1_missingReferent" ;
    sht:trait sht:ShapeReference ;
    rdfs:comment "<n2> in { <n1> <p1> <n2> } as <S1> in <S1> { <p1> { <p2> . } }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1dotInline1.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <In1_Ip1_In2.ttl> ;
      sht:focus <http://a.example/n1>
    ]
    .

<#1dotInline1_selfReference> a sht:ValidationTest ;
    mf:name "1dotInline1_selfReference" ;
    sht:trait sht:ShapeReference ;
    rdfs:comment "<n2> in { <n1> <p1> <n1> . <n1> <p2> \"X\" } as <S1> in <S1> { <p1> { <p2> . } }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1dotInline1.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <In1_Ip1_In1.In1_Ip2_LX.ttl> ;
      sht:focus <http://a.example/n1>
    ]
    .

<#1dotInline1_missingSelfReference> a sht:ValidationFailure ;
    mf:name "1dotInline1_missingSelfReference" ;
    sht:trait sht:ShapeReference ;
    rdfs:comment "<n2> in { <n1> <p1> <n1> . <n2> <p2> \"X\" } as <S1> in <S1> { <p1> { <p2> . } }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1dotInline1.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <In1_Ip1_In1.In2_Ip2_LX.ttl> ;
      sht:focus <http://a.example/n1>
    ]
    .

<#1dotInline1_overReferrer> a sht:ValidationFailure ;
    mf:name "1dotInline1_overReferrer" ;
    sht:trait sht:ShapeReference ;
    rdfs:comment "<n2> in { <n1> <p1> <n2>, <n3> . <n2> <p2> \"X\" } as <S1> in <S1> { <p1> { <p2> . } }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1dotInline1.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <In1_Ip1_In2.In1_Ip1_In3.In2_Ip2_LX.ttl> ;
      sht:focus <http://a.example/n1>
    ]
    .

<#1dotInline1_overReferrer,overReferent> a sht:ValidationFailure ;
    mf:name "1dotInline1_overReferrer,overReferent" ;
    sht:trait sht:ShapeReference ;
    rdfs:comment "<S1> { <p1> { <p2> . } } on { <n1> <p1> <n2>, <n3> . <n2> <p2> \"X\" . <n3> <p2> \"X\" }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1dotInline1.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <In1_Ip1_In2.In1_Ip1_In3.In2_Ip2_LX.In3_Ip2_LX.ttl> ;
      sht:focus <http://a.example/n1>
    ]
    .

<#1dotInline1_overMatchesReferent> a sht:ValidationTest ;
    mf:name "1dotInline1_overMatchesReferent" ;
    sht:trait sht:ShapeReference ;
    rdfs:comment "<n2> in { <n1> <p1> <n2> . <n2> <p2> \"X\" . <n3> <p1> \"X\" } as <S1> in <S1> { <p1> { <p2> . } }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1dotInline1.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <In1_Ip1_In2.In2_Ip2_LX.In3_Ip1_LX.ttl> ;
      sht:focus <http://a.example/n1>
    ]
    .

## } inline
## term equivalence {
###   iri equivalence {

<#1val1IRIREF_pass> a sht:ValidationTest ;
    mf:name "1val1IRIREF_pass" ;
    sht:trait sht:IriEquivalence ;
    rdfs:comment "<S> { <p1> [<v1>] } on { <s1> <p1> <v1> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1val1IRIREF.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Iv1.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1val1IRIREF_v2> a sht:ValidationFailure ;
    mf:name "1val1IRIREF_v2" ;
    sht:trait sht:IriEquivalence ;
    rdfs:comment "<S> { <p1> [<v1>] } on { <s1> <p1> <v2> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1val1IRIREF.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Iv2.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1val1IRIREF_v1v2> a sht:ValidationFailure ;
    mf:name "1val1IRIREF_v1v2" ;
    sht:trait sht:IriEquivalence ;
    rdfs:comment "<S> { <p1> [<v1>] } on { <s1> <p1> <v1>, <v2> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1val1IRIREF.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Iv1,Iv2.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

###   } iri equivalence
###   literal equivalence {
####     lexical form {

<#1val1STRING_LITERAL1_pass> a sht:ValidationTest ;
    mf:name "1val1STRING_LITERAL1_pass" ;
    sht:trait sht:NumericEquivalence ;
    rdfs:comment "<S> { <p1> ['STRING_LITERAL1'] } on { <s1> <p1> 'STRING_LITERAL1' }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1val1STRING_LITERAL1.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_LSTRING_LITERAL1.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1val1STRING_LITERAL1_fail> a sht:ValidationFailure ;
    mf:name "1val1STRING_LITERAL1_fail" ;
    sht:trait sht:NumericEquivalence ;
    rdfs:comment "<S> { <p1> ['STRING_LITERAL1'] } on { <s1> <p1> 'STRING_LITERAL1999' }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1val1STRING_LITERAL1.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_LSTRING_LITERAL1999.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1val1STRING_LITERAL1_with_all_controls_pass> a sht:ValidationTest ;
    mf:name "1val1STRING_LITERAL1_with_all_controls_pass" ;
    sht:trait sht:NumericEquivalence ;
    rdfs:comment "<S> { <p1> ['^@^A...^_'] } on { <s1> <p1> '^@^A...^_' }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1val1STRING_LITERAL1_with_all_controls.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_LSTRING_LITERAL1_with_all_controls.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1val1STRING_LITERAL1_with_all_controls_fail> a sht:ValidationFailure ;
    mf:name "1val1STRING_LITERAL1_with_all_controls_fail" ;
    sht:trait sht:NumericEquivalence ;
    rdfs:comment "<S> { <p1> ['^@^A...^_'] } on { <s1> <p1> '^@^A...^_999' }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1val1STRING_LITERAL1_with_all_controls.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_LSTRING_LITERAL1_with_all_controls999.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1val1STRING_LITERAL1_with_all_punctuation_pass> a sht:ValidationTest ;
    mf:name "1val1STRING_LITERAL1_with_all_punctuation_pass" ;
    sht:trait sht:NumericEquivalence ;
    rdfs:comment "<S> { <p1> [' !\"#...'] } on { <s1> <p1> ' !\"#...' }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1val1STRING_LITERAL1_with_all_punctuation.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_LSTRING_LITERAL1_with_all_punctuation.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1val1STRING_LITERAL1_with_all_punctuation_fail> a sht:ValidationFailure ;
    mf:name "1val1STRING_LITERAL1_with_all_punctuation_fail" ;
    sht:trait sht:NumericEquivalence ;
    rdfs:comment "<S> { <p1> [' !\"#...'] } on { <s1> <p1> ' !\"#...999' }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1val1STRING_LITERAL1_with_all_punctuation.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_LSTRING_LITERAL1_with_all_punctuation999.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1val1STRING_LITERAL1_with_ascii_boundaries_pass> a sht:ValidationTest ;
    mf:name "1val1STRING_LITERAL1_with_ascii_boundaries_pass" ;
    sht:trait sht:NumericEquivalence ;
    rdfs:comment "<S> { <p1> ['^@^I^K^L^N&([]^?'] } on { <s1> <p1> '^@^I^K^L^N&([]^?' }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1val1STRING_LITERAL1_with_ascii_boundaries.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_LSTRING_LITERAL1_with_ascii_boundaries.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1val1STRING_LITERAL1_with_ascii_boundaries_fail> a sht:ValidationFailure ;
    mf:name "1val1STRING_LITERAL1_with_ascii_boundaries_fail" ;
    sht:trait sht:NumericEquivalence ;
    rdfs:comment "<S> { <p1> ['^@^I^K^L^N&([]^?'] } on { <s1> <p1> '^@^I^K^L^N&([]^?999' }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1val1STRING_LITERAL1_with_ascii_boundaries.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_LSTRING_LITERAL1_with_ascii_boundaries999.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1val1STRING_LITERAL1_with_UTF8_boundaries_pass> a sht:ValidationTest ;
    mf:name "1val1STRING_LITERAL1_with_UTF8_boundaries_pass" ;
    sht:trait sht:NumericEquivalence , sht:OutsideBMP ;
    rdfs:comment "<S> { <p1> ['\u0080...\U0010FFFD'] } on { <s1> <p1> '\u0080...\U0010FFFD' }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1val1STRING_LITERAL1_with_UTF8_boundaries.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_LSTRING_LITERAL1_with_UTF8_boundaries.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1val1STRING_LITERAL1_with_UTF8_boundaries_fail> a sht:ValidationFailure ;
    mf:name "1val1STRING_LITERAL1_with_UTF8_boundaries_fail" ;
    sht:trait sht:NumericEquivalence , sht:OutsideBMP ;
    rdfs:comment "<S> { <p1> ['\u0080...\U0010FFFD'] } on { <s1> <p1> '\u0080...\U0010FFFD999' }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1val1STRING_LITERAL1_with_UTF8_boundaries.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_LSTRING_LITERAL1_with_UTF8_boundaries999.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1val1STRING_LITERAL1_with_ECHAR_escapes_pass> a sht:ValidationTest ;
    mf:name "1val1STRING_LITERAL1_with_ECHAR_escapes_pass" ;
    sht:trait sht:NumericEquivalence ;
    rdfs:comment "<S> { <p1> ['\\t\\b\\n\\r\\f'] } on { <s1> <p1> '\\t\\b\\n\\r\\f' }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1val1STRING_LITERAL1_with_ECHAR_escapes.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_L_with_ECHAR_escapes.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1val1STRING_LITERAL1_with_ECHAR_escapes_fail> a sht:ValidationFailure ;
    mf:name "1val1STRING_LITERAL1_with_ECHAR_escapes_fail" ;
    sht:trait sht:NumericEquivalence ;
    rdfs:comment "<S> { <p1> ['\\t\\b\\n\\r\\f'] } on { <s1> <p1> '\\t\\b\\n\\r\\f999' }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1val1STRING_LITERAL1_with_ECHAR_escapes.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_L_with_ECHAR_escapes999.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

####     } lexical form
####     numeric equivalence {

<#1val1INTEGER_pass> a sht:ValidationTest ;
    mf:name "1val1INTEGER_pass" ;
    sht:trait sht:NumericEquivalence ;
    rdfs:comment "<S> { <p1> [0] } on { <s1> <p1> 0 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1val1INTEGER.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_INT0.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1val1INTEGER_Lab> a sht:ValidationFailure ;
    mf:name "1val1INTEGER_Lab" ;
    sht:trait sht:NumericEquivalence ;
    rdfs:comment "<S> { <p1> [0] } on { <s1> <p1> 'ab' }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1val1INTEGER.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Lab.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1val1INTEGER_00> a sht:ValidationFailure ;
    mf:name "1val1INTEGER_00" ;
    sht:trait sht:NumericEquivalence ;
    rdfs:comment "<S> { <p1> [0] } on { <s1> <p1> 00 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1val1INTEGER.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_INT00.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1val1DECIMAL_pass> a sht:ValidationTest ;
    mf:name "1val1DECIMAL_pass" ;
    sht:trait sht:NumericEquivalence ;
    rdfs:comment "<S> { <p1> [0.0] } on { <s1> <p1> 0.0 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1val1DECIMAL.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_DEC0_0.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1val1DECIMAL_Lab> a sht:ValidationFailure ;
    mf:name "1val1DECIMAL_Lab" ;
    sht:trait sht:NumericEquivalence ;
    rdfs:comment "<S> { <p1> [0.0] } on { <s1> <p1> 'ab' }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1val1DECIMAL.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Lab.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1val1DECIMAL_00> a sht:ValidationFailure ;
    mf:name "1val1DECIMAL_00" ;
    sht:trait sht:NumericEquivalence ;
    rdfs:comment "<S> { <p1> [0.0] } on { <s1> <p1> .0 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1val1DECIMAL.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_DEC_0.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .



<#1val1DOUBLE_pass> a sht:ValidationTest ;
    mf:name "1val1DOUBLE_pass" ;
    sht:trait sht:NumericEquivalence ;
    rdfs:comment "<S1> { <p1> [0E0] } on { <s1> <p1> 0E0 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1val1DOUBLE.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_DBL0E0.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1val1DOUBLE_0_0e0> a sht:ValidationFailure ;
    mf:name "1val1DOUBLE_0_0e0" ;
    sht:trait sht:NumericEquivalence ;
    rdfs:comment "<S> { <p1> [0E0] } on { <s1> <p1> 0e0.0 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1val1DOUBLE.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_DBL0_0e0.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1val1DOUBLElowercase_pass> a sht:ValidationTest ;
    mf:name "1val1DOUBLElowercase_pass" ;
    sht:trait sht:NumericEquivalence ;
    rdfs:comment "<S> { <p1> [0e0] } on { <s1> <p1> 0e0 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1val1DOUBLElowercase.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_DBL0e0lowercase.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1val1DOUBLElowercase_fail-0E0> a sht:ValidationFailure ;
    mf:name "1val1DOUBLElowercase_fail-0E0" ;
    sht:trait sht:NumericEquivalence ;
    rdfs:comment "<S> { <p1> [0e0] } on { <s1> <p1> 0E0 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1val1DOUBLElowercase.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_DBL0E0.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1val1DOUBLElowercase_0_0e0> a sht:ValidationFailure ;
    mf:name "1val1DOUBLElowercase_0_0e0" ;
    sht:trait sht:NumericEquivalence ;
    rdfs:comment "<S> { <p1> [0e0] } on { <s1> <p1> 0e0.0 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1val1DOUBLElowercase.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_DBL0_0e0.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

####     } numeric equivalence
####     language tag equivalence {

<#1val1LANGTAG_pass> a sht:ValidationTest ;
    mf:name "1val1LANGTAG_pass" ;
    sht:trait sht:LanguageTagEquivalence ;
    rdfs:comment "<S> { <p1> ['ab'@en-fr] } on { <s1> <p1> 'ab'@en-fr }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1val1LANGTAG.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_LabLTen-fr.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1val1LANGTAG_Lab> a sht:ValidationFailure ;
    mf:name "1val1LANGTAG_Lab" ;
    sht:trait sht:LanguageTagEquivalence ;
    rdfs:comment "<S> { <p1> ['ab'@en-fr] } on { <s1> <p1> 'ab' }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1val1LANGTAG.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Lab.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1val1LANGTAG_LabLTen> a sht:ValidationFailure ;
    mf:name "1val1LANGTAG_LabLTen" ;
    sht:trait sht:LanguageTagEquivalence ;
    rdfs:comment "<S> { <p1> ['ab'@en-fr] } on { <s1> <p1> 'ab'@en }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1val1LANGTAG.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_LabLTen.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1val1LANGTAG_LabLTen-fr-jura> a sht:ValidationFailure ;
    mf:name "1val1LANGTAG_LabLTen-fr-jura" ;
    sht:trait sht:LanguageTagEquivalence ;
    rdfs:comment "<S> { <p1> ['ab'@en-fr] } on { <s1> <p1> 'ab'@en-fr-jura }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1val1LANGTAG.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_LabLTen-fr-jura.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1val1LANGTAG_LaLTen-fr> a sht:ValidationFailure ;
    mf:name "1val1LANGTAG_LaLTen-fr" ;
    sht:trait sht:LanguageTagEquivalence ;
    rdfs:comment "<S> { <p1> ['ab'@en-fr] } on { <s1> <p1> 'a'@en-fr }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1val1LANGTAG.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_LaLTen-fr.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

####     } language tag equivalence
####     datatyped literal equivalence {

<#1val1IRIREFDatatype_pass> a sht:ValidationTest ;
    mf:name "1val1IRIREFDatatype_pass" ;
    sht:trait sht:DatatypedLiteralEquivalence ;
    rdfs:comment "<S> { <p1> ['ab'^^my:bloodType] } on { <s1> <p1> 'ab'^^my:bloodType }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1val1IRIREFDatatype.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_LabDTbloodType.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1val1IRIREFDatatype_Lab> a sht:ValidationFailure ;
    mf:name "1val1IRIREFDatatype_Lab" ;
    sht:trait sht:DatatypedLiteralEquivalence ;
    rdfs:comment "<S> { <p1> ['ab'^^my:bloodType] } on { <s1> <p1> 'ab' }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1val1IRIREFDatatype.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Lab.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1val1IRIREFDatatype_LabDTbloodType999> a sht:ValidationFailure ;
    mf:name "1val1IRIREFDatatype_LabDTbloodType999" ;
    sht:trait sht:DatatypedLiteralEquivalence ;
    rdfs:comment "<S> { <p1> ['ab'^^my:bloodType] } on { <s1> <p1> 'ab'^^my:bloodType999 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1val1IRIREFDatatype.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_LabDTbloodType999.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1val1IRIREFDatatype_LaDTbloodType> a sht:ValidationFailure ;
    mf:name "1val1IRIREFDatatype_LaDTbloodType" ;
    sht:trait sht:DatatypedLiteralEquivalence ;
    rdfs:comment "<S> { <p1> ['ab'^^my:bloodType] } on { <s1> <p1> 'a'^^my:bloodType }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1val1IRIREFDatatype.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_LaDTbloodType.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

####     } datatyped literal equivalence
####     boolean equivalence {

<#1val1true_pass> a sht:ValidationTest ;
    mf:name "1val1true_pass" ;
    sht:trait sht:BooleanEquivalence ;
    rdfs:comment "<S> { <p1> [true] } on { <s1> <p1> true }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1val1true.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_true.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1val1true_false> a sht:ValidationFailure ;
    mf:name "1val1true_false" ;
    sht:trait sht:BooleanEquivalence ;
    rdfs:comment "<S> { <p1> [true] } on { <s1> <p1> false }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1val1true.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_false.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1val1true_ab> a sht:ValidationFailure ;
    mf:name "1val1true_ab" ;
    sht:trait sht:BooleanEquivalence ;
    rdfs:comment "<S> { <p1> [true] } on { <s1> <p1> 'ab' }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1val1true.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Lab.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1val1false_pass> a sht:ValidationTest ;
    mf:name "1val1false_pass" ;
    sht:trait sht:BooleanEquivalence ;
    rdfs:comment "<S> { <p1> [false] } on { <s1> <p1> true }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1val1false.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_false.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1val1false_true> a sht:ValidationFailure ;
    mf:name "1val1false_true" ;
    sht:trait sht:BooleanEquivalence ;
    rdfs:comment "<S> { <p1> [false] } on { <s1> <p1> false }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1val1false.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_true.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1val1false_ab> a sht:ValidationFailure ;
    mf:name "1val1false_ab" ;
    sht:trait sht:BooleanEquivalence ;
    rdfs:comment "<S> { <p1> [false] } on { <s1> <p1> 'ab' }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1val1false.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Lab.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

####     } boolean equivalence
###   } literal equivalence
## } term equivalence
## facets {
###   length {

<#1datatypeLength_fail-missing> a sht:ValidationFailure ;
    mf:name "1datatypeLength_fail-missing" ;
    sht:trait sht:LengthFacet ;
    rdfs:comment "<S> { <p1> xs:integer LENGTH 5 } on <s> in { <s1> <p2> 'ab' }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1datatypeLength.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Lab.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1datatypeLength_fail-wrongDatatype> a sht:ValidationFailure ;
    mf:name "1datatypeLength_fail-wrongDatatype" ;
    sht:trait sht:LengthFacet ;
    rdfs:comment "<S> { <p1> xs:integer LENGTH 5 } on <s> in { <s1> <p1> 1.234 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1datatypeLength.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_DEC1_234.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1datatypeLength_fail-short> a sht:ValidationFailure ;
    mf:name "1datatypeLength_fail-short" ;
    sht:trait sht:LengthFacet ;
    rdfs:comment "<S> { <p1> xs:integer LENGTH 5 } on <s> in { <s1> <p1> 1234 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1datatypeLength.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_INT1234.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1datatypeLength_pass> a sht:ValidationTest ;
    mf:name "1datatypeLength_pass" ;
    sht:trait sht:LengthFacet ;
    rdfs:comment "<S> { <p1> xs:integer LENGTH 5 } on <s> in { <s1> <p1> 12345 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1datatypeLength.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_INT12345.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1datatypeLength_fail-long> a sht:ValidationFailure ;
    mf:name "1datatypeLength_fail-long" ;
    sht:trait sht:LengthFacet ;
    rdfs:comment "<S> { <p1> xs:integer LENGTH 5 } on <s> in { <s1> <p1> 123456 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1datatypeLength.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_INT123456.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

###   } length
###   fractionDigits {

<#1literalFractiondigits_pass-decimal-short> a sht:ValidationTest ;
    mf:name "1literalFractiondigits_pass-decimal-short" ;
    sht:trait sht:FractionDigitsFacet ;
    rdfs:comment "<S1> { <p1> LITERAL FRACTIONDIGITS 5 } / { <s1> <p1> 1.2345 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1literalFractiondigits5.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_DEC1_2345.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

 # for # for numericFacet ::= (numericFacet | numericLength) INTEGER (numericLiteral | string '^^' datatype )
 # <#1literalFractiondigitsxsd-integer_fail-decimal-short> a sht:ValidationFailure ;
 #     mf:name "1literalFractiondigitsxsd-integer_fail-decimal-short" ;
 #     rdfs:comment "<S1> { <p1> LITERAL FRACTIONDIGITS 5 } / { <s1> <p1> 1.2345 }" ;
 #     mf:status mf:Approved ;
 #     mf:action [
 #       sht:schema <../schemas/1literalFractiondigitsxsd-integer.shex.bad> ;
 #       sht:shape <http://a.example/S1> ;
 #       sht:data <Is1_Ip1_DEC1_2345.ttl> ;
 #       sht:focus <http://a.example/s1>
 #     ] ;
 #     .

<#1literalFractiondigits_pass-decimal-equal> a sht:ValidationTest ;
    mf:name "1literalFractiondigits_pass-decimal-equal" ;
    sht:trait sht:FractionDigitsFacet ;
    rdfs:comment "<S1> { <p1> LITERAL FRACTIONDIGITS 5 } / { <s1> <p1> 1.23456 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1literalFractiondigits5.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_DEC1_23456.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

 # # for numericFacet ::= (numericFacet | numericLength) INTEGER (numericLiteral | string '^^' datatype )
 # <#1literalFractiondigitsxsd-integer_pass-decimal-equal> a sht:ValidationTest ;
 #     mf:name "1literalFractiondigitsxsd-integer_pass-decimal-equal" ;
 #     rdfs:comment "<S1> { <p1> LITERAL FRACTIONDIGITS \"5\"^^<http://www.w3.org/2001/XMLSchema#integer> } / { <s1> <p1> 1.23456 }" ;
 #     mf:status mf:Approved ;
 #     mf:action [
 #       sht:schema <../schemas/1literalFractiondigitsxsd-integer.shex.bad> ;
 #       sht:shape <http://a.example/S1> ;
 #       sht:data <Is1_Ip1_DEC1_23456.ttl> ;
 #       sht:focus <http://a.example/s1>
 #     ] ;
 #     mf:result <1literalFractiondigits_pass-decimal-equal.val>
 #     .

<#1literalFractiondigits_fail-decimal-long> a sht:ValidationFailure ;
    mf:name "1literalFractiondigits_fail-decimal-long" ;
    sht:trait sht:FractionDigitsFacet ;
    rdfs:comment "<S1> { <p1> LITERAL FRACTIONDIGITS 5 } / { <s1> <p1> 1.234567 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1literalFractiondigits5.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_DEC1_234567.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1literalFractiondigits_pass-decimal-equalLead> a sht:ValidationTest ;
    mf:name "1literalFractiondigits_pass-decimal-equalLead" ;
    sht:trait sht:FractionDigitsFacet ;
    rdfs:comment "<S1> { <p1> LITERAL FRACTIONDIGITS 4 } / { <s1> <p1> 01.2345 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1literalFractiondigits4.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_DEC01_2345.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1literalFractiondigits_fail-decimal-longLead> a sht:ValidationFailure ;
    mf:name "1literalFractiondigits_fail-decimal-longLead" ;
    sht:trait sht:FractionDigitsFacet ;
    rdfs:comment "<S1> { <p1> LITERAL FRACTIONDIGITS 4 } / { <s1> <p1> 01.23456 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1literalFractiondigits4.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_DEC01_23456.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1literalFractiondigits_pass-decimal-equalTrail> a sht:ValidationTest ;
    mf:name "1literalFractiondigits_pass-decimal-equalTrail" ;
    sht:trait sht:FractionDigitsFacet ;
    rdfs:comment "<S1> { <p1> LITERAL FRACTIONDIGITS 4 } / { <s1> <p1> 1.23450 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1literalFractiondigits4.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_DEC1_23450.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1literalFractiondigits_fail-decimal-longTrail> a sht:ValidationFailure ;
    mf:name "1literalFractiondigits_fail-decimal-longTrail" ;
    sht:trait sht:FractionDigitsFacet ;
    rdfs:comment "<S1> { <p1> LITERAL FRACTIONDIGITS 4 } / { <s1> <p1> 1.234560 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1literalFractiondigits4.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_DEC1_234560.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1literalFractiondigits_pass-decimal-equalLeadTrail> a sht:ValidationTest ;
    mf:name "1literalFractiondigits_pass-decimal-equalLeadTrail" ;
    sht:trait sht:FractionDigitsFacet ;
    rdfs:comment "<S1> { <p1> LITERAL FRACTIONDIGITS 4 } / { <s1> <p1> 01.23450 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1literalFractiondigits4.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_DEC01_23450.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1literalFractiondigits_fail-decimal-longLeadTrail> a sht:ValidationFailure ;
    mf:name "1literalFractiondigits_fail-decimal-longLeadTrail" ;
    sht:trait sht:FractionDigitsFacet ;
    rdfs:comment "<S1> { <p1> LITERAL FRACTIONDIGITS 4 } / { <s1> <p1> 01.234560 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1literalFractiondigits4.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_DEC1_234560.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

 # !! Note: xs:integer restricted to fractionDigits="0"
<#1literalFractiondigits_pass-integer-short> a sht:ValidationTest ;
    mf:name "1literalFractiondigits_pass-integer-short" ;
    sht:trait sht:FractionDigitsFacet ;
    rdfs:comment "<S1> { <p1> LITERAL FRACTIONDIGITS 5 } / { <s1> <p1> 12345 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1literalFractiondigits5.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_INT12345.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1literalFractiondigits_pass-xsd_integer-short> a sht:ValidationTest ;
    mf:name "1literalFractiondigits_pass-xsd_integer-short" ;
    sht:trait sht:FractionDigitsFacet ;
    rdfs:comment "<S1> { <p1> LITERAL FRACTIONDIGITS 5 } / { <s1> <p1> \"12345\"^^xsd:integer }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1literalFractiondigits5.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_xsd-integer12345.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

 # Note: fractionDigits restricted to decimal-derived datatypes.
<#1literalFractiondigits_fail-float-equal> a sht:ValidationFailure ;
    mf:name "1literalFractiondigits_fail-float-equal" ;
    sht:trait sht:FractionDigitsFacet ;
    rdfs:comment "<S1> { <p1> LITERAL FRACTIONDIGITS 5 } / { <s1> <p1> \"1.23456\"^^xsd:float }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1literalFractiondigits5.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_FLT1_23456.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1literalFractiondigits_fail-double-equal> a sht:ValidationFailure ;
    mf:name "1literalFractiondigits_fail-double-equal" ;
    sht:trait sht:FractionDigitsFacet ;
    rdfs:comment "<S1> { <p1> LITERAL FRACTIONDIGITS 5 } / { <s1> <p1> 4.5e0 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1literalFractiondigits5.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_DBL4_5e0.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1literalFractiondigits_fail-malformedxsd_decimal-1_23ab> a sht:ValidationFailure ;
    mf:name "1literalFractiondigits_fail-malformedxsd_decimal-1_23ab" ;
    sht:trait sht:FractionDigitsFacet ;
    rdfs:comment "<S1> { <p1> LITERAL FRACTIONDIGITS 5 } / { <s1> <p1> \"1.23ab\"^^xsd:decimal }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1literalFractiondigits5.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_malformedxsd-decimal1_23ab.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1literalFractiondigits_fail-malformedxsd_decimal-1_2345ab> a sht:ValidationFailure ;
    mf:name "1literalFractiondigits_fail-malformedxsd_decimal-1_2345ab" ;
    sht:trait sht:FractionDigitsFacet ;
    rdfs:comment "<S1> { <p1> LITERAL FRACTIONDIGITS 5 } / { <s1> <p1> \"1.2345ab\"^^xsd:decimal }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1literalFractiondigits5.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_malformedxsd-decimal1_2345ab.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1literalFractiondigits_fail-malformedxsd_integer-1_2345> a sht:ValidationFailure ;
    mf:name "1literalFractiondigits_fail-malformedxsd_integer-1_2345" ;
    sht:trait sht:FractionDigitsFacet ;
    rdfs:comment "<S1> { <p1> LITERAL FRACTIONDIGITS 5 } / { <s1> <p1> \"1.2345\"^^xsd:integer }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1literalFractiondigits5.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_malformedxsd-integer1_2345.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1literalFractiondigits_fail-iri> a sht:ValidationFailure ;
    mf:name "1literalFractiondigits_fail-iri" ;
    sht:trait sht:FractionDigitsFacet ;
    rdfs:comment "<S1> { <p1> LITERAL FRACTIONDIGITS 5 } / BASE <http://a.example/> { <s1> <p1> <1.2345> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1literalFractiondigits5.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <BASE_Is1_Ip1_I12345.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1literalFractiondigits_fail-bnode> a sht:ValidationFailure ;
    mf:name "1literalFractiondigits_fail-bnode" ;
    sht:trait sht:FractionDigitsFacet ;
    rdfs:comment "<S1> { <p1> LITERAL FRACTIONDIGITS 5 } / BASE <http://a.example/> { <s1> <p1> _:12345 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1literalFractiondigits5.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_B12345.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

###   } fractionDigits
###   totalDigits {

<#1literalTotaldigits_pass-decimal-short> a sht:ValidationTest ;
    mf:name "1literalTotaldigits_pass-decimal-short" ;
    sht:trait sht:TotalDigitsFacet ;
    rdfs:comment "<S1> { <p1> LITERAL TOTALDIGITS 5 } / { <s1> <p1> 1.234 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1literalTotaldigits5.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_DEC1_234.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

 # for # for numericFacet ::= (numericFacet | numericLength) INTEGER (numericLiteral | string '^^' datatype )
 # <#1literalTotaldigitsxsd-integer_fail-decimal-short> a sht:ValidationFailure ;
 #     mf:name "1literalTotaldigitsxsd-integer_fail-decimal-short" ;
 #     rdfs:comment "<S1> { <p1> LITERAL TOTALDIGITS 5 } / { <s1> <p1> 1.234 }" ;
 #     mf:status mf:Approved ;
 #     mf:action [
 #       sht:schema <../schemas/1literalTotaldigitsxsd-integer.shex> ;
 #       sht:shape <http://a.example/S1> ;
 #       sht:data <Is1_Ip1_DEC1_234.ttl> ;
 #       sht:focus <http://a.example/s1>
 #     ] ;
 #     .

<#1literalTotaldigits_pass-decimal-equal> a sht:ValidationTest ;
    mf:name "1literalTotaldigits_pass-decimal-equal" ;
    sht:trait sht:TotalDigitsFacet ;
    rdfs:comment "<S1> { <p1> LITERAL TOTALDIGITS 5 } / { <s1> <p1> 1.2345 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1literalTotaldigits5.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_DEC1_2345.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

 # # for numericFacet ::= (numericFacet | numericLength) INTEGER (numericLiteral | string '^^' datatype )
 # <#1literalTotaldigitsxsd-integer_pass-decimal-equal> a sht:ValidationTest ;
 #     mf:name "1literalTotaldigitsxsd-integer_pass-decimal-equal" ;
 #     rdfs:comment "<S1> { <p1> LITERAL TOTALDIGITS \"5\"^^<http://www.w3.org/2001/XMLSchema#integer> } / { <s1> <p1> 1.2345 }" ;
 #     mf:status mf:Approved ;
 #     mf:action [
 #       sht:schema <../schemas/1literalTotaldigitsxsd-integer.shex> ;
 #       sht:shape <http://a.example/S1> ;
 #       sht:data <Is1_Ip1_DEC1_2345.ttl> ;
 #       sht:focus <http://a.example/s1>
 #     ] ;
 #     mf:result <1literalTotaldigits_pass-decimal-equal.val>
 #     .

<#1literalTotaldigits_fail-decimal-long> a sht:ValidationFailure ;
    mf:name "1literalTotaldigits_fail-decimal-long" ;
    sht:trait sht:TotalDigitsFacet ;
    rdfs:comment "<S1> { <p1> LITERAL TOTALDIGITS 5 } / { <s1> <p1> 1.23456 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1literalTotaldigits5.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_DEC1_23456.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1literalTotaldigits_pass-decimal-equalLead> a sht:ValidationTest ;
    mf:name "1literalTotaldigits_pass-decimal-equalLead" ;
    sht:trait sht:TotalDigitsFacet ;
    rdfs:comment "<S1> { <p1> LITERAL TOTALDIGITS 5 } / { <s1> <p1> 01.2345 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1literalTotaldigits5.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_DEC01_2345.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1literalTotaldigits_fail-decimal-longLead> a sht:ValidationFailure ;
    mf:name "1literalTotaldigits_fail-decimal-longLead" ;
    sht:trait sht:TotalDigitsFacet ;
    rdfs:comment "<S1> { <p1> LITERAL TOTALDIGITS 5 } / { <s1> <p1> 01.23456 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1literalTotaldigits5.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_DEC01_23456.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1literalTotaldigits_pass-decimal-equalTrail> a sht:ValidationTest ;
    mf:name "1literalTotaldigits_pass-decimal-equalTrail" ;
    sht:trait sht:TotalDigitsFacet ;
    rdfs:comment "<S1> { <p1> LITERAL TOTALDIGITS 5 } / { <s1> <p1> 1.23450 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1literalTotaldigits5.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_DEC1_23450.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1literalTotaldigits_fail-decimal-longTrail> a sht:ValidationFailure ;
    mf:name "1literalTotaldigits_fail-decimal-longTrail" ;
    sht:trait sht:TotalDigitsFacet ;
    rdfs:comment "<S1> { <p1> LITERAL TOTALDIGITS 5 } / { <s1> <p1> 1.234560 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1literalTotaldigits5.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_DEC1_234560.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1literalTotaldigits_pass-decimal-equalLeadTrail> a sht:ValidationTest ;
    mf:name "1literalTotaldigits_pass-decimal-equalLeadTrail" ;
    sht:trait sht:TotalDigitsFacet ;
    rdfs:comment "<S1> { <p1> LITERAL TOTALDIGITS 5 } / { <s1> <p1> 01.23450 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1literalTotaldigits5.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_DEC01_23450.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1literalTotaldigits_fail-decimal-longLeadTrail> a sht:ValidationFailure ;
    mf:name "1literalTotaldigits_fail-decimal-longLeadTrail" ;
    sht:trait sht:TotalDigitsFacet ;
    rdfs:comment "<S1> { <p1> LITERAL TOTALDIGITS 5 } / { <s1> <p1> 01.234560 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1literalTotaldigits5.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_DEC1_234560.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1literalTotaldigits_pass-integer-equal> a sht:ValidationTest ;
    mf:name "1literalTotaldigits_pass-integer-equal" ;
    sht:trait sht:TotalDigitsFacet ;
    rdfs:comment "<S1> { <p1> LITERAL TOTALDIGITS 5 } / { <s1> <p1> 12345 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1literalTotaldigits5.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_INT12345.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1literalTotaldigits_pass-xsd_integer-short> a sht:ValidationTest ;
    mf:name "1literalTotaldigits_pass-xsd_integer-short" ;
    sht:trait sht:TotalDigitsFacet ;
    rdfs:comment "<S1> { <p1> LITERAL TOTALDIGITS 5 } / { <s1> <p1> \"1234\"^^xsd:integer }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1literalTotaldigits5.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_xsd-integer1234.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1literalTotaldigits_pass-integer-equalLead> a sht:ValidationTest ;
    mf:name "1literalTotaldigits_pass-integer-equalLead" ;
    sht:trait sht:TotalDigitsFacet ;
    rdfs:comment "<S1> { <p1> LITERAL TOTALDIGITS 5 } / { <s1> <p1> 012345 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1literalTotaldigits5.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_INT012345.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1literalTotaldigits_fail-integer-longLead> a sht:ValidationFailure ;
    mf:name "1literalTotaldigits_fail-integer-longLead" ;
    sht:trait sht:TotalDigitsFacet ;
    rdfs:comment "<S1> { <p1> LITERAL TOTALDIGITS 5 } / { <s1> <p1> 0123456 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1literalTotaldigits5.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_INT0123456.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1literalTotaldigits_pass-integer-equalTrail> a sht:ValidationTest ;
    mf:name "1literalTotaldigits_pass-integer-equalTrail" ;
    sht:trait sht:TotalDigitsFacet ;
    rdfs:comment "<S1> { <p1> LITERAL TOTALDIGITS 6 } / { <s1> <p1> 123450 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1literalTotaldigits6.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_INT123450.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1literalTotaldigits_fail-integer-longTrail> a sht:ValidationFailure ;
    mf:name "1literalTotaldigits_fail-integer-longTrail" ;
    sht:trait sht:TotalDigitsFacet ;
    rdfs:comment "<S1> { <p1> LITERAL TOTALDIGITS 6 } / { <s1> <p1> 1234560 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1literalTotaldigits6.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_INT1234560.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1literalTotaldigits_pass-integer-equalLeadTrail> a sht:ValidationTest ;
    mf:name "1literalTotaldigits_pass-integer-equalLeadTrail" ;
    sht:trait sht:TotalDigitsFacet ;
    rdfs:comment "<S1> { <p1> LITERAL TOTALDIGITS 6 } / { <s1> <p1> 0123450 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1literalTotaldigits6.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_INT0123450.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1literalTotaldigits_fail-integer-longLeadTrail> a sht:ValidationFailure ;
    mf:name "1literalTotaldigits_fail-integer-longLeadTrail" ;
    sht:trait sht:TotalDigitsFacet ;
    rdfs:comment "<S1> { <p1> LITERAL TOTALDIGITS 6 } / { <s1> <p1> 01234560 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1literalTotaldigits6.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_INT01234560.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1literalTotaldigits_pass-byte-short> a sht:ValidationTest ;
    mf:name "1literalTotaldigits_pass-byte-short" ;
    sht:trait sht:TotalDigitsFacet ;
    rdfs:comment "<S1> { <p1> LITERAL TOTALDIGITS 2 } / { <s1> <p1> 5^^xsd:byte }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1literalTotaldigits2.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_BYT5.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1literalTotaldigits_pass-byte-equal> a sht:ValidationTest ;
    mf:name "1literalTotaldigits_pass-byte-equal" ;
    sht:trait sht:TotalDigitsFacet ;
    rdfs:comment "<S1> { <p1> LITERAL TOTALDIGITS 2 } / { <s1> <p1> 64^^xsd:byte }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1literalTotaldigits2.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_BYT64.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1literalTotaldigits_fail-byte-long> a sht:ValidationFailure ;
    mf:name "1literalTotaldigits_fail-byte-long" ;
    sht:trait sht:TotalDigitsFacet ;
    rdfs:comment "<S1> { <p1> LITERAL TOTALDIGITS 2 } / { <s1> <p1> 128^^xsd:byte }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1literalTotaldigits2.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_BYT128.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

 # Note: totalDigits restricted to decimal-derived datatypes.
<#1literalTotaldigits_fail-float-equal> a sht:ValidationFailure ;
    mf:name "1literalTotaldigits_fail-float-equal" ;
    sht:trait sht:TotalDigitsFacet ;
    rdfs:comment "<S1> { <p1> LITERAL TOTALDIGITS 5 } / { <s1> <p1> \"1.2345\"^^xsd:float }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1literalTotaldigits5.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_FLT1_2345.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1literalTotaldigits_fail-double-equal> a sht:ValidationFailure ;
    mf:name "1literalTotaldigits_fail-double-equal" ;
    sht:trait sht:TotalDigitsFacet ;
    rdfs:comment "<S1> { <p1> LITERAL TOTALDIGITS 5 } / { <s1> <p1> 4.5e0 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1literalTotaldigits5.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_DBL4_5e0.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1literalTotaldigits_fail-malformedxsd_decimal-1_23ab> a sht:ValidationFailure ;
    mf:name "1literalTotaldigits_fail-malformedxsd_decimal-1_23ab" ;
    sht:trait sht:TotalDigitsFacet ;
    rdfs:comment "<S1> { <p1> LITERAL TOTALDIGITS 5 } / { <s1> <p1> \"1.23ab\"^^xsd:decimal }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1literalTotaldigits5.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_malformedxsd-decimal1_23ab.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1literalTotaldigits_fail-malformedxsd_decimal-1_2345ab> a sht:ValidationFailure ;
    mf:name "1literalTotaldigits_fail-malformedxsd_decimal-1_2345ab" ;
    sht:trait sht:TotalDigitsFacet ;
    rdfs:comment "<S1> { <p1> LITERAL TOTALDIGITS 5 } / { <s1> <p1> \"1.2345ab\"^^xsd:decimal }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1literalTotaldigits5.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_malformedxsd-decimal1_2345ab.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1literalTotaldigits_fail-malformedxsd_integer-1_2345> a sht:ValidationFailure ;
    mf:name "1literalTotaldigits_fail-malformedxsd_integer-1_2345" ;
    sht:trait sht:TotalDigitsFacet ;
    rdfs:comment "<S1> { <p1> LITERAL TOTALDIGITS 5 } / { <s1> <p1> \"1.2345\"^^xsd:integer }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1literalTotaldigits5.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_malformedxsd-integer1_2345.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1literalTotaldigits_fail-iri> a sht:ValidationFailure ;
    mf:name "1literalTotaldigits_fail-iri" ;
    sht:trait sht:TotalDigitsFacet ;
    rdfs:comment "<S1> { <p1> LITERAL TOTALDIGITS 5 } / BASE <http://a.example/> { <s1> <p1> <1.2345> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1literalTotaldigits5.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <BASE_Is1_Ip1_I12345.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1literalTotaldigits_fail-bnode> a sht:ValidationFailure ;
    mf:name "1literalTotaldigits_fail-bnode" ;
    sht:trait sht:TotalDigitsFacet ;
    rdfs:comment "<S1> { <p1> LITERAL TOTALDIGITS 5 } / BASE <http://a.example/> { <s1> <p1> _:12345 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1literalTotaldigits5.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_B12345.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

###   } totalDigits
###   comparators {
####     manual {

<#1literalMinexclusiveINTEGER_fail-low> a sht:ValidationFailure ;
    mf:name "1literalMinexclusiveINTEGER_fail-low" ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> LITERAL MINEXCLUSIVE 5 } / { <s1> <p1> '4'^^xsd:integer }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1literalMinexclusiveINTEGER.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_INT4.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1literalMinexclusiveINTEGER_pass-equal> a sht:ValidationFailure ;
    mf:name "1literalMinexclusiveINTEGER_pass-equal" ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> LITERAL MINEXCLUSIVE 5 } / { <s1> <p1> '5'^^xsd:integer }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1literalMinexclusiveINTEGER.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_INT5.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1literalMinexclusiveINTEGER_pass-high> a sht:ValidationTest ;
    mf:name "1literalMinexclusiveINTEGER_pass-high" ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> LITERAL MINEXCLUSIVE 5 } / { <s1> <p1> '6'^^xsd:integer }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1literalMinexclusiveINTEGER.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_INT6.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1literalMininclusiveINTEGER_fail-low> a sht:ValidationFailure ;
    mf:name "1literalMininclusiveINTEGER_fail-low" ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> LITERAL MININCLUSIVE 5 } / { <s1> <p1> '4'^^xsd:integer }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1literalMininclusiveINTEGER.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_INT4.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1literalMininclusiveINTEGER_pass-equal> a sht:ValidationTest ;
    mf:name "1literalMininclusiveINTEGER_pass-equal" ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> LITERAL MININCLUSIVE 5 } / { <s1> <p1> '5'^^xsd:integer }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1literalMininclusiveINTEGER.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_INT5.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1literalMininclusiveINTEGER_pass-high> a sht:ValidationTest ;
    mf:name "1literalMininclusiveINTEGER_pass-high" ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> LITERAL MININCLUSIVE 5 } / { <s1> <p1> '6'^^xsd:integer }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1literalMininclusiveINTEGER.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_INT6.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1literalMaxexclusiveINTEGER_pass-low> a sht:ValidationTest ;
    mf:name "1literalMaxexclusiveINTEGER_pass-low" ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> LITERAL MAXEXCLUSIVE 5 } / { <s1> <p1> '4'^^xsd:integer }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1literalMaxexclusiveINTEGER.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_INT4.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1literalMaxexclusiveINTEGER_fail-equal> a sht:ValidationFailure ;
    mf:name "1literalMaxexclusiveINTEGER_fail-equal" ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> LITERAL MAXEXCLUSIVE 5 } / { <s1> <p1> '5'^^xsd:integer }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1literalMaxexclusiveINTEGER.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_INT5.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1literalMaxexclusiveINTEGER_fail-high> a sht:ValidationFailure ;
    mf:name "1literalMaxexclusiveINTEGER_fail-high" ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> LITERAL MAXEXCLUSIVE 5 } / { <s1> <p1> '6'^^xsd:integer }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1literalMaxexclusiveINTEGER.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_INT6.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1literalMaxinclusiveINTEGER_pass-low> a sht:ValidationTest ;
    mf:name "1literalMaxinclusiveINTEGER_pass-low" ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> LITERAL MAXINCLUSIVE 5 } / { <s1> <p1> '4'^^xsd:integer }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1literalMaxinclusiveINTEGER.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_INT4.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1literalMaxinclusiveINTEGER_pass-equal> a sht:ValidationTest ;
    mf:name "1literalMaxinclusiveINTEGER_pass-equal" ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> LITERAL MAXINCLUSIVE 5 } / { <s1> <p1> '5'^^xsd:integer }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1literalMaxinclusiveINTEGER.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_INT5.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1literalMaxinclusiveINTEGER_fail-high> a sht:ValidationFailure ;
    mf:name "1literalMaxinclusiveINTEGER_fail-high" ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> LITERAL MAXINCLUSIVE 5 } / { <s1> <p1> '6'^^xsd:integer }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1literalMaxinclusiveINTEGER.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_INT6.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1floatMininclusiveINTEGER_fail-low> a sht:ValidationFailure ;
    mf:name "1floatMininclusiveINTEGER_fail-low" ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:float MININCLUSIVE 5 } / { <s1> <p1> '4.9'^^xsd:float }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1floatMininclusiveINTEGER.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_FLT4_9.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1floatMininclusiveINTEGER_pass-equalLead> a sht:ValidationTest ;
    mf:name "1floatMininclusiveINTEGER_pass-equalLead" ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:float MININCLUSIVE 5 } / { <s1> <p1> '05'^^xsd:float }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1floatMininclusiveINTEGER.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_FLT05.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1floatMininclusiveINTEGER_pass-equalTrail> a sht:ValidationTest ;
    mf:name "1floatMininclusiveINTEGER_pass-equalTrail" ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:float MININCLUSIVE 5 } / { <s1> <p1> '5.0'^^xsd:float }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1floatMininclusiveINTEGER.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_FLT5_0.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1floatMininclusiveINTEGER_pass-high> a sht:ValidationTest ;
    mf:name "1floatMininclusiveINTEGER_pass-high" ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:float MININCLUSIVE 5 } / { <s1> <p1> '5.1'^^xsd:float }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1floatMininclusiveINTEGER.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_FLT5_1.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1integerMininclusiveINTEGER_fail-low> a sht:ValidationFailure ;
    mf:name "1integerMininclusiveINTEGER_fail-low" ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:integer MININCLUSIVE 5 } / { <s1> <p1> '4'^^xsd:integer }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1integerMininclusiveINTEGER.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_INT4.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1integerMininclusiveINTEGER_pass-equalLead> a sht:ValidationTest ;
    mf:name "1integerMininclusiveINTEGER_pass-equalLead" ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:integer MININCLUSIVE 5 } / { <s1> <p1> '05'^^xsd:integer }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1integerMininclusiveINTEGER.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_INT05.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1integerMininclusiveINTEGER_pass-equal> a sht:ValidationTest ;
    mf:name "1integerMininclusiveINTEGER_pass-equal" ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:integer MININCLUSIVE 5 } / { <s1> <p1> '5'^^xsd:integer }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1integerMininclusiveINTEGER.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_INT5.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1integerMininclusiveINTEGER_pass-high> a sht:ValidationTest ;
    mf:name "1integerMininclusiveINTEGER_pass-high" ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:integer MININCLUSIVE 5 } / { <s1> <p1> '6'^^xsd:integer }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1integerMininclusiveINTEGER.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_INT6.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1floatMininclusiveINTEGERLead_pass-equal> a sht:ValidationTest ;
    mf:name "1floatMininclusiveINTEGERLead_pass-equal" ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:float MININCLUSIVE 5 } / { <s1> <p1> '5'^^xsd:float }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1floatMininclusiveINTEGERLead.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_FLT5.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

####     } manual
####     generated {

<#1integerMininclusiveINTEGER_fail-integer-low> a sht:ValidationFailure ;
    mf:name "1integerMininclusiveINTEGER_fail-integer-low" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MinInclusive.J6> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:integer MININCLUSIVE 5 } / { <s1> <p1> 4 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1integerMininclusiveINTEGER.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_INT4.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1integerMininclusiveINTEGER_pass-integer-equal> a sht:ValidationTest ;
    mf:name "1integerMininclusiveINTEGER_pass-integer-equal" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MinInclusive.K6> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:integer MININCLUSIVE 5 } / { <s1> <p1> 5 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1integerMininclusiveINTEGER.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_INT5.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1integerMininclusiveINTEGER_pass-integer-high> a sht:ValidationTest ;
    mf:name "1integerMininclusiveINTEGER_pass-integer-high" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MinInclusive.N6> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:integer MININCLUSIVE 5 } / { <s1> <p1> 6 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1integerMininclusiveINTEGER.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_INT6.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1integerMininclusiveINTEGERLead_fail-integer-low> a sht:ValidationFailure ;
    mf:name "1integerMininclusiveINTEGERLead_fail-integer-low" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MinInclusive.J7> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:integer MININCLUSIVE 05 } / { <s1> <p1> 4 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1integerMininclusiveINTEGERLead.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_INT4.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1integerMininclusiveINTEGERLead_pass-integer-equal> a sht:ValidationTest ;
    mf:name "1integerMininclusiveINTEGERLead_pass-integer-equal" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MinInclusive.K7> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:integer MININCLUSIVE 05 } / { <s1> <p1> 5 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1integerMininclusiveINTEGERLead.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_INT5.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1integerMininclusiveINTEGERLead_pass-integer-equalLead> a sht:ValidationTest ;
    mf:name "1integerMininclusiveINTEGERLead_pass-integer-equalLead" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MinInclusive.L7> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:integer MININCLUSIVE 05 } / { <s1> <p1> 05 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1integerMininclusiveINTEGERLead.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_INT05.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1integerMininclusiveINTEGERLead_pass-integer-high> a sht:ValidationTest ;
    mf:name "1integerMininclusiveINTEGERLead_pass-integer-high" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MinInclusive.N7> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:integer MININCLUSIVE 05 } / { <s1> <p1> 6 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1integerMininclusiveINTEGERLead.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_INT6.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1integerMininclusiveDECIMAL_pass-integer-equal> a sht:ValidationTest ;
    mf:name "1integerMininclusiveDECIMAL_pass-integer-equal" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MinInclusive.K8> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:integer MININCLUSIVE 4.5 } / { <s1> <p1> 5 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1integerMininclusiveDECIMAL.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_INT5.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1integerMininclusiveDECIMALLeadTrail_fail-integer-low> a sht:ValidationFailure ;
    mf:name "1integerMininclusiveDECIMALLeadTrail_fail-integer-low" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MinInclusive.J9> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:integer MININCLUSIVE 04.50 } / { <s1> <p1> 4 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1integerMininclusiveDECIMALLeadTrail.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_INT4.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1integerMininclusiveDECIMALLeadTrail_pass-integer-equal> a sht:ValidationTest ;
    mf:name "1integerMininclusiveDECIMALLeadTrail_pass-integer-equal" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MinInclusive.K9> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:integer MININCLUSIVE 04.50 } / { <s1> <p1> 5 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1integerMininclusiveDECIMALLeadTrail.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_INT5.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1integerMininclusiveDECIMALLeadTrail_pass-integer-equalLead> a sht:ValidationTest ;
    mf:name "1integerMininclusiveDECIMALLeadTrail_pass-integer-equalLead" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MinInclusive.L9> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:integer MININCLUSIVE 04.50 } / { <s1> <p1> 05 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1integerMininclusiveDECIMALLeadTrail.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_INT05.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1integerMininclusiveDECIMALLeadTrail_pass-integer-high> a sht:ValidationTest ;
    mf:name "1integerMininclusiveDECIMALLeadTrail_pass-integer-high" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MinInclusive.N9> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:integer MININCLUSIVE 04.50 } / { <s1> <p1> 6 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1integerMininclusiveDECIMALLeadTrail.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_INT6.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1integerMininclusiveDECIMALint_fail-integer-low> a sht:ValidationFailure ;
    mf:name "1integerMininclusiveDECIMALint_fail-integer-low" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MinInclusive.J10> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:integer MININCLUSIVE 5.0 } / { <s1> <p1> 4 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1integerMininclusiveDECIMALint.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_INT4.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1integerMininclusiveDECIMALint_pass-integer-equal> a sht:ValidationTest ;
    mf:name "1integerMininclusiveDECIMALint_pass-integer-equal" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MinInclusive.K10> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:integer MININCLUSIVE 5.0 } / { <s1> <p1> 5 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1integerMininclusiveDECIMALint.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_INT5.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1integerMininclusiveDECIMALint_pass-integer-high> a sht:ValidationTest ;
    mf:name "1integerMininclusiveDECIMALint_pass-integer-high" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MinInclusive.N10> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:integer MININCLUSIVE 5.0 } / { <s1> <p1> 6 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1integerMininclusiveDECIMALint.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_INT6.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1integerMininclusiveDECIMALintLeadTrail_fail-integer-low> a sht:ValidationFailure ;
    mf:name "1integerMininclusiveDECIMALintLeadTrail_fail-integer-low" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MinInclusive.J11> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:integer MININCLUSIVE 05.00 } / { <s1> <p1> 4 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1integerMininclusiveDECIMALintLeadTrail.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_INT4.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1integerMininclusiveDECIMALintLeadTrail_pass-integer-equal> a sht:ValidationTest ;
    mf:name "1integerMininclusiveDECIMALintLeadTrail_pass-integer-equal" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MinInclusive.K11> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:integer MININCLUSIVE 05.00 } / { <s1> <p1> 5 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1integerMininclusiveDECIMALintLeadTrail.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_INT5.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1integerMininclusiveDECIMALintLeadTrail_pass-integer-equalLead> a sht:ValidationTest ;
    mf:name "1integerMininclusiveDECIMALintLeadTrail_pass-integer-equalLead" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MinInclusive.L11> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:integer MININCLUSIVE 05.00 } / { <s1> <p1> 05 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1integerMininclusiveDECIMALintLeadTrail.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_INT05.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1integerMininclusiveDECIMALintLeadTrail_pass-integer-high> a sht:ValidationTest ;
    mf:name "1integerMininclusiveDECIMALintLeadTrail_pass-integer-high" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MinInclusive.N11> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:integer MININCLUSIVE 05.00 } / { <s1> <p1> 6 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1integerMininclusiveDECIMALintLeadTrail.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_INT6.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1integerMininclusiveDOUBLE_pass-integer-equal> a sht:ValidationTest ;
    mf:name "1integerMininclusiveDOUBLE_pass-integer-equal" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MinInclusive.K12> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:integer MININCLUSIVE 4.5e0 } / { <s1> <p1> 5 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1integerMininclusiveDOUBLE.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_INT5.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1integerMininclusiveDOUBLELeadTrail_fail-integer-low> a sht:ValidationFailure ;
    mf:name "1integerMininclusiveDOUBLELeadTrail_fail-integer-low" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MinInclusive.J13> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:integer MININCLUSIVE 04.50e0 } / { <s1> <p1> 4 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1integerMininclusiveDOUBLELeadTrail.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_INT4.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1integerMininclusiveDOUBLELeadTrail_pass-integer-equal> a sht:ValidationTest ;
    mf:name "1integerMininclusiveDOUBLELeadTrail_pass-integer-equal" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MinInclusive.K13> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:integer MININCLUSIVE 04.50e0 } / { <s1> <p1> 5 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1integerMininclusiveDOUBLELeadTrail.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_INT5.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1integerMininclusiveDOUBLELeadTrail_pass-integer-equalLead> a sht:ValidationTest ;
    mf:name "1integerMininclusiveDOUBLELeadTrail_pass-integer-equalLead" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MinInclusive.L13> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:integer MININCLUSIVE 04.50e0 } / { <s1> <p1> 05 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1integerMininclusiveDOUBLELeadTrail.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_INT05.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1integerMininclusiveDOUBLELeadTrail_pass-integer-high> a sht:ValidationTest ;
    mf:name "1integerMininclusiveDOUBLELeadTrail_pass-integer-high" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MinInclusive.N13> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:integer MININCLUSIVE 04.50e0 } / { <s1> <p1> 6 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1integerMininclusiveDOUBLELeadTrail.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_INT6.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1integerMininclusiveDOUBLEint_pass-integer-equal> a sht:ValidationTest ;
    mf:name "1integerMininclusiveDOUBLEint_pass-integer-equal" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MinInclusive.K14> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:integer MININCLUSIVE 5.0e0 } / { <s1> <p1> 5 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1integerMininclusiveDOUBLEint.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_INT5.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1integerMininclusiveDOUBLEintLeadTrail_fail-integer-low> a sht:ValidationFailure ;
    mf:name "1integerMininclusiveDOUBLEintLeadTrail_fail-integer-low" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MinInclusive.J15> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:integer MININCLUSIVE 05.00e0 } / { <s1> <p1> 4 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1integerMininclusiveDOUBLEintLeadTrail.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_INT4.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1integerMininclusiveDOUBLEintLeadTrail_pass-integer-equal> a sht:ValidationTest ;
    mf:name "1integerMininclusiveDOUBLEintLeadTrail_pass-integer-equal" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MinInclusive.K15> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:integer MININCLUSIVE 05.00e0 } / { <s1> <p1> 5 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1integerMininclusiveDOUBLEintLeadTrail.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_INT5.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1integerMininclusiveDOUBLEintLeadTrail_pass-integer-equalLead> a sht:ValidationTest ;
    mf:name "1integerMininclusiveDOUBLEintLeadTrail_pass-integer-equalLead" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MinInclusive.L15> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:integer MININCLUSIVE 05.00e0 } / { <s1> <p1> 05 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1integerMininclusiveDOUBLEintLeadTrail.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_INT05.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1integerMininclusiveDOUBLEintLeadTrail_pass-integer-high> a sht:ValidationTest ;
    mf:name "1integerMininclusiveDOUBLEintLeadTrail_pass-integer-high" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MinInclusive.N15> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:integer MININCLUSIVE 05.00e0 } / { <s1> <p1> 6 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1integerMininclusiveDOUBLEintLeadTrail.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_INT6.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1integerMininclusiveINTEGER_fail-decimal-equal> a sht:ValidationFailure ;
    mf:name "1integerMininclusiveINTEGER_fail-decimal-equal" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MinInclusive.K16> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:integer MININCLUSIVE 5 } / { <s1> <p1> 4.5 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1integerMininclusiveINTEGER.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_DEC4_5.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1integerMininclusiveINTEGER_fail-float-equal> a sht:ValidationFailure ;
    mf:name "1integerMininclusiveINTEGER_fail-float-equal" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MinInclusive.K17> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:integer MININCLUSIVE 5 } / { <s1> <p1> '4.5'^^<http://www.w3.org/2001/XMLSchema#float> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1integerMininclusiveINTEGER.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_FLT4_5.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1integerMininclusiveINTEGER_fail-double-equal> a sht:ValidationFailure ;
    mf:name "1integerMininclusiveINTEGER_fail-double-equal" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MinInclusive.K18> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:integer MININCLUSIVE 5 } / { <s1> <p1> 4.5e0 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1integerMininclusiveINTEGER.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_DBL4_5e0.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1integerMininclusiveINTEGER_fail-dateTime-equal> a sht:ValidationFailure ;
    mf:name "1integerMininclusiveINTEGER_fail-dateTime-equal" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MinInclusive.K19> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:integer MININCLUSIVE 5 } / { <s1> <p1> '2015-12-25T01:23:45Z'^^<http://www.w3.org/2001/XMLSchema#dateTime> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1integerMininclusiveINTEGER.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_DT2015-12-25T01_23_45Z.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1integerMininclusiveINTEGER_fail-string-equal> a sht:ValidationFailure ;
    mf:name "1integerMininclusiveINTEGER_fail-string-equal" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MinInclusive.K20> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:integer MININCLUSIVE 5 } / { <s1> <p1> 'ab'^^<http://www.w3.org/2001/XMLSchema#string> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1integerMininclusiveINTEGER.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_STRab.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1integerMininclusiveINTEGER_fail-byte-equal> a sht:ValidationFailure ;
    mf:name "1integerMininclusiveINTEGER_fail-byte-equal" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MinInclusive.K21> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:integer MININCLUSIVE 5 } / { <s1> <p1> '5'^^<http://www.w3.org/2001/XMLSchema#byte> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1integerMininclusiveINTEGER.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_BYT5.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1decimalMininclusiveINTEGER_fail-decimal-low> a sht:ValidationFailure ;
    mf:name "1decimalMininclusiveINTEGER_fail-decimal-low" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MinInclusive.J27> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:decimal MININCLUSIVE 5 } / { <s1> <p1> 4.4 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1decimalMininclusiveINTEGER.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_DEC4_4.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1decimalMininclusiveINTEGER_pass-decimal-high> a sht:ValidationTest ;
    mf:name "1decimalMininclusiveINTEGER_pass-decimal-high" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MinInclusive.N27> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:decimal MININCLUSIVE 5 } / { <s1> <p1> 5.6 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1decimalMininclusiveINTEGER.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_DEC5_6.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1decimalMininclusiveINTEGERLead_fail-decimal-low> a sht:ValidationFailure ;
    mf:name "1decimalMininclusiveINTEGERLead_fail-decimal-low" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MinInclusive.J28> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:decimal MININCLUSIVE 05 } / { <s1> <p1> 4.4 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1decimalMininclusiveINTEGERLead.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_DEC4_4.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1decimalMininclusiveINTEGERLead_pass-decimal-high> a sht:ValidationTest ;
    mf:name "1decimalMininclusiveINTEGERLead_pass-decimal-high" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MinInclusive.N28> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:decimal MININCLUSIVE 05 } / { <s1> <p1> 5.6 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1decimalMininclusiveINTEGERLead.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_DEC5_6.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1decimalMininclusiveDECIMAL_fail-decimal-low> a sht:ValidationFailure ;
    mf:name "1decimalMininclusiveDECIMAL_fail-decimal-low" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MinInclusive.J29> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:decimal MININCLUSIVE 4.5 } / { <s1> <p1> 4.4 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1decimalMininclusiveDECIMAL.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_DEC4_4.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1decimalMininclusiveDECIMAL_pass-decimal-equal> a sht:ValidationTest ;
    mf:name "1decimalMininclusiveDECIMAL_pass-decimal-equal" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MinInclusive.K29> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:decimal MININCLUSIVE 4.5 } / { <s1> <p1> 4.5 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1decimalMininclusiveDECIMAL.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_DEC4_5.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1decimalMininclusiveDECIMAL_pass-decimal-equalLeadTrail> a sht:ValidationTest ;
    mf:name "1decimalMininclusiveDECIMAL_pass-decimal-equalLeadTrail" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MinInclusive.M29> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:decimal MININCLUSIVE 4.5 } / { <s1> <p1> 04.50 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1decimalMininclusiveDECIMAL.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_DEC04_50.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1decimalMininclusiveDECIMAL_pass-decimal-high> a sht:ValidationTest ;
    mf:name "1decimalMininclusiveDECIMAL_pass-decimal-high" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MinInclusive.N29> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:decimal MININCLUSIVE 4.5 } / { <s1> <p1> 5.6 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1decimalMininclusiveDECIMAL.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_DEC5_6.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1decimalMininclusiveDECIMALLeadTrail_fail-decimal-low> a sht:ValidationFailure ;
    mf:name "1decimalMininclusiveDECIMALLeadTrail_fail-decimal-low" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MinInclusive.J30> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:decimal MININCLUSIVE 04.50 } / { <s1> <p1> 4.4 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1decimalMininclusiveDECIMALLeadTrail.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_DEC4_4.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1decimalMininclusiveDECIMALLeadTrail_pass-decimal-equal> a sht:ValidationTest ;
    mf:name "1decimalMininclusiveDECIMALLeadTrail_pass-decimal-equal" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MinInclusive.K30> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:decimal MININCLUSIVE 04.50 } / { <s1> <p1> 4.5 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1decimalMininclusiveDECIMALLeadTrail.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_DEC4_5.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1decimalMininclusiveDECIMALLeadTrail_pass-decimal-equalLeadTrail> a sht:ValidationTest ;
    mf:name "1decimalMininclusiveDECIMALLeadTrail_pass-decimal-equalLeadTrail" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MinInclusive.M30> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:decimal MININCLUSIVE 04.50 } / { <s1> <p1> 04.50 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1decimalMininclusiveDECIMALLeadTrail.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_DEC04_50.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1decimalMininclusiveDECIMALLeadTrail_pass-decimal-high> a sht:ValidationTest ;
    mf:name "1decimalMininclusiveDECIMALLeadTrail_pass-decimal-high" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MinInclusive.N30> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:decimal MININCLUSIVE 04.50 } / { <s1> <p1> 5.6 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1decimalMininclusiveDECIMALLeadTrail.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_DEC5_6.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1decimalMininclusiveDECIMALintLeadTrail_fail-decimal-low> a sht:ValidationFailure ;
    mf:name "1decimalMininclusiveDECIMALintLeadTrail_fail-decimal-low" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MinInclusive.J32> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:decimal MININCLUSIVE 05.00 } / { <s1> <p1> 4.4 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1decimalMininclusiveDECIMALintLeadTrail.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_DEC4_4.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1decimalMininclusiveDECIMALintLeadTrail_pass-decimal-high> a sht:ValidationTest ;
    mf:name "1decimalMininclusiveDECIMALintLeadTrail_pass-decimal-high" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MinInclusive.N32> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:decimal MININCLUSIVE 05.00 } / { <s1> <p1> 5.6 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1decimalMininclusiveDECIMALintLeadTrail.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_DEC5_6.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1decimalMininclusiveDOUBLE_fail-decimal-low> a sht:ValidationFailure ;
    mf:name "1decimalMininclusiveDOUBLE_fail-decimal-low" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MinInclusive.J33> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:decimal MININCLUSIVE 4.5e0 } / { <s1> <p1> 4.4 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1decimalMininclusiveDOUBLE.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_DEC4_4.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1decimalMininclusiveDOUBLE_pass-decimal-equal> a sht:ValidationTest ;
    mf:name "1decimalMininclusiveDOUBLE_pass-decimal-equal" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MinInclusive.K33> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:decimal MININCLUSIVE 4.5e0 } / { <s1> <p1> 4.5 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1decimalMininclusiveDOUBLE.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_DEC4_5.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1decimalMininclusiveDOUBLE_pass-decimal-equalLeadTrail> a sht:ValidationTest ;
    mf:name "1decimalMininclusiveDOUBLE_pass-decimal-equalLeadTrail" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MinInclusive.M33> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:decimal MININCLUSIVE 4.5e0 } / { <s1> <p1> 04.50 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1decimalMininclusiveDOUBLE.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_DEC04_50.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1decimalMininclusiveDOUBLELeadTrail_fail-decimal-low> a sht:ValidationFailure ;
    mf:name "1decimalMininclusiveDOUBLELeadTrail_fail-decimal-low" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MinInclusive.J34> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:decimal MININCLUSIVE 04.50e0 } / { <s1> <p1> 4.4 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1decimalMininclusiveDOUBLELeadTrail.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_DEC4_4.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1decimalMininclusiveDOUBLELeadTrail_pass-decimal-equal> a sht:ValidationTest ;
    mf:name "1decimalMininclusiveDOUBLELeadTrail_pass-decimal-equal" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MinInclusive.K34> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:decimal MININCLUSIVE 04.50e0 } / { <s1> <p1> 4.5 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1decimalMininclusiveDOUBLELeadTrail.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_DEC4_5.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1decimalMininclusiveDOUBLELeadTrail_pass-decimal-equalLeadTrail> a sht:ValidationTest ;
    mf:name "1decimalMininclusiveDOUBLELeadTrail_pass-decimal-equalLeadTrail" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MinInclusive.M34> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:decimal MININCLUSIVE 04.50e0 } / { <s1> <p1> 04.50 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1decimalMininclusiveDOUBLELeadTrail.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_DEC04_50.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1decimalMininclusiveDOUBLELeadTrail_pass-decimal-high> a sht:ValidationTest ;
    mf:name "1decimalMininclusiveDOUBLELeadTrail_pass-decimal-high" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MinInclusive.N34> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:decimal MININCLUSIVE 04.50e0 } / { <s1> <p1> 5.6 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1decimalMininclusiveDOUBLELeadTrail.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_DEC5_6.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1decimalMininclusiveDOUBLEintLeadTrail_fail-decimal-low> a sht:ValidationFailure ;
    mf:name "1decimalMininclusiveDOUBLEintLeadTrail_fail-decimal-low" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MinInclusive.J36> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:decimal MININCLUSIVE 05.00e0 } / { <s1> <p1> 4.4 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1decimalMininclusiveDOUBLEintLeadTrail.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_DEC4_4.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1decimalMininclusiveDOUBLEintLeadTrail_pass-decimal-high> a sht:ValidationTest ;
    mf:name "1decimalMininclusiveDOUBLEintLeadTrail_pass-decimal-high" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MinInclusive.N36> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:decimal MININCLUSIVE 05.00e0 } / { <s1> <p1> 5.6 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1decimalMininclusiveDOUBLEintLeadTrail.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_DEC5_6.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1decimalMininclusiveDECIMAL_fail-float-equal> a sht:ValidationFailure ;
    mf:name "1decimalMininclusiveDECIMAL_fail-float-equal" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MinInclusive.K37> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:decimal MININCLUSIVE 4.5 } / { <s1> <p1> '4.5'^^<http://www.w3.org/2001/XMLSchema#float> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1decimalMininclusiveDECIMAL.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_FLT4_5.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1decimalMininclusiveDECIMAL_fail-double-equal> a sht:ValidationFailure ;
    mf:name "1decimalMininclusiveDECIMAL_fail-double-equal" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MinInclusive.K39> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:decimal MININCLUSIVE 4.5 } / { <s1> <p1> 4.5e0 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1decimalMininclusiveDECIMAL.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_DBL4_5e0.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1floatMininclusiveINTEGERLead_fail-float-low> a sht:ValidationFailure ;
    mf:name "1floatMininclusiveINTEGERLead_fail-float-low" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MinInclusive.J49> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:float MININCLUSIVE 05 } / { <s1> <p1> '4.4'^^<http://www.w3.org/2001/XMLSchema#float> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1floatMininclusiveINTEGERLead.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_FLT4_4.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1floatMininclusiveINTEGERLead_pass-float-high> a sht:ValidationTest ;
    mf:name "1floatMininclusiveINTEGERLead_pass-float-high" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MinInclusive.N49> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:float MININCLUSIVE 05 } / { <s1> <p1> '5.6'^^<http://www.w3.org/2001/XMLSchema#float> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1floatMininclusiveINTEGERLead.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_FLT5_6.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1floatMininclusiveDECIMAL_pass-float-equal> a sht:ValidationTest ;
    mf:name "1floatMininclusiveDECIMAL_pass-float-equal" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MinInclusive.K50> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:float MININCLUSIVE 4.5 } / { <s1> <p1> '4.5'^^<http://www.w3.org/2001/XMLSchema#float> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1floatMininclusiveDECIMAL.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_FLT4_5.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1floatMininclusiveDECIMAL_pass-float-equalLeadTrail> a sht:ValidationTest ;
    mf:name "1floatMininclusiveDECIMAL_pass-float-equalLeadTrail" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MinInclusive.M50> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:float MININCLUSIVE 4.5 } / { <s1> <p1> '04.50'^^<http://www.w3.org/2001/XMLSchema#float> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1floatMininclusiveDECIMAL.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_FLT04_50.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1floatMininclusiveDECIMALLeadTrail_fail-float-low> a sht:ValidationFailure ;
    mf:name "1floatMininclusiveDECIMALLeadTrail_fail-float-low" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MinInclusive.J51> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:float MININCLUSIVE 04.50 } / { <s1> <p1> '4.4'^^<http://www.w3.org/2001/XMLSchema#float> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1floatMininclusiveDECIMALLeadTrail.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_FLT4_4.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1floatMininclusiveDECIMALLeadTrail_pass-float-equal> a sht:ValidationTest ;
    mf:name "1floatMininclusiveDECIMALLeadTrail_pass-float-equal" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MinInclusive.K51> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:float MININCLUSIVE 04.50 } / { <s1> <p1> '4.5'^^<http://www.w3.org/2001/XMLSchema#float> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1floatMininclusiveDECIMALLeadTrail.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_FLT4_5.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1floatMininclusiveDECIMALLeadTrail_pass-float-equalLeadTrail> a sht:ValidationTest ;
    mf:name "1floatMininclusiveDECIMALLeadTrail_pass-float-equalLeadTrail" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MinInclusive.M51> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:float MININCLUSIVE 04.50 } / { <s1> <p1> '04.50'^^<http://www.w3.org/2001/XMLSchema#float> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1floatMininclusiveDECIMALLeadTrail.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_FLT04_50.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1floatMininclusiveDECIMALLeadTrail_pass-float-high> a sht:ValidationTest ;
    mf:name "1floatMininclusiveDECIMALLeadTrail_pass-float-high" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MinInclusive.N51> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:float MININCLUSIVE 04.50 } / { <s1> <p1> '5.6'^^<http://www.w3.org/2001/XMLSchema#float> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1floatMininclusiveDECIMALLeadTrail.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_FLT5_6.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1floatMininclusiveDECIMALintLeadTrail_fail-float-low> a sht:ValidationFailure ;
    mf:name "1floatMininclusiveDECIMALintLeadTrail_fail-float-low" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MinInclusive.J53> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:float MININCLUSIVE 05.00 } / { <s1> <p1> '4.4'^^<http://www.w3.org/2001/XMLSchema#float> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1floatMininclusiveDECIMALintLeadTrail.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_FLT4_4.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1floatMininclusiveDECIMALintLeadTrail_pass-float-high> a sht:ValidationTest ;
    mf:name "1floatMininclusiveDECIMALintLeadTrail_pass-float-high" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MinInclusive.N53> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:float MININCLUSIVE 05.00 } / { <s1> <p1> '5.6'^^<http://www.w3.org/2001/XMLSchema#float> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1floatMininclusiveDECIMALintLeadTrail.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_FLT5_6.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1floatMininclusiveDOUBLE_pass-float-equal> a sht:ValidationTest ;
    mf:name "1floatMininclusiveDOUBLE_pass-float-equal" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MinInclusive.K54> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:float MININCLUSIVE 4.5e0 } / { <s1> <p1> '4.5'^^<http://www.w3.org/2001/XMLSchema#float> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1floatMininclusiveDOUBLE.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_FLT4_5.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1floatMininclusiveDOUBLE_pass-float-equalLeadTrail> a sht:ValidationTest ;
    mf:name "1floatMininclusiveDOUBLE_pass-float-equalLeadTrail" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MinInclusive.M54> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:float MININCLUSIVE 4.5e0 } / { <s1> <p1> '04.50'^^<http://www.w3.org/2001/XMLSchema#float> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1floatMininclusiveDOUBLE.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_FLT04_50.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1floatMininclusiveDOUBLELeadTrail_fail-float-low> a sht:ValidationFailure ;
    mf:name "1floatMininclusiveDOUBLELeadTrail_fail-float-low" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MinInclusive.J55> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:float MININCLUSIVE 04.50e0 } / { <s1> <p1> '4.4'^^<http://www.w3.org/2001/XMLSchema#float> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1floatMininclusiveDOUBLELeadTrail.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_FLT4_4.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1floatMininclusiveDOUBLELeadTrail_pass-float-equal> a sht:ValidationTest ;
    mf:name "1floatMininclusiveDOUBLELeadTrail_pass-float-equal" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MinInclusive.K55> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:float MININCLUSIVE 04.50e0 } / { <s1> <p1> '4.5'^^<http://www.w3.org/2001/XMLSchema#float> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1floatMininclusiveDOUBLELeadTrail.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_FLT4_5.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1floatMininclusiveDOUBLELeadTrail_pass-float-equalLeadTrail> a sht:ValidationTest ;
    mf:name "1floatMininclusiveDOUBLELeadTrail_pass-float-equalLeadTrail" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MinInclusive.M55> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:float MININCLUSIVE 04.50e0 } / { <s1> <p1> '04.50'^^<http://www.w3.org/2001/XMLSchema#float> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1floatMininclusiveDOUBLELeadTrail.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_FLT04_50.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1floatMininclusiveDOUBLELeadTrail_pass-float-high> a sht:ValidationTest ;
    mf:name "1floatMininclusiveDOUBLELeadTrail_pass-float-high" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MinInclusive.N55> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:float MININCLUSIVE 04.50e0 } / { <s1> <p1> '5.6'^^<http://www.w3.org/2001/XMLSchema#float> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1floatMininclusiveDOUBLELeadTrail.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_FLT5_6.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1floatMininclusiveDOUBLEintLeadTrail_fail-float-low> a sht:ValidationFailure ;
    mf:name "1floatMininclusiveDOUBLEintLeadTrail_fail-float-low" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MinInclusive.J57> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:float MININCLUSIVE 05.00e0 } / { <s1> <p1> '4.4'^^<http://www.w3.org/2001/XMLSchema#float> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1floatMininclusiveDOUBLEintLeadTrail.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_FLT4_4.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1floatMininclusiveDOUBLEintLeadTrail_pass-float-high> a sht:ValidationTest ;
    mf:name "1floatMininclusiveDOUBLEintLeadTrail_pass-float-high" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MinInclusive.N57> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:float MININCLUSIVE 05.00e0 } / { <s1> <p1> '5.6'^^<http://www.w3.org/2001/XMLSchema#float> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1floatMininclusiveDOUBLEintLeadTrail.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_FLT5_6.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1doubleMininclusiveINTEGERLead_fail-double-low> a sht:ValidationFailure ;
    mf:name "1doubleMininclusiveINTEGERLead_fail-double-low" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MinInclusive.J70> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:double MININCLUSIVE 05 } / { <s1> <p1> 4.4e0 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1doubleMininclusiveINTEGERLead.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_DBL4_4e0.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1doubleMininclusiveINTEGERLead_pass-double-high> a sht:ValidationTest ;
    mf:name "1doubleMininclusiveINTEGERLead_pass-double-high" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MinInclusive.N70> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:double MININCLUSIVE 05 } / { <s1> <p1> 5.6e0 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1doubleMininclusiveINTEGERLead.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_DBL5_6e0.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1doubleMininclusiveDECIMAL_pass-double-equal> a sht:ValidationTest ;
    mf:name "1doubleMininclusiveDECIMAL_pass-double-equal" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MinInclusive.K71> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:double MININCLUSIVE 4.5 } / { <s1> <p1> 4.5e0 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1doubleMininclusiveDECIMAL.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_DBL4_5e0.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1doubleMininclusiveDECIMAL_pass-double-equalLeadTrail> a sht:ValidationTest ;
    mf:name "1doubleMininclusiveDECIMAL_pass-double-equalLeadTrail" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MinInclusive.M71> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:double MININCLUSIVE 4.5 } / { <s1> <p1> 04.50e0 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1doubleMininclusiveDECIMAL.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_DBL04_50e0.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1doubleMininclusiveDECIMALLeadTrail_fail-double-low> a sht:ValidationFailure ;
    mf:name "1doubleMininclusiveDECIMALLeadTrail_fail-double-low" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MinInclusive.J72> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:double MININCLUSIVE 04.50 } / { <s1> <p1> 4.4e0 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1doubleMininclusiveDECIMALLeadTrail.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_DBL4_4e0.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1doubleMininclusiveDECIMALLeadTrail_pass-double-equal> a sht:ValidationTest ;
    mf:name "1doubleMininclusiveDECIMALLeadTrail_pass-double-equal" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MinInclusive.K72> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:double MININCLUSIVE 04.50 } / { <s1> <p1> 4.5e0 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1doubleMininclusiveDECIMALLeadTrail.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_DBL4_5e0.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1doubleMininclusiveDECIMALLeadTrail_pass-double-equalLeadTrail> a sht:ValidationTest ;
    mf:name "1doubleMininclusiveDECIMALLeadTrail_pass-double-equalLeadTrail" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MinInclusive.M72> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:double MININCLUSIVE 04.50 } / { <s1> <p1> 04.50e0 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1doubleMininclusiveDECIMALLeadTrail.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_DBL04_50e0.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1doubleMininclusiveDECIMALLeadTrail_pass-double-high> a sht:ValidationTest ;
    mf:name "1doubleMininclusiveDECIMALLeadTrail_pass-double-high" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MinInclusive.N72> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:double MININCLUSIVE 04.50 } / { <s1> <p1> 5.6e0 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1doubleMininclusiveDECIMALLeadTrail.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_DBL5_6e0.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1doubleMininclusiveDECIMALintLeadTrail_fail-double-low> a sht:ValidationFailure ;
    mf:name "1doubleMininclusiveDECIMALintLeadTrail_fail-double-low" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MinInclusive.J74> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:double MININCLUSIVE 05.00 } / { <s1> <p1> 4.4e0 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1doubleMininclusiveDECIMALintLeadTrail.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_DBL4_4e0.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1doubleMininclusiveDECIMALintLeadTrail_pass-double-high> a sht:ValidationTest ;
    mf:name "1doubleMininclusiveDECIMALintLeadTrail_pass-double-high" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MinInclusive.N74> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:double MININCLUSIVE 05.00 } / { <s1> <p1> 5.6e0 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1doubleMininclusiveDECIMALintLeadTrail.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_DBL5_6e0.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1doubleMininclusiveDOUBLE_pass-double-equal> a sht:ValidationTest ;
    mf:name "1doubleMininclusiveDOUBLE_pass-double-equal" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MinInclusive.K75> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:double MININCLUSIVE 4.5e0 } / { <s1> <p1> 4.5e0 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1doubleMininclusiveDOUBLE.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_DBL4_5e0.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1doubleMininclusiveDOUBLE_pass-double-equalLeadTrail> a sht:ValidationTest ;
    mf:name "1doubleMininclusiveDOUBLE_pass-double-equalLeadTrail" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MinInclusive.M75> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:double MININCLUSIVE 4.5e0 } / { <s1> <p1> 04.50e0 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1doubleMininclusiveDOUBLE.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_DBL04_50e0.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1doubleMininclusiveDOUBLELeadTrail_fail-double-low> a sht:ValidationFailure ;
    mf:name "1doubleMininclusiveDOUBLELeadTrail_fail-double-low" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MinInclusive.J76> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:double MININCLUSIVE 04.50e0 } / { <s1> <p1> 4.4e0 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1doubleMininclusiveDOUBLELeadTrail.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_DBL4_4e0.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1doubleMininclusiveDOUBLELeadTrail_pass-double-equal> a sht:ValidationTest ;
    mf:name "1doubleMininclusiveDOUBLELeadTrail_pass-double-equal" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MinInclusive.K76> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:double MININCLUSIVE 04.50e0 } / { <s1> <p1> 4.5e0 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1doubleMininclusiveDOUBLELeadTrail.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_DBL4_5e0.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1doubleMininclusiveDOUBLELeadTrail_pass-double-equalLeadTrail> a sht:ValidationTest ;
    mf:name "1doubleMininclusiveDOUBLELeadTrail_pass-double-equalLeadTrail" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MinInclusive.M76> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:double MININCLUSIVE 04.50e0 } / { <s1> <p1> 04.50e0 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1doubleMininclusiveDOUBLELeadTrail.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_DBL04_50e0.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1doubleMininclusiveDOUBLELeadTrail_pass-double-high> a sht:ValidationTest ;
    mf:name "1doubleMininclusiveDOUBLELeadTrail_pass-double-high" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MinInclusive.N76> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:double MININCLUSIVE 04.50e0 } / { <s1> <p1> 5.6e0 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1doubleMininclusiveDOUBLELeadTrail.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_DBL5_6e0.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1doubleMininclusiveDOUBLEintLeadTrail_fail-double-low> a sht:ValidationFailure ;
    mf:name "1doubleMininclusiveDOUBLEintLeadTrail_fail-double-low" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MinInclusive.J78> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:double MININCLUSIVE 05.00e0 } / { <s1> <p1> 4.4e0 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1doubleMininclusiveDOUBLEintLeadTrail.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_DBL4_4e0.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1doubleMininclusiveDOUBLEintLeadTrail_pass-double-high> a sht:ValidationTest ;
    mf:name "1doubleMininclusiveDOUBLEintLeadTrail_pass-double-high" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MinInclusive.N78> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:double MININCLUSIVE 05.00e0 } / { <s1> <p1> 5.6e0 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1doubleMininclusiveDOUBLEintLeadTrail.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_DBL5_6e0.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1integerMinexclusiveINTEGER_fail-integer-low> a sht:ValidationFailure ;
    mf:name "1integerMinexclusiveINTEGER_fail-integer-low" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MinExclusive.J6> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:integer MINEXCLUSIVE 5 } / { <s1> <p1> 4 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1integerMinexclusiveINTEGER.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_INT4.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1integerMinexclusiveINTEGER_fail-integer-equal> a sht:ValidationFailure ;
    mf:name "1integerMinexclusiveINTEGER_fail-integer-equal" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MinExclusive.K6> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:integer MINEXCLUSIVE 5 } / { <s1> <p1> 5 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1integerMinexclusiveINTEGER.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_INT5.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1integerMinexclusiveINTEGER_pass-integer-high> a sht:ValidationTest ;
    mf:name "1integerMinexclusiveINTEGER_pass-integer-high" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MinExclusive.N6> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:integer MINEXCLUSIVE 5 } / { <s1> <p1> 6 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1integerMinexclusiveINTEGER.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_INT6.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1integerMinexclusiveDECIMALint_fail-integer-low> a sht:ValidationFailure ;
    mf:name "1integerMinexclusiveDECIMALint_fail-integer-low" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MinExclusive.J10> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:integer MINEXCLUSIVE 5.0 } / { <s1> <p1> 4 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1integerMinexclusiveDECIMALint.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_INT4.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1integerMinexclusiveDECIMALint_fail-integer-equal> a sht:ValidationFailure ;
    mf:name "1integerMinexclusiveDECIMALint_fail-integer-equal" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MinExclusive.K10> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:integer MINEXCLUSIVE 5.0 } / { <s1> <p1> 5 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1integerMinexclusiveDECIMALint.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_INT5.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1integerMinexclusiveDECIMALint_pass-integer-high> a sht:ValidationTest ;
    mf:name "1integerMinexclusiveDECIMALint_pass-integer-high" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MinExclusive.N10> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:integer MINEXCLUSIVE 5.0 } / { <s1> <p1> 6 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1integerMinexclusiveDECIMALint.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_INT6.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1integerMinexclusiveDOUBLEint_fail-integer-low> a sht:ValidationFailure ;
    mf:name "1integerMinexclusiveDOUBLEint_fail-integer-low" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MinExclusive.J14> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:integer MINEXCLUSIVE 5.0e0 } / { <s1> <p1> 4 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1integerMinexclusiveDOUBLEint.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_INT4.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1integerMinexclusiveDOUBLEint_fail-integer-equal> a sht:ValidationFailure ;
    mf:name "1integerMinexclusiveDOUBLEint_fail-integer-equal" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MinExclusive.K14> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:integer MINEXCLUSIVE 5.0e0 } / { <s1> <p1> 5 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1integerMinexclusiveDOUBLEint.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_INT5.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1integerMinexclusiveDOUBLEint_pass-integer-high> a sht:ValidationTest ;
    mf:name "1integerMinexclusiveDOUBLEint_pass-integer-high" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MinExclusive.N14> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:integer MINEXCLUSIVE 5.0e0 } / { <s1> <p1> 6 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1integerMinexclusiveDOUBLEint.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_INT6.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1decimalMinexclusiveINTEGER_fail-decimal-low> a sht:ValidationFailure ;
    mf:name "1decimalMinexclusiveINTEGER_fail-decimal-low" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MinExclusive.J27> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:decimal MINEXCLUSIVE 5 } / { <s1> <p1> 4.4 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1decimalMinexclusiveINTEGER.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_DEC4_4.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1decimalMinexclusiveINTEGER_pass-decimal-high> a sht:ValidationTest ;
    mf:name "1decimalMinexclusiveINTEGER_pass-decimal-high" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MinExclusive.N27> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:decimal MINEXCLUSIVE 5 } / { <s1> <p1> 5.6 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1decimalMinexclusiveINTEGER.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_DEC5_6.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1decimalMinexclusiveDECIMAL_fail-decimal-low> a sht:ValidationFailure ;
    mf:name "1decimalMinexclusiveDECIMAL_fail-decimal-low" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MinExclusive.J29> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:decimal MINEXCLUSIVE 4.5 } / { <s1> <p1> 4.4 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1decimalMinexclusiveDECIMAL.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_DEC4_4.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1decimalMinexclusiveDECIMAL_fail-decimal-equal> a sht:ValidationFailure ;
    mf:name "1decimalMinexclusiveDECIMAL_fail-decimal-equal" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MinExclusive.K29> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:decimal MINEXCLUSIVE 4.5 } / { <s1> <p1> 4.5 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1decimalMinexclusiveDECIMAL.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_DEC4_5.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1decimalMinexclusiveDECIMAL_pass-decimal-high> a sht:ValidationTest ;
    mf:name "1decimalMinexclusiveDECIMAL_pass-decimal-high" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MinExclusive.N29> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:decimal MINEXCLUSIVE 4.5 } / { <s1> <p1> 5.6 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1decimalMinexclusiveDECIMAL.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_DEC5_6.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1decimalMinexclusiveDOUBLE_fail-decimal-low> a sht:ValidationFailure ;
    mf:name "1decimalMinexclusiveDOUBLE_fail-decimal-low" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MinExclusive.J33> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:decimal MINEXCLUSIVE 4.5e0 } / { <s1> <p1> 4.4 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1decimalMinexclusiveDOUBLE.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_DEC4_4.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1decimalMinexclusiveDOUBLE_fail-decimal-equal> a sht:ValidationFailure ;
    mf:name "1decimalMinexclusiveDOUBLE_fail-decimal-equal" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MinExclusive.K33> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:decimal MINEXCLUSIVE 4.5e0 } / { <s1> <p1> 4.5 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1decimalMinexclusiveDOUBLE.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_DEC4_5.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1decimalMinexclusiveDOUBLE_pass-decimal-high> a sht:ValidationTest ;
    mf:name "1decimalMinexclusiveDOUBLE_pass-decimal-high" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MinExclusive.N33> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:decimal MINEXCLUSIVE 4.5e0 } / { <s1> <p1> 5.6 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1decimalMinexclusiveDOUBLE.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_DEC5_6.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1decimalMinexclusiveDECIMAL_fail-float-equal> a sht:ValidationFailure ;
    mf:name "1decimalMinexclusiveDECIMAL_fail-float-equal" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MinExclusive.K37> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:decimal MINEXCLUSIVE 4.5 } / { <s1> <p1> '4.5'^^<http://www.w3.org/2001/XMLSchema#float> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1decimalMinexclusiveDECIMAL.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_FLT4_5.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1decimalMinexclusiveDECIMAL_fail-double-equal> a sht:ValidationFailure ;
    mf:name "1decimalMinexclusiveDECIMAL_fail-double-equal" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MinExclusive.K39> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:decimal MINEXCLUSIVE 4.5 } / { <s1> <p1> 4.5e0 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1decimalMinexclusiveDECIMAL.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_DBL4_5e0.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1floatMinexclusiveINTEGER_fail-float-low> a sht:ValidationFailure ;
    mf:name "1floatMinexclusiveINTEGER_fail-float-low" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MinExclusive.J48> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:float MINEXCLUSIVE 5 } / { <s1> <p1> '4.4'^^<http://www.w3.org/2001/XMLSchema#float> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1floatMinexclusiveINTEGER.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_FLT4_4.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1floatMinexclusiveINTEGER_pass-float-high> a sht:ValidationTest ;
    mf:name "1floatMinexclusiveINTEGER_pass-float-high" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MinExclusive.N48> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:float MINEXCLUSIVE 5 } / { <s1> <p1> '5.6'^^<http://www.w3.org/2001/XMLSchema#float> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1floatMinexclusiveINTEGER.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_FLT5_6.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1floatMinexclusiveDECIMAL_fail-float-low> a sht:ValidationFailure ;
    mf:name "1floatMinexclusiveDECIMAL_fail-float-low" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MinExclusive.J50> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:float MINEXCLUSIVE 4.5 } / { <s1> <p1> '4.4'^^<http://www.w3.org/2001/XMLSchema#float> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1floatMinexclusiveDECIMAL.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_FLT4_4.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1floatMinexclusiveDECIMAL_fail-float-equal> a sht:ValidationFailure ;
    mf:name "1floatMinexclusiveDECIMAL_fail-float-equal" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MinExclusive.K50> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:float MINEXCLUSIVE 4.5 } / { <s1> <p1> '4.5'^^<http://www.w3.org/2001/XMLSchema#float> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1floatMinexclusiveDECIMAL.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_FLT4_5.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1floatMinexclusiveDECIMAL_pass-float-high> a sht:ValidationTest ;
    mf:name "1floatMinexclusiveDECIMAL_pass-float-high" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MinExclusive.N50> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:float MINEXCLUSIVE 4.5 } / { <s1> <p1> '5.6'^^<http://www.w3.org/2001/XMLSchema#float> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1floatMinexclusiveDECIMAL.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_FLT5_6.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1floatMinexclusiveDOUBLE_fail-float-low> a sht:ValidationFailure ;
    mf:name "1floatMinexclusiveDOUBLE_fail-float-low" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MinExclusive.J54> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:float MINEXCLUSIVE 4.5e0 } / { <s1> <p1> '4.4'^^<http://www.w3.org/2001/XMLSchema#float> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1floatMinexclusiveDOUBLE.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_FLT4_4.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1floatMinexclusiveDOUBLE_fail-float-equal> a sht:ValidationFailure ;
    mf:name "1floatMinexclusiveDOUBLE_fail-float-equal" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MinExclusive.K54> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:float MINEXCLUSIVE 4.5e0 } / { <s1> <p1> '4.5'^^<http://www.w3.org/2001/XMLSchema#float> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1floatMinexclusiveDOUBLE.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_FLT4_5.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1floatMinexclusiveDOUBLE_pass-float-high> a sht:ValidationTest ;
    mf:name "1floatMinexclusiveDOUBLE_pass-float-high" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MinExclusive.N54> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:float MINEXCLUSIVE 4.5e0 } / { <s1> <p1> '5.6'^^<http://www.w3.org/2001/XMLSchema#float> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1floatMinexclusiveDOUBLE.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_FLT5_6.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1doubleMinexclusiveINTEGER_fail-double-low> a sht:ValidationFailure ;
    mf:name "1doubleMinexclusiveINTEGER_fail-double-low" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MinExclusive.J69> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:double MINEXCLUSIVE 5 } / { <s1> <p1> 4.4e0 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1doubleMinexclusiveINTEGER.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_DBL4_4e0.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1doubleMinexclusiveINTEGER_pass-double-high> a sht:ValidationTest ;
    mf:name "1doubleMinexclusiveINTEGER_pass-double-high" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MinExclusive.N69> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:double MINEXCLUSIVE 5 } / { <s1> <p1> 5.6e0 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1doubleMinexclusiveINTEGER.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_DBL5_6e0.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1doubleMinexclusiveDECIMAL_fail-double-low> a sht:ValidationFailure ;
    mf:name "1doubleMinexclusiveDECIMAL_fail-double-low" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MinExclusive.J71> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:double MINEXCLUSIVE 4.5 } / { <s1> <p1> 4.4e0 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1doubleMinexclusiveDECIMAL.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_DBL4_4e0.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1doubleMinexclusiveDECIMAL_fail-double-equal> a sht:ValidationFailure ;
    mf:name "1doubleMinexclusiveDECIMAL_fail-double-equal" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MinExclusive.K71> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:double MINEXCLUSIVE 4.5 } / { <s1> <p1> 4.5e0 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1doubleMinexclusiveDECIMAL.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_DBL4_5e0.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1doubleMinexclusiveDECIMAL_pass-double-high> a sht:ValidationTest ;
    mf:name "1doubleMinexclusiveDECIMAL_pass-double-high" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MinExclusive.N71> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:double MINEXCLUSIVE 4.5 } / { <s1> <p1> 5.6e0 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1doubleMinexclusiveDECIMAL.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_DBL5_6e0.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1doubleMinexclusiveDOUBLE_fail-double-low> a sht:ValidationFailure ;
    mf:name "1doubleMinexclusiveDOUBLE_fail-double-low" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MinExclusive.J75> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:double MINEXCLUSIVE 4.5e0 } / { <s1> <p1> 4.4e0 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1doubleMinexclusiveDOUBLE.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_DBL4_4e0.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1doubleMinexclusiveDOUBLE_fail-double-equal> a sht:ValidationFailure ;
    mf:name "1doubleMinexclusiveDOUBLE_fail-double-equal" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MinExclusive.K75> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:double MINEXCLUSIVE 4.5e0 } / { <s1> <p1> 4.5e0 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1doubleMinexclusiveDOUBLE.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_DBL4_5e0.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1doubleMinexclusiveDOUBLE_pass-double-high> a sht:ValidationTest ;
    mf:name "1doubleMinexclusiveDOUBLE_pass-double-high" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MinExclusive.N75> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:double MINEXCLUSIVE 4.5e0 } / { <s1> <p1> 5.6e0 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1doubleMinexclusiveDOUBLE.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_DBL5_6e0.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1doubleMinexclusiveDECIMAL_fail-float-equal> a sht:ValidationFailure ;
    mf:name "1doubleMinexclusiveDECIMAL_fail-float-equal" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MinExclusive.K79> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:double MINEXCLUSIVE 4.5 } / { <s1> <p1> '4.5'^^<http://www.w3.org/2001/XMLSchema#float> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1doubleMinexclusiveDECIMAL.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_FLT4_5.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1integerMaxinclusiveINTEGER_pass-integer-low> a sht:ValidationTest ;
    mf:name "1integerMaxinclusiveINTEGER_pass-integer-low" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MaxInclusive.J6> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:integer MAXINCLUSIVE 5 } / { <s1> <p1> 4 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1integerMaxinclusiveINTEGER.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_INT4.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1integerMaxinclusiveINTEGER_pass-integer-equal> a sht:ValidationTest ;
    mf:name "1integerMaxinclusiveINTEGER_pass-integer-equal" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MaxInclusive.K6> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:integer MAXINCLUSIVE 5 } / { <s1> <p1> 5 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1integerMaxinclusiveINTEGER.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_INT5.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1integerMaxinclusiveINTEGER_fail-integer-high> a sht:ValidationFailure ;
    mf:name "1integerMaxinclusiveINTEGER_fail-integer-high" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MaxInclusive.N6> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:integer MAXINCLUSIVE 5 } / { <s1> <p1> 6 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1integerMaxinclusiveINTEGER.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_INT6.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1integerMaxinclusiveDECIMALint_pass-integer-low> a sht:ValidationTest ;
    mf:name "1integerMaxinclusiveDECIMALint_pass-integer-low" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MaxInclusive.J10> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:integer MAXINCLUSIVE 5.0 } / { <s1> <p1> 4 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1integerMaxinclusiveDECIMALint.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_INT4.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1integerMaxinclusiveDECIMALint_pass-integer-equal> a sht:ValidationTest ;
    mf:name "1integerMaxinclusiveDECIMALint_pass-integer-equal" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MaxInclusive.K10> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:integer MAXINCLUSIVE 5.0 } / { <s1> <p1> 5 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1integerMaxinclusiveDECIMALint.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_INT5.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1integerMaxinclusiveDECIMALint_fail-integer-high> a sht:ValidationFailure ;
    mf:name "1integerMaxinclusiveDECIMALint_fail-integer-high" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MaxInclusive.N10> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:integer MAXINCLUSIVE 5.0 } / { <s1> <p1> 6 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1integerMaxinclusiveDECIMALint.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_INT6.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1integerMaxinclusiveDOUBLEint_pass-integer-low> a sht:ValidationTest ;
    mf:name "1integerMaxinclusiveDOUBLEint_pass-integer-low" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MaxInclusive.J14> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:integer MAXINCLUSIVE 5.0e0 } / { <s1> <p1> 4 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1integerMaxinclusiveDOUBLEint.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_INT4.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1integerMaxinclusiveDOUBLEint_pass-integer-equal> a sht:ValidationTest ;
    mf:name "1integerMaxinclusiveDOUBLEint_pass-integer-equal" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MaxInclusive.K14> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:integer MAXINCLUSIVE 5.0e0 } / { <s1> <p1> 5 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1integerMaxinclusiveDOUBLEint.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_INT5.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1integerMaxinclusiveDOUBLEint_fail-integer-high> a sht:ValidationFailure ;
    mf:name "1integerMaxinclusiveDOUBLEint_fail-integer-high" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MaxInclusive.N14> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:integer MAXINCLUSIVE 5.0e0 } / { <s1> <p1> 6 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1integerMaxinclusiveDOUBLEint.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_INT6.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1decimalMaxinclusiveINTEGER_pass-decimal-low> a sht:ValidationTest ;
    mf:name "1decimalMaxinclusiveINTEGER_pass-decimal-low" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MaxInclusive.J27> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:decimal MAXINCLUSIVE 5 } / { <s1> <p1> 4.4 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1decimalMaxinclusiveINTEGER.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_DEC4_4.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1decimalMaxinclusiveINTEGER_fail-decimal-high> a sht:ValidationFailure ;
    mf:name "1decimalMaxinclusiveINTEGER_fail-decimal-high" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MaxInclusive.N27> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:decimal MAXINCLUSIVE 5 } / { <s1> <p1> 5.6 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1decimalMaxinclusiveINTEGER.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_DEC5_6.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1decimalMaxinclusiveDECIMAL_pass-decimal-low> a sht:ValidationTest ;
    mf:name "1decimalMaxinclusiveDECIMAL_pass-decimal-low" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MaxInclusive.J29> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:decimal MAXINCLUSIVE 5.5 } / { <s1> <p1> 4.4 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1decimalMaxinclusiveDECIMAL.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_DEC4_4.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1decimalMaxinclusiveDECIMAL_pass-decimal-equal> a sht:ValidationTest ;
    mf:name "1decimalMaxinclusiveDECIMAL_pass-decimal-equal" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MaxInclusive.K29> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:decimal MAXINCLUSIVE 5.5 } / { <s1> <p1> 5.5 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1decimalMaxinclusiveDECIMAL.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_DEC5_5.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1decimalMaxinclusiveDECIMAL_fail-decimal-high> a sht:ValidationFailure ;
    mf:name "1decimalMaxinclusiveDECIMAL_fail-decimal-high" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MaxInclusive.N29> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:decimal MAXINCLUSIVE 5.5 } / { <s1> <p1> 5.6 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1decimalMaxinclusiveDECIMAL.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_DEC5_6.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1decimalMaxinclusiveDOUBLE_pass-decimal-low> a sht:ValidationTest ;
    mf:name "1decimalMaxinclusiveDOUBLE_pass-decimal-low" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MaxInclusive.J33> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:decimal MAXINCLUSIVE 5.5e0 } / { <s1> <p1> 4.4 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1decimalMaxinclusiveDOUBLE.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_DEC4_4.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1decimalMaxinclusiveDOUBLE_pass-decimal-equal> a sht:ValidationTest ;
    mf:name "1decimalMaxinclusiveDOUBLE_pass-decimal-equal" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MaxInclusive.K33> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:decimal MAXINCLUSIVE 5.5e0 } / { <s1> <p1> 5.5 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1decimalMaxinclusiveDOUBLE.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_DEC5_5.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1decimalMaxinclusiveDOUBLE_fail-decimal-high> a sht:ValidationFailure ;
    mf:name "1decimalMaxinclusiveDOUBLE_fail-decimal-high" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MaxInclusive.N33> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:decimal MAXINCLUSIVE 5.5e0 } / { <s1> <p1> 5.6 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1decimalMaxinclusiveDOUBLE.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_DEC5_6.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1decimalMaxinclusiveDECIMAL_fail-float-equal> a sht:ValidationFailure ;
    mf:name "1decimalMaxinclusiveDECIMAL_fail-float-equal" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MaxInclusive.K37> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:decimal MAXINCLUSIVE 5.5 } / { <s1> <p1> '5.5'^^<http://www.w3.org/2001/XMLSchema#float> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1decimalMaxinclusiveDECIMAL.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_FLT5_5.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1decimalMaxinclusiveDECIMAL_fail-double-equal> a sht:ValidationFailure ;
    mf:name "1decimalMaxinclusiveDECIMAL_fail-double-equal" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MaxInclusive.K39> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:decimal MAXINCLUSIVE 5.5 } / { <s1> <p1> 5.5e0 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1decimalMaxinclusiveDECIMAL.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_DBL5_5e0.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1floatMaxinclusiveINTEGER_pass-float-low> a sht:ValidationTest ;
    mf:name "1floatMaxinclusiveINTEGER_pass-float-low" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MaxInclusive.J48> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:float MAXINCLUSIVE 5 } / { <s1> <p1> '4.4'^^<http://www.w3.org/2001/XMLSchema#float> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1floatMaxinclusiveINTEGER.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_FLT4_4.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1floatMaxinclusiveINTEGER_fail-float-high> a sht:ValidationFailure ;
    mf:name "1floatMaxinclusiveINTEGER_fail-float-high" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MaxInclusive.N48> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:float MAXINCLUSIVE 5 } / { <s1> <p1> '5.6'^^<http://www.w3.org/2001/XMLSchema#float> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1floatMaxinclusiveINTEGER.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_FLT5_6.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1floatMaxinclusiveDECIMAL_pass-float-low> a sht:ValidationTest ;
    mf:name "1floatMaxinclusiveDECIMAL_pass-float-low" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MaxInclusive.J50> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:float MAXINCLUSIVE 5.5 } / { <s1> <p1> '4.4'^^<http://www.w3.org/2001/XMLSchema#float> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1floatMaxinclusiveDECIMAL.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_FLT4_4.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1floatMaxinclusiveDECIMAL_pass-float-equal> a sht:ValidationTest ;
    mf:name "1floatMaxinclusiveDECIMAL_pass-float-equal" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MaxInclusive.K50> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:float MAXINCLUSIVE 5.5 } / { <s1> <p1> '5.5'^^<http://www.w3.org/2001/XMLSchema#float> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1floatMaxinclusiveDECIMAL.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_FLT5_5.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1floatMaxinclusiveDECIMAL_fail-float-high> a sht:ValidationFailure ;
    mf:name "1floatMaxinclusiveDECIMAL_fail-float-high" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MaxInclusive.N50> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:float MAXINCLUSIVE 5.5 } / { <s1> <p1> '5.6'^^<http://www.w3.org/2001/XMLSchema#float> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1floatMaxinclusiveDECIMAL.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_FLT5_6.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1floatMaxinclusiveDOUBLE_pass-float-low> a sht:ValidationTest ;
    mf:name "1floatMaxinclusiveDOUBLE_pass-float-low" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MaxInclusive.J54> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:float MAXINCLUSIVE 5.5e0 } / { <s1> <p1> '4.4'^^<http://www.w3.org/2001/XMLSchema#float> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1floatMaxinclusiveDOUBLE.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_FLT4_4.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1floatMaxinclusiveDOUBLE_pass-float-equal> a sht:ValidationTest ;
    mf:name "1floatMaxinclusiveDOUBLE_pass-float-equal" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MaxInclusive.K54> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:float MAXINCLUSIVE 5.5e0 } / { <s1> <p1> '5.5'^^<http://www.w3.org/2001/XMLSchema#float> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1floatMaxinclusiveDOUBLE.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_FLT5_5.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1floatMaxinclusiveDOUBLE_fail-float-high> a sht:ValidationFailure ;
    mf:name "1floatMaxinclusiveDOUBLE_fail-float-high" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MaxInclusive.N54> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:float MAXINCLUSIVE 5.5e0 } / { <s1> <p1> '5.6'^^<http://www.w3.org/2001/XMLSchema#float> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1floatMaxinclusiveDOUBLE.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_FLT5_6.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1doubleMaxinclusiveINTEGER_pass-double-low> a sht:ValidationTest ;
    mf:name "1doubleMaxinclusiveINTEGER_pass-double-low" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MaxInclusive.J69> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:double MAXINCLUSIVE 5 } / { <s1> <p1> 4.4e0 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1doubleMaxinclusiveINTEGER.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_DBL4_4e0.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1doubleMaxinclusiveINTEGER_fail-double-high> a sht:ValidationFailure ;
    mf:name "1doubleMaxinclusiveINTEGER_fail-double-high" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MaxInclusive.N69> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:double MAXINCLUSIVE 5 } / { <s1> <p1> 5.6e0 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1doubleMaxinclusiveINTEGER.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_DBL5_6e0.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1doubleMaxinclusiveDECIMAL_pass-double-low> a sht:ValidationTest ;
    mf:name "1doubleMaxinclusiveDECIMAL_pass-double-low" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MaxInclusive.J71> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:double MAXINCLUSIVE 5.5 } / { <s1> <p1> 4.4e0 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1doubleMaxinclusiveDECIMAL.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_DBL4_4e0.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1doubleMaxinclusiveDECIMAL_pass-double-equal> a sht:ValidationTest ;
    mf:name "1doubleMaxinclusiveDECIMAL_pass-double-equal" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MaxInclusive.K71> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:double MAXINCLUSIVE 5.5 } / { <s1> <p1> 5.5e0 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1doubleMaxinclusiveDECIMAL.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_DBL5_5e0.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1doubleMaxinclusiveDECIMAL_fail-double-high> a sht:ValidationFailure ;
    mf:name "1doubleMaxinclusiveDECIMAL_fail-double-high" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MaxInclusive.N71> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:double MAXINCLUSIVE 5.5 } / { <s1> <p1> 5.6e0 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1doubleMaxinclusiveDECIMAL.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_DBL5_6e0.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1doubleMaxinclusiveDOUBLE_pass-double-low> a sht:ValidationTest ;
    mf:name "1doubleMaxinclusiveDOUBLE_pass-double-low" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MaxInclusive.J75> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:double MAXINCLUSIVE 5.5e0 } / { <s1> <p1> 4.4e0 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1doubleMaxinclusiveDOUBLE.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_DBL4_4e0.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1doubleMaxinclusiveDOUBLE_pass-double-equal> a sht:ValidationTest ;
    mf:name "1doubleMaxinclusiveDOUBLE_pass-double-equal" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MaxInclusive.K75> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:double MAXINCLUSIVE 5.5e0 } / { <s1> <p1> 5.5e0 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1doubleMaxinclusiveDOUBLE.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_DBL5_5e0.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1doubleMaxinclusiveDOUBLE_fail-double-high> a sht:ValidationFailure ;
    mf:name "1doubleMaxinclusiveDOUBLE_fail-double-high" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MaxInclusive.N75> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:double MAXINCLUSIVE 5.5e0 } / { <s1> <p1> 5.6e0 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1doubleMaxinclusiveDOUBLE.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_DBL5_6e0.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1doubleMaxinclusiveDECIMAL_fail-float-equal> a sht:ValidationFailure ;
    mf:name "1doubleMaxinclusiveDECIMAL_fail-float-equal" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MaxInclusive.K79> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:double MAXINCLUSIVE 5.5 } / { <s1> <p1> '5.5'^^<http://www.w3.org/2001/XMLSchema#float> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1doubleMaxinclusiveDECIMAL.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_FLT5_5.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1integerMaxexclusiveINTEGER_pass-integer-low> a sht:ValidationTest ;
    mf:name "1integerMaxexclusiveINTEGER_pass-integer-low" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MaxExclusive.J6> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:integer MAXEXCLUSIVE 5 } / { <s1> <p1> 4 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1integerMaxexclusiveINTEGER.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_INT4.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1integerMaxexclusiveINTEGER_fail-integer-equal> a sht:ValidationFailure ;
    mf:name "1integerMaxexclusiveINTEGER_fail-integer-equal" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MaxExclusive.K6> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:integer MAXEXCLUSIVE 5 } / { <s1> <p1> 5 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1integerMaxexclusiveINTEGER.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_INT5.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1integerMaxexclusiveINTEGER_fail-integer-high> a sht:ValidationFailure ;
    mf:name "1integerMaxexclusiveINTEGER_fail-integer-high" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MaxExclusive.N6> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:integer MAXEXCLUSIVE 5 } / { <s1> <p1> 6 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1integerMaxexclusiveINTEGER.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_INT6.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1integerMaxexclusiveDECIMALint_pass-integer-low> a sht:ValidationTest ;
    mf:name "1integerMaxexclusiveDECIMALint_pass-integer-low" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MaxExclusive.J10> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:integer MAXEXCLUSIVE 5.0 } / { <s1> <p1> 4 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1integerMaxexclusiveDECIMALint.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_INT4.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1integerMaxexclusiveDECIMALint_fail-integer-equal> a sht:ValidationFailure ;
    mf:name "1integerMaxexclusiveDECIMALint_fail-integer-equal" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MaxExclusive.K10> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:integer MAXEXCLUSIVE 5.0 } / { <s1> <p1> 5 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1integerMaxexclusiveDECIMALint.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_INT5.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1integerMaxexclusiveDECIMALint_fail-integer-high> a sht:ValidationFailure ;
    mf:name "1integerMaxexclusiveDECIMALint_fail-integer-high" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MaxExclusive.N10> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:integer MAXEXCLUSIVE 5.0 } / { <s1> <p1> 6 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1integerMaxexclusiveDECIMALint.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_INT6.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1integerMaxexclusiveDOUBLEint_pass-integer-low> a sht:ValidationTest ;
    mf:name "1integerMaxexclusiveDOUBLEint_pass-integer-low" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MaxExclusive.J14> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:integer MAXEXCLUSIVE 5.0e0 } / { <s1> <p1> 4 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1integerMaxexclusiveDOUBLEint.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_INT4.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1integerMaxexclusiveDOUBLEint_fail-integer-equal> a sht:ValidationFailure ;
    mf:name "1integerMaxexclusiveDOUBLEint_fail-integer-equal" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MaxExclusive.K14> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:integer MAXEXCLUSIVE 5.0e0 } / { <s1> <p1> 5 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1integerMaxexclusiveDOUBLEint.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_INT5.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1integerMaxexclusiveDOUBLEint_fail-integer-high> a sht:ValidationFailure ;
    mf:name "1integerMaxexclusiveDOUBLEint_fail-integer-high" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MaxExclusive.N14> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:integer MAXEXCLUSIVE 5.0e0 } / { <s1> <p1> 6 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1integerMaxexclusiveDOUBLEint.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_INT6.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1decimalMaxexclusiveINTEGER_pass-decimal-low> a sht:ValidationTest ;
    mf:name "1decimalMaxexclusiveINTEGER_pass-decimal-low" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MaxExclusive.J27> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:decimal MAXEXCLUSIVE 5 } / { <s1> <p1> 4.4 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1decimalMaxexclusiveINTEGER.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_DEC4_4.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1decimalMaxexclusiveINTEGER_fail-decimal-high> a sht:ValidationFailure ;
    mf:name "1decimalMaxexclusiveINTEGER_fail-decimal-high" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MaxExclusive.N27> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:decimal MAXEXCLUSIVE 5 } / { <s1> <p1> 5.6 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1decimalMaxexclusiveINTEGER.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_DEC5_6.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1decimalMaxexclusiveDECIMAL_pass-decimal-low> a sht:ValidationTest ;
    mf:name "1decimalMaxexclusiveDECIMAL_pass-decimal-low" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MaxExclusive.J29> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:decimal MAXEXCLUSIVE 5.5 } / { <s1> <p1> 4.4 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1decimalMaxexclusiveDECIMAL.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_DEC4_4.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1decimalMaxexclusiveDECIMAL_fail-decimal-equal> a sht:ValidationFailure ;
    mf:name "1decimalMaxexclusiveDECIMAL_fail-decimal-equal" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MaxExclusive.K29> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:decimal MAXEXCLUSIVE 5.5 } / { <s1> <p1> 5.5 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1decimalMaxexclusiveDECIMAL.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_DEC5_5.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1decimalMaxexclusiveDECIMAL_fail-decimal-high> a sht:ValidationFailure ;
    mf:name "1decimalMaxexclusiveDECIMAL_fail-decimal-high" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MaxExclusive.N29> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:decimal MAXEXCLUSIVE 5.5 } / { <s1> <p1> 5.6 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1decimalMaxexclusiveDECIMAL.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_DEC5_6.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1decimalMaxexclusiveDOUBLE_pass-decimal-low> a sht:ValidationTest ;
    mf:name "1decimalMaxexclusiveDOUBLE_pass-decimal-low" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MaxExclusive.J33> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:decimal MAXEXCLUSIVE 5.5e0 } / { <s1> <p1> 4.4 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1decimalMaxexclusiveDOUBLE.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_DEC4_4.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1decimalMaxexclusiveDOUBLE_fail-decimal-equal> a sht:ValidationFailure ;
    mf:name "1decimalMaxexclusiveDOUBLE_fail-decimal-equal" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MaxExclusive.K33> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:decimal MAXEXCLUSIVE 5.5e0 } / { <s1> <p1> 5.5 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1decimalMaxexclusiveDOUBLE.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_DEC5_5.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1decimalMaxexclusiveDOUBLE_fail-decimal-high> a sht:ValidationFailure ;
    mf:name "1decimalMaxexclusiveDOUBLE_fail-decimal-high" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MaxExclusive.N33> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:decimal MAXEXCLUSIVE 5.5e0 } / { <s1> <p1> 5.6 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1decimalMaxexclusiveDOUBLE.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_DEC5_6.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1decimalMaxexclusiveDECIMAL_fail-float-equal> a sht:ValidationFailure ;
    mf:name "1decimalMaxexclusiveDECIMAL_fail-float-equal" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MaxExclusive.K37> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:decimal MAXEXCLUSIVE 5.5 } / { <s1> <p1> '5.5'^^<http://www.w3.org/2001/XMLSchema#float> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1decimalMaxexclusiveDECIMAL.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_FLT5_5.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1decimalMaxexclusiveDECIMAL_fail-double-equal> a sht:ValidationFailure ;
    mf:name "1decimalMaxexclusiveDECIMAL_fail-double-equal" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MaxExclusive.K39> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:decimal MAXEXCLUSIVE 5.5 } / { <s1> <p1> 5.5e0 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1decimalMaxexclusiveDECIMAL.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_DBL5_5e0.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1decimalMaxexclusivexsd-byte_fail-byte-equal> a sht:ValidationFailure ;
    mf:name "1decimalMaxexclusivexsd-byte_fail-byte-equal" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MaxExclusive.K43> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:decimal MAXEXCLUSIVE 5 } / { <s1> <p1> '5'^^<http://www.w3.org/2001/XMLSchema#byte> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1decimalMaxexclusivexsd-byte.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_BYT5.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1floatMaxexclusiveINTEGER_pass-float-low> a sht:ValidationTest ;
    mf:name "1floatMaxexclusiveINTEGER_pass-float-low" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MaxExclusive.J48> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:float MAXEXCLUSIVE 5 } / { <s1> <p1> '4.4'^^<http://www.w3.org/2001/XMLSchema#float> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1floatMaxexclusiveINTEGER.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_FLT4_4.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1floatMaxexclusiveINTEGER_fail-float-high> a sht:ValidationFailure ;
    mf:name "1floatMaxexclusiveINTEGER_fail-float-high" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MaxExclusive.N48> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:float MAXEXCLUSIVE 5 } / { <s1> <p1> '5.6'^^<http://www.w3.org/2001/XMLSchema#float> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1floatMaxexclusiveINTEGER.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_FLT5_6.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1floatMaxexclusiveDECIMAL_pass-float-low> a sht:ValidationTest ;
    mf:name "1floatMaxexclusiveDECIMAL_pass-float-low" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MaxExclusive.J50> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:float MAXEXCLUSIVE 5.5 } / { <s1> <p1> '4.4'^^<http://www.w3.org/2001/XMLSchema#float> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1floatMaxexclusiveDECIMAL.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_FLT4_4.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1floatMaxexclusiveDECIMAL_fail-float-high> a sht:ValidationFailure ;
    mf:name "1floatMaxexclusiveDECIMAL_fail-float-high" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MaxExclusive.N50> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:float MAXEXCLUSIVE 5.5 } / { <s1> <p1> '5.6'^^<http://www.w3.org/2001/XMLSchema#float> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1floatMaxexclusiveDECIMAL.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_FLT5_6.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1floatMaxexclusiveDOUBLE_pass-float-low> a sht:ValidationTest ;
    mf:name "1floatMaxexclusiveDOUBLE_pass-float-low" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MaxExclusive.J54> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:float MAXEXCLUSIVE 5.5e0 } / { <s1> <p1> '4.4'^^<http://www.w3.org/2001/XMLSchema#float> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1floatMaxexclusiveDOUBLE.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_FLT4_4.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1floatMaxexclusiveDOUBLE_fail-float-high> a sht:ValidationFailure ;
    mf:name "1floatMaxexclusiveDOUBLE_fail-float-high" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MaxExclusive.N54> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:float MAXEXCLUSIVE 5.5e0 } / { <s1> <p1> '5.6'^^<http://www.w3.org/2001/XMLSchema#float> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1floatMaxexclusiveDOUBLE.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_FLT5_6.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1doubleMaxexclusiveINTEGER_pass-double-low> a sht:ValidationTest ;
    mf:name "1doubleMaxexclusiveINTEGER_pass-double-low" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MaxExclusive.J69> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:double MAXEXCLUSIVE 5 } / { <s1> <p1> 4.4e0 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1doubleMaxexclusiveINTEGER.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_DBL4_4e0.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1doubleMaxexclusiveINTEGER_fail-double-equal> a sht:ValidationFailure ;
    mf:name "1doubleMaxexclusiveINTEGER_fail-double-equal" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MaxExclusive.K69> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:double MAXEXCLUSIVE 5 } / { <s1> <p1> 5.5e0 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1doubleMaxexclusiveINTEGER.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_DBL5_5e0.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1doubleMaxexclusiveINTEGER_fail-double-high> a sht:ValidationFailure ;
    mf:name "1doubleMaxexclusiveINTEGER_fail-double-high" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MaxExclusive.N69> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:double MAXEXCLUSIVE 5 } / { <s1> <p1> 5.6e0 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1doubleMaxexclusiveINTEGER.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_DBL5_6e0.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1doubleMaxexclusiveINTEGERLead_fail-double-equal> a sht:ValidationFailure ;
    mf:name "1doubleMaxexclusiveINTEGERLead_fail-double-equal" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MaxExclusive.K70> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:double MAXEXCLUSIVE 05 } / { <s1> <p1> 5.5e0 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1doubleMaxexclusiveINTEGERLead.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_DBL5_5e0.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1doubleMaxexclusiveDECIMAL_pass-double-low> a sht:ValidationTest ;
    mf:name "1doubleMaxexclusiveDECIMAL_pass-double-low" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MaxExclusive.J71> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:double MAXEXCLUSIVE 5.5 } / { <s1> <p1> 4.4e0 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1doubleMaxexclusiveDECIMAL.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_DBL4_4e0.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1doubleMaxexclusiveDECIMAL_fail-double-equal> a sht:ValidationFailure ;
    mf:name "1doubleMaxexclusiveDECIMAL_fail-double-equal" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MaxExclusive.K71> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:double MAXEXCLUSIVE 5.5 } / { <s1> <p1> 5.5e0 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1doubleMaxexclusiveDECIMAL.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_DBL5_5e0.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1doubleMaxexclusiveDECIMAL_fail-double-high> a sht:ValidationFailure ;
    mf:name "1doubleMaxexclusiveDECIMAL_fail-double-high" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MaxExclusive.N71> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:double MAXEXCLUSIVE 5.5 } / { <s1> <p1> 5.6e0 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1doubleMaxexclusiveDECIMAL.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_DBL5_6e0.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1doubleMaxexclusiveDECIMALLeadTrail_fail-double-equal> a sht:ValidationFailure ;
    mf:name "1doubleMaxexclusiveDECIMALLeadTrail_fail-double-equal" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MaxExclusive.K72> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:double MAXEXCLUSIVE 05.50 } / { <s1> <p1> 5.5e0 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1doubleMaxexclusiveDECIMALLeadTrail.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_DBL5_5e0.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1doubleMaxexclusiveDECIMALint_fail-double-equal> a sht:ValidationFailure ;
    mf:name "1doubleMaxexclusiveDECIMALint_fail-double-equal" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MaxExclusive.K73> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:double MAXEXCLUSIVE 5.0 } / { <s1> <p1> 5.5e0 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1doubleMaxexclusiveDECIMALint.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_DBL5_5e0.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1doubleMaxexclusiveDECIMALintLeadTrail_fail-double-equal> a sht:ValidationFailure ;
    mf:name "1doubleMaxexclusiveDECIMALintLeadTrail_fail-double-equal" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MaxExclusive.K74> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:double MAXEXCLUSIVE 05.00 } / { <s1> <p1> 5.5e0 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1doubleMaxexclusiveDECIMALintLeadTrail.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_DBL5_5e0.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1doubleMaxexclusiveDOUBLE_pass-double-low> a sht:ValidationTest ;
    mf:name "1doubleMaxexclusiveDOUBLE_pass-double-low" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MaxExclusive.J75> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:double MAXEXCLUSIVE 5.5e0 } / { <s1> <p1> 4.4e0 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1doubleMaxexclusiveDOUBLE.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_DBL4_4e0.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1doubleMaxexclusiveDOUBLE_fail-double-equal> a sht:ValidationFailure ;
    mf:name "1doubleMaxexclusiveDOUBLE_fail-double-equal" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MaxExclusive.K75> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:double MAXEXCLUSIVE 5.5e0 } / { <s1> <p1> 5.5e0 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1doubleMaxexclusiveDOUBLE.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_DBL5_5e0.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1doubleMaxexclusiveDOUBLE_fail-double-high> a sht:ValidationFailure ;
    mf:name "1doubleMaxexclusiveDOUBLE_fail-double-high" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MaxExclusive.N75> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:double MAXEXCLUSIVE 5.5e0 } / { <s1> <p1> 5.6e0 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1doubleMaxexclusiveDOUBLE.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_DBL5_6e0.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1doubleMaxexclusiveDOUBLELeadTrail_fail-double-equal> a sht:ValidationFailure ;
    mf:name "1doubleMaxexclusiveDOUBLELeadTrail_fail-double-equal" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MaxExclusive.K76> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:double MAXEXCLUSIVE 05.50e0 } / { <s1> <p1> 5.5e0 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1doubleMaxexclusiveDOUBLELeadTrail.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_DBL5_5e0.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1doubleMaxexclusiveDOUBLEint_fail-double-equal> a sht:ValidationFailure ;
    mf:name "1doubleMaxexclusiveDOUBLEint_fail-double-equal" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MaxExclusive.K77> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:double MAXEXCLUSIVE 5.0e0 } / { <s1> <p1> 5.5e0 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1doubleMaxexclusiveDOUBLEint.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_DBL5_5e0.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1doubleMaxexclusiveDOUBLEintLeadTrail_fail-double-equal> a sht:ValidationFailure ;
    mf:name "1doubleMaxexclusiveDOUBLEintLeadTrail_fail-double-equal" ;
    prov:wasDerivedFrom <facet-tests-data.xlsx#MaxExclusive.K78> ;
    sht:trait sht:ComparatorFacet ;
    rdfs:comment "<S1> { <p1> xsd:double MAXEXCLUSIVE 05.00e0 } / { <s1> <p1> 5.5e0 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1doubleMaxexclusiveDOUBLEintLeadTrail.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_DBL5_5e0.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

####     } generated
###   } comparators
###   lengths {
<#1Length_fail-lit-short> a sht:ValidationFailure ;
    mf:name "1Length_fail-lit-short" ;
    sht:trait sht:LengthFacet ;
    rdfs:comment "<S1> { <p1> LENGTH 5 } on { <s1> <p1> \"abcd\" }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1Length.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Labcd.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1Length_pass-lit-equal> a sht:ValidationTest ;
    mf:name "1Length_pass-lit-equal" ;
    sht:trait sht:LengthFacet ;
    rdfs:comment "<S1> { <p1> LENGTH 5 } on { <s1> <p1> \"abcde\" }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1Length.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Labcde.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1Length_fail-lit-long> a sht:ValidationFailure ;
    mf:name "1Length_fail-lit-long" ;
    sht:trait sht:LengthFacet ;
    rdfs:comment "<S1> { <p1> LENGTH 5 } on { <s1> <p1> \"abcdef\" }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1Length.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Labcdef.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1literalLength_fail-lit-short> a sht:ValidationFailure ;
    mf:name "1literalLength_fail-lit-short" ;
    sht:trait sht:LengthFacet ;
    rdfs:comment "<S1> { <p1> LITERAL LENGTH 5 } on { <s1> <p1> \"abcd\" }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1literalLength.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Labcd.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1literalLength_pass-lit-equal> a sht:ValidationTest ;
    mf:name "1literalLength_pass-lit-equal" ;
    sht:trait sht:LengthFacet ;
    rdfs:comment "<S1> { <p1> LITERAL LENGTH 5 } on { <s1> <p1> \"abcde\" }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1literalLength.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Labcde.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1literalLength_fail-lit-long> a sht:ValidationFailure ;
    mf:name "1literalLength_fail-lit-long" ;
    sht:trait sht:LengthFacet ;
    rdfs:comment "<S1> { <p1> LITERAL LENGTH 5 } on { <s1> <p1> \"abcdef\" }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1literalLength.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Labcdef.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1literalLength_fail-iri-equal> a sht:ValidationFailure ;
    mf:name "1literalLength_fail-iri-equal" ;
    sht:trait sht:LengthFacet ;
    rdfs:comment "<S1> { <p1> LITERAL LENGTH 19 } on { <s1> <p1> <o1> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1literalLength19.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Io1.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1literalLength_fail-bnode-equal> a sht:ValidationFailure ;
    mf:name "1literalLength_fail-bnode-equal" ;
    sht:trait sht:LexicalBNode , sht:LengthFacet ;
    rdfs:comment "<S1> { <p1> LITERAL LENGTH 5 } on { <s1> <p1> _:abcde }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1literalLength.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Babcde.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .


<#1iriLength_fail-iri-short> a sht:ValidationFailure ;
    mf:name "1iriLength_fail-iri-short" ;
    sht:trait sht:LengthFacet ;
    rdfs:comment "<S1> { <p1> IRI LENGTH 19 } on { <s1> <p1> <o> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1iriLength.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Io.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1iriLength_pass-iri-equal> a sht:ValidationTest ;
    mf:name "1iriLength_pass-iri-equal" ;
    sht:trait sht:LengthFacet ;
    rdfs:comment "<S1> { <p1> IRI LENGTH 19 } on { <s1> <p1> <o1> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1iriLength.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Io1.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1iriLength_fail-iri-long> a sht:ValidationFailure ;
    mf:name "1iriLength_fail-iri-long" ;
    sht:trait sht:LengthFacet ;
    rdfs:comment "<S1> { <p1> IRI LENGTH 19 } on { <s1> <p1> <o1a> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1iriLength.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Io1a.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1iriLength_fail-lit-equal> a sht:ValidationFailure ;
    mf:name "1iriLength_fail-lit-equal" ;
    sht:trait sht:LengthFacet ;
    rdfs:comment "<S1> { <p1> IRI LENGTH 19 } on { <s1> <p1> \"abcde\" }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1iriLength.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Labcde.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1iriLength_fail-bnode-equal> a sht:ValidationFailure ;
    mf:name "1iriLength_fail-bnode-equal" ;
    sht:trait sht:LexicalBNode , sht:LengthFacet ;
    rdfs:comment "<S1> { <p1> IRI LENGTH 19 } on { <s1> <p1> _:abcde }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1iriLength.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Babcde.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .


<#1iriRefLength1_fail-iri-short> a sht:ValidationFailure ;
    mf:name "1iriRefLength1_fail-iri-short" ;
    sht:trait sht:LengthFacet ;
    rdfs:comment "<S1> { <p1> IRI @<S2> LENGTH 19 } <S2> { <p2> . } on { <s1> <p1> <o> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1iriRefLength1.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Io.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1iriRefLength1_pass-iri-equal> a sht:ValidationTest ;
    mf:name "1iriRefLength1_pass-iri-equal" ;
    sht:trait sht:LengthFacet ;
    rdfs:comment "<S1> { <p1> IRI @<S2> LENGTH 19 } <S2> { <p2> . } on { <s1> <p1> <o1> . <o1> <p2>  <o2> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1iriRefLength1.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Io1-Io1_Ip2_Io2.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1iriRefLength1_fail-iri-long> a sht:ValidationFailure ;
    mf:name "1iriRefLength1_fail-iri-long" ;
    sht:trait sht:LengthFacet ;
    rdfs:comment "<S1> { <p1> IRI @<S2> LENGTH 19 } <S2> { <p2> . } on { <s1> <p1> <o1a> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1iriRefLength1.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Io1a.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1iriRefLength1_fail-lit-equal> a sht:ValidationFailure ;
    mf:name "1iriRefLength1_fail-lit-equal" ;
    sht:trait sht:LengthFacet ;
    rdfs:comment "<S1> { <p1> IRI @<S2> LENGTH 19 } <S2> { <p2> . } on { <s1> <p1> \"abcde\" }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1iriRefLength1.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Labcde.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1iriRefLength1_fail-bnode-equal> a sht:ValidationFailure ;
    mf:name "1iriRefLength1_fail-bnode-equal" ;
    sht:trait sht:LengthFacet ;
    rdfs:comment "<S1> { <p1> IRI @<S2> LENGTH 19 } <S2> { <p2> . } on { <s1> <p1> _:abcde }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1iriRefLength1.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Babcde.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .


<#1bnodeLength_fail-bnode-short> a sht:ValidationFailure ;
    mf:name "1bnodeLength_fail-bnode-short" ;
    sht:trait sht:LexicalBNode , sht:LengthFacet ;
    rdfs:comment "<S1> { <p1> BNODE LENGTH 5 } on { <s1> <p1> _:abcd }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1bnodeLength.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Babcd.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1bnodeLength_pass-bnode-equal> a sht:ValidationTest ;
    mf:name "1bnodeLength_pass-bnode-equal" ;
    sht:trait sht:LexicalBNode , sht:LengthFacet ;
    rdfs:comment "<S1> { <p1> BNODE LENGTH 5 } on { <s1> <p1> _:abcde }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1bnodeLength.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Babcde.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1bnodeLength_fail-bnode-long> a sht:ValidationFailure ;
    mf:name "1bnodeLength_fail-bnode-long" ;
    sht:trait sht:LexicalBNode , sht:LengthFacet ;
    rdfs:comment "<S1> { <p1> BNODE LENGTH 5 } on { <s1> <p1> _:abcdef }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1bnodeLength.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Babcdef.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1bnodeLength_fail-lit-equal> a sht:ValidationFailure ;
    mf:name "1bnodeLength_fail-lit-equal" ;
    sht:trait sht:LengthFacet ;
    rdfs:comment "<S1> { <p1> BNODE LENGTH 19 } on { <s1> <p1> \"abcde\" }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1bnodeLength.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Labcde.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1bnodeLength_fail-iri-equal> a sht:ValidationFailure ;
    mf:name "1bnodeLength_fail-iri-equal" ;
    sht:trait sht:LengthFacet ;
    rdfs:comment "<S1> { <p1> BNODE LENGTH 19 } on { <s1> <p1> <o1> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1bnodeLength.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Io1.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .


<#1nonliteralLength_fail-iri-short> a sht:ValidationFailure ;
    mf:name "1nonliteralLength_fail-iri-short" ;
    sht:trait sht:LengthFacet ;
    rdfs:comment "<S1> { <p1> NONLITERAL LENGTH 19 } on { <s1> <p1> <o> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1nonliteralLength.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Io.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1nonliteralLength_pass-iri-equal> a sht:ValidationTest ;
    mf:name "1nonliteralLength_pass-iri-equal" ;
    sht:trait sht:LengthFacet ;
    rdfs:comment "<S1> { <p1> NONLITERAL LENGTH 19 } on { <s1> <p1> <o1> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1nonliteralLength.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Io1.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1nonliteralLength_fail-iri-long> a sht:ValidationFailure ;
    mf:name "1nonliteralLength_fail-iri-long" ;
    sht:trait sht:LengthFacet ;
    rdfs:comment "<S1> { <p1> NONLITERAL LENGTH 19 } on { <s1> <p1> <o1a> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1nonliteralLength.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Io1a.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1nonliteralLength_fail-lit-equal> a sht:ValidationFailure ;
    mf:name "1nonliteralLength_fail-lit-equal" ;
    sht:trait sht:LengthFacet ;
    rdfs:comment "<S1> { <p1> NONLITERAL LENGTH 19 } on { <s1> <p1> \"abcde\" }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1nonliteralLength.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Labcde.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1nonliteralLength_fail-bnode-short> a sht:ValidationFailure ;
    mf:name "1nonliteralLength_fail-bnode-short" ;
    sht:trait sht:LexicalBNode , sht:LengthFacet ;
    rdfs:comment "<S1> { <p1> NONLITERAL LENGTH 19 } on { <s1> <p1> _:abcd }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1nonliteralLength.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Babcd.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1nonliteralLength_pass-bnode-equal> a sht:ValidationTest ;
    mf:name "1nonliteralLength_pass-bnode-equal" ;
    sht:trait sht:LexicalBNode , sht:LengthFacet ;
    rdfs:comment "<S1> { <p1> NONLITERAL LENGTH 19 } on { <s1> <p1> _:abcdefghijklmnopqrs }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1nonliteralLength.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Babcdefghijklmnopqrs.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1nonliteralLength_fail-bnode-long> a sht:ValidationFailure ;
    mf:name "1nonliteralLength_fail-bnode-long" ;
    sht:trait sht:LexicalBNode , sht:LengthFacet ;
    rdfs:comment "<S1> { <p1> NONLITERAL LENGTH 19 } on { <s1> <p1> _:abcdefghijklmnopqrst }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1nonliteralLength.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Babcdefghijklmnopqrst.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .



<#1literalMinlength_fail-lit-short> a sht:ValidationFailure ;
    mf:name "1literalMinlength_fail-lit-short" ;
    sht:trait sht:LengthFacet ;
    rdfs:comment "<S1> { <p1> LITERAL MINLENGTH 5 } on { <s1> <p1> \"abcd\" }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1literalMinlength.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Labcd.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1literalMinlength_pass-lit-equal> a sht:ValidationTest ;
    mf:name "1literalMinlength_pass-lit-equal" ;
    sht:trait sht:LengthFacet ;
    rdfs:comment "<S1> { <p1> LITERAL MINLENGTH 5 } on { <s1> <p1> \"abcde\" }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1literalMinlength.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Labcde.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1literalMinlength_pass-lit-long> a sht:ValidationTest ;
    mf:name "1literalMinlength_pass-lit-long" ;
    sht:trait sht:LengthFacet ;
    rdfs:comment "<S1> { <p1> LITERAL MINLENGTH 5 } on { <s1> <p1> \"abcdef\" }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1literalMinlength.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Labcdef.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .


<#1iriMinlength_fail-iri-short> a sht:ValidationFailure ;
    mf:name "1iriMinlength_fail-iri-short" ;
    sht:trait sht:LengthFacet ;
    rdfs:comment "<S1> { <p1> IRI MINLENGTH 19 } on { <s1> <p1> <o> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1iriMinlength.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Io.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1iriMinlength_pass-iri-equal> a sht:ValidationTest ;
    mf:name "1iriMinlength_pass-iri-equal" ;
    sht:trait sht:LengthFacet ;
    rdfs:comment "<S1> { <p1> IRI MINLENGTH 19 } on { <s1> <p1> <o1> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1iriMinlength.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Io1.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1iriMinlength_pass-iri-long> a sht:ValidationTest ;
    mf:name "1iriMinlength_pass-iri-long" ;
    sht:trait sht:LengthFacet ;
    rdfs:comment "<S1> { <p1> IRI MINLENGTH 19 } on { <s1> <p1> <o1a> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1iriMinlength.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Io1a.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .


<#1bnodeMinlength_fail-bnode-short> a sht:ValidationFailure ;
    mf:name "1bnodeMinlength_fail-bnode-short" ;
    sht:trait sht:LexicalBNode , sht:LengthFacet ;
    rdfs:comment "<S1> { <p1> BNODE MINLENGTH 5 } on { <s1> <p1> _:abcd }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1bnodeMinlength.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Babcd.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1bnodeMinlength_pass-bnode-equal> a sht:ValidationTest ;
    mf:name "1bnodeMinlength_pass-bnode-equal" ;
    sht:trait sht:LexicalBNode , sht:LengthFacet ;
    rdfs:comment "<S1> { <p1> BNODE MINLENGTH 5 } on { <s1> <p1> _:abcde }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1bnodeMinlength.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Babcde.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1bnodeMinlength_pass-bnode-long> a sht:ValidationTest ;
    mf:name "1bnodeMinlength_pass-bnode-long" ;
    sht:trait sht:LexicalBNode , sht:LengthFacet ;
    rdfs:comment "<S1> { <p1> BNODE MINLENGTH 5 } on { <s1> <p1> _:abcdef }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1bnodeMinlength.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Babcdef.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .


<#1nonliteralMinlength_fail-iri-short> a sht:ValidationFailure ;
    mf:name "1nonliteralMinlength_fail-iri-short" ;
    sht:trait sht:LengthFacet ;
    rdfs:comment "<S1> { <p1> NONLITERAL MINLENGTH 19 } on { <s1> <p1> <o> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1nonliteralMinlength.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Io.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1nonliteralMinlength_pass-iri-equal> a sht:ValidationTest ;
    mf:name "1nonliteralMinlength_pass-iri-equal" ;
    sht:trait sht:LengthFacet ;
    rdfs:comment "<S1> { <p1> NONLITERAL MINLENGTH 19 } on { <s1> <p1> <o1> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1nonliteralMinlength.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Io1.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1nonliteralMinlength_pass-iri-long> a sht:ValidationTest ;
    mf:name "1nonliteralMinlength_pass-iri-long" ;
    sht:trait sht:LengthFacet ;
    rdfs:comment "<S1> { <p1> NONLITERAL MINLENGTH 19 } on { <s1> <p1> <o1a> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1nonliteralMinlength.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Io1a.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1nonliteralMinlength_fail-bnode-short> a sht:ValidationFailure ;
    mf:name "1nonliteralMinlength_fail-bnode-short" ;
    sht:trait sht:LexicalBNode , sht:LengthFacet ;
    rdfs:comment "<S1> { <p1> NONLITERAL MINLENGTH 19 } on { <s1> <p1> _:abcd }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1nonliteralMinlength.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Babcd.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1nonliteralMinlength_pass-bnode-equal> a sht:ValidationTest ;
    mf:name "1nonliteralMinlength_pass-bnode-equal" ;
    sht:trait sht:LexicalBNode , sht:LengthFacet ;
    rdfs:comment "<S1> { <p1> NONLITERAL MINLENGTH 19 } on { <s1> <p1> _:abcdefghijklmnopqrs }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1nonliteralMinlength.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Babcdefghijklmnopqrs.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1nonliteralMinlength_pass-bnode-long> a sht:ValidationTest ;
    mf:name "1nonliteralMinlength_pass-bnode-long" ;
    sht:trait sht:LexicalBNode , sht:LengthFacet ;
    rdfs:comment "<S1> { <p1> NONLITERAL MINLENGTH 19 } on { <s1> <p1> _:abcdefghijklmnopqrst }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1nonliteralMinlength.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Babcdefghijklmnopqrs.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .



<#1literalMaxlength_pass-lit-short> a sht:ValidationTest ;
    mf:name "1literalMaxlength_pass-lit-short" ;
    sht:trait sht:LengthFacet ;
    rdfs:comment "<S1> { <p1> LITERAL MAXLENGTH 5 } on { <s1> <p1> \"abcd\" }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1literalMaxlength.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Labcd.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1literalMaxlength_pass-lit-equal> a sht:ValidationTest ;
    mf:name "1literalMaxlength_pass-lit-equal" ;
    sht:trait sht:LengthFacet ;
    rdfs:comment "<S1> { <p1> LITERAL MAXLENGTH 5 } on { <s1> <p1> \"abcde\" }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1literalMaxlength.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Labcde.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1literalMaxlength_fail-lit-long> a sht:ValidationFailure ;
    mf:name "1literalMaxlength_fail-lit-long" ;
    sht:trait sht:LengthFacet ;
    rdfs:comment "<S1> { <p1> LITERAL MAXLENGTH 5 } on { <s1> <p1> \"abcdef\" }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1literalMaxlength.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Labcdef.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .


<#1iriMaxlength_pass-iri-short> a sht:ValidationTest ;
    mf:name "1iriMaxlength_pass-iri-short" ;
    sht:trait sht:LengthFacet ;
    rdfs:comment "<S1> { <p1> IRI MAXLENGTH 19 } on { <s1> <p1> <o> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1iriMaxlength.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Io.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1iriMaxlength_pass-iri-equal> a sht:ValidationTest ;
    mf:name "1iriMaxlength_pass-iri-equal" ;
    sht:trait sht:LengthFacet ;
    rdfs:comment "<S1> { <p1> IRI MAXLENGTH 19 } on { <s1> <p1> <o1> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1iriMaxlength.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Io1.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1iriMaxlength_fail-iri-long> a sht:ValidationFailure ;
    mf:name "1iriMaxlength_fail-iri-long" ;
    sht:trait sht:LengthFacet ;
    rdfs:comment "<S1> { <p1> IRI MAXLENGTH 19 } on { <s1> <p1> <o1a> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1iriMaxlength.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Io1a.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .


<#1bnodeMaxlength_pass-bnode-short> a sht:ValidationTest ;
    mf:name "1bnodeMaxlength_pass-bnode-short" ;
    sht:trait sht:LexicalBNode , sht:LengthFacet ;
    rdfs:comment "<S1> { <p1> BNODE MAXLENGTH 5 } on { <s1> <p1> _:abcd }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1bnodeMaxlength.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Babcd.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1bnodeMaxlength_pass-bnode-equal> a sht:ValidationTest ;
    mf:name "1bnodeMaxlength_pass-bnode-equal" ;
    sht:trait sht:LexicalBNode , sht:LengthFacet ;
    rdfs:comment "<S1> { <p1> BNODE MAXLENGTH 5 } on { <s1> <p1> _:abcde }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1bnodeMaxlength.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Babcde.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1bnodeMaxlength_fail-bnode-long> a sht:ValidationFailure ;
    mf:name "1bnodeMaxlength_fail-bnode-long" ;
    sht:trait sht:LexicalBNode , sht:LengthFacet ;
    rdfs:comment "<S1> { <p1> BNODE MAXLENGTH 5 } on { <s1> <p1> _:abcdef }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1bnodeMaxlength.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Babcdef.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .


<#1nonliteralMaxlength_pass-iri-short> a sht:ValidationTest ;
    mf:name "1nonliteralMaxlength_pass-iri-short" ;
    sht:trait sht:LengthFacet ;
    rdfs:comment "<S1> { <p1> NONLITERAL MAXLENGTH 19 } on { <s1> <p1> <o> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1nonliteralMaxlength.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Io.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1nonliteralMaxlength_pass-iri-equal> a sht:ValidationTest ;
    mf:name "1nonliteralMaxlength_pass-iri-equal" ;
    sht:trait sht:LengthFacet ;
    rdfs:comment "<S1> { <p1> NONLITERAL MAXLENGTH 19 } on { <s1> <p1> <o1> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1nonliteralMaxlength.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Io1.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1nonliteralMaxlength_fail-iri-long> a sht:ValidationFailure ;
    mf:name "1nonliteralMaxlength_fail-iri-long" ;
    sht:trait sht:LengthFacet ;
    rdfs:comment "<S1> { <p1> NONLITERAL MAXLENGTH 19 } on { <s1> <p1> <o1a> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1nonliteralMaxlength.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Io1a.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1nonliteralMaxlength_pass-bnode-short> a sht:ValidationTest ;
    mf:name "1nonliteralMaxlength_pass-bnode-short" ;
    sht:trait sht:LexicalBNode , sht:LengthFacet ;
    rdfs:comment "<S1> { <p1> NONLITERAL MAXLENGTH 19 } on { <s1> <p1> _:abcd }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1nonliteralMaxlength.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Babcd.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1nonliteralMaxlength_pass-bnode-equal> a sht:ValidationTest ;
    mf:name "1nonliteralMaxlength_pass-bnode-equal" ;
    sht:trait sht:LexicalBNode , sht:LengthFacet ;
    rdfs:comment "<S1> { <p1> NONLITERAL MAXLENGTH 19 } on { <s1> <p1> _:abcdefghijklmnopqrs }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1nonliteralMaxlength.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Babcdefghijklmnopqrs.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1nonliteralMaxlength_fail-bnode-long> a sht:ValidationFailure ;
    mf:name "1nonliteralMaxlength_fail-bnode-long" ;
    sht:trait sht:LexicalBNode , sht:LengthFacet ;
    rdfs:comment "<S1> { <p1> NONLITERAL MAXLENGTH 5 } on { <s1> <p1> _:abcdefghijklmnopqrst }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1nonliteralMaxlength.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Babcdefghijklmnopqrst.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

###   } lengths
###   pattern {

<#1literalPattern_pass-lit-match> a sht:ValidationTest ;
    mf:name "1literalPattern_pass-lit-match" ;
    sht:trait sht:PaternFacet ;
    rdfs:comment "<S1> { <p1> LITERAL PATTERN \"bc\" } on { <s1> <p1> \"bc\" }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1literalPattern.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Lbclowercase.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1literalPattern_fail-lit-short> a sht:ValidationFailure ;
    mf:name "1literalPattern_fail-lit-short" ;
    sht:trait sht:PaternFacet ;
    rdfs:comment "<S1> { <p1> LITERAL PATTERN \"bc\" } on { <s1> <p1> \"a\" }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1literalPattern.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_La.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1literalPattern_fail-ab> a sht:ValidationFailure ;
    mf:name "1literalPattern_fail-ab" ;
    sht:trait sht:PaternFacet ;
    rdfs:comment "<S1> { <p1> LITERAL PATTERN \"bc\" } on { <s1> <p1> \"ab\" }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1literalPattern.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Lab.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1literalPattern_fail-cd> a sht:ValidationFailure ;
    mf:name "1literalPattern_fail-cd" ;
    sht:trait sht:PaternFacet ;
    rdfs:comment "<S1> { <p1> LITERAL PATTERN \"bc\" } on { <s1> <p1> \"cd\" }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1literalPattern.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Lcd.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1literalPatterni_pass-lit-match> a sht:ValidationTest ;
    mf:name "1literalPatterni_pass-lit-match" ;
    sht:trait sht:PaternFacet ;
    rdfs:comment "<S1> { <p1> LITERAL /bc/i } on { <s1> <p1> \"bc\" }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1literalPatterni.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Lbclowercase.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1literalPatterni_pass-lit-BC> a sht:ValidationTest ;
    mf:name "1literalPatterni_pass-lit-BC" ;
    sht:trait sht:PaternFacet ;
    rdfs:comment "<S1> { <p1> LITERAL /bc/i } on { <s1> <p1> \"BC\" }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1literalPatterni.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_LBC.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1literalPatterni_pass-lit-blowercaseC> a sht:ValidationTest ;
    mf:name "1literalPatterni_pass-lit-blowercaseC" ;
    sht:trait sht:PaternFacet ;
    rdfs:comment "<S1> { <p1> LITERAL /bc/i } on { <s1> <p1> \"bC\" }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1literalPatterni.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_LblowercaseC.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1literalPattern_pass-lit-into> a sht:ValidationTest ;
    mf:name "1literalPattern_pass-lit-into" ;
    sht:trait sht:PaternFacet ;
    rdfs:comment "<S1> { <p1> LITERAL PATTERN \"bc\" } on { <s1> <p1> \"abc\" }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1literalPattern.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Labc.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1literalPattern19_fail-iri-match> a sht:ValidationFailure ;
    mf:name "1literalPattern19_fail-iri-match" ;
    sht:trait sht:PaternFacet ;
    rdfs:comment "<S1> { <p1> LITERAL PATTERN \"http://a.example/o1\" } on { <s1> <p1> <o1> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1literalPattern19.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Io1.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1literalPattern_fail-bnode-match> a sht:ValidationFailure ;
    mf:name "1literalPattern_fail-bnode-match" ;
    sht:trait sht:PaternFacet ;
    rdfs:comment "<S1> { <p1> LITERAL PATTERN \"bc\" } on { <s1> <p1> _:ab }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1literalPattern.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Bab.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .


<#1literalStartPattern_pass-bc> a sht:ValidationTest ;
    mf:name "1literalStartPattern_pass-bc" ;
    sht:trait sht:PaternFacet ;
    rdfs:comment "<S1> { <p1> LITERAL PATTERN \"^bc\" } on { <s1> <p1> \"bc\" }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1literalStartPattern.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Lbclowercase.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1literalStartPattern_fail-CarrotbcDollar> a sht:ValidationFailure ;
    mf:name "1literalStartPattern_fail-CarrotbcDollar" ;
    sht:trait sht:PaternFacet ;
    rdfs:comment "<S1> { <p1> LITERAL PATTERN \"^bc\" } on { <s1> <p1> \"^bc$\" }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1literalStartPattern.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_LCarrotbcDollar.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1literalPatternEnd_pass-bc> a sht:ValidationTest ;
    mf:name "1literalPatternEnd_pass-bc" ;
    sht:trait sht:PaternFacet ;
    rdfs:comment "<S1> { <p1> LITERAL PATTERN \"bc$\" } on { <s1> <p1> \"bc\" }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1literalPatternEnd.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Lbclowercase.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1literalPatternEnd_pass-CarrotbcDollar> a sht:ValidationFailure ;
    mf:name "1literalPatternEnd_pass-CarrotbcDollar" ;
    sht:trait sht:PaternFacet ;
    rdfs:comment "<S1> { <p1> LITERAL PATTERN \"bc$\" } on { <s1> <p1> \"^bc$\" }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1literalPatternEnd.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_LCarrotbcDollar.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1literalPattern_pass-bcDollar> a sht:ValidationTest ;
    mf:name "1literalPattern_pass-bcDollar" ;
    sht:trait sht:PaternFacet ;
    rdfs:comment "<S1> { <p1> LITERAL PATTERN \"bc\" } on { <s1> <p1> \"bc$\" }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1literalPattern.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_LbcDollar.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1literalStarPatternEnd_pass-bc> a sht:ValidationTest ;
    mf:name "1literalStarPatternEnd_pass-bc" ;
    sht:trait sht:PaternFacet ;
    rdfs:comment "<S1> { <p1> LITERAL PATTERN \"^bc$\" } on { <s1> <p1> \"bc\" }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1literalStartPatternEnd.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Lbclowercase.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1literalPattern_pass-CarrotbcDollar> a sht:ValidationTest ;
    mf:name "1literalPattern_pass-CarrotbcDollar" ;
    sht:trait sht:PaternFacet ;
    rdfs:comment "<S1> { <p1> LITERAL PATTERN \"bc\" } on { <s1> <p1> \"^bc$\" }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1literalPattern.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_LCarrotbcDollar.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

 # translates to the implicitly anchored XML Schema:
 # <?xml version="1.0" encoding="UTF-8"?>
 #   <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
 #     <xs:element name="p1">
 #       <xs:simpleType>
 #         <xs:restriction base="xs:string">
 #           <xs:pattern value="&#x9;(v:[0-9]+( *, *)?){2,3}/\.&#xD;&#xA;|.*\\N\/A.*" />
 #         </xs:restriction>
 #       </xs:simpleType>
 #     </xs:element>
 #   </xs:schema>
 # with data:
 #   <?xml version="1.0" encoding="UTF-8"?>
 #   <p1>	v:0,  v:12v:3/.&#xD;&#xA;</p1>
 # Try at: <http://www.utilities-online.info/xsdvalidation>
<#1literalPattern_with_all_meta_pass> a sht:ValidationTest ;
    mf:name "1literalPattern_with_all_meta_pass" ;
    sht:trait sht:NumericEquivalence , sht:OutsideBMP ;
    rdfs:comment "<S> { <p1> /^\t(v:[0-9]+.../ } on { <s1> <p1> '\tv:0, ...' }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1literalPattern_with_all_meta.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_L_with_all_meta.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1literalPattern_with_all_meta_pass-NA> a sht:ValidationTest ;
    mf:name "1literalPattern_with_all_meta_pass-NA" ;
    sht:trait sht:NumericEquivalence , sht:OutsideBMP ;
    rdfs:comment "<S> { <p1> /^\t(v:[0-9]+.../ } on { <s1> <p1> 'abc\\N/Adef' }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1literalPattern_with_all_meta.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_LabcNAdef.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1literalPattern_with_all_controls_pass> a sht:ValidationTest ;
    mf:name "1literalPattern_with_all_controls_pass" ;
    sht:trait sht:NumericEquivalence , sht:OutsideBMP ;
    rdfs:comment "<S> { <p1> /^^@^A...^_$/ } on { <s1> <p1> '^@^A...^_' }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1literalPattern_with_all_controls.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_LSTRING_LITERAL1_with_all_controls.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1literalPattern_with_all_controls_fail> a sht:ValidationFailure ;
    mf:name "1literalPattern_with_all_controls_fail" ;
    sht:trait sht:NumericEquivalence , sht:OutsideBMP ;
    rdfs:comment "<S> { <p1> /^^@^A...^_$/ } on { <s1> <p1> '^@^A...^_999' }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1literalPattern_with_all_controls.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_LSTRING_LITERAL1_with_all_controls999.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1literalPattern_with_all_punctuation_pass> a sht:ValidationTest ;
    mf:name "1literalPattern_with_all_punctuation_pass" ;
    sht:trait sht:NumericEquivalence , sht:OutsideBMP ;
    rdfs:comment "<S> { <p1> /^ !\"#\\$%&'\\(\\)\\/:;<=>\\?@\\[\\]\\^_`\\{\\|\\}~$/ } on { <s1> <p1> ' !\"#$%&'()/:;<=>?@[]^_`{|}~' }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1literalPattern_with_all_punctuation.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_LSTRING_LITERAL1_with_all_punctuation.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1literalPattern_with_all_punctuation_fail> a sht:ValidationFailure ;
    mf:name "1literalPattern_with_all_punctuation_fail" ;
    sht:trait sht:NumericEquivalence , sht:OutsideBMP ;
    rdfs:comment "<S> { <p1> /^ !\"#\\$%&'\\(\\)\\/:;<=>\\?@\\[\\]\\^_`\\{\\|\\}~$/ } on { <s1> <p1> ' !\"#$%&'()/:;<=>?@[]^_`{|}~999' }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1literalPattern_with_all_punctuation.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_LSTRING_LITERAL1_with_all_punctuation999.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1literalPattern_with_ascii_boundaries_pass> a sht:ValidationTest ;
    mf:name "1literalPattern_with_ascii_boundaries_pass" ;
    sht:trait sht:NumericEquivalence , sht:OutsideBMP ;
    rdfs:comment "<S> { <p1> /^^@^I^K^L^N&\\(\\[\\]^?$/ } on { <s1> <p1> '^@^I^K^L^N&([]^?' }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1literalPattern_with_ascii_boundaries.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_LSTRING_LITERAL1_with_ascii_boundaries.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1literalPattern_with_ascii_boundaries_fail> a sht:ValidationFailure ;
    mf:name "1literalPattern_with_ascii_boundaries_fail" ;
    sht:trait sht:NumericEquivalence , sht:OutsideBMP ;
    rdfs:comment "<S> { <p1> /^^@^I^K^L^N&\\(\\[\\]^?$/ } on { <s1> <p1> '^@^I^K^L^N&([]^?999' }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1literalPattern_with_ascii_boundaries.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_LSTRING_LITERAL1_with_ascii_boundaries999.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1literalPattern_with_UTF8_boundaries_pass> a sht:ValidationTest ;
    mf:name "1literalPattern_with_UTF8_boundaries_pass" ;
    sht:trait sht:NumericEquivalence , sht:OutsideBMP ;
    rdfs:comment "<S> { <p1> /^\u0080...\U0010FFFD$/ } on { <s1> <p1> '\u0080...\U0010FFFD' }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1literalPattern_with_UTF8_boundaries.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_LSTRING_LITERAL1_with_UTF8_boundaries.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1literalPattern_with_UTF8_boundaries_fail> a sht:ValidationFailure ;
    mf:name "1literalPattern_with_UTF8_boundaries_fail" ;
    sht:trait sht:NumericEquivalence , sht:OutsideBMP ;
    rdfs:comment "<S> { <p1> /^\u0080...\U0010FFFD$/ } on { <s1> <p1> '\u0080...\U0010FFFD999' }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1literalPattern_with_UTF8_boundaries.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_LSTRING_LITERAL1_with_UTF8_boundaries999.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1literalPattern_with_REGEXP_escapes_pass> a sht:ValidationTest ;
    mf:name "1literalPattern_with_REGEXP_escapes_pass" ;
    sht:trait sht:NumericEquivalence , sht:OutsideBMP ;
    rdfs:comment "<S> { <p1> /^\\/\\t\\b\\n\\r\\f\\\\\\u0061\\U0001D4B8$/ } on { <s1> <p1> '\\/\\t\\b\\n\\r\\f\\\u0061\U0001D4B8' }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1literalPattern_with_REGEXP_escapes.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_L_with_REGEXP_escapes.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1literalPattern_with_REGEXP_escapes_fail> a sht:ValidationFailure ;
    mf:name "1literalPattern_with_REGEXP_escapes_fail" ;
    sht:trait sht:NumericEquivalence , sht:OutsideBMP ;
    rdfs:comment "<S> { <p1> /^\\/\\t\\b\\n\\r\\f\\\\\\u0061\\U0001D4B8$/ } on { <s1> <p1> '\\/\\t\\b\\n\\r\\f\\\u0061\U0001D4B8999' }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1literalPattern_with_REGEXP_escapes.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_L_with_REGEXP_escapes999.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1literalPattern_with_REGEXP_escapes_fail_escaped> a sht:ValidationFailure ;
    mf:name "1literalPattern_with_REGEXP_escapes_fail_escaped" ;
    sht:trait sht:NumericEquivalence , sht:OutsideBMP ;
    rdfs:comment "<S> { <p1> /^\\/\\t\\b\\n\\r\\f\\\\\\u0061\\U0001D4B8$/ } on { <s1> <p1> '\\\\/\\\\t\\\\b\\\\n\\\\r\\\\f\\\\\\u0061\\U0001D4B8' }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1literalPattern_with_REGEXP_escapes.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_L_with_REGEXP_escapes_escaped.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1literalPattern_with_REGEXP_escapes_escaped_pass> a sht:ValidationTest ;
    mf:name "1literalPattern_with_REGEXP_escapes_escaped_pass" ;
    sht:trait sht:NumericEquivalence , sht:OutsideBMP ;
    rdfs:comment "<S> { <p1> /^\\\\/\\\\t\\\\b\\\\n\\\\r\\\\f\\\\\\\\\\\\u0061\\\\U0001D4B8$/ } on { <s1> <p1> '\\\\/\\\\t\\\\b\\\\n\\\\r\\\\f\\\\\\u0061\\U0001D4B8' }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1literalPattern_with_REGEXP_escapes_escaped.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_L_with_REGEXP_escapes_escaped.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1literalPattern_with_REGEXP_escapes_escaped_fail_escapes> a sht:ValidationFailure ;
    mf:name "1literalPattern_with_REGEXP_escapes_escaped_fail_escapes" ;
    sht:trait sht:NumericEquivalence , sht:OutsideBMP ;
    rdfs:comment "<S> { <p1> /^\\\\/\\\\t\\\\b\\\\n\\\\r\\\\f\\\\\\\\\\\\u0061\\\\U0001D4B8$/ } on { <s1> <p1> '\\/\\t\\b\\n\\r\\f\\\u0061\U0001D4B8' }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1literalPattern_with_REGEXP_escapes_escaped.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_L_with_REGEXP_escapes.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1literalPattern_with_REGEXP_escapes_escaped_fail_escapes_bare> a sht:ValidationFailure ;
    mf:name "1literalPattern_with_REGEXP_escapes_escaped_fail_escapes_bare" ;
    sht:trait sht:NumericEquivalence , sht:OutsideBMP ;
    rdfs:comment "<S> { <p1> /^\\\\/\\\\t\\\\b\\\\n\\\\r\\\\f\\\\\\\\\\\\u0061\\\\U0001D4B8$/ } on { <s1> <p1> '/	\\b\\n\\r\\f\\a\U0001D4B8' }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1literalPattern_with_REGEXP_escapes_escaped.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_L_with_REGEXP_escapes_bare.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1literalPattern_with_REGEXP_escapes_bare_pass> a sht:ValidationTest ;
    mf:name "1literalPattern_with_REGEXP_escapes_bare_pass" ;
    sht:trait sht:NumericEquivalence , sht:OutsideBMP ;
    rdfs:comment "<S> { <p1> /^\\/	\\n\\r-\\\\a\\U0001D4B8$/ } on { <s1> <p1> '/	\\b\\n\\r\\f\\a\U0001D4B8' }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1literalPattern_with_REGEXP_escapes_bare.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_L_with_REGEXP_escapes_bare.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1literalPattern_with_REGEXP_escapes_bare_fail_escaped> a sht:ValidationFailure ;
    mf:name "1literalPattern_with_REGEXP_escapes_bare_fail_escaped" ;
    sht:trait sht:NumericEquivalence , sht:OutsideBMP ;
    rdfs:comment "<S> { <p1> /^\\/	\\n\\r-\\\\a\\U0001D4B8$/ } on { <s1> <p1> '\\\\/\\\\t\\\\b\\\\n\\\\r\\\\f\\\\\\u0061\\U0001D4B8' }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1literalPattern_with_REGEXP_escapes_bare.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_L_with_REGEXP_escapes_escaped.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1literalPattern_with_REGEXP_escapes_pass_bare> a sht:ValidationTest ;
    mf:name "1literalPattern_with_REGEXP_escapes_pass_bare" ;
    sht:trait sht:NumericEquivalence , sht:OutsideBMP ;
    rdfs:comment "<S> { <p1> /^\\/\\t\\b\\n\\r\\f\\\\\\u0061\\U0001D4B8$/ } on { <s1> <p1> '/	\\b\\n\\r\\f\\a\U0001D4B8' }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1literalPattern_with_REGEXP_escapes.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_L_with_REGEXP_escapes_bare.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1literalPattern_with_REGEXP_escapes_bare_pass_escapes> a sht:ValidationTest ;
    mf:name "1literalPattern_with_REGEXP_escapes_bare_pass_escapes" ;
    sht:trait sht:NumericEquivalence , sht:OutsideBMP ;
    rdfs:comment "<S> { <p1> /^\\/	\\n\\r-\\\\a\\U0001D4B8$/ } on { <s1> <p1> '\\/\\t\\b\\n\\r\\f\\\u0061\U0001D4B8' }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1literalPattern_with_REGEXP_escapes_bare.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_L_with_REGEXP_escapes.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1literalPatternEnd_fail-litEnd> a sht:ValidationFailure ;
    mf:name "1literalPatternEnd_fail-litEnd" ;
    sht:trait sht:PaternFacet ;
    rdfs:comment "<S1> { <p1> LITERAL PATTERN \"bc$\" } on { <s1> <p1> \"bc$\" }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1literalPatternEnd.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_LbcDollar.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1literalPatternDollar_pass-litDollar-match> a sht:ValidationTest ;
    mf:name "1literalPatternDollar_pass-litDollar-match" ;
    sht:trait sht:PaternFacet ;
    rdfs:comment "<S1> { <p1> LITERAL PATTERN \"bc\\$\" } on { <s1> <p1> \"bc$\" }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1literalPatternDollar.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_LbcDollar.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1literalPattern_pass-StartlitEnd-match> a sht:ValidationFailure ;
    mf:name "1literalPattern_pass-StartlitEnd-match" ;
    sht:trait sht:PaternFacet ;
    rdfs:comment "<S1> { <p1> LITERAL PATTERN \"^bc$\" } on { <s1> <p1> \"^bc$\" }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1literalStartPatternEnd.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_LCarrotbcDollar.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1literalStartPatternEnd_CarrotbcDollar> a sht:ValidationFailure ;
    mf:name "1literalStartPatternEnd_CarrotbcDollar" ;
    sht:trait sht:PaternFacet ;
    rdfs:comment "<S1> { <p1> LITERAL PATTERN \"^bc$\" } on { <s1> <p1> \"^bc$\" }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1literalStartPatternEnd.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_LCarrotbcDollar.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1literalCarrotPatternDollar_pass-bc> a sht:ValidationFailure ;
    mf:name "1literalCarrotPatternDollar_pass-bc" ;
    sht:trait sht:PaternFacet ;
    rdfs:comment "<S1> { <p1> LITERAL PATTERN \"\\^bc\\$\" } on { <s1> <p1> \"bc\" }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1literalCarrotPatternDollar.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Lbclowercase.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1literalCarrotPatternDollar_pass-CarrotbcDollar> a sht:ValidationTest ;
    mf:name "1literalCarrotPatternDollar_pass-CarrotbcDollar" ;
    sht:trait sht:PaternFacet ;
    rdfs:comment "<S1> { <p1> LITERAL PATTERN \"\\^bc\\$\" } on { <s1> <p1> \"^bc$\" }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1literalCarrotPatternDollar.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_LCarrotbcDollar.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1literalPatternabEnd_fail-bnode-match> a sht:ValidationFailure ;
    mf:name "1literalPatternabEnd_fail-bnode-match" ;
    sht:trait sht:PaternFacet , sht:LexicalBNode ;
    rdfs:comment "<S1> { <p1> LITERAL PATTERN \"bc$\" } on { <s1> <p1> _:bc }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1literalPatternabEnd.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Bbc.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1iriPattern_pass-iri-match> a sht:ValidationTest ;
    mf:name "1iriPattern_pass-iri-match" ;
    sht:trait sht:PaternFacet ;
    rdfs:comment "<S1> { <p1> IRI PATTERN \"http://a.example/o1\" } on { <s1> <p1> <o1> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1iriPattern.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Io1.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1iriPattern_fail-iri-short> a sht:ValidationFailure ;
    mf:name "1iriPattern_fail-iri-short" ;
    sht:trait sht:PaternFacet ;
    rdfs:comment "<S1> { <p1> IRI PATTERN \"http://a.example/o1\" } on { <s1> <p1> <o> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1iriPattern.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Io.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1iriPattern_fail-iri-long> a sht:ValidationFailure ;
    mf:name "1iriPattern_fail-iri-long" ;
    sht:trait sht:PaternFacet ;
    rdfs:comment "<S1> { <p1> IRI PATTERN \"http://a.example/o1\" } on { <s1> <p1> <o1a> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1iriPattern.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Io1a.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1iriPattern_fail-lit-match> a sht:ValidationFailure ;
    mf:name "1iriPattern_fail-lit-match" ;
    sht:trait sht:PaternFacet ;
    rdfs:comment "<S1> { <p1> IRI PATTERN \"http://a.example/o1\" } on { <s1> <p1> \"o1\" }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1iriPattern.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_L19.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1iriPattern_fail-bnode-match> a sht:ValidationFailure ;
    mf:name "1iriPattern_fail-bnode-match" ;
    sht:trait sht:PaternFacet ;
    rdfs:comment "<S1> { <p1> IRI PATTERN \"^bc$\" } on { <s1> <p1> _:bc }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1iriPatternbc.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Bbc.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1bnodePattern_pass-bnode-match> a sht:ValidationTest ;
    mf:name "1bnodePattern_pass-bnode-match" ;
    sht:trait sht:PaternFacet , sht:LexicalBNode ;
    rdfs:comment "<S1> { <p1> BNODE PATTERN \"bc\" } on { <s1> <p1> _:bc }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1bnodePattern.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Bbc.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1bnodePattern_fail-bnode-short> a sht:ValidationFailure ;
    mf:name "1bnodePattern_fail-bnode-short" ;
    sht:trait sht:PaternFacet ;
    rdfs:comment "<S1> { <p1> BNODE PATTERN \"bc\" } on { <s1> <p1> _:a }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1bnodePattern.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Ba.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1bnodePattern_fail-bnode-long> a sht:ValidationTest ;
    mf:name "1bnodePattern_fail-bnode-long" ;
    sht:trait sht:PaternFacet , sht:LexicalBNode ;
    rdfs:comment "<S1> { <p1> BNODE PATTERN \"bc\" } on { <s1> <p1> _:abc }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1bnodePattern.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Babc.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1bnodePattern_fail-lit-match> a sht:ValidationFailure ;
    mf:name "1bnodePattern_fail-lit-match" ;
    sht:trait sht:PaternFacet ;
    rdfs:comment "<S1> { <p1> BNODE PATTERN \"bc\" } on { <s1> <p1> \"ab\" }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1bnodePattern.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Lab.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1bnodePattern_fail-iri-match> a sht:ValidationFailure ; # try one against relative name
    mf:name "1bnodePattern_fail-iri-match" ;
    sht:trait sht:PaternFacet ;
    rdfs:comment "<S1> { <p1> BNODE PATTERN \"bc\" } on { BASE <http://a.example/> <s1> <p1> <bc> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1bnodePattern.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <BASE_Is1_Ip1_Iab.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1nonliteralPattern_pass-iri-match> a sht:ValidationTest ;
    mf:name "1nonliteralPattern_pass-iri-match" ;
    sht:trait sht:PaternFacet ;
    rdfs:comment "<S1> { <p1> NONLITERAL PATTERN \"bc$\" } on { <s1> <p1> <bc> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1nonliteralPattern.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Ibc.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1nonliteralPattern_fail-iri-short> a sht:ValidationFailure ;
    mf:name "1nonliteralPattern_fail-iri-short" ;
    sht:trait sht:PaternFacet ;
    rdfs:comment "<S1> { <p1> NONLITERAL PATTERN \"bc$\" } on { <s1> <p1> <a> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1nonliteralPattern.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Ia.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1nonliteralPattern_pass-iri-long> a sht:ValidationTest ;
    mf:name "1nonliteralPattern_pass-iri-long" ;
    sht:trait sht:PaternFacet ;
    rdfs:comment "<S1> { <p1> NONLITERAL PATTERN \"bc$\" } on { <s1> <p1> <abc> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1nonliteralPattern.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Iabc.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1nonliteralPattern_fail-lit-match> a sht:ValidationFailure ;
    mf:name "1nonliteralPattern_fail-lit-match" ;
    sht:trait sht:PaternFacet ;
    rdfs:comment "<S1> { <p1> NONLITERAL PATTERN \"bc$\" } on { <s1> <p1> \"ab\" }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1nonliteralPattern.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Lab.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1nonliteralPattern_pass-bnode-match> a sht:ValidationTest ;
    mf:name "1nonliteralPattern_pass-bnode-match" ;
    sht:trait sht:PaternFacet , sht:LexicalBNode ;
    rdfs:comment "<S1> { <p1> NONLITERAL PATTERN \"bc$\" } on { <s1> <p1> _:bc }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1nonliteralPattern.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Bbc.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1nonliteralPattern_fail-bnode-short> a sht:ValidationFailure ;
    mf:name "1nonliteralPattern_fail-bnode-short" ;
    sht:trait sht:PaternFacet ;
    rdfs:comment "<S1> { <p1> NONLITERAL PATTERN \"bc$\" } on { <s1> <p1> _:a }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1nonliteralPattern.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Ba.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1nonliteralPattern_pass-bnode-long> a sht:ValidationTest ;
    mf:name "1nonliteralPattern_pass-bnode-long" ;
    sht:trait sht:PaternFacet , sht:LexicalBNode ;
    rdfs:comment "<S1> { <p1> NONLITERAL PATTERN \"bc$\" } on { <s1> <p1> _:abc }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1nonliteralPattern.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Babc.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

###   } pattern
## } facets
## value sets {

<#1val1dotMinusiri3_pass> a sht:ValidationTest ;
    mf:name "1val1dotMinusiri3_pass" ;
    sht:trait sht:ValueSet , sht:Stem ;
    rdfs:comment "<S> { <p1> [.-<v1>-<v2>-<v3>] } on { <s1> <p1> <o1> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1val1dotMinusiri3.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Io1.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1val1dotMinusiri3_v1> a sht:ValidationFailure ;
    mf:name "1val1dotMinusiri3_v1" ;
    sht:trait sht:ValueSet , sht:Stem ;
    rdfs:comment "<S> { <p1> [.-<v1>-<v2>-<v3>] } on { <s1> <p1> <v1> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1val1dotMinusiri3.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Iv1.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1val1dotMinusiri3_v2> a sht:ValidationFailure ;
    mf:name "1val1dotMinusiri3_v2" ;
    sht:trait sht:ValueSet , sht:Stem ;
    rdfs:comment "<S> { <p1> [.-<v1>-<v2>-<v3>] } on { <s1> <p1> <v2> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1val1dotMinusiri3.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Iv2.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1val1dotMinusiri3_v3> a sht:ValidationFailure ;
    mf:name "1val1dotMinusiri3_v3" ;
    sht:trait sht:ValueSet , sht:Stem ;
    rdfs:comment "<S> { <p1> [.-<v1>-<v2>-<v3>] } on { <s1> <p1> <v3> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1val1dotMinusiri3.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Iv3.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1val1refvsMinusiri3_pass> a sht:ValidationTest ;
    mf:name "1val1refvsMinusiri3_pass" ;
    sht:trait sht:ValueSet , sht:Stem ;
    rdfs:comment "<vs1> = [.-<v1>-<v2>-<v3>] <S> { <p1> @<vs1> } on { <s1> <p1> <o1> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1val1refvsMinusiri3.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Io1.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1val1refvsMinusiri3_v1> a sht:ValidationFailure ;
    mf:name "1val1refvsMinusiri3_v1" ;
    sht:trait sht:ValueSet , sht:Stem ;
    rdfs:comment "<vs1> = [.-<v1>-<v2>-<v3>] <S> { <p1> @<vs1> } on { <s1> <p1> <v1> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1val1refvsMinusiri3.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Iv1.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1val1refvsMinusiri3_v2> a sht:ValidationFailure ;
    mf:name "1val1refvsMinusiri3_v2" ;
    sht:trait sht:ValueSet , sht:Stem ;
    rdfs:comment "<vs1> = [.-<v1>-<v2>-<v3>] <S> { <p1> @<vs1> } on { <s1> <p1> <v2> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1val1refvsMinusiri3.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Iv2.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1val1refvsMinusiri3_v3> a sht:ValidationFailure ;
    mf:name "1val1refvsMinusiri3_v3" ;
    sht:trait sht:ValueSet , sht:Stem ;
    rdfs:comment "<vs1> = [.-<v1>-<v2>-<v3>] <S> { <p1> @<vs1> } on { <s1> <p1> <v3> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1val1refvsMinusiri3.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Iv3.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1val1dotMinusiriStem3_pass> a sht:ValidationTest ;
    mf:name "1val1dotMinusiriStem3_pass" ;
    sht:trait sht:ValueSet , sht:Stem ;
    rdfs:comment "<S> { <p1> [.-<v1>~-<v2>~-<v3>~] } on { <s1> <p1> <o1> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1val1dotMinusiriStem3.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Io1.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1val1dotMinusiriStem3_v1> a sht:ValidationFailure ;
    mf:name "1val1dotMinusiriStem3_v1" ;
    sht:trait sht:ValueSet , sht:Stem ;
    rdfs:comment "<S> { <p1> [.-<v1>~-<v2>~-<v3>~] } on { <s1> <p1> <v1> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1val1dotMinusiriStem3.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Iv1.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1val1dotMinusiriStem3_v2> a sht:ValidationFailure ;
    mf:name "1val1dotMinusiriStem3_v2" ;
    sht:trait sht:ValueSet , sht:Stem ;
    rdfs:comment "<S> { <p1> [.-<v1>~-<v2>~-<v3>~] } on { <s1> <p1> <v2> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1val1dotMinusiriStem3.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Iv2.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1val1dotMinusiriStem3_v3> a sht:ValidationFailure ;
    mf:name "1val1dotMinusiriStem3_v3" ;
    sht:trait sht:ValueSet , sht:Stem ;
    rdfs:comment "<S> { <p1> [.-<v1>~-<v2>~-<v3>~] } on { <s1> <p1> <v3> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1val1dotMinusiriStem3.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Iv3.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1val1dotMinusiriStem3_v1a> a sht:ValidationFailure ;
    mf:name "1val1dotMinusiriStem3_v1a" ;
    sht:trait sht:ValueSet , sht:Stem ;
    rdfs:comment "<S> { <p1> [.-<v1>~-<v2>~-<v3>~] } on { <s1> <p1> <v1a> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1val1dotMinusiriStem3.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Iv1a.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1val1iri_passv1> a sht:ValidationTest ;
    mf:name "1val1iri_passv1" ;
    sht:trait sht:ValueSet ;
    rdfs:comment "<S> { <p1> [<v1>] } on { <s1> <p1> <v1> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1val1iri.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Iv1.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1val1iri_failv1a> a sht:ValidationFailure ;
    mf:name "1val1iri_failv1a" ;
    sht:trait sht:ValueSet ;
    rdfs:comment "<S> { <p1> [<v1>] } on { <s1> <p1> <v1a> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1val1iri.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Iv1a.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1val1iriStem_passv1> a sht:ValidationTest ;
    mf:name "1val1iriStem_passv1" ;
    sht:trait sht:ValueSet , sht:Stem ;
    rdfs:comment "<S> { <p1> [<v>~] } on { <s1> <p1> <v1> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1val1iriStem.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Iv1.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1val1iriStem_passv1a> a sht:ValidationTest ;
    mf:name "1val1iriStem_passv1a" ;
    sht:trait sht:ValueSet , sht:Stem ;
    rdfs:comment "<S> { <p1> [<v>~] } on { <s1> <p1> <v1a> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1val1iriStem.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Iv1a.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1val1iriStem_fail> a sht:ValidationFailure ;
    mf:name "1val1iriStem_fail" ;
    sht:trait sht:ValueSet , sht:Stem ;
    rdfs:comment "<S> { <p1> [<v>~] } on { <s1> <p1> <> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1val1iriStem.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_I.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1val1iriStem_fail-literalIv1> a sht:ValidationFailure ;
    mf:name "1val1iriStem_fail-literalIv1" ;
    sht:trait sht:ValueSet , sht:Stem ;
    rdfs:comment "<S> { <p1> [<v1>~] } on { <s1> <p1> 'v1' }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1val1iriStem.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_LIv1.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1val1iriStemMinusiri3_passIv> a sht:ValidationTest ;
    mf:name "1val1iriStemMinusiri3_passIv" ;
    sht:trait sht:ValueSet , sht:Stem ;
    rdfs:comment "<S> { <p1> [<v>-<v1>-<v2>-<v3>] } on { <s1> <p1> <v> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1val1iriStemMinusiri3.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Iv.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1val1iriStemMinusiri3_passIv4> a sht:ValidationTest ;
    mf:name "1val1iriStemMinusiri3_passIv4" ;
    sht:trait sht:ValueSet , sht:Stem ;
    rdfs:comment "<S> { <p1> [<v>-<v1>-<v2>-<v3>] } on { <s1> <p1> <v4> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1val1iriStemMinusiri3.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Iv4.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1val1iriStemMinusiri3_fail-literalIv4> a sht:ValidationFailure ;
    mf:name "1val1iriStemMinusiri3_fail-literalIv4" ;
    sht:trait sht:ValueSet , sht:Stem ;
    rdfs:comment "<S> { <p1> [<v>-<v1>-<v2>-<v3>] } on { <s1> <p1> 'v4' }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1val1iriStemMinusiri3.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_LIv4.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1val1iriStemMinusiri3_v1> a sht:ValidationFailure ;
    mf:name "1val1iriStemMinusiri3_v1" ;
    sht:trait sht:ValueSet , sht:Stem ;
    rdfs:comment "<S> { <p1> [<v>-<v1>-<v2>-<v3>] } on { <s1> <p1> <v1> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1val1iriStemMinusiri3.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Iv1.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1val1iriStemMinusiri3_fail-literalIv1> a sht:ValidationFailure ;
    mf:name "1val1iriStemMinusiri3_fail-literalIv1" ;
    sht:trait sht:ValueSet , sht:Stem ;
    rdfs:comment "<S> { <p1> [<v>-<v1>-<v2>-<v3>] } on { <s1> <p1> 'v1' }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1val1iriStemMinusiri3.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_LIv1.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1val1iriStemMinusiri3_v2> a sht:ValidationFailure ;
    mf:name "1val1iriStemMinusiri3_v2" ;
    sht:trait sht:ValueSet , sht:Stem ;
    rdfs:comment "<S> { <p1> [<v>-<v1>-<v2>-<v3>] } on { <s1> <p1> <v2> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1val1iriStemMinusiri3.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Iv2.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1val1iriStemMinusiri3_v3> a sht:ValidationFailure ;
    mf:name "1val1iriStemMinusiri3_v3" ;
    sht:trait sht:ValueSet , sht:Stem ;
    rdfs:comment "<S> { <p1> [<v>-<v1>-<v2>-<v3>] } on { <s1> <p1> <v3> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1val1iriStemMinusiri3.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Iv3.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1val1iriStemMinusiri3_passIv1a> a sht:ValidationTest ;
    mf:name "1val1iriStemMinusiri3_passIv1a" ;
    sht:trait sht:ValueSet , sht:Stem ;
    rdfs:comment "<S> { <p1> [<v>-<v1>-<v2>-<v3>] } on { <s1> <p1> <v1a> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1val1iriStemMinusiri3.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Iv1a.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1val1iriStemMinusiriStem3_passIv> a sht:ValidationTest ;
    mf:name "1val1iriStemMinusiriStem3_passIv" ;
    sht:trait sht:ValueSet , sht:Stem ;
    rdfs:comment "<S> { <p1> [<v>~-<v1>~-<v2>~-<v3>~] } on { <s1> <p1> <v> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1val1iriStemMinusiriStem3.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Iv.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1val1iriStemMinusiriStem3_passIv4> a sht:ValidationTest ;
    mf:name "1val1iriStemMinusiriStem3_passIv4" ;
    sht:trait sht:ValueSet , sht:Stem ;
    rdfs:comment "<S> { <p1> [<v>~-<v1>~-<v2>~-<v3>~] } on { <s1> <p1> <v4> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1val1iriStemMinusiriStem3.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Iv4.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1val1iriStemMinusiriStem3_v1> a sht:ValidationFailure ;
    mf:name "1val1iriStemMinusiriStem3_v1" ;
    sht:trait sht:ValueSet , sht:Stem ;
    rdfs:comment "<S> { <p1> [<v>~-<v1>~-<v2>~-<v3>~] } on { <s1> <p1> <v1> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1val1iriStemMinusiriStem3.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Iv1.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1val1iriStemMinusiriStem3_v2> a sht:ValidationFailure ;
    mf:name "1val1iriStemMinusiriStem3_v2" ;
    sht:trait sht:ValueSet , sht:Stem ;
    rdfs:comment "<S> { <p1> [<v>~-<v1>~-<v2>~-<v3>~] } on { <s1> <p1> <v2> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1val1iriStemMinusiriStem3.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Iv2.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1val1iriStemMinusiriStem3_v3> a sht:ValidationFailure ;
    mf:name "1val1iriStemMinusiriStem3_v3" ;
    sht:trait sht:ValueSet , sht:Stem ;
    rdfs:comment "<S> { <p1> [<v>~-<v1>~-<v2>~-<v3>~] } on { <s1> <p1> <v3> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1val1iriStemMinusiriStem3.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Iv3.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1val1iriStemMinusiriStem3_v1a> a sht:ValidationFailure ;
    mf:name "1val1iriStemMinusiriStem3_v1a" ;
    sht:trait sht:ValueSet , sht:Stem ;
    rdfs:comment "<S> { <p1> [<v>~-<v1>~-<v2>~-<v3>~] } on { <s1> <p1> <v1a> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1val1iriStemMinusiriStem3.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Iv1a.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1val1literal_passv> a sht:ValidationTest ;
    mf:name "1val1literal_passv" ;
    sht:trait sht:ValueSet ;
    rdfs:comment "<S> { <p1> ['v'] } on { <s1> <p1> 'v' }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1val1literal.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Lv.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1val1literal_failv1> a sht:ValidationFailure ;
    mf:name "1val1literal_failv1" ;
    sht:trait sht:ValueSet ;
    rdfs:comment "<S> { <p1> ['v'] } on { <s1> <p1> 'v1' }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1val1literal.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Lv1.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1val1literalStem_passv1> a sht:ValidationTest ;
    mf:name "1val1literalStem_passv1" ;
    sht:trait sht:ValueSet , sht:Stem ;
    rdfs:comment "<S> { <p1> ['v'~] } on { <s1> <p1> 'v1' }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1val1literalStem.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Lv1.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1val1literalStem_passv1a> a sht:ValidationTest ;
    mf:name "1val1literalStem_passv1a" ;
    sht:trait sht:ValueSet , sht:Stem ;
    rdfs:comment "<S> { <p1> ['v'~] } on { <s1> <p1> 'v1a' }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1val1literalStem.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Lv1a.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1val1literalStem_fail> a sht:ValidationFailure ;
    mf:name "1val1literalStem_fail" ;
    sht:trait sht:ValueSet , sht:Stem ;
    rdfs:comment "<S> { <p1> ['v'~] } on { <s1> <p1> '' }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1val1literalStem.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_L.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1val1literaliriStem_fail-Iv1> a sht:ValidationFailure ;
    mf:name "1val1literaliriStem_fail-Iv1" ;
    sht:trait sht:ValueSet , sht:Stem ;
    rdfs:comment "<S> { <p1> ['v'~] } on { <s1> <p1> <v1> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1val1literaliriStem.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Iv1.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1val1literalStemMinusliteral3_passLv> a sht:ValidationTest ;
    mf:name "1val1literalStemMinusliteral3_passLv" ;
    sht:trait sht:ValueSet , sht:Stem ;
    rdfs:comment "<S> { <p1> ['v'-'v1'-'v2'-'v3'] } on { <s1> <p1> 'v' }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1val1literalStemMinusliteral3.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Lv.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1val1literalStemMinusliteral3_passLv4> a sht:ValidationTest ;
    mf:name "1val1literalStemMinusliteral3_passLv4" ;
    sht:trait sht:ValueSet , sht:Stem ;
    rdfs:comment "<S> { <p1> ['v'-'v1'-'v2'-'v3'] } on { <s1> <p1> 'v4' }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1val1literalStemMinusliteral3.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Lv4.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1val1literaliriStemMinusliteraliri3_fail-Iv4> a sht:ValidationFailure ;
    mf:name "1val1literaliriStemMinusliteraliri3_fail-Iv4" ;
    sht:trait sht:ValueSet , sht:Stem ;
    rdfs:comment "<S> { <p1> ['v'-'v1'-'v2'-'v3'] } on { <s1> <p1> <v4> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1val1literaliriStemMinusliteraliri3.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Iv4.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1val1literalStemMinusliteral3_v1> a sht:ValidationFailure ;
    mf:name "1val1literalStemMinusliteral3_v1" ;
    sht:trait sht:ValueSet , sht:Stem ;
    rdfs:comment "<S> { <p1> ['v'-'v1'-'v2'-'v3'] } on { <s1> <p1> 'v1' }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1val1literalStemMinusliteral3.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Lv1.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1val1literaliriStemMinusliteraliri3_fail-Iv1> a sht:ValidationFailure ;
    mf:name "1val1literaliriStemMinusliteraliri3_fail-Iv1" ;
    sht:trait sht:ValueSet , sht:Stem ;
    rdfs:comment "<S> { <p1> ['v'-'v1'-'v2'-'v3'] } on { <s1> <p1> <v1> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1val1literaliriStemMinusliteraliri3.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Iv1.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1val1literalStemMinusliteral3_v2> a sht:ValidationFailure ;
    mf:name "1val1literalStemMinusliteral3_v2" ;
    sht:trait sht:ValueSet , sht:Stem ;
    rdfs:comment "<S> { <p1> ['v'-'v1'-'v2'-'v3'] } on { <s1> <p1> 'v2' }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1val1literalStemMinusliteral3.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Lv2.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1val1literalStemMinusliteral3_v3> a sht:ValidationFailure ;
    mf:name "1val1literalStemMinusliteral3_v3" ;
    sht:trait sht:ValueSet , sht:Stem ;
    rdfs:comment "<S> { <p1> ['v'-'v1'-'v2'-'v3'] } on { <s1> <p1> 'v3' }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1val1literalStemMinusliteral3.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Lv3.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1val1literalStemMinusliteral3_passLv1a> a sht:ValidationTest ;
    mf:name "1val1literalStemMinusliteral3_passLv1a" ;
    sht:trait sht:ValueSet , sht:Stem ;
    rdfs:comment "<S> { <p1> ['v'-'v1'-'v2'-'v3'] } on { <s1> <p1> 'v1a' }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1val1literalStemMinusliteral3.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Lv1a.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1val1literalStemMinusliteralStem3_passLv> a sht:ValidationTest ;
    mf:name "1val1literalStemMinusliteralStem3_passLv" ;
    sht:trait sht:ValueSet , sht:Stem ;
    rdfs:comment "<S> { <p1> ['v'~-'v1'~-'v2'~-'v3'~] } on { <s1> <p1> 'v' }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1val1literalStemMinusliteralStem3.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Lv.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1val1literalStemMinusliteralStem3_passLv4> a sht:ValidationTest ;
    mf:name "1val1literalStemMinusliteralStem3_passLv4" ;
    sht:trait sht:ValueSet , sht:Stem ;
    rdfs:comment "<S> { <p1> ['v'~-'v1'~-'v2'~-'v3'~] } on { <s1> <p1> 'v4' }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1val1literalStemMinusliteralStem3.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Lv4.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1val1literalStemMinusliteralStem3_v1> a sht:ValidationFailure ;
    mf:name "1val1literalStemMinusliteralStem3_v1" ;
    sht:trait sht:ValueSet , sht:Stem ;
    rdfs:comment "<S> { <p1> ['v'~-'v1'~-'v2'~-'v3'~] } on { <s1> <p1> 'v1' }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1val1literalStemMinusliteralStem3.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Lv1.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1val1literalStemMinusliteralStem3_v2> a sht:ValidationFailure ;
    mf:name "1val1literalStemMinusliteralStem3_v2" ;
    sht:trait sht:ValueSet , sht:Stem ;
    rdfs:comment "<S> { <p1> ['v'~-'v1'~-'v2'~-'v3'~] } on { <s1> <p1> 'v2' }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1val1literalStemMinusliteralStem3.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Lv2.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1val1literalStemMinusliteralStem3_v3> a sht:ValidationFailure ;
    mf:name "1val1literalStemMinusliteralStem3_v3" ;
    sht:trait sht:ValueSet , sht:Stem ;
    rdfs:comment "<S> { <p1> ['v'~-'v1'~-'v2'~-'v3'~] } on { <s1> <p1> 'v3' }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1val1literalStemMinusliteralStem3.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Lv3.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1val1literalStemMinusliteralStem3_v1a> a sht:ValidationFailure ;
    mf:name "1val1literalStemMinusliteralStem3_v1a" ;
    sht:trait sht:ValueSet , sht:Stem ;
    rdfs:comment "<S> { <p1> ['v'~-'v1'~-'v2'~-'v3'~] } on { <s1> <p1> 'v1a' }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1val1literalStemMinusliteralStem3.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Lv1a.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1val1language_passLAtfr> a sht:ValidationTest ;
    mf:name "1val1language_passLAtfr" ;
    sht:trait sht:ValueSet ;
    rdfs:comment "<S> { <p1> [@fr] } on { <s1> <p1> 'septante'@fr }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1val1language.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_LAtfr.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1val1language_failLAtfr-be> a sht:ValidationFailure ;
    mf:name "1val1language_failLAtfr-be" ;
    sht:trait sht:ValueSet ;
    rdfs:comment "<S> { <p1> [@fr] } on { <s1> <p1> 'septante'@fr-be }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1val1language.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_LAtfr-be.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1val1emptylanguageStem_passLAtfr> a sht:ValidationTest ;
    mf:name "1val1emptylanguageStem_passLAtfr" ;
    sht:trait sht:ValueSet , sht:Stem ;
    rdfs:comment "<S> { <p1> [@~] } on { <s1> <p1> 'septante'@fr }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1val1emptylanguageStem.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_LAtfr.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1val1emptylanguageStem_fail-literal> a sht:ValidationFailure ;
    mf:name "1val1emptylanguageStem_fail-literal" ;
    sht:trait sht:ValueSet , sht:Stem ;
    rdfs:comment "<S> { <p1> [@~] } on { <s1> <p1> '' }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1val1emptylanguageStem.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Lab.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1val1emptylanguageStem_fail-empty> a sht:ValidationFailure ;
    mf:name "1val1emptylanguageStem_fail-empty" ;
    sht:trait sht:ValueSet , sht:Stem ;
    rdfs:comment "<S> { <p1> [@~] } on { <s1> <p1> '' }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1val1emptylanguageStem.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_L.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1val1emptylanguageStem_fail-integer> a sht:ValidationFailure ;
    mf:name "1val1emptylanguageStem_fail-integer" ;
    sht:trait sht:ValueSet , sht:Stem ;
    rdfs:comment "<S> { <p1> [@~] } on { <s1> <p1> 12345 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1val1emptylanguageStem.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_INT12345.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1val1emptylanguageStemMinuslanguage3_passLAtfr> a sht:ValidationTest ;
    mf:name "1val1emptylanguageStemMinuslanguage3_passLAtfr" ;
    sht:trait sht:ValueSet , sht:Stem ;
    rdfs:comment "<S> { <p1> [@~-@fr-be-@fr-cd-@fr-ch] } on { <s1> <p1> 'septante'@fr }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1val1emptylanguageStemMinuslanguage3.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_LAtfr.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1val1emptylanguageStemMinuslanguage3_failLAtfr-be> a sht:ValidationFailure ;
    mf:name "1val1emptylanguageStemMinuslanguage3_failLAtfr-be" ;
    sht:trait sht:ValueSet , sht:Stem ;
    rdfs:comment "<S> { <p1> [@~-@fr-be-@fr-cd-@fr-ch] } on { <s1> <p1> 'septante'@fr-be }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1val1emptylanguageStemMinuslanguage3.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_LAtfr-be.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1val1emptylanguageStemMinuslanguage3_passLAtfr-be-fbcl> a sht:ValidationTest ;
    mf:name "1val1emptylanguageStemMinuslanguage3_passLAtfr-be-fbcl" ;
    sht:trait sht:ValueSet , sht:Stem ;
    rdfs:comment "<S> { <p1> [@~-@fr-be-@fr-cd-@fr-ch] } on { <s1> <p1> 'septante'@fr-be-fbcl }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1val1emptylanguageStemMinuslanguage3.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_LAtfr-be-fbcl.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1val1emptylanguageStemMinuslanguageStem3_LAtfr> a sht:ValidationTest ;
    mf:name "1val1emptylanguageStemMinuslanguageStem3_LAtfr" ;
    sht:trait sht:ValueSet , sht:Stem ;
    rdfs:comment "<S> { <p1> [@~-@fr-be~-@fr-cd~-@fr-ch~] } on { <s1> <p1> 'septante'@fr }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1val1emptylanguageStemMinuslanguageStem3.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_LAtfr.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1val1emptylanguageStemMinuslanguageStem3_LAtfrc> a sht:ValidationTest ;
    mf:name "1val1emptylanguageStemMinuslanguageStem3_LAtfrc" ;
    sht:trait sht:ValueSet , sht:Stem ;
    rdfs:comment "<S> { <p1> [@~-@fr-be~-@fr-cd~-@fr-ch~] } on { <s1> <p1> 'septante'@frc }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1val1emptylanguageStemMinuslanguageStem3.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_LAtfrc.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1val1emptylanguageStemMinuslanguageStem3_failLAtfr-be> a sht:ValidationFailure ;
    mf:name "1val1emptylanguageStemMinuslanguageStem3_failLAtfr-be" ;
    sht:trait sht:ValueSet , sht:Stem ;
    rdfs:comment "<S> { <p1> [@~-@fr-be~-@fr-cd~-@fr-ch~] } on { <s1> <p1> 'septante'@fr-be }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1val1emptylanguageStemMinuslanguageStem3.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_LAtfr-be.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1val1emptylanguageStemMinuslanguageStem3_LAtfr-be-fbcl> a sht:ValidationFailure ;
    mf:name "1val1emptylanguageStemMinuslanguageStem3_LAtfr-be-fbcl" ;
    sht:trait sht:ValueSet , sht:Stem ;
    rdfs:comment "<S> { <p1> [@~-@fr-be~-@fr-cd~-@fr-ch~] } on { <s1> <p1> 'septante'@fr-be-fbcl }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1val1emptylanguageStemMinuslanguageStem3.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_LAtfr-be-fbcl.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1val1languageStem_passLAtfr> a sht:ValidationTest ;
    mf:name "1val1languageStem_passLAtfr" ;
    sht:trait sht:ValueSet , sht:Stem ;
    rdfs:comment "<S> { <p1> [@fr~] } on { <s1> <p1> 'septante'@fr }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1val1languageStem.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_LAtfr.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1val1languageStem_failLAtfrc> a sht:ValidationFailure ;
    mf:name "1val1languageStem_failLAtfrc" ;
    sht:trait sht:ValueSet , sht:Stem ;
    rdfs:comment "<S> { <p1> [@fr~] } on { <s1> <p1> 'septante'@frc }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1val1languageStem.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_LAtfrc.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1val1languageStem_passLAtfr-be> a sht:ValidationTest ;
    mf:name "1val1languageStem_passLAtfr-be" ;
    sht:trait sht:ValueSet , sht:Stem ;
    rdfs:comment "<S> { <p1> [@fr~] } on { <s1> <p1> 'septante'@fr-be }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1val1languageStem.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_LAtfr-be.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1val1languageStem_passLAtfr-be-fbcl> a sht:ValidationTest ;
    mf:name "1val1languageStem_passLAtfr-be-fbcl" ;
    sht:trait sht:ValueSet , sht:Stem ;
    rdfs:comment "<S> { <p1> [@fr~] } on { <s1> <p1> 'septante'@fr-be-fbcl }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1val1languageStem.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_LAtfr-be-fbcl.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1val1languageStem_fail> a sht:ValidationFailure ;
    mf:name "1val1languageStem_fail" ;
    sht:trait sht:ValueSet , sht:Stem ;
    rdfs:comment "<S> { <p1> [@fr~] } on { <s1> <p1> '' }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1val1languageStem.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_L.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1val1literallanguageStem_failLAtfr> a sht:ValidationFailure ;
    mf:name "1val1literallanguageStem_failLAtfr" ;
    sht:trait sht:ValueSet , sht:Stem ;
    rdfs:comment "<S> { <p1> ['fr'~] } on { <s1> <p1> 'septante'@fr }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1val1literallanguageStem.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_LAtfr.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1val1languageStemMinuslanguage3_passLAtfr> a sht:ValidationTest ;
    mf:name "1val1languageStemMinuslanguage3_passLAtfr" ;
    sht:trait sht:ValueSet , sht:Stem ;
    rdfs:comment "<S> { <p1> [@fr~-@fr-be-@fr-cd-@fr-ch] } on { <s1> <p1> 'septante'@fr }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1val1languageStemMinuslanguage3.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_LAtfr.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1val1languageStemMinuslanguage3_passLAtfr-FR> a sht:ValidationTest ;
    mf:name "1val1languageStemMinuslanguage3_passLAtfr-FR" ;
    sht:trait sht:ValueSet , sht:Stem ;
    rdfs:comment "<S> { <p1> [@fr~-@fr-be-@fr-cd-@fr-ch] } on { <s1> <p1> 'septante'@fr-FR }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1val1languageStemMinuslanguage3.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_LAtfr-fr.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1val1literallanguageStemMinusliterallanguage3_failLAtfr-FR> a sht:ValidationFailure ;
    mf:name "1val1literallanguageStemMinusliterallanguage3_failLAtfr-FR" ;
    sht:trait sht:ValueSet , sht:Stem ;
    rdfs:comment "<S> { <p1> ['fr'-'fr-be'-'fr-cd'-'fr-ch'] } on { <s1> <p1> 'septante'@fr-FR }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1val1literallanguageStemMinusliterallanguage3.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_LAtfr-fr.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1val1languageStemMinuslanguage3_failLAtfr-be> a sht:ValidationFailure ;
    mf:name "1val1languageStemMinuslanguage3_failLAtfr-be" ;
    sht:trait sht:ValueSet , sht:Stem ;
    rdfs:comment "<S> { <p1> [@fr~-@fr-be-@fr-cd-@fr-ch] } on { <s1> <p1> 'septante'@fr-be }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1val1languageStemMinuslanguage3.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_LAtfr-be.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1val1literallanguageStemMinusliterallanguage3_failLAtfr-BE> a sht:ValidationFailure ;
    mf:name "1val1literallanguageStemMinusliterallanguage3_failLAtfr-BE" ;
    sht:trait sht:ValueSet , sht:Stem ;
    rdfs:comment "<S> { <p1> ['fr'-'fr-be'-'fr-cd'-'fr-ch'] } on { <s1> <p1> 'septante'@fr-be }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1val1literallanguageStemMinusliterallanguage3.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_LAtfr-be.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1val1languageStemMinuslanguage3_failLAtfr-cd> a sht:ValidationFailure ;
    mf:name "1val1languageStemMinuslanguage3_failLAtfr-cd" ;
    sht:trait sht:ValueSet , sht:Stem ;
    rdfs:comment "<S> { <p1> [@fr~-@fr-be-@fr-cd-@fr-ch] } on { <s1> <p1> 'septante'@fr-cd }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1val1languageStemMinuslanguage3.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_LAtfr-cd.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1val1languageStemMinuslanguage3_failLAtfr-ch> a sht:ValidationFailure ;
    mf:name "1val1languageStemMinuslanguage3_failLAtfr-ch" ;
    sht:trait sht:ValueSet , sht:Stem ;
    rdfs:comment "<S> { <p1> [@fr~-@fr-be-@fr-cd-@fr-ch] } on { <s1> <p1> 'septante'@fr-ch }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1val1languageStemMinuslanguage3.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_LAtfr-ch.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1val1languageStemMinuslanguage3_passLAtfr-be-fbcl> a sht:ValidationTest ;
    mf:name "1val1languageStemMinuslanguage3_passLAtfr-be-fbcl" ;
    sht:trait sht:ValueSet , sht:Stem ;
    rdfs:comment "<S> { <p1> [@fr~-@fr-be-@fr-cd-@fr-ch] } on { <s1> <p1> 'septante'@fr-be-fbcl }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1val1languageStemMinuslanguage3.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_LAtfr-be-fbcl.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1val1languageStemMinuslanguageStem3_passLAtfr> a sht:ValidationTest ;
    mf:name "1val1languageStemMinuslanguageStem3_passLAtfr" ;
    sht:trait sht:ValueSet , sht:Stem ;
    rdfs:comment "<S> { <p1> [@fr~-@fr-be~-@fr-cd~-@fr-ch~] } on { <s1> <p1> 'septante'@fr }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1val1languageStemMinuslanguageStem3.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_LAtfr.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1val1languageStemMinuslanguageStem3_LAtfrc> a sht:ValidationFailure ;
    mf:name "1val1languageStemMinuslanguageStem3_LAtfrc" ;
    sht:trait sht:ValueSet , sht:Stem ;
    rdfs:comment "<S> { <p1> [@fr~-@fr-be~-@fr-cd~-@fr-ch~] } on { <s1> <p1> 'septante'@frc }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1val1languageStemMinuslanguageStem3.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_LAtfrc.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1val1languageStemMinuslanguageStem3_passLAtfr-FR> a sht:ValidationTest ;
    mf:name "1val1languageStemMinuslanguageStem3_passLAtfr-FR" ;
    sht:trait sht:ValueSet , sht:Stem ;
    rdfs:comment "<S> { <p1> [@fr~-@fr-be~-@fr-cd~-@fr-ch~] } on { <s1> <p1> 'septante'@fr-FR }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1val1languageStemMinuslanguageStem3.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_LAtfr-fr.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1val1languageStemMinuslanguageStem3_LAtfr-be> a sht:ValidationFailure ;
    mf:name "1val1languageStemMinuslanguageStem3_LAtfr-be" ;
    sht:trait sht:ValueSet , sht:Stem ;
    rdfs:comment "<S> { <p1> [@fr~-@fr-be~-@fr-cd~-@fr-ch~] } on { <s1> <p1> 'septante'@fr-be }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1val1languageStemMinuslanguageStem3.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_LAtfr-be.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1val1languageStemMinuslanguageStem3_LAtfr-cd> a sht:ValidationFailure ;
    mf:name "1val1languageStemMinuslanguageStem3_LAtfr-cd" ;
    sht:trait sht:ValueSet , sht:Stem ;
    rdfs:comment "<S> { <p1> [@fr~-@fr-be~-@fr-cd~-@fr-ch~] } on { <s1> <p1> 'septante'@fr-cd }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1val1languageStemMinuslanguageStem3.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_LAtfr-cd.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1val1languageStemMinuslanguageStem3_LAtfr-ch> a sht:ValidationFailure ;
    mf:name "1val1languageStemMinuslanguageStem3_LAtfr-ch" ;
    sht:trait sht:ValueSet , sht:Stem ;
    rdfs:comment "<S> { <p1> [@fr~-@fr-be~-@fr-cd~-@fr-ch~] } on { <s1> <p1> 'septante'@fr-ch }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1val1languageStemMinuslanguageStem3.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_LAtfr-ch.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1val1languageStemMinuslanguageStem3_passLAtfr-bel> a sht:ValidationTest ;
    mf:name "1val1languageStemMinuslanguageStem3_passLAtfr-bel" ;
    sht:trait sht:ValueSet , sht:Stem ;
    rdfs:comment "<S> { <p1> [@fr~-@fr-be~-@fr-cd~-@fr-ch~] } on { <s1> <p1> 'septante'@fr-bel }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1val1languageStemMinuslanguageStem3.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_LAtfr-bel.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1val1languageStemMinuslanguageStem3_LAtfr-be-fbcl> a sht:ValidationFailure ;
    mf:name "1val1languageStemMinuslanguageStem3_LAtfr-be-fbcl" ;
    sht:trait sht:ValueSet , sht:Stem ;
    rdfs:comment "<S> { <p1> [@fr~-@fr-be~-@fr-cd~-@fr-ch~] } on { <s1> <p1> 'septante'@fr-be-fbcl }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1val1languageStemMinuslanguageStem3.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_LAtfr-be-fbcl.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

## } value sets
## triple expressions {
###   AND tripleExpr {
 # !../schemas/2dot.shex
 # !../schemas/2dotSemis.shex          [2dotSemis.shex]
 # !../schemas/open2dotclose.shex       [2dotSemis.shex]
 # !../schemas/open2dotsemisclose.shex [2dotSemis.shex]
 # !../schemas/3Eachdot.shex
 # !../schemas/open3Eachdotclose.shex [3Eachdot.shex]

###   } AND tripleExpr
###   OR tripleExpr {

 # !../schemas/1dotOne1dot.shex
 # !../schemas/1dotSemiOne1dotSemi.shex
 # !../schemas/open1dotOne1dotclose.shex                [1dotSemiOne1dotSemi.shex]
 # !../schemas/open1dotSemiOne1dotSemicloseSemi.shex [1dotSemiOne1dotSemi.shex]
 # !../schemas/2dotOne1dot.shex
 # !../schemas/2dotSemiOne1dotSemi.shex                    [2dotOne1dot.shex]
 # !../schemas/open2dotOne1dotclose.shex                     [2dotOne1dot.shex]
 # !../schemas/open2dotSemisOne1dotSemiclose.shex          [2dotOne1dot.shex]
 # !../schemas/openopen2dotcloseOne1dotclose.shex            [2dotOne1dot.shex]
 # !../schemas/openopen2dotSemiscloseOne1dotSemiclose.shex [2dotOne1dot.shex]
 # !../schemas/open1dotopen1dotOne1dotcloseclose.shex
 # !../schemas/open1dotopen1dotSemiOne1dotSemicloseSemicloseSemi.shex [open1dotopen1dotOne1dotcloseclose.shex]

<#1dotOne2dot_pass_p1> a sht:ValidationTest ;
    mf:name "1dotOne2dot_pass_p1" ;
    sht:trait sht:OneOf , sht:EachOf-unvisited ;
    rdfs:comment ":S1 {:p1 .|:p2 .; :p3 .} / { :s1 :p1 \"p1-0\" . }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1dotOne2dot.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <p1.ttl> ;
      sht:focus <x>
    ]
    .

<#1dotOne2dot_pass_p2p3> a sht:ValidationTest ;
    mf:name "1dotOne2dot_pass_p2p3" ;
    sht:trait sht:OneOf , sht:EachOf ;
    rdfs:comment ":S1 {:p1 .|:p2 .; :p3 .} / { :s1 :p2 \"p2-0\"; :p3 \"p3-0\" . }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1dotOne2dot.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <p2p3.ttl> ;
      sht:focus <x>
    ]
    .

<#1dotOne2dot-oneOf_fail_p1p2p3> a sht:ValidationFailure ;
    mf:name "1dotOne2dot-oneOf_fail_p1p2p3" ;
    sht:trait sht:OneOf , sht:EachOf-unvisited ;
    rdfs:comment ":S1 {:p1 .|:p2 .; :p3 .} / { :s1 :p1 \"p1-0\"; :p2 \"p2-0\"; :p3 \"p3-0\" . }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1dotOne2dot.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <p1p2p3.ttl> ;
      sht:focus <x>
    ] ;
    .

<#1dotOne2dot-someOf_fail_p1p2p3> a sht:ValidationFailure ;
    mf:name "1dotOne2dot-someOf_fail_p1p2p3" ;
    sht:trait sht:OneOf , sht:EachOf , sht:MissedMatchables ;
    rdfs:comment ":S1 {:p1 .|:p2 .; :p3 .} / { :s1 :p1 \"p1-0\"; :p2 \"p2-0\"; :p3 \"p3-0\" . }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1dotOne2dot.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <p1p2p3.ttl> ;
      sht:focus <x>
    ]
    .

<#open1dotOneopen2dotcloseclose_pass_p1> a sht:ValidationTest ;
    mf:name "open1dotOneopen2dotcloseclose_pass_p1" ;
    sht:trait sht:OneOf , sht:EachOf-unvisited ;
    rdfs:comment ":S1 {(:p1 .|(:p2 .; :p3 .))} / { :s1 :p1 \"p1-0\" . }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/open1dotOneopen2dotcloseclose.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <p1.ttl> ;
      sht:focus <x>
    ]
    .

<#open1dotOneopen2dotcloseclose_pass_p2p3> a sht:ValidationTest ;
    mf:name "open1dotOneopen2dotcloseclose_pass_p2p3" ;
    sht:trait sht:OneOf , sht:EachOf ;
    rdfs:comment ":S1 {(:p1 .|(:p2 .; :p3 .))} / { :s1 :p2 \"p2-0\"; :p3 \"p3-0\" . }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/open1dotOneopen2dotcloseclose.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <p2p3.ttl> ;
      sht:focus <x>
    ]
    .

<#open1dotOneopen2dotcloseclose_fail_p1p2p3> a sht:ValidationFailure ;
    mf:name "open1dotOneopen2dotcloseclose_fail_p1p2p3" ;
    sht:trait sht:OneOf , sht:EachOf-unvisited ;
    rdfs:comment ":S1 {(:p1 .|(:p2 .; :p3 .))} / { :s1 :p1 \"p1-0\"; :p2 \"p2-0\"; :p3 \"p3-0\" . }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/open1dotOneopen2dotcloseclose.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <p1p2p3.ttl> ;
      sht:focus <x>
    ] ;
    .

<#openopen1dotOne1dotclose1dotclose_pass_p1p3> a sht:ValidationTest ;
    mf:name "openopen1dotOne1dotclose1dotclose_pass_p1p3" ;
    sht:trait sht:OneOf , sht:EachOf ;
    rdfs:comment ":S1 { ((:p1 .| :p2 .); :p3 .) } / { <x> :p1 \"p1-0\"; :p3 \"p3-0\" . }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/openopen1dotOne1dotclose1dotclose.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <p1p3.ttl> ;
      sht:focus <x>
    ]
    .

<#openopen1dotOne1dotclose1dotclose_pass_p2p3> a sht:ValidationTest ;
    mf:name "openopen1dotOne1dotclose1dotclose_pass_p2p3" ;
    sht:trait sht:OneOf , sht:EachOf ;
    rdfs:comment ":S1 { ((:p1 .| :p2 .); :p3 .) } / { <x> :p2 \"p2-0\"; :p3 \"p3-0\" . }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/openopen1dotOne1dotclose1dotclose.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <p2p3.ttl> ;
      sht:focus <x>
    ]
    .


<#openopen1dotOne1dotclose1dotclose_fail_p1> a sht:ValidationFailure ;
    mf:name "openopen1dotOne1dotclose1dotclose_fail_p1" ;
    sht:trait sht:OneOf , sht:EachOf-unvisited ;
    rdfs:comment ":S1 { ((:p1 .| :p2 .); :p3 .) } / { <x> :p1 \"p1-0\" . }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/openopen1dotOne1dotclose1dotclose.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <p1.ttl> ;
      sht:focus <x>
    ] ;
    .

<#openopen1dotOne1dotclose1dotclose_fail_p3> a sht:ValidationFailure ;
    mf:name "openopen1dotOne1dotclose1dotclose_fail_p3" ;
    sht:trait sht:OneOf , sht:EachOf ;
    rdfs:comment ":S1 { ((:p1 .| :p2 .); :p3 .) } / { <x> :p3 \"p3-0\" . }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/openopen1dotOne1dotclose1dotclose.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <p3.ttl> ;
      sht:focus <x>
    ] ;
    .

<#openopen1dotOne1dotclose1dotclose_fail_p1p2> a sht:ValidationFailure ;
    mf:name "openopen1dotOne1dotclose1dotclose_fail_p1p2" ;
    sht:trait sht:OneOf , sht:EachOf ;
    rdfs:comment ":S1 { ((:p1 .| :p2 .); :p3 .) } / { <x> :p1 \"p1-0\"; :p2 \"p2-0\" . }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/openopen1dotOne1dotclose1dotclose.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <p1p2.ttl> ;
      sht:focus <x>
    ] ;
    .

###   } OR tripleExpr
## } triple expressions
## value expressions {
###   value reference {

<#1val1vExprRefIRIREF1_fail-lit-short> a sht:ValidationFailure ;
    mf:name "1val1vExprRefIRIREF1_fail-lit-short" ;
    sht:trait sht:ValueReference , sht:LengthFacet ;
    rdfs:comment "<vc1> = LITERAL MINLENGTH 5 <S1> { <p1> @<vc1> } on { <s1> <p1> \"abcd\" }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1val1vExprRefIRIREF1.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Labcd.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1val1vExprRefIRIREF1_pass-lit-equal> a sht:ValidationTest ;
    mf:name "1val1vExprRefIRIREF1_pass-lit-equal" ;
    sht:trait sht:ValueReference , sht:LengthFacet ;
    rdfs:comment "<vc1> = LITERAL MINLENGTH 5 <S1> { <p1> @<vc1> } on { <s1> <p1> \"abcde\" }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1val1vExprRefIRIREF1.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Labcde.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1val1vExprRefbnode1_fail-lit-short> a sht:ValidationFailure ;
    mf:name "1val1vExprRefbnode1_fail-lit-short" ;
    sht:trait sht:ValueReference , sht:LengthFacet ;
    rdfs:comment "_:vc1 = LITERAL MINLENGTH 5 <S1> { <p1> @_:vc1 } on { <s1> <p1> \"abcd\" }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1val1vExprRefbnode1.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Labcd.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1val1vExprRefbnode1_pass-lit-equal> a sht:ValidationTest ;
    mf:name "1val1vExprRefbnode1_pass-lit-equal" ;
    sht:trait sht:ValueReference , sht:LengthFacet ;
    rdfs:comment "_:vc1 = LITERAL MINLENGTH 5 <S1> { <p1> @_:vc1 } on { <s1> <p1> \"abcde\" }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1val1vExprRefbnode1.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Labcde.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

###   } value reference
###   AND valueExpr {

<#1dotShapeAND1dot3X_pass> a sht:ValidationTest ;
    mf:name "1dotShapeAND1dot3X_pass" ;
    sht:trait sht:OrValueExpression , sht:ValueReference ;
    rdfs:comment "<S1> { <p1> . } AND { <p2> . } AND { <p3> . } on { <s1> <p1> 'X'; <p2> 'X'; <p3> 'X' }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1dotShapeAND1dot3X.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <In1_Ipx_LXX3.ttl> ;
      sht:focus <http://a.example/n1>
    ]
    .

<#1dotShapeAND1dot3X_fail> a sht:ValidationFailure ;
    mf:name "1dotShapeAND1dot3X_fail" ;
    sht:trait sht:OrValueExpression , sht:ValueReference ;
    rdfs:comment "<S1> { <p1> . } AND { <p2> . } AND { <p3> . } on { <s1> <p1> <s2>, <s3>, <s4> . <s2> <p2> \"X\" . <s3> <p3> \"X\" . <s4> <p4> \"X\" }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1dotShapeAND1dot3X.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <In1_Ip1_In2.In2_Ipx_LXX3.ttl> ;
      sht:focus <http://a.example/n2>
    ] ;
    .

<#1dotRefAND3_failAll> a sht:ValidationFailure ;
    mf:name "1dotRefAND3_failAll" ;
    sht:trait sht:OrValueExpression , sht:ValueReference ;
    rdfs:comment "<S1> { <p1> @<S2> AND @<S3> AND @<S4> } <S2> { <p2> . } <S3> { <p3> . } <S4> { <p4> . } on { <n1> <p1> <n2> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1dotRefAND3.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <In1_Ip1_In2.ttl> ;
      sht:focus <http://a.example/n1>
    ] ;
    .

<#1dotRefAND3_failShape2Shape3> a sht:ValidationFailure ;
    mf:name "1dotRefAND3_failShape2Shape3" ;
    sht:trait sht:OrValueExpression , sht:ValueReference ;
    rdfs:comment "<S1> { <p1> @<S2> AND @<S3> AND @<S4> } <S2> { <p2> . } <S3> { <p3> . } <S4> { <p4> . } on { <s1> <p1> <n2> . <n2> <p2> \"X\" }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1dotRefAND3.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <In1_Ip1_In2.In2_Ip2_LX.ttl> ;
      sht:focus <http://a.example/n1>
    ]
    .

<#1dotRefAND3_failShape1Shape3> a sht:ValidationFailure ;
    mf:name "1dotRefAND3_failShape1Shape3" ;
    sht:trait sht:OrValueExpression , sht:ValueReference ;
    rdfs:comment "<S1> { <p1> @<S2> AND @<S3> AND @<S4> } <S2> { <p2> . } <S3> { <p3> . } <S4> { <p4> . } on { <s1> <p1> <n3> . <n3> <p3> \"X\" }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1dotRefAND3.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <In1_Ip1_In3.In3_Ip3_LX.ttl> ;
      sht:focus <http://a.example/n1>
    ]
    .

<#1dotRefAND3_failShape1Shape2> a sht:ValidationFailure ;
    mf:name "1dotRefAND3_failShape1Shape2" ;
    sht:trait sht:OrValueExpression , sht:ValueReference ;
    rdfs:comment "<S1> { <p1> @<S2> AND @<S3> AND @<S4> } <S2> { <p2> . } <S3> { <p3> . } <S4> { <p4> . } on { <s1> <p1> <n4> . <n4> <p4> \"X\" }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1dotRefAND3.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <In1_Ip1_In4.In4_Ip4_LX.ttl> ;
      sht:focus <http://a.example/n1>
    ]
    .

<#1dotRefAND3_passShape1Shape2Shape3> a sht:ValidationTest ;
    mf:name "1dotRefAND3_passShape1Shape2Shape3" ;
    sht:trait sht:OrValueExpression , sht:ValueReference ;
    rdfs:comment "<S1> { <p1> @<S2> AND @<S3> AND @<S4> } <S2> { <p2> . } <S3> { <p3> . } <S4> { <p4> . } on { <s1> <p1> <s2>, <s3>, <s4> . <s2> <p2> \"X\" . <s3> <p3> \"X\" . <s4> <p4> \"X\" }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1dotRefAND3.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <In1_Ip1_In2.In2_Ipx_LXX3.ttl> ;
      sht:focus <http://a.example/n1>
    ]
    .

<#1val1vExpr1AND1AND1Ref3_pass> a sht:ValidationTest ;
    mf:name "1val1vExpr1AND1AND1Ref3_pass" ;
    sht:trait sht:AndValueExpression , sht:ValueReference ;
    rdfs:comment "<vc1> = ... <vc3> = ... <S> { <p1> @<vc1> AND ... @<vc3> } on { <s1> <p1> 'abab' }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1val1vExpr1AND1AND1Ref3.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Labab.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1val1vExpr1AND1AND1Ref3_failvc1> a sht:ValidationFailure ;
    mf:name "1val1vExpr1AND1AND1Ref3_failvc1" ;
    sht:trait sht:AndValueExpression , sht:ValueReference ;
    rdfs:comment "<vc1> = ... <vc3> = ... <S> { <p1> @<vc1> AND ... @<vc3> } on { <s1> <p1> 'ab' }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1val1vExpr1AND1AND1Ref3.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Lab.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1val1vExpr1AND1AND1Ref3_failvc2> a sht:ValidationFailure ;
    mf:name "1val1vExpr1AND1AND1Ref3_failvc2" ;
    sht:trait sht:AndValueExpression , sht:ValueReference ;
    rdfs:comment "<vc1> = ... <vc3> = ... <S> { <p1> @<vc1> AND ... @<vc3> } on { <s1> <p1> 'ababab' }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1val1vExpr1AND1AND1Ref3.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Lababab.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1val1vExpr1AND1AND1Ref3_failvc3> a sht:ValidationFailure ;
    mf:name "1val1vExpr1AND1AND1Ref3_failvc3" ;
    sht:trait sht:AndValueExpression , sht:ValueReference ;
    rdfs:comment "<vc1> = ... <vc3> = ... <S> { <p1> @<vc1> AND ... @<vc3> } on { <s1> <p1> 'baba' }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1val1vExpr1AND1AND1Ref3.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Lbaba.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1val1vExprRefAND3_pass> a sht:ValidationTest ;
    mf:name "1val1vExprRefAND3_pass" ;
    sht:trait sht:AndValueExpression , sht:ValueReference ;
    rdfs:comment "<vc1> = ... <vc3> = ... <vc4> = @<vc1> AND ... @<vc3> <S> { <p1> @<vc4> } on { <s1> <p1> 'abab' }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1val1vExprRefAND3.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Labab.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1val1vExprRefAND3_failvc1> a sht:ValidationFailure ;
    mf:name "1val1vExprRefAND3_failvc1" ;
    sht:trait sht:AndValueExpression , sht:ValueReference ;
    rdfs:comment "<vc1> = ... <vc3> = ... <vc4> = @<vc1> AND ... @<vc3> <S> { <p1> @<vc4> } on { <s1> <p1> 'ab' }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1val1vExprRefAND3.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Lab.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1val1vExprRefAND3_failvc2> a sht:ValidationFailure ;
    mf:name "1val1vExprRefAND3_failvc2" ;
    sht:trait sht:AndValueExpression , sht:ValueReference ;
    rdfs:comment "<vc1> = ... <vc3> = ... <vc4> = @<vc1> AND ... @<vc3> <S> { <p1> @<vc4> } on { <s1> <p1> 'ababab' }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1val1vExprRefAND3.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Lababab.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1val1vExprRefAND3_failvc3> a sht:ValidationFailure ;
    mf:name "1val1vExprRefAND3_failvc3" ;
    sht:trait sht:AndValueExpression , sht:ValueReference ;
    rdfs:comment "<vc1> = ... <vc3> = ... <vc4> = @<vc1> AND ... @<vc3> <S> { <p1> @<vc4> } on { <s1> <p1> 'baba' }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1val1vExprRefAND3.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Lbaba.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1val1vExprAND3_pass> a sht:ValidationTest ;
    mf:name "1val1vExprAND3_pass" ;
    sht:trait sht:AndValueExpression ;
    rdfs:comment "<S> { <p1> MINLENGTH 4 AND MAXLENGTH 5 AND ~ '(ab)+' } on { <s1> <p1> 'abab' }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1val1vExprAND3.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Labab.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1val1vExprAND3_failvc1> a sht:ValidationFailure ;
    mf:name "1val1vExprAND3_failvc1" ;
    sht:trait sht:AndValueExpression ;
    rdfs:comment "<S> { <p1> MINLENGTH 4 AND MAXLENGTH 5 AND ~ '(ab)+' } on { <s1> <p1> 'ab' }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1val1vExprAND3.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Lab.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1val1vExprAND3_failvc2> a sht:ValidationFailure ;
    mf:name "1val1vExprAND3_failvc2" ;
    sht:trait sht:AndValueExpression ;
    rdfs:comment "<S> { <p1> MINLENGTH 4 AND MAXLENGTH 5 AND ~ '(ab)+' } on { <s1> <p1> 'ababab' }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1val1vExprAND3.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Lababab.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1val1vExprAND3_failvc3> a sht:ValidationFailure ;
    mf:name "1val1vExprAND3_failvc3" ;
    sht:trait sht:AndValueExpression ;
    rdfs:comment "<S> { <p1> MINLENGTH 4 AND MAXLENGTH 5 AND ~ '(ab)+' } on { <s1> <p1> 'baba' }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1val1vExprAND3.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Lbaba.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

###   } AND valueExpr
###   OR valueExpr {

<#refBNodeORrefIRI_ReflexiveIRI> a sht:ValidationTest ;
    mf:name "refBNodeORrefIRI_ReflexiveIRI" ;
    sht:trait sht:OrValueExpression , sht:ValueReference ;
    rdfs:comment "<S1> { <p1> BNODE @<S1> OR MINLENGTH 20 @<S1> } on { <n1a> <p1> <n1a> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1bnodeRefORRefMinlength.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <In1a_Ip1_In1a.ttl> ;
      sht:focus <http://a.example/n1a>
    ] ;
    .

<#refBNodeORrefIRI_ReflexiveShortIRI> a sht:ValidationFailure ;
    mf:name "refBNodeORrefIRI_ReflexiveShortIRI" ;
    sht:trait sht:OrValueExpression , sht:ValueReference ;
    rdfs:comment "<S1> { <p1> BNODE @<S1> OR MINLENGTH 20 @<S1> } on { <n1> <p1> <n1> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1bnodeRefORRefMinlength.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <In1_Ip1_In1.ttl> ;
      sht:focus <http://a.example/n1>
    ] ;
    .

<#refBNodeORrefIRI_IntoReflexiveIRI> a sht:ValidationTest ;
    mf:name "refBNodeORrefIRI_IntoReflexiveIRI" ;
    sht:trait sht:OrValueExpression , sht:ValueReference ;
    rdfs:comment "<S1> { <p1> BNODE @<S1> OR MINLENGTH 20 @<S1> } on { <n1> <p1> <n2a> . <n2a> <p1> <n2a> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1bnodeRefORRefMinlength.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <In1_Ip1_In2a.In2a_Ip1_In2a.ttl> ;
      sht:focus <http://a.example/n1>
    ] ;
    .

<#refBNodeORrefIRI_IntoReflexiveBNode> a sht:ValidationTest ;
    mf:name "refBNodeORrefIRI_IntoReflexiveBNode" ;
    sht:trait sht:OrValueExpression , sht:ValueReference ;
    rdfs:comment "<S1> { <p1> BNODE @<S1> OR MINLENGTH 20 @<S1> } on { <n1> <p1> _:n2 . _:n2 <p1> _:n2 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1bnodeRefORRefMinlength.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <In1_Ip1_Bn2.Bn2_Ip1_Bn2.ttl> ;
      sht:focus <http://a.example/n1>
    ] ;
    .

<#refBNodeORrefIRI_CyclicIRI_IRI> a sht:ValidationTest ;
    mf:name "refBNodeORrefIRI_CyclicIRI_IRI" ;
    sht:trait sht:OrValueExpression , sht:ValueReference ;
    rdfs:comment "<S1> { <p1> BNODE @<S1> OR MINLENGTH 20 @<S1> } on { <n1a> <p1> <n2a> . <n2a> <p1> <n1a> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1bnodeRefORRefMinlength.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <In1a_Ip1_In2a.In2a_Ip1_In1a.ttl> ;
      sht:focus <http://a.example/n1a>
    ] ;
    .

<#refBNodeORrefIRI_CyclicIRI_BNode> a sht:ValidationTest ;
    mf:name "refBNodeORrefIRI_CyclicIRI_BNode" ;
    sht:trait sht:OrValueExpression , sht:ValueReference ;
    rdfs:comment "<S1> { <p1> BNODE @<S1> OR MINLENGTH 20 @<S1> } on { <n1a> <p1> _:n2 . _:n2 <p1> <n1a> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1bnodeRefORRefMinlength.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <In1a_Ip1_Bn2.Bn2_Ip1_In1a.ttl> ;
      sht:focus <http://a.example/n1a>
    ] ;
    .

<#refBNodeORrefIRI_CyclicIRI_ShortIRI> a sht:ValidationFailure ;
    mf:name "refBNodeORrefIRI_CyclicIRI_ShortIRI" ;
    sht:trait sht:OrValueExpression , sht:ValueReference ;
    rdfs:comment "<S1> { <p1> BNODE @<S1> OR MINLENGTH 20 @<S1> } on { <n1> <p1> <n2a> . <n2a> <p1> <n1> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1bnodeRefORRefMinlength.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <In1_Ip1_In2a.In2a_Ip1_In1.ttl> ;
      sht:focus <http://a.example/n1>
    ] ;
    .

<#1dotRefOR3_fail> a sht:ValidationFailure ;
    mf:name "1dotRefOR3_fail" ;
    sht:trait sht:OrValueExpression , sht:ValueReference ;
    rdfs:comment "<S1> { <p1> @<S2> OR @<S3> OR @<S4> } <S2> { <p2> . } <S3> { <p3> . } <S4> { <p4> . } on { <n1> <p1> <n2> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1dotRefOR3.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <In1_Ip1_In2.ttl> ;
      sht:focus <http://a.example/n1>
    ] ;
    .

<#1dotRefOR3_passShape1> a sht:ValidationTest ;
    mf:name "1dotRefOR3_passShape1" ;
    sht:trait sht:OrValueExpression , sht:ValueReference ;
    rdfs:comment "<S1> { <p1> @<S2> OR @<S3> OR @<S4> } <S2> { <p2> . } <S3> { <p3> . } <S4> { <p4> . } on { <s1> <p1> <n2> . <n2> <p2> \"X\" }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1dotRefOR3.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <In1_Ip1_In2.In2_Ip2_LX.ttl> ;
      sht:focus <http://a.example/n1>
    ]
    .

<#1dotRefOR3_passShape2> a sht:ValidationTest ;
    mf:name "1dotRefOR3_passShape2" ;
    sht:trait sht:OrValueExpression , sht:ValueReference ;
    rdfs:comment "<S1> { <p1> @<S2> OR @<S3> OR @<S4> } <S2> { <p2> . } <S3> { <p3> . } <S4> { <p4> . } on { <s1> <p1> <n3> . <n3> <p3> \"X\" }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1dotRefOR3.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <In1_Ip1_In3.In3_Ip3_LX.ttl> ;
      sht:focus <http://a.example/n1>
    ]
    .

<#1dotRefOR3_passShape3> a sht:ValidationTest ;
    mf:name "1dotRefOR3_passShape3" ;
    sht:trait sht:OrValueExpression , sht:ValueReference ;
    rdfs:comment "<S1> { <p1> @<S2> OR @<S3> OR @<S4> } <S2> { <p2> . } <S3> { <p3> . } <S4> { <p4> . } on { <s1> <p1> <n4> . <n4> <p4> \"X\" }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1dotRefOR3.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <In1_Ip1_In4.In4_Ip4_LX.ttl> ;
      sht:focus <http://a.example/n1>
    ]
    .

<#1dotRefOR3_passShape1Shape2Shape3> a sht:ValidationTest ;
    mf:name "1dotRefOR3_passShape1Shape2Shape3" ;
    sht:trait sht:OrValueExpression , sht:ValueReference ;
    rdfs:comment "<S1> { <p1> @<S2> OR @<S3> OR @<S4> } <S2> { <p2> . } <S3> { <p3> . } <S4> { <p4> . } on { <s1> <p1> <s2>, <s3>, <s4> . <s2> <p2> \"X\" . <s3> <p3> \"X\" . <s4> <p4> \"X\" }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1dotRefOR3.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <In1_Ip1_In2.In2_Ipx_LXX3.ttl> ;
      sht:focus <http://a.example/n1>
    ]
    .

<#1val1vExpr1OR1OR1Ref3_fail> a sht:ValidationFailure ;
    mf:name "1val1vExpr1OR1OR1Ref3_fail" ;
    sht:trait sht:OrValueExpression , sht:ValueReference ;
    rdfs:comment "<vc1> = ... <vc3> = ... <S> { <p1> @<vc1> OR ... @<vc3> } on { <s1> <p1> 'a' }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1val1vExpr1OR1OR1Ref3.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_La.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1val1vExpr1OR1OR1Ref3_passvc1> a sht:ValidationTest ;
    mf:name "1val1vExpr1OR1OR1Ref3_passvc1" ;
    sht:trait sht:OrValueExpression , sht:ValueReference ;
    rdfs:comment "<vc1> = ... <vc3> = ... <S> { <p1> @<vc1> OR ... @<vc3> } on { <s1> <p1> 'ab' }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1val1vExpr1OR1OR1Ref3.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Lab.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1val1vExpr1OR1OR1Ref3_passvc2> a sht:ValidationTest ;
    mf:name "1val1vExpr1OR1OR1Ref3_passvc2" ;
    sht:trait sht:OrValueExpression , sht:ValueReference ;
    rdfs:comment "<vc1> = ... <vc3> = ... <S> { <p1> @<vc1> OR ... @<vc3> } on { <s1> <p1> 'cd' }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1val1vExpr1OR1OR1Ref3.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Lcd.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1val1vExpr1OR1OR1Ref3_passvc3> a sht:ValidationTest ;
    mf:name "1val1vExpr1OR1OR1Ref3_passvc3" ;
    sht:trait sht:OrValueExpression , sht:ValueReference ;
    rdfs:comment "<vc1> = ... <vc3> = ... <S> { <p1> @<vc1> OR ... @<vc3> } on { <s1> <p1> 'ef' }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1val1vExpr1OR1OR1Ref3.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Lef.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1val1vExpr1OR1OR1Ref3_passvc1vc2vc3> a sht:ValidationTest ;
    mf:name "1val1vExpr1OR1OR1Ref3_passvc1vc2vc3" ;
    sht:trait sht:OrValueExpression , sht:ValueReference ;
    rdfs:comment "<vc1> = ... <vc3> = ... <S> { <p1> @<vc1> OR ... @<vc3> } on { <s1> <p1> 'abcdef' }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1val1vExpr1OR1OR1Ref3.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Labcdef.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1val1vExprRefOR3_fail> a sht:ValidationFailure ;
    mf:name "1val1vExprRefOR3_fail" ;
    sht:trait sht:OrValueExpression , sht:ValueReference ;
    rdfs:comment "<vc1> = ... <vc3> = ... <vc4> = @<vc1> OR ... @<vc3> <S> { <p1> @<vc4> } on { <s1> <p1> 'a' }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1val1vExprRefOR3.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_La.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1val1vExprRefOR3_passvc1> a sht:ValidationTest ;
    mf:name "1val1vExprRefOR3_passvc1" ;
    sht:trait sht:OrValueExpression , sht:ValueReference ;
    rdfs:comment "<vc1> = ... <vc3> = ... <vc4> = @<vc1> OR ... @<vc3> <S> { <p1> @<vc4> } on { <s1> <p1> 'ab' }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1val1vExprRefOR3.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Lab.ttl> ;
      sht:focus <http://a.example/s1>
    ] # !! ShapeOrResults with no solutions.
    .

<#1val1vExprRefOR3_passvc2> a sht:ValidationTest ;
    mf:name "1val1vExprRefOR3_passvc2" ;
    sht:trait sht:OrValueExpression , sht:ValueReference ;
    rdfs:comment "<vc1> = ... <vc3> = ... <vc4> = @<vc1> OR ... @<vc3> <S> { <p1> @<vc4> } on { <s1> <p1> 'cd' }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1val1vExprRefOR3.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Lcd.ttl> ;
      sht:focus <http://a.example/s1>
    ] # !! ShapeOrResults with no solutions.
    .

<#1val1vExprRefOR3_passvc3> a sht:ValidationTest ;
    mf:name "1val1vExprRefOR3_passvc3" ;
    sht:trait sht:OrValueExpression , sht:ValueReference ;
    rdfs:comment "<vc1> = ... <vc3> = ... <vc4> = @<vc1> OR ... @<vc3> <S> { <p1> @<vc4> } on { <s1> <p1> 'ef' }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1val1vExprRefOR3.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Lef.ttl> ;
      sht:focus <http://a.example/s1>
    ] # !! ShapeOrResults with no solutions.
    .

<#1val1vExprRefOR3_passvc1vc2vc3> a sht:ValidationTest ;
    mf:name "1val1vExprRefOR3_passvc1vc2vc3" ;
    sht:trait sht:OrValueExpression , sht:ValueReference ;
    rdfs:comment "<vc1> = ... <vc3> = ... <vc4> = @<vc1> OR ... @<vc3> <S> { <p1> @<vc4> } on { <s1> <p1> 'abcdef' }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1val1vExprRefOR3.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Labcdef.ttl> ;
      sht:focus <http://a.example/s1>
    ] # !! ShapeOrResults with no solutions.
    .

<#1val1vExprOR3_fail> a sht:ValidationFailure ;
    mf:name "1val1vExprOR3_fail" ;
    sht:trait sht:OrValueExpression ;
    rdfs:comment "<S> { <p1> /^ab/ OR /cd/ OR /ef$/ } on { <s1> <p1> 'a' }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1val1vExprOR3.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_La.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1val1vExprOR3_passvc1> a sht:ValidationTest ;
    mf:name "1val1vExprOR3_passvc1" ;
    sht:trait sht:OrValueExpression ;
    rdfs:comment "<S> { <p1> /^ab/ OR /cd/ OR /ef$/ } on { <s1> <p1> 'ab' }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1val1vExprOR3.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Lab.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1val1vExprOR3_passvc2> a sht:ValidationTest ;
    mf:name "1val1vExprOR3_passvc2" ;
    sht:trait sht:OrValueExpression ;
    rdfs:comment "<S> { <p1> /^ab/ OR /cd/ OR /ef$/ } on { <s1> <p1> 'cd' }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1val1vExprOR3.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Lcd.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1val1vExprOR3_passvc3> a sht:ValidationTest ;
    mf:name "1val1vExprOR3_passvc3" ;
    sht:trait sht:OrValueExpression ;
    rdfs:comment "<S> { <p1> /^ab/ OR /cd/ OR /ef$/ } on { <s1> <p1> 'ef' }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1val1vExprOR3.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Lef.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1val1vExprOR3_passvc1vc2vc3> a sht:ValidationTest ;
    mf:name "1val1vExprOR3_passvc1vc2vc3" ;
    sht:trait sht:OrValueExpression ;
    rdfs:comment "<S> { <p1> /^ab/ OR /cd/ OR /ef$/ } on { <s1> <p1> 'abcdef' }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1val1vExprOR3.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Labcdef.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

###   } OR valueExpr
###   NOT valueExpr {

<#1NOTIRI_passLv> a sht:ValidationTest ;
    mf:name "1NOTIRI_passLv" ;
    sht:trait sht:TriplePattern ;
    rdfs:comment "<S1> { <p1> NOT IRI } on { <s1> <p1> 'v' }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1NOTIRI.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data  <Is1_Ip1_Lv.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1NOTIRI_failIo1> a sht:ValidationFailure ;
    mf:name "1NOTIRI_failIo1" ;
    sht:trait sht:TriplePattern ;
    rdfs:comment "<S1> { <p1> NOT IRI } on { <s1> <p1> <o1> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1NOTIRI.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data  <Is1_Ip1_Io1.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1NOTIRI_failempty> a sht:ValidationFailure ; ;
    mf:name "1NOTIRI_failempty" ;
    sht:trait sht:TriplePattern ;
    rdfs:comment "<S1> { <p1> NOT IRI } on {  }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1NOTIRI.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data  <empty.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1NOTNOTIRI_failLv> a sht:ValidationFailure ;
    mf:name "1NOTNOTIRI_failLv" ;
    sht:trait sht:TriplePattern ;
    rdfs:comment "<S1> { <p1> NOT(NOT IRI) } on { <s1> <p1> 'v' }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1NOTNOTIRI.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data  <Is1_Ip1_Lv.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1NOTNOTIRI_passIo1> a sht:ValidationTest ;
    mf:name "1NOTNOTIRI_passIo1" ;
    sht:trait sht:TriplePattern ;
    rdfs:comment "<S1> { <p1> NOT(NOT IRI) } on { <s1> <p1> <o1> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1NOTNOTIRI.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data  <Is1_Ip1_Io1.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1NOTvs_failIv1> a sht:ValidationFailure ;
    mf:name "1NOTvs_failIv1" ;
    sht:trait sht:ValueSet ;
    rdfs:comment "<S1> { <p1> NOT [<v1> <v2> <v3>] } on { <s1> <p1> <v1> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1NOTvs.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data  <Is1_Ip1_Iv1.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1NOTvs_passIo1> a sht:ValidationTest ;
    mf:name "1NOTvs_passIo1" ;
    sht:trait sht:TriplePattern ;
    rdfs:comment "<S1> { <p1> NOT [<v1> <v2> <v3>] } on { <s1> <p1> <o1> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1NOTvs.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data  <Is1_Ip1_Io1.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1NOTvs_failempty> a sht:ValidationFailure ; ;
    mf:name "1NOTvs_failempty" ;
    sht:trait sht:TriplePattern ;
    rdfs:comment "<S1> { <p1> NOT [<v1> <v2> <v3>] } on {  }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1NOTvs.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data  <empty.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .
<#1NOTNOTvs_passIv1> a sht:ValidationTest ;
    mf:name "1NOTNOTvs_passIv1" ;
    sht:trait sht:ValueSet ;
    rdfs:comment "<S1> { <p1> NOT(NOT [<v1>]) } on { <s1> <p1> <v1> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1NOTNOTvs.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data  <Is1_Ip1_Iv1.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1NOTNOTvs_failIo1> a sht:ValidationFailure ;
    mf:name "1NOTNOTvs_failIo1" ;
    sht:trait sht:TriplePattern ;
    rdfs:comment "<S1> { <p1> NOT(NOT [<v1>]) } on { <s1> <p1> <o1> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1NOTNOTvs.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data  <Is1_Ip1_Io1.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1NOTdot_failIv1> a sht:ValidationFailure ;
    mf:name "1NOTdot_failIv1" ;
    sht:trait sht:ValueSet ;
    rdfs:comment "<S1> { <p1> NOT . } on { <s1> <p1> <v1> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1NOTdot.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data  <Is1_Ip1_Iv1.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1NOTdot_failIo1> a sht:ValidationFailure ;
    mf:name "1NOTdot_failIo1" ;
    sht:trait sht:TriplePattern ;
    rdfs:comment "<S1> { <p1> NOT . } on { <s1> <p1> <o1> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1NOTdot.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data  <Is1_Ip1_Io1.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1NOTdot_failempty> a sht:ValidationFailure ; ;
    mf:name "1NOTdot_failempty" ;
    sht:trait sht:Wildcard ;
    rdfs:comment "<S1> { <p1> NOT . } on {  }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1NOTdot.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data  <empty.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .
<#1NOTNOTdot_passIv1> a sht:ValidationTest ;
    mf:name "1NOTNOTdot_passIv1" ;
    sht:trait sht:ValueSet ;
    rdfs:comment "<S1> { <p1> NOT(NOT .) } on { <s1> <p1> <v1> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1NOTNOTdot.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data  <Is1_Ip1_Iv1.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1NOTNOTdot_passIo1> a sht:ValidationTest ;
    mf:name "1NOTNOTdot_passIo1" ;
    sht:trait sht:TriplePattern ;
    rdfs:comment "<S1> { <p1> NOT(NOT .) } on { <s1> <p1> <o1> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1NOTNOTdot.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data  <Is1_Ip1_Io1.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1_NOTliteral_ANDvs_passIv1> a sht:ValidationTest ;
    mf:name "1_NOTliteral_ANDvs_passIv1" ;
    sht:trait sht:ValueSet ;
    rdfs:comment "<S1> { <p1> (NOT  LITERAL) AND [<v1> <v2>]  } on { <s1> <p1> <v1> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1_NOTliteral_ANDvs.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data  <Is1_Ip1_Iv1.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1_NOTliteral_ANDvs_failIo1> a sht:ValidationFailure ;
    mf:name "1_NOTliteral_ANDvs_failIo1" ;
    sht:trait sht:TriplePattern ;
    rdfs:comment "<S1> { <p1> (NOT  LITERAL) AND [<v1> <v2>]  } on { <s1> <p1> <o1> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1_NOTliteral_ANDvs.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data  <Is1_Ip1_Io1.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1_NOTliteral_ANDvs_failLv> a sht:ValidationFailure ;
    mf:name "1_NOTliteral_ANDvs_failLv" ;
    sht:trait sht:TriplePattern ;
    rdfs:comment "<S1> { <p1> (NOT  LITERAL) AND [<v1> <v2>]  } on { <s1> <p1> 'v' }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1_NOTliteral_ANDvs.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data  <Is1_Ip1_Lv.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1NOT_literalANDvs__passIv1> a sht:ValidationTest ;
    mf:name "1NOT_literalANDvs__passIv1" ;
    sht:trait sht:ValueSet ;
    rdfs:comment "<S1> { <p1>  NOT (LITERAL  AND [<v1> <v2>]) } on { <s1> <p1> <v1> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1NOT_literalANDvs_.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data  <Is1_Ip1_Iv1.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1NOT_literalANDvs__passLv> a sht:ValidationTest ;
    mf:name "1NOT_literalANDvs__passLv" ;
    sht:trait sht:TriplePattern ;
    rdfs:comment "<S1> { <p1>  NOT (LITERAL  AND [<v1> <v2>]) } on { <s1> <p1> 'v' }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1NOT_literalANDvs_.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data  <Is1_Ip1_Lv.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1NOTliteralANDvs_passIv1> a sht:ValidationTest ;
    mf:name "1NOTliteralANDvs_passIv1" ;
    sht:trait sht:ValueSet ;
    rdfs:comment "<S1> { <p1>  NOT  LITERAL  AND [<v1> <v2>]  } on { <s1> <p1> <v1> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1NOTliteralANDvs.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data  <Is1_Ip1_Iv1.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1NOTliteralANDvs_failIo1> a sht:ValidationFailure ;
    mf:name "1NOTliteralANDvs_failIo1" ;
    sht:trait sht:TriplePattern ;
    rdfs:comment "<S1> { <p1>  NOT  LITERAL  AND [<v1> <v2>]  } on { <s1> <p1> <o1> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1NOTliteralANDvs.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data  <Is1_Ip1_Io1.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1NOTliteralANDvs_failLv> a sht:ValidationFailure ;
    mf:name "1NOTliteralANDvs_failLv" ;
    sht:trait sht:TriplePattern ;
    rdfs:comment "<S1> { <p1>  NOT  LITERAL  AND [<v1> <v2>]  } on { <s1> <p1> 'v' }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1NOTliteralANDvs.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data  <Is1_Ip1_Lv.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1_NOTvs_ANDvs_failIv1> a sht:ValidationFailure ;
    mf:name "1_NOTvs_ANDvs_failIv1" ;
    sht:trait sht:ValueSet ;
    rdfs:comment "<S1> { <p1> (NOT  [<v1>]) AND [<v2>]  } on { <s1> <p1> <v1> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1_NOTvs_ANDvs.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data  <Is1_Ip1_Iv1.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1_NOTvs_ANDvs_passIv2> a sht:ValidationTest ;
    mf:name "1_NOTvs_ANDvs_passIv2" ;
    sht:trait sht:ValueSet ;
    rdfs:comment "<S1> { <p1> (NOT  [<v1>]) AND [<v2>]  } on { <s1> <p1> <v2> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1_NOTvs_ANDvs.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data  <Is1_Ip1_Iv2.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1_NOTvs_ANDvs_failIv3> a sht:ValidationFailure ;
    mf:name "1_NOTvs_ANDvs_failIv3" ;
    sht:trait sht:ValueSet ;
    rdfs:comment "<S1> { <p1> (NOT  [<v1>]) AND [<v2>]  } on { <s1> <p1> <v3> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1_NOTvs_ANDvs.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data  <Is1_Ip1_Iv3.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1NOT_vsANDvs__passIv1> a sht:ValidationTest ;
    mf:name "1NOT_vsANDvs__passIv1" ;
    sht:trait sht:ValueSet ;
    rdfs:comment "<S1> { <p1>  NOT ([<v1>]  AND [<v2>]) } on { <s1> <p1> <v1> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1NOT_vsANDvs_.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data  <Is1_Ip1_Iv1.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1NOT_vsANDvs__passIv2> a sht:ValidationTest ;
    mf:name "1NOT_vsANDvs__passIv2" ;
    sht:trait sht:ValueSet ;
    rdfs:comment "<S1> { <p1>  NOT ([<v1>]  AND [<v2>]) } on { <s1> <p1> <v2> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1NOT_vsANDvs_.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data  <Is1_Ip1_Iv2.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1NOT_vsANDvs__passIv3> a sht:ValidationTest ;
    mf:name "1NOT_vsANDvs__passIv3" ;
    sht:trait sht:ValueSet ;
    rdfs:comment "<S1> { <p1>  NOT ([<v1>]  AND [<v2>]) } on { <s1> <p1> <v3> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1NOT_vsANDvs_.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data  <Is1_Ip1_Iv3.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1NOTvsANDvs_failIv1> a sht:ValidationFailure ;
    mf:name "1NOTvsANDvs_failIv1" ;
    sht:trait sht:ValueSet ;
    rdfs:comment "<S1> { <p1>  NOT  [<v1>]  AND [<v2>]  } on { <s1> <p1> <v1> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1NOTvsANDvs.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data  <Is1_Ip1_Iv1.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1NOTvsANDvs_passIv2> a sht:ValidationTest ;
    mf:name "1NOTvsANDvs_passIv2" ;
    sht:trait sht:ValueSet ;
    rdfs:comment "<S1> { <p1>  NOT  [<v1>]  AND [<v2>]  } on { <s1> <p1> <v2> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1NOTvsANDvs.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data  <Is1_Ip1_Iv2.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1NOTvsANDvs_failIv3> a sht:ValidationFailure ;
    mf:name "1NOTvsANDvs_failIv3" ;
    sht:trait sht:ValueSet ;
    rdfs:comment "<S1> { <p1>  NOT  [<v1>]  AND [<v2>]  } on { <s1> <p1> <v3> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1NOTvsANDvs.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data  <Is1_Ip1_Iv3.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1_NOTliteral_ORvs_passIv1> a sht:ValidationTest ;
    mf:name "1_NOTliteral_ORvs_passIv1" ;
    sht:trait sht:ValueSet ;
    rdfs:comment "<S1> { <p1> (NOT  LITERAL) OR [<v1> <v2>]  } on { <s1> <p1> <v1> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1_NOTliteral_ORvs.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data  <Is1_Ip1_Iv1.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1_NOTliteral_ORvs_passIo1> a sht:ValidationTest ;
    mf:name "1_NOTliteral_ORvs_passIo1" ;
    sht:trait sht:TriplePattern ;
    rdfs:comment "<S1> { <p1> (NOT  LITERAL) OR [<v1> <v2>]  } on { <s1> <p1> <o1> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1_NOTliteral_ORvs.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data  <Is1_Ip1_Io1.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1_NOTliteral_ORvs_failLv> a sht:ValidationFailure ;
    mf:name "1_NOTliteral_ORvs_failLv" ;
    sht:trait sht:TriplePattern ;
    rdfs:comment "<S1> { <p1> (NOT  LITERAL) OR [<v1> <v2>]  } on { <s1> <p1> 'v' }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1_NOTliteral_ORvs.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data  <Is1_Ip1_Lv.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1NOT_literalORvs__failIv1> a sht:ValidationFailure ;
    mf:name "1NOT_literalORvs__failIv1" ;
    sht:trait sht:ValueSet ;
    rdfs:comment "<S1> { <p1>  NOT (LITERAL  OR [<v1> <v2>]) } on { <s1> <p1> <v1> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1NOT_literalORvs_.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data  <Is1_Ip1_Iv1.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1NOT_literalORvs__passIo1> a sht:ValidationTest ;
    mf:name "1NOT_literalORvs__passIo1" ;
    sht:trait sht:TriplePattern ;
    rdfs:comment "<S1> { <p1>  NOT (LITERAL  OR [<v1> <v2>]) } on { <s1> <p1> <o1> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1NOT_literalORvs_.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data  <Is1_Ip1_Io1.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1NOT_literalORvs__failLv> a sht:ValidationFailure ;
    mf:name "1NOT_literalORvs__failLv" ;
    sht:trait sht:TriplePattern ;
    rdfs:comment "<S1> { <p1>  NOT (LITERAL  OR [<v1> <v2>]) } on { <s1> <p1> 'v' }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1NOT_literalORvs_.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data  <Is1_Ip1_Lv.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1NOTliteralORvs_passIv1> a sht:ValidationTest ;
    mf:name "1NOTliteralORvs_passIv1" ;
    sht:trait sht:ValueSet ;
    rdfs:comment "<S1> { <p1>  NOT  LITERAL  OR [<v1> <v2>]  } on { <s1> <p1> <v1> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1NOTliteralORvs.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data  <Is1_Ip1_Iv1.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1NOTliteralORvs_passIo1> a sht:ValidationTest ;
    mf:name "1NOTliteralORvs_passIo1" ;
    sht:trait sht:TriplePattern ;
    rdfs:comment "<S1> { <p1>  NOT  LITERAL  OR [<v1> <v2>]  } on { <s1> <p1> <o1> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1NOTliteralORvs.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data  <Is1_Ip1_Io1.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1NOTliteralORvs_failLv> a sht:ValidationFailure ;
    mf:name "1NOTliteralORvs_failLv" ;
    sht:trait sht:TriplePattern ;
    rdfs:comment "<S1> { <p1>  NOT  LITERAL  OR [<v1> <v2>]  } on { <s1> <p1> 'v' }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1NOTliteralORvs.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data  <Is1_Ip1_Lv.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1_NOTvs_ORvs_failIv1> a sht:ValidationFailure ;
    mf:name "1_NOTvs_ORvs_failIv1" ;
    sht:trait sht:ValueSet ;
    rdfs:comment "<S1> { <p1> (NOT  [<v1>]) OR [<v2>]  } on { <s1> <p1> <v1> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1_NOTvs_ORvs.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data  <Is1_Ip1_Iv1.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1_NOTvs_ORvs_passIv2> a sht:ValidationTest ;
    mf:name "1_NOTvs_ORvs_passIv2" ;
    sht:trait sht:ValueSet ;
    rdfs:comment "<S1> { <p1> (NOT  [<v1>]) OR [<v2>]  } on { <s1> <p1> <v2> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1_NOTvs_ORvs.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data  <Is1_Ip1_Iv2.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1_NOTvs_ORvs_passIv3> a sht:ValidationTest ;
    mf:name "1_NOTvs_ORvs_passIv3" ;
    sht:trait sht:ValueSet ;
    rdfs:comment "<S1> { <p1> (NOT  [<v1>]) OR [<v2>]  } on { <s1> <p1> <v3> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1_NOTvs_ORvs.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data  <Is1_Ip1_Iv3.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1NOT_vsORvs__failIv1> a sht:ValidationFailure ;
    mf:name "1NOT_vsORvs__failIv1" ;
    sht:trait sht:ValueSet ;
    rdfs:comment "<S1> { <p1>  NOT ([<v1>]  OR [<v2>]) } on { <s1> <p1> <v1> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1NOT_vsORvs_.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data  <Is1_Ip1_Iv1.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1NOT_vsORvs__failIv2> a sht:ValidationFailure ;
    mf:name "1NOT_vsORvs__failIv2" ;
    sht:trait sht:ValueSet ;
    rdfs:comment "<S1> { <p1>  NOT ([<v1>]  OR [<v2>]) } on { <s1> <p1> <v2> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1NOT_vsORvs_.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data  <Is1_Ip1_Iv2.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1NOT_vsORvs__passIv3> a sht:ValidationTest ;
    mf:name "1NOT_vsORvs__passIv3" ;
    sht:trait sht:ValueSet ;
    rdfs:comment "<S1> { <p1>  NOT ([<v1>]  OR [<v2>]) } on { <s1> <p1> <v3> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1NOT_vsORvs_.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data  <Is1_Ip1_Iv3.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1NOTvsORvs_failIv1> a sht:ValidationFailure ;
    mf:name "1NOTvsORvs_failIv1" ;
    sht:trait sht:ValueSet ;
    rdfs:comment "<S1> { <p1>  NOT  [<v1>]  OR [<v2>]  } on { <s1> <p1> <v1> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1NOTvsORvs.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data  <Is1_Ip1_Iv1.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1NOTvsORvs_passIv2> a sht:ValidationTest ;
    mf:name "1NOTvsORvs_passIv2" ;
    sht:trait sht:ValueSet ;
    rdfs:comment "<S1> { <p1>  NOT  [<v1>]  OR [<v2>]  } on { <s1> <p1> <v2> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1NOTvsORvs.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data  <Is1_Ip1_Iv2.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1NOTvsORvs_passIv3> a sht:ValidationTest ;
    mf:name "1NOTvsORvs_passIv3" ;
    sht:trait sht:ValueSet ;
    rdfs:comment "<S1> { <p1>  NOT  [<v1>]  OR [<v2>]  } on { <s1> <p1> <v3> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1NOTvsORvs.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data  <Is1_Ip1_Iv3.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#NOT1NOTvs_passIv1> a sht:ValidationTest ;
    mf:name "NOT1NOTvs_passIv1" ;
    sht:trait sht:ValueSet ;
    rdfs:comment "<S1> NOT { <p1> NOT [<v1> <v2>] } on { <s1> <p1> <v1> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/NOT1NOTvs.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data  <Is1_Ip1_Iv1.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#NOT1NOTvs_passIv2> a sht:ValidationTest ;
    mf:name "NOT1NOTvs_passIv2" ;
    sht:trait sht:ValueSet ;
    rdfs:comment "<S1> NOT { <p1> NOT [<v1> <v2>] } on { <s1> <p1> <v2> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/NOT1NOTvs.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data  <Is1_Ip1_Iv2.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#NOT1NOTvs_failIv3> a sht:ValidationFailure ;
    mf:name "NOT1NOTvs_failIv3" ;
    sht:trait sht:ValueSet ;
    rdfs:comment "<S1> NOT { <p1> NOT [<v1> <v2>] } on { <s1> <p1> <v3> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/NOT1NOTvs.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data  <Is1_Ip1_Iv3.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

###   } NOT valueExpr
###   AND OR valueExpr {

<#1val1vExpr1AND1OR1Ref3_pass-vc1vc2> a sht:ValidationTest ;
    mf:name "1val1vExpr1AND1OR1Ref3_pass-vc1vc2" ;
    sht:trait sht:AndValueExpression , sht:ValueReference ;
    rdfs:comment "<vc1> ... <vc3> ... <S> { <p1> @<vc1> AND @<vc2> OR @<vc3> } on { <s1> <p1> 'abcd' }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1val1vExpr1AND1OR1Ref3.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Labcd.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1val1vExpr1AND1OR1Ref3_pass-vc1vc2vc3> a sht:ValidationTest ;
    mf:name "1val1vExpr1AND1OR1Ref3_pass-vc1vc2vc3" ;
    sht:trait sht:AndValueExpression , sht:ValueReference ;
    rdfs:comment "<vc1> ... <vc3> ... <S> { <p1> @<vc1> AND @<vc2> OR @<vc3> } on { <s1> <p1> 'abab' }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1val1vExpr1AND1OR1Ref3.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Labab.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1val1vExpr1AND1OR1Ref3_pass-vc1vc3> a sht:ValidationTest ;
    mf:name "1val1vExpr1AND1OR1Ref3_pass-vc1vc3" ;
    sht:trait sht:AndValueExpression , sht:ValueReference ;
    rdfs:comment "<vc1> ... <vc3> ... <S> { <p1> @<vc1> AND @<vc2> OR @<vc3> } on { <s1> <p1> 'ababab' }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1val1vExpr1AND1OR1Ref3.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Lababab.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1val1vExpr1AND1OR1Ref3_failvc1vc3> a sht:ValidationFailure ;
    mf:name "1val1vExpr1AND1OR1Ref3_failvc1vc3" ;
    sht:trait sht:AndValueExpression , sht:ValueReference ;
    rdfs:comment "<vc1> ... <vc3> ... <S> { <p1> @<vc1> AND ... @<vc3> } on { <s1> <p1> 'abc' }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1val1vExpr1AND1OR1Ref3.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Labc.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1val1vExpr1AND1OR1Ref3_failvc2vc3> a sht:ValidationFailure ;
    mf:name "1val1vExpr1AND1OR1Ref3_failvc2vc3" ;
    sht:trait sht:AndValueExpression , sht:ValueReference ;
    rdfs:comment "<vc1> ... <vc3> ... <S> { <p1> @<vc1> AND ... @<vc3> } on { <s1> <p1> 'abcdef' }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1val1vExpr1AND1OR1Ref3.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Labcdef.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1val1vExpr1AND1OR1Ref3_failvc1vc2vc3> a sht:ValidationFailure ;
    mf:name "1val1vExpr1AND1OR1Ref3_failvc1vc2vc3" ;
    sht:trait sht:AndValueExpression , sht:ValueReference ;
    rdfs:comment "<vc1> ... <vc3> ... <S> { <p1> @<vc1> AND ... @<vc3> } on { <s1> <p1> 'a' }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1val1vExpr1AND1OR1Ref3.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_La.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

 # >5 | ( <3 & /^(ab)*$/ )
 # 1    abcdef
 # 13   ababab
 # 23   ab

<#1val1vExpr1OR1AND1Ref3_pass-vc1> a sht:ValidationTest ;
    mf:name "1val1vExpr1OR1AND1Ref3_pass-vc1" ;
    sht:trait sht:AndValueExpression , sht:ValueReference ;
    rdfs:comment "<vc1> ... <vc3> ... <vc4> = @<vc1> AND @<vc2> OR @<vc3> <S> { <p1> @<vc4> } on { <s1> <p1> 'abcdef' }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1val1vExpr1OR1AND1Ref3.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Labcdef.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1val1vExpr1OR1AND1Ref3_pass-vc1vc3> a sht:ValidationTest ;
    mf:name "1val1vExpr1OR1AND1Ref3_pass-vc1vc3" ;
    sht:trait sht:AndValueExpression , sht:ValueReference ;
    rdfs:comment "<vc1> ... <vc3> ... <vc4> = @<vc1> AND @<vc2> OR @<vc3> <S> { <p1> @<vc4> } on { <s1> <p1> 'ababab' }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1val1vExpr1OR1AND1Ref3.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Lababab.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1val1vExpr1OR1AND1Ref3_pass-vc2vc3> a sht:ValidationTest ;
    mf:name "1val1vExpr1OR1AND1Ref3_pass-vc2vc3" ;
    sht:trait sht:AndValueExpression , sht:ValueReference ;
    rdfs:comment "<vc1> ... <vc3> ... <vc4> = @<vc1> AND @<vc2> OR @<vc3> <S> { <p1> @<vc4> } on { <s1> <p1> 'ab' }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1val1vExpr1OR1AND1Ref3.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Lab.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

 # >5 | ( <3 & /^(ab)*$/ )
 # !1!2    abab
 # !1!3    cd
 # !1!2!3  abcd
<#1val1vExpr1OR1AND1Ref3_failvc1vc2> a sht:ValidationFailure ;
    mf:name "1val1vExpr1OR1AND1Ref3_failvc1vc2" ;
    sht:trait sht:AndValueExpression , sht:ValueReference ;
    rdfs:comment "<vc1> ... <vc3> ... <vc4> = @<vc1> AND @<vc2> OR @<vc3> <S> { <p1> @<vc4> } on { <s1> <p1> 'abab' }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1val1vExpr1OR1AND1Ref3.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Labab.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1val1vExpr1OR1AND1Ref3_failvc1vc3> a sht:ValidationFailure ;
    mf:name "1val1vExpr1OR1AND1Ref3_failvc1vc3" ;
    sht:trait sht:AndValueExpression , sht:ValueReference ;
    rdfs:comment "<vc1> ... <vc3> ... <vc4> = @<vc1> AND @<vc2> OR @<vc3> <S> { <p1> @<vc4> } on { <s1> <p1> 'cd' }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1val1vExpr1OR1AND1Ref3.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Lcd.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

<#1val1vExpr1OR1AND1Ref3_failvc1vc2vc3> a sht:ValidationFailure ;
    mf:name "1val1vExpr1OR1AND1Ref3_failvc1vc2vc3" ;
    sht:trait sht:AndValueExpression , sht:ValueReference ;
    rdfs:comment "<vc1> ... <vc3> ... <S> { <p1> @<vc1> OR @<vc2> AND @<vc3> } on { <s1> <p1> 'abcd' }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1val1vExpr1OR1AND1Ref3.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Labcd.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    .

###   } AND OR valueExpr
## } value expressions
## repetitions {

 # sht:RepeatedGroup e.g. <S> { (:fname .; :lname .){2} }

<#open3Onedotclosecard2_fail-p1> a sht:ValidationFailure ;
    mf:name "open3Onedotclosecard2_fail-p1" ;
    sht:trait sht:EachOf , sht:RepeatedOneOf ;
    rdfs:comment "<S1> { ( <p1> .| <p2> .| <p3> . ){2} } / { <s> <p1> \"p1-0\" }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/open3Onedotclosecard2.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <p1.ttl> ;
      sht:focus <x>
    ]
    .

<#open3Onedotclosecard2_pass-p1X2> a sht:ValidationTest ;
    mf:name "open3Onedotclosecard2_pass-p1X2" ;
    sht:trait sht:EachOf , sht:RepeatedOneOf ;
    rdfs:comment "<S1> { ( <p1> .| <p2> .| <p3> . ){2} } / { <s> <p1> \"p1-n\" }X2" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/open3Onedotclosecard2.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <p1X2.ttl> ;
      sht:focus <x>
    ]
    .

<#open3Onedotclosecard2_fail-p1X3> a sht:ValidationFailure ;
    mf:name "open3Onedotclosecard2_fail-p1X3" ;
    sht:trait sht:EachOf , sht:RepeatedOneOf ;
    rdfs:comment "<S1> { ( <p1> .| <p2> .| <p3> . ){2} } / { <s> <p1> \"p1-n\" }X3" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/open3Onedotclosecard2.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <p1X3.ttl> ;
      sht:focus <x>
    ]
    .

<#open3Onedotclosecard2_fail-p1X4> a sht:ValidationFailure ;
    mf:name "open3Onedotclosecard2_fail-p1X4" ;
    sht:trait sht:EachOf , sht:RepeatedOneOf ;
    rdfs:comment "<S1> { ( <p1> .| <p2> .| <p3> . ){2} } / { <s> <p1> \"p1-n\" }X4" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/open3Onedotclosecard2.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <p1X4.ttl> ;
      sht:focus <x>
    ]
    .

<#open3Onedotclosecard2_pass-p1p2> a sht:ValidationTest ;
    mf:name "open3Onedotclosecard2_pass-p1p2" ;
    sht:trait sht:EachOf , sht:RepeatedOneOf ;
    rdfs:comment "<S1> { ( <p1> .| <p2> .| <p3> . ){2} } / { <s> <p1> \"p1-0\"; <p2> \"p2-0\" }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/open3Onedotclosecard2.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <p1p2.ttl> ;
      sht:focus <x>
    ]
    .

<#open3Onedotclosecard2_pass-p1p3> a sht:ValidationTest ;
    mf:name "open3Onedotclosecard2_pass-p1p3" ;
    sht:trait sht:EachOf , sht:RepeatedOneOf ;
    rdfs:comment "<S1> { ( <p1> .| <p2> .| <p3> . ){2} } / { <s> <p1> \"p1-0\"; <p3> \"p3-0\" }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/open3Onedotclosecard2.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <p1p3.ttl> ;
      sht:focus <x>
    ]
    .

<#open3Onedotclosecard2_pass-p2p3> a sht:ValidationTest ;
    mf:name "open3Onedotclosecard2_pass-p2p3" ;
    sht:trait sht:EachOf , sht:RepeatedOneOf ;
    rdfs:comment "<S1> { ( <p1> .| <p2> .| <p3> . ){2} } / { <s> <p2> \"p2-0\"; <p3> \"p3-0\" }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/open3Onedotclosecard2.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <p2p3.ttl> ;
      sht:focus <x>
    ]
    .

<#open3Onedotclosecard2_fail-p1p2p3> a sht:ValidationFailure ;
    mf:name "open3Onedotclosecard2_fail-p1p2p3" ;
    sht:trait sht:EachOf , sht:RepeatedOneOf ;
    rdfs:comment "<S1> { ( <p1> .| <p2> .| <p3> . ){2} } / { <s> <p1> \"p1-0\"; <p2> \"p2-0\"; <p3> \"p3-0\" }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/open3Onedotclosecard2.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <p1p2p3.ttl> ;
      sht:focus <x>
    ]
    .

<#open3Onedotclosecard23_fail-p1> a sht:ValidationFailure ;
    mf:name "open3Onedotclosecard23_fail-p1" ;
    sht:trait sht:EachOf , sht:RepeatedOneOf ;
    rdfs:comment "<S1> { ( <p1> .| <p2> .| <p3> . ){2,3} } / { <s> <p1> \"p1-0\" }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/open3Onedotclosecard23.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <p1.ttl> ;
      sht:focus <x>
    ]
    .

<#open3Onedotclosecard23_pass-p1X2> a sht:ValidationTest ;
    mf:name "open3Onedotclosecard23_pass-p1X2" ;
    sht:trait sht:EachOf , sht:RepeatedOneOf ;
    rdfs:comment "<S1> { ( <p1> .| <p2> .| <p3> . ){2,3} } / { <s> <p1> \"p1-n\" }X2" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/open3Onedotclosecard23.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <p1X2.ttl> ;
      sht:focus <x>
    ]
    .

<#open3Onedotclosecard23_pass-p1X3> a sht:ValidationTest ;
    mf:name "open3Onedotclosecard23_pass-p1X3" ;
    sht:trait sht:EachOf , sht:RepeatedOneOf ;
    rdfs:comment "<S1> { ( <p1> .| <p2> .| <p3> . ){2,3} } / { <s> <p1> \"p1-n\" }X3" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/open3Onedotclosecard23.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <p1X3.ttl> ;
      sht:focus <x>
    ]
    .

<#open3Onedotclosecard23_fail-p1X4> a sht:ValidationFailure ;
    mf:name "open3Onedotclosecard23_fail-p1X4" ;
    sht:trait sht:EachOf , sht:RepeatedOneOf ;
    rdfs:comment "<S1> { ( <p1> .| <p2> .| <p3> . ){2,3} } / { <s> <p1> \"p1-n\" }X4" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/open3Onedotclosecard23.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <p1X4.ttl> ;
      sht:focus <x>
    ]
    .

<#open3Onedotclosecard23_pass-p1p2> a sht:ValidationTest ;
    mf:name "open3Onedotclosecard23_pass-p1p2" ;
    sht:trait sht:EachOf , sht:RepeatedOneOf ;
    rdfs:comment "<S1> { ( <p1> .| <p2> .| <p3> . ){2,3} } / { <s> <p1> \"p1-0\"; <p2> \"p2-0\" }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/open3Onedotclosecard23.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <p1p2.ttl> ;
      sht:focus <x>
    ]
    .

<#open3Onedotclosecard23_pass-p1p3> a sht:ValidationTest ;
    mf:name "open3Onedotclosecard23_pass-p1p3" ;
    sht:trait sht:EachOf , sht:RepeatedOneOf ;
    rdfs:comment "<S1> { ( <p1> .| <p2> .| <p3> . ){2,3} } / { <s> <p1> \"p1-0\"; <p3> \"p3-0\" }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/open3Onedotclosecard23.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <p1p3.ttl> ;
      sht:focus <x>
    ]
    .

<#open3Onedotclosecard23_pass-p2p3> a sht:ValidationTest ;
    mf:name "open3Onedotclosecard23_pass-p2p3" ;
    sht:trait sht:EachOf , sht:RepeatedOneOf ;
    rdfs:comment "<S1> { ( <p1> .| <p2> .| <p3> . ){2,3} } / { <s> <p2> \"p2-0\"; <p3> \"p3-0\" }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/open3Onedotclosecard23.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <p2p3.ttl> ;
      sht:focus <x>
    ]
    .

<#open3Onedotclosecard23_pass-p1p2p3> a sht:ValidationTest ;
    mf:name "open3Onedotclosecard23_pass-p1p2p3" ;
    sht:trait sht:EachOf , sht:RepeatedOneOf ;
    rdfs:comment "<S1> { ( <p1> .| <p2> .| <p3> . ){2,3} } / { <s> <p1> \"p1-0\"; <p2> \"p2-0\"; <p3> \"p3-0\" }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/open3Onedotclosecard23.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <p1p2p3.ttl> ;
      sht:focus <x>
    ]
    .

<#open4Onedotclosecard23_fail-p1p2p3p4> a sht:ValidationFailure ;
    mf:name "open4Onedotclosecard23_fail-p1p2p3p4" ;
    sht:trait sht:EachOf , sht:RepeatedOneOf ;
    rdfs:comment "<S1> { ( <p1> .| <p2> .| <p3> .| <p4> . ){2,3} } / { <s> <p1> \"p1-n\"; <p2> \"p2-n\"; <p3> \"p3-n\" ; <p4> \"p4-n\" }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/open4Onedotclosecard23.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <p1p2p3p4.ttl> ;
      sht:focus <x>
    ]
    .

<#open3Eachdotclosecard23_pass-p1p2p3X3> a sht:ValidationTest ;
    mf:name "open3Eachdotclosecard23_pass-p1p2p3X3" ;
    sht:trait sht:EachOf , sht:RepeatedGroup ;
    rdfs:comment "<S1> { ( <p1> .; <p2> .; <p3> . ){2,3} } / { <s> <p1> \"p1-n\"; <p2> \"p2-n\"; <p3> \"p3-n\" }X3" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/open3Eachdotclosecard23.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <p1p2p3X3.ttl> ;
      sht:focus <x>
    ]
    .

## } repetitions
## shape expressions {
###   AND shapeExpr {

<#1val1vShapeANDRef3_pass> a sht:ValidationTest ;
    mf:name "1val1vShapeANDRef3_pass" ;
    sht:trait sht:AndShapeShapeession ;
    rdfs:comment "<S1> { <p1> minlength 4 } AND { <p1> maxlength 5 } AND { <p1> pattern '(ab)+' } on { <s1> <p1> 'abab' }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1val1vShapeANDRef3.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Labab.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

###   } AND shapeExpr
## } shape expressions
## closed {

<#1dotClosed_pass> a sht:ValidationTest ;
    mf:name "1dotClosed_pass" ;
    sht:trait sht:Closed ;
    rdfs:comment "<S> CLOSED { <p1> . } on { <s1> <p1> <o1> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1dotClosed.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Io1.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1dotClosed_fail_lower> a sht:ValidationFailure ;
    mf:name "1dotClosed_fail_lower" ;
    sht:trait sht:Closed ;
    rdfs:comment "<S> CLOSED { <p1> . } on { <s1> <p0> <o0>; <p1> <o1> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1dotClosed.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip0_Io0;Ip1_Io1.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1dotClosed_fail_higher> a sht:ValidationFailure ;
    mf:name "1dotClosed_fail_higher" ;
    sht:trait sht:Closed ;
    rdfs:comment "<S> CLOSED { <p1> . } on { <s1> <p1> <o1>; <p2> <o2> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1dotClosed.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Io1;Ip2_Io2.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#FocusIRI2EachBnodeNested2EachIRIRef_pass> a sht:ValidationTest ;
    mf:name "FocusIRI2EachBnodeNested2EachIRIRef_pass" ;
    sht:trait sht:Closed ;
    rdfs:comment "<S1> IRI PATTERN '^https?://' { <p1> <dt1> ; <p2> BNODE { <p3> LITERAL ; <p4> IRI PATTERN '^https://' @<S1>? } AND CLOSED { <p3> . ; <p4> . } } on { <n1> <p1> 'ab'^^<dt1> ; <p2> [  <p3> 'ab' ; <p4> ex:n1 ] }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/FocusIRI2EachBnodeNested2EachIRIRef.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <FocusIRI2EachBnodeNested2EachIRIRef.ttl> ;
      sht:focus <http://a.example/n1>
    ]
    .

<#FocusIRI2EachBnodeNested2EachIRIRef_fail> a sht:ValidationFailure ;
    mf:name "FocusIRI2EachBnodeNested2EachIRIRef_fail" ;
    sht:trait sht:Closed ;
    rdfs:comment "<S1> IRI PATTERN '^https?://' { <p1> <dt1> ; <p2> BNODE { <p3> LITERAL ; <p4> IRI PATTERN '^https://' @<S1>? } AND CLOSED { <p3> . ; <p4> . } } on { <n1> <p1> 'ab'^^<dt1> ; <p2> [  <p3> 'ab' ; <p4> ex:n1 ; <p5> 5 ] }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/FocusIRI2EachBnodeNested2EachIRIRef.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <FocusIRI2EachBnodeNested3EachIRIRef.ttl> ;
      sht:focus <http://a.example/n1>
    ] ;
    .

## } closed
## extra {

<#1val1IRIREFExtra1_pass-iri1> a sht:ValidationTest ;
    mf:name "1val1IRIREFExtra1_pass-iri1" ;
    sht:trait sht:Extra , sht:IriEquivalence ;
    rdfs:seeAlso <#1val1IRIREF_pass>, <#1val1IRIREF_v2>, <#1val1IRIREF_pass> ;
    rdfs:comment "<S> EXTRA <p1> { <p1> [<o1>] } on { <s1> <p1> <o1> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1val1IRIREFExtra1.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Io1.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1val1IRIREFExtra1_pass-iri2> a sht:ValidationTest ;
    mf:name "1val1IRIREFExtra1_pass-iri2" ;
    sht:trait sht:Extra , sht:IriEquivalence ;
    rdfs:comment "<S> EXTRA <p1> { <p1> [<o1>] } on { <s1> <p1> <o1>, <o2> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1val1IRIREFExtra1.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Io1,Io2.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1val1IRIREFExtra1Closed_pass-iri1> a sht:ValidationTest ;
    mf:name "1val1IRIREFExtra1Closed_pass-iri1" ;
    sht:trait sht:VapidExtra , sht:Extra ;
    rdfs:comment "<S> EXTRA <p1> CLOSED { <p1> . } on { <s1> <p1> <o1> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1val1IRIREFExtra1Closed.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Io1.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1val1IRIREFExtra1Closed_pass-iri2> a sht:ValidationTest ;
    mf:name "1val1IRIREFExtra1Closed_pass-iri2" ;
    sht:trait sht:VapidExtra , sht:Extra ;
    rdfs:comment "<S> EXTRA <p1> CLOSED { <p1> . } on { <s1> <p1> <o1>, <o2> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1val1IRIREFExtra1Closed.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Io1,Io2.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1val1IRIREFExtra1Closed_fail-iri2_higher> a sht:ValidationFailure ;
    mf:name "1val1IRIREFExtra1Closed_fail-iri2_higher" ;
    sht:trait sht:VapidExtra , sht:Extra ;
    rdfs:comment "<S> EXTRA <p1> CLOSED { <p1> . } on { <s1> <p1> <o1>, <o2>; <p2> <o2> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1val1IRIREFExtra1Closed.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Io1,Io2;Ip2_Io2.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1val1IRIREFClosedExtra1_pass-iri1> a sht:ValidationTest ;
    mf:name "1val1IRIREFClosedExtra1_pass-iri1" ;
    sht:trait sht:VapidExtra , sht:Extra ;
    rdfs:comment "<S> CLOSED EXTRA <p1> { <p1> . } on { <s1> <p1> <o1> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1val1IRIREFClosedExtra1.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Io1.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1val1IRIREFClosedExtra1_pass-iri2> a sht:ValidationTest ;
    mf:name "1val1IRIREFClosedExtra1_pass-iri2" ;
    sht:trait sht:VapidExtra , sht:Extra ;
    rdfs:comment "<S> CLOSED EXTRA <p1> { <p1> . } on { <s1> <p1> <o1>, <o2> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1val1IRIREFClosedExtra1.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Io1,Io2.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1val1IRIREFClosedExtra1_fail-iri2_higher> a sht:ValidationFailure ;
    mf:name "1val1IRIREFClosedExtra1_fail-iri2_higher" ;
    sht:trait sht:VapidExtra , sht:Extra ;
    rdfs:comment "<S> CLOSED EXTRA <p1> { <p1> . } on { <s1> <p1> <o1>, <o2>; <p2> <o2> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1val1IRIREFClosedExtra1.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Io1,Io2;Ip2_Io2.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1val2IRIREFExtra1_fail-iri2> a sht:ValidationFailure ;
    mf:name "1val2IRIREFExtra1_fail-iri2" ;
    sht:trait sht:Extra , sht:ValueSet ;
    rdfs:comment "<S> EXTRA <p1> { <p1> [<o1> <o2>] } on { <s1> <p1> <o1>, <o2> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1val2IRIREFExtra1.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Io1,Io2.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1val2IRIREFPlusExtra1_pass-iri2> a sht:ValidationTest ;
    mf:name "1val2IRIREFPlusExtra1_pass-iri2" ;
    sht:trait sht:Extra , sht:ValueSet ;
    rdfs:comment "<S> EXTRA <p1> { <p1> [<o1> <o2>]+ } on { <s1> <p1> <o1>, <o2> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1val2IRIREFPlusExtra1.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Io1,Io2.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1val2IRIREFExtra1_pass-iri-bnode> a sht:ValidationTest ;
    mf:name "1val2IRIREFExtra1_pass-iri-bnode" ;
    sht:trait sht:Extra , sht:ValueSet ;
    rdfs:comment "<S> EXTRA <p1> { <p1> [<o1> <o2>] } on { <s1> <p1> <o1>, _:o2 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1val2IRIREFExtra1.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Io1,Bo2.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1val1IRIREFExtra1p2_pass-iri1> a sht:ValidationTest ;
    mf:name "1val1IRIREFExtra1p2_pass-iri1" ;
    sht:trait sht:Extra , sht:IriEquivalence ;
    rdfs:seeAlso <#1val1IRIREF_pass>, <#1val1IRIREF_v2>, <#1val1IRIREF_pass> ;
    rdfs:comment "<S> EXTRA <p2> { <p1> [<o1>] } on { <s1> <p1> <o1> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1val1IRIREFExtra1p2.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Io1.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1val1IRIREFExtra1p2_fail-iri2> a sht:ValidationFailure ;
    mf:name "1val1IRIREFExtra1p2_fail-iri2" ;
    sht:trait sht:Extra , sht:IriEquivalence ;
    rdfs:comment "<S> EXTRA <p2> { <p1> [<o1>] } on { <s1> <p1> <o1>, <o2> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1val1IRIREFExtra1p2.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Io1,Io2.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1dotOne2dotExtra-someOf_pass_p1p2p3> a sht:ValidationFailure ;
    mf:name "1dotOne2dotExtra-someOf_pass_p1p2p3" ;
    sht:trait sht:OneOf , sht:EachOf , sht:Extra , sht:MissedMatchables ;
    rdfs:comment ":S1 EXTRA <p1> <p2> <p3> {:p1 .|:p2 .; :p3 .} / { :s1 :p1 \"p1-0\"; :p2 \"p2-0\"; :p3 \"p3-0\" . }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1dotOne2dot.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <p1p2p3.ttl> ;
      sht:focus <x>
    ]
    .

<#1val1IRIREFExtra1One_pass-iri1> a sht:ValidationTest ;
    mf:name "1val1IRIREFExtra1One_pass-iri1" ;
    sht:trait sht:Extra , sht:IriEquivalence , sht:EachOf ;
    rdfs:seeAlso <#1val1IRIREF_pass>, <#1val1IRIREF_v2>, <#1val1IRIREF_pass> ;
    rdfs:comment "<S> EXTRA <p1> { <p0> . | <p1> [<o1>]; <p2> .? } on { <s1> <p1> <o1> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1val1IRIREFExtra1One.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Io1.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1val1IRIREFExtra1One_pass-iri2> a sht:ValidationTest ;
    mf:name "1val1IRIREFExtra1One_pass-iri2" ;
    sht:trait sht:Extra , sht:IriEquivalence , sht:EachOf ;
    rdfs:comment "<S> EXTRA <p1> { <p0> . | <p1> [<o1>]; <p2> .? } on { <s1> <p1> <o1>, <o2> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1val1IRIREFExtra1One.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Io1,Io2.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1dotExtra1_pass-iri1> a sht:ValidationTest ;
    mf:name "1dotExtra1_pass-iri1" ;
    sht:trait sht:VapidExtra , sht:Extra ;
    rdfs:comment "<S> EXTRA <p1> { <p1> . } on { <s1> <p1> <o1> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1dotExtra1.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Io1.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1dotExtra1_fail-iri2> a sht:ValidationFailure ;
    mf:name "1dotExtra1_fail-iri2" ;
    sht:trait sht:VapidExtra , sht:Extra ;
    rdfs:comment "<S> EXTRA <p1> { <p1> . } on { <s1> <p1> <o1>, <o2> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1dotExtra1.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Io1,Io2.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#3EachdotExtra3_pass-iri1> a sht:ValidationTest ;
    mf:name "3EachdotExtra3_pass-iri1" ;
    sht:trait sht:Extra , sht:IriEquivalence , sht:EachOf ;
    rdfs:comment "<S> EXTRA <p1> <p2> <p3> { <p1> [<o1>]; <p2> [<o2>]; <p3> [<o3>] } on { <s> <p1> <o1>; <p2> <o2>; <p3> <o3> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/3EachdotExtra3.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is_Ipn_IonX3.ttl> ;
      sht:focus <http://a.example/s>
    ]
    .

<#3Eachdot3Extra_pass-iri1> a sht:ValidationTest ;
    mf:name "3Eachdot3Extra_pass-iri1" ;
    sht:trait sht:Extra , sht:IriEquivalence , sht:EachOf ;
    rdfs:comment "<S> EXTRA <p1> EXTRA <p2> EXTRA <p3> { <p1> [<o1>]; <p2> [<o2>]; <p3> [<o3>] } on { <s> <p1> <o1>; <p2> <o2>; <p3> <o3> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/3Eachdot3Extra.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is_Ipn_IonX3.ttl> ;
      sht:focus <http://a.example/s>
    ]
    .

<#3EachdotExtra3NLex_pass-iri1> a sht:ValidationTest ;
    mf:name "3EachdotExtra3NLex_pass-iri1" ;
    sht:trait sht:Extra , sht:IriEquivalence , sht:EachOf ;
    rdfs:comment "PREFIX ex: <http://a.example/> <S> EXTRA ex:p1 ex:p2 ex:p3 { <p1> [<o1>]; <p2> [<o2>]; <p3> [<o3>] } on { <s> <p1> <o1>; <p2> <o2>; <p3> <o3> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/3EachdotExtra3NLex.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is_Ipn_IonX3.ttl> ;
      sht:focus <http://a.example/s>
    ]
    .

<#3EachdotExtra3_pass-iri2> a sht:ValidationTest ;
    mf:name "3EachdotExtra3_pass-iri2" ;
    sht:trait sht:Extra , sht:IriEquivalence , sht:EachOf ;
    rdfs:comment "<S> EXTRA <p1> <p2> <p3> { <p1> [<o1>]; <p2> [<o2>]; <p3> [<o3>] } on { <s> <p1> <o1>, <o1a>; <p2> <o2>, <o2a>; <p3> <o3>, <o3a> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/3EachdotExtra3.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is_Ipn_IonX3.Is_Ipn_IonaX3.ttl> ;
      sht:focus <http://a.example/s>
    ]
    .

<#3Eachdot3Extra_pass-iri2> a sht:ValidationTest ;
    mf:name "3Eachdot3Extra_pass-iri2" ;
    sht:trait sht:Extra , sht:IriEquivalence , sht:EachOf ;
    rdfs:comment "<S> EXTRA <p1> EXTRA <p2> EXTRA <p3> { <p1> [<o1>]; <p2> [<o2>]; <p3> [<o3>] } on { <s> <p1> <o1>, <o1a>; <p2> <o2>, <o2a>; <p3> <o3>, <o3a> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/3Eachdot3Extra.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is_Ipn_IonX3.Is_Ipn_IonaX3.ttl> ;
      sht:focus <http://a.example/s>
    ]
    .

<#3EachdotExtra3NLex_pass-iri2> a sht:ValidationTest ;
    mf:name "3EachdotExtra3NLex_pass-iri2" ;
    sht:trait sht:Extra , sht:IriEquivalence , sht:EachOf ;
    rdfs:comment "PREFIX ex: <http://a.example/> <S> EXTRA ex:p1 ex:p2 ex:p3 { <p1> [<o1>]; <p2> [<o2>]; <p3> [<o3>] } on { <s> <p1> <o1>, <o1a>; <p2> <o2>, <o2a>; <p3> <o3>, <o3a> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/3EachdotExtra3NLex.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is_Ipn_IonX3.Is_Ipn_IonaX3.ttl> ;
      sht:focus <http://a.example/s>
    ]
    .

## } extra
## start {

<#startRefIRIREF_pass-noOthers> a sht:ValidationTest ;
    mf:name "startRefIRIREF_pass-noOthers" ;
    sht:trait sht:Start ;
    rdfs:comment "start=<S> <S> { <p1> . } on { <s1> <p1> <o1> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/startRefIRIREF.shex> ;
      # sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Io1.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#startRefIRIREF_pass-others_lexicallyEarlier> a sht:ValidationTest ;
    mf:name "startRefIRIREF_pass-others_lexicallyEarlier" ;
    sht:trait sht:Start ;
    rdfs:comment "start=<S> <S> { <p1> . } on { <s1> <p0> <o0>; <p1> <o1> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/startRefIRIREF.shex> ;
      # sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip0_Io0;Ip1_Io1.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#startRefIRIREF_fail-missing> a sht:ValidationFailure ;
    mf:name "startRefIRIREF_fail-missing" ;
    sht:trait sht:Start ;
    rdfs:comment "start=<S> <S> { <p1> . } on { <s1> <p2> <o1> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/startRefIRIREF.shex> ;
      # sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip2_Io1.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#startRefbnode_pass-noOthers> a sht:ValidationTest ;
    mf:name "startRefbnode_pass-noOthers" ;
    sht:trait sht:Start ;
    rdfs:comment "start=_:S _:S { <p1> . } on { <s1> <p1> <o1> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/startRefbnode.shex> ;
      # sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Io1.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#startRefbnode_fail-missing> a sht:ValidationFailure ;
    mf:name "startRefbnode_fail-missing" ;
    sht:trait sht:Start ;
    rdfs:comment "start=_:S _S { <p1> . } on { <s1> <p2> <o1> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/startRefbnode.shex> ;
      # sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip2_Io1.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#startInline_pass-noOthers> a sht:ValidationTest ;
    mf:name "startInline_pass-noOthers" ;
    sht:trait sht:Start ;
    rdfs:comment "start={ <p1> . } on { <s1> <p1> <o1> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/startInline.shex> ;
      # sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Io1.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#startEqualSpaceInline_pass-noOthers> a sht:ValidationTest ;
    mf:name "startEqualSpaceInline_pass-noOthers" ;
    sht:trait sht:Start ;
    rdfs:comment "start= { <p1> . } on { <s1> <p1> <o1> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/startEqualSpaceInline.shex> ;
      # sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Io1.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#startSpaceEqualInline_pass-noOthers> a sht:ValidationTest ;
    mf:name "startSpaceEqualInline_pass-noOthers" ;
    sht:trait sht:Start ;
    rdfs:comment "start ={ <p1> . } on { <s1> <p1> <o1> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/startSpaceEqualInline.shex> ;
      # sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Io1.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#startInline_fail-missing> a sht:ValidationFailure ;
    mf:name "startInline_fail-missing" ;
    sht:trait sht:Start ;
    rdfs:comment "start={ <p1> . } on { <s1> <p2> <o1> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/startInline.shex> ;
      # sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip2_Io1.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .


## } start
## include {

<#2EachInclude1_pass> a sht:ValidationTest ;
    mf:name "2EachInclude1_pass" ;
    sht:trait sht:Include , sht:EachOf ;
    rdfs:comment "<S1> { &<S2>; <p1> . } <S2> { <p2> . } on { <n1> <p1> \"X\" ; <p2> \"Y\" }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/2EachInclude1.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <In1_Ip1_LX.In1_Ip2_LY.ttl> ;
      sht:focus <http://a.example/n1>
    ]
    .

<#2EachInclude1-after_pass> a sht:ValidationTest ;
    mf:name "2EachInclude1-after_pass" ;
    sht:trait sht:Include , sht:EachOf ;
    rdfs:comment "<S1> { <p1> .; &<S2> } <S2> { <p2> . } on { <n1> <p1> \"X\" ; <p2> \"Y\" }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/2EachInclude1-after.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <In1_Ip1_LX.In1_Ip2_LY.ttl> ;
      sht:focus <http://a.example/n1>
    ]
    .

<#2OneInclude1_pass> a sht:ValidationTest ;
    mf:name "2OneInclude1_pass" ;
    sht:trait sht:Include , sht:OneOf ;
    rdfs:comment "<S1> { &<S2> | <p1> . } <S2> { <p2> . } on { <n1> <p1> \"X\" }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/2OneInclude1.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <In1_Ip1_LX.ttl> ;
      sht:focus <http://a.example/n1>
    ]
    .

<#2OneInclude1-after_pass> a sht:ValidationTest ;
    mf:name "2OneInclude1-after_pass" ;
    sht:trait sht:Include , sht:OneOf ;
    rdfs:comment "<S1> { <p1> . | &<S2> } <S2> { <p2> . } on { <n1> <p1> \"X\" }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/2OneInclude1-after.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <In1_Ip1_LX.ttl> ;
      sht:focus <http://a.example/n1>
    ]
    .

## } include
## annotations {

<#1dotAnnotIRIREF_pass> a sht:ValidationTest ;
    mf:name "1dotAnnotIRIREF_pass" ;
    sht:trait sht:Annotation ;
    rdfs:comment "<S> { <p1> .// <annot> <IRIREF> } on { <s1> <p1> <o1> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1dotAnnotIRIREF.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Io1.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1dotAnnotIRIREF_missing> a sht:ValidationFailure ;
    mf:name "1dotAnnotIRIREF_missing" ;
    sht:trait sht:Annotation ;
    rdfs:comment "<S> { <p1> .// <annot> <IRIREF> } on { <s1> <p2> <o1> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1dotAnnotIRIREF.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip2_Io1.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1dotPlusAnnotIRIREF_pass> a sht:ValidationTest ;
    mf:name "1dotPlusAnnotIRIREF_pass" ;
    sht:trait sht:Annotation ;
    rdfs:comment "<S> { <p1> .+// <annot> <IRIREF> } on { <s1> <p1> 'a', <o1> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1dotPlusAnnotIRIREF.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_La,Io1.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1dotAnnotAIRIREF_pass> a sht:ValidationTest ;
    mf:name "1dotAnnotAIRIREF_pass" ;
    sht:trait sht:Annotation ;
    rdfs:comment "<S> { <p1> .// a <IRIREF> } on { <s1> <p1> <o1> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1dotAnnotAIRIREF.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Io1.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1dotAnnotSTRING_LITERAL1_pass> a sht:ValidationTest ;
    mf:name "1dotAnnotSTRING_LITERAL1_pass" ;
    sht:trait sht:Annotation ;
    rdfs:comment "<S> { <p1> .// <annot> 'STRING_LITERAL1' } on { <s1> <p1> <o1> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1dotAnnotSTRING_LITERAL1.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Io1.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1dotAnnot3_pass> a sht:ValidationTest ;
    mf:name "1dotAnnot3_pass" ;
    sht:trait sht:Annotation ;
    rdfs:comment "<S> { <p1> .// <a1> '1'// <a2> '2'// <a3> '3' } on { <s1> <p1> <o1> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1dotAnnot3.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Io1.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1dotAnnot3_missing> a sht:ValidationFailure ;
    mf:name "1dotAnnot3_missing" ;
    sht:trait sht:Annotation ;
    rdfs:comment "<S> { <p1> .// <a1> '1'// <a1> '2'// <a1> '3' } on { <s1> <p2> <o1> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1dotAnnot3.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip2_Io1.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1inversedotAnnot3_pass> a sht:ValidationTest ;
    mf:name "1inversedotAnnot3_pass" ;
    sht:trait sht:Annotation ;
    rdfs:comment "<S> { ^<p1> .// <a1> '1'// <a1> '2'// <a1> '3' } on { <s1> <p1> <o1> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1inversedotAnnot3.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Io1.ttl> ;
      sht:focus <http://a.example/o1>
    ]
    .

<#1inversedotAnnot3_missing> a sht:ValidationFailure ;
    mf:name "1inversedotAnnot3_missing" ;
    sht:trait sht:Annotation ;
    rdfs:comment "<S> { ^<p1> .// <a1> '1'// <a1> '2'// <a1> '3' } on { <s1> <p2> <o1> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1inversedotAnnot3.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip2_Io1.ttl> ;
      sht:focus <http://a.example/o1>
    ]
    .

<#1dotShapeAnnotIRIREF_pass> a sht:ValidationTest ;
    mf:name "1dotShapeAnnotIRIREF_pass" ;
    sht:trait sht:Annotation ;
    rdfs:comment "<S> { <p1> . } // <annot> <IRIREF> on { <s1> <p1> <o1> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1dotShapeAnnotIRIREF.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Io1.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1dotShapeAnnotIRIREF_missing> a sht:ValidationFailure ;
    mf:name "1dotShapeAnnotIRIREF_missing" ;
    sht:trait sht:Annotation ;
    rdfs:comment "<S> { <p1> . } // <annot> <IRIREF> on { <s1> <p2> <o1> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1dotShapeAnnotIRIREF.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip2_Io1.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1dotShapePlusAnnotIRIREF_pass> a sht:ValidationTest ;
    mf:name "1dotShapePlusAnnotIRIREF_pass" ;
    sht:trait sht:Annotation ;
    rdfs:comment "<S> { <p1> .+ } // <annot> <IRIREF> on { <s1> <p1> 'a', <o1> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1dotShapePlusAnnotIRIREF.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_La,Io1.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1dotShapeAnnotAIRIREF_pass> a sht:ValidationTest ;
    mf:name "1dotShapeAnnotAIRIREF_pass" ;
    sht:trait sht:Annotation ;
    rdfs:comment "<S> { <p1> . } // a <IRIREF> on { <s1> <p1> <o1> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1dotShapeAnnotAIRIREF.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Io1.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1dotShapeAnnotSTRING_LITERAL1_pass> a sht:ValidationTest ;
    mf:name "1dotShapeAnnotSTRING_LITERAL1_pass" ;
    sht:trait sht:Annotation ;
    rdfs:comment "<S> { <p1> . } // <annot> 'STRING_LITERAL1' on { <s1> <p1> <o1> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1dotShapeAnnotSTRING_LITERAL1.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Io1.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

 # !../schemas/open3EachdotcloseAnnot3.shex

## } annotations
## semantic actions {

<#1dotCode1_pass> a sht:ValidationTest ;
    mf:name "1dotCode1_pass" ;
    sht:trait sht:SemanticAction ;
    rdfs:comment "<S> { <p1> . %<Test>{ print(o) %} } on { <s1> <p1> <o1> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1dotCode1.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Io1.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    mf:extensionResults (
      [
        mf:extension <http://shex.io/extensions/Test/> ;
        mf:prints "http://a.example/o1"
      ]
    )
    .

<#1dotNoCode1_pass> a sht:ValidationTest ;
    mf:name "1dotNoCode1_pass" ;
    sht:trait sht:SemanticAction , sht:ExternalSemanticAction ;
    rdfs:comment "<S> { <p1> . %<Test>% } + %<Test>{ print(o) %} on { <s1> <p1> <o1> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1dotNoCode1.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Io1.ttl> ;
      sht:focus <http://a.example/s1> ;
      sht:semActs <../schemas/1dotNoCode1.semact>
    ] ;
    mf:extensionResults (
      [
        mf:extension <http://shex.io/extensions/Test/> ;
        mf:prints "http://a.example/o1"
      ]
    )
    .

<#1inversedotCode1_pass> a sht:ValidationTest ;
    mf:name "1inversedotCode1_pass" ;
    sht:trait sht:SemanticAction ;
    rdfs:comment "<S> { ^<p1> . %<Test>{ print(o) %} } on { <s1> <p1> <o1> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1inversedotCode1.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Io1.ttl> ;
      sht:focus <http://a.example/o1>
    ] ;
    mf:extensionResults (
      [
        mf:extension <http://shex.io/extensions/Test/> ;
        mf:prints "http://a.example/o1"
      ]
    )
    .

<#1dotCode3_pass> a sht:ValidationTest ;
    mf:name "1dotCode3_pass" ;
    sht:trait sht:SemanticAction , sht:OrderedSemanticActions ;
    rdfs:comment "<S> { <p1> . %<Test>{ print(s) %} %<Test>{ print(p) %} %<Test>{ print(o) %} } on { <s1> <p1> <o1> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1dotCode3.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Io1.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    mf:extensionResults (
      [
        mf:extension <http://shex.io/extensions/Test/> ;
        mf:prints "http://a.example/s1"
      ]
      [
        mf:extension <http://shex.io/extensions/Test/> ;
        mf:prints "http://a.example/p1"
      ]
      [
        mf:extension <http://shex.io/extensions/Test/> ;
        mf:prints "http://a.example/o1"
      ]
    )
    .

<#1dotNoCode3_pass> a sht:ValidationTest ;
    mf:name "1dotNoCode3_pass" ;
    sht:trait sht:SemanticAction , sht:ExternalSemanticAction ;
    rdfs:comment "<S> { <p1> . %<Test#a>% %<Test#b>% %<Test#c>% } + %<Test/#a>{ print(s) %} %<Test/#b>{ print(p) %} %<Test/#c>{ print(o) %} on { <s1> <p1> <o1> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1dotNoCode3.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Io1.ttl> ;
      sht:focus <http://a.example/s1> ;
      sht:semActs <../schemas/1dotNoCode3.semact>
    ] ;
    mf:extensionResults (
      [
        mf:extension <http://shex.io/extensions/Test/#a> ;
        mf:prints "http://a.example/s1"
      ]
      [
        mf:extension <http://shex.io/extensions/Test/#b> ;
        mf:prints "http://a.example/p1"
      ]
      [
        mf:extension <http://shex.io/extensions/Test/#c> ;
        mf:prints "http://a.example/o1"
      ]
    )
    .

<#1dotCode3fail_abort> a sht:ValidationFailure ;
    mf:name "1dotCode3fail_abort" ;
    sht:trait sht:SemanticAction ;
    rdfs:comment "<S> { <p1> . %<Test>{ print(s) %}%<Test>{ fail(s) %}%<Test>{ print(o) %} } on { <s1> <p1> <o1> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1dotCode3fail.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Io1.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1dotCodeWithEscapes1_pass> a sht:ValidationTest ;
    mf:name "1dotCodeWithEscapes1_pass" ;
    sht:trait sht:SemanticAction ;
    rdfs:comment "<S> { <p1> . %<Test>{ print\\u0028\\u0022\\%{\\\\\\\\\\%}\\u0022\\u0029 %} } on { <s1> <p1> <o1> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1dotCodeWithEscapes1.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Io1.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    mf:extensionResults (
      [
        mf:extension <http://shex.io/extensions/Test/> ;
        mf:prints "\"%{\\\\%}\""
      ]
    )
    .

<#1dotShapeCode1_pass> a sht:ValidationTest ;
    mf:name "1dotShapeCode1_pass" ;
    sht:trait sht:SemanticAction ;
    rdfs:comment "<S> { <p1> . } %<Test>{ print(\"shape action\") %} on { <s1> <p1> <o1> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1dotShapeCode1.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Io1.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    mf:extensionResults (
      [
        mf:extension <http://shex.io/extensions/Test/> ;
        mf:prints "\"shape action\""
      ]
    )
    .

<#1dotShapeNoCode1_pass> a sht:ValidationTest ;
    mf:name "1dotShapeNoCode1_pass" ;
    sht:trait sht:SemanticAction , sht:ExternalSemanticAction ;
    rdfs:comment "<S> { <p1> . } %<Test>% + %<Test>{ print(o) %} on { <s1> <p1> <o1> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1dotShapeNoCode1.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Io1.ttl> ;
      sht:focus <http://a.example/s1> ;
      sht:semActs <../schemas/1dotShapeNoCode1.semact>
    ] ;
    mf:extensionResults (
      [
        mf:extension <http://shex.io/extensions/Test/> ;
        mf:prints "\"shape action\""
      ]
    )
    .

<#open3EachdotcloseCode1-p1p2p3> a sht:ValidationTest ;
    mf:name "open3EachdotcloseCode1-p1p2p3" ;
    sht:trait sht:SemanticAction , sht:EachOf ;
    rdfs:comment "<S1> { ( <p1> .; <p2> .; <p3> . ) %<Test/>{ print(\"group semAct\") %} } / { :s1 :p1 \"p1-0\"; :p2 \"p2-0\"; :p3 \"p3-0\" . }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/open3EachdotcloseCode1.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <p1p2p3.ttl> ;
      sht:focus <x>
    ] ;
    mf:extensionResults (
      [
        mf:extension <http://shex.io/extensions/Test/> ;
        mf:prints "\"group semAct\""
      ]
    )
    .

<#startCode1_pass> a sht:ValidationTest ;
    mf:name "startCode1_pass" ;
    sht:trait sht:SemanticAction ;
    rdfs:comment "%<Test>{print('startAct')%} <S> { <p1> . } on { <s1> <p1> <o1> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/startCode1.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Io1.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    mf:extensionResults (
      [
        mf:extension <http://shex.io/extensions/Test/> ;
        mf:prints "\"startAct\""
      ]
    )
    .

<#startNoCode1_pass> a sht:ValidationTest ;
    mf:name "startNoCode1_pass" ;
    sht:trait sht:SemanticAction , sht:ExternalSemanticAction ;
    rdfs:comment "%<Test>% <S> { <p1> . } + %<Test>{print(\"startAct\")%} on { <s1> <p1> <o1> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/startNoCode1.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Io1.ttl> ;
      sht:focus <http://a.example/s1> ;
      sht:semActs <../schemas/startNoCode1.semact>
    ] ;
    mf:extensionResults (
      [
        mf:extension <http://shex.io/extensions/Test/> ;
        mf:prints "\"startAct\""
      ]
    )
    .

<#startCode1fail_abort> a sht:ValidationFailure ;
    mf:name "startCode1fail_abort" ;
    sht:trait sht:SemanticAction ;
    rdfs:comment "%<Test>{ fail('startAct') %} <S> { <p1> . } on { <s1> <p1> <o1> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/startCode1fail.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Io1.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    mf:extensionResults (
      [
        mf:extension <http://shex.io/extensions/Test/> ;
        mf:prints "\"startAct\""
      ]
    )
    .

<#startCode1startRef_pass> a sht:ValidationTest ;
    mf:name "startCode1startRef_pass" ;
    sht:trait sht:SemanticAction ;
    rdfs:comment "%<Test>{print('startAct')%} start=<S> <S> { <p1> . } on { <s1> <p1> <o1> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/startCode1startRef.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Io1.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    mf:extensionResults (
      [
        mf:extension <http://shex.io/extensions/Test/> ;
        mf:prints "\"startAct\""
      ]
    )
    .

<#startCode1startReffail_abort> a sht:ValidationFailure ;
    mf:name "startCode1startReffail_abort" ;
    sht:trait sht:SemanticAction ;
    rdfs:comment "%<Test>{ fail('startAct') %} start=<S> <S> { <p1> . } on { <s1> <p1> <o1> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/startCode1startReffail.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Io1.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    mf:extensionResults (
      [
        mf:extension <http://shex.io/extensions/Test/> ;
        mf:prints "\"startAct\""
      ]
    )
    .

<#startCode3_pass> a sht:ValidationTest ;
    mf:name "startCode3_pass" ;
    sht:trait sht:SemanticAction ;
    rdfs:comment "%<Test>{print('startAct 1')%} %<Test>{print('startAct 2')%} %<Test>{print('startAct 3')%} <S> { <p1> . } on { <s1> <p1> <o1> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/startCode3.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Io1.ttl> ;
      sht:focus <http://a.example/s1>
    ] ;
    mf:extensionResults (
      [
        mf:extension <http://shex.io/extensions/Test/> ;
        mf:prints "\"startAct 1\""
      ]
      [
        mf:extension <http://shex.io/extensions/Test/> ;
        mf:prints "\"startAct 2\""
      ]
      [
        mf:extension <http://shex.io/extensions/Test/> ;
        mf:prints "\"startAct 3\""
      ]
    )
    .

<#startCode3fail_abort> a sht:ValidationFailure ;
    mf:name "startCode3fail_abort" ;
    sht:trait sht:SemanticAction ;
    rdfs:comment "%<Test>{print('startAct 1')%} %<Test>{ fail('startAct 2') %} %<Test>{print('startAct 3')%} <S> { <p1> . } on { <s1> <p1> <o1> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/startCode3fail.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Io1.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

## } semantic actions
## annotations + semantic actions {
<#open3Eachdotclosecard23Annot3Code2-p1p2p3X3> a sht:ValidationTest ;
    mf:name "open3Eachdotclosecard23Annot3Code2-p1p2p3X3" ;
    sht:trait sht:Annotation , sht:SemanticAction , sht:EachOf , sht:RepeatedGroup ;
    rdfs:comment "<S1> { ( <p1> .; <p2> .; <p3> . ){2,3} // <annot1> \"1\" // <annot2> \"2\" // <annot3> \"3\" %<Test/>{ p(\"...1\") %} %<Test/>{ p(\"...2\") %} } / { <s> <p1> \"p1-n\"; <p2> \"p2-n\"; <p3> \"p3-n\" }X3" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/open3Eachdotclosecard23Annot3Code2.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <p1p2p3X3.ttl> ;
      sht:focus <x>
    ] ;
    mf:extensionResults (
      [
        mf:extension <http://shex.io/extensions/Test/> ;
        mf:prints "\"group semAct 1\""
      ]
      [
        mf:extension <http://shex.io/extensions/Test/> ;
        mf:prints "\"group semAct 2\""
      ]
    )
    .

## } annotations + semantic actions
## focus constraint {
###  kind {

<#0focusIRI_empty_fail-bnodeFocusLabel> a sht:ValidationFailure ;
    mf:name "0focusIRI_empty_fail-bnodeFocusLabel" ;
    sht:trait sht:Empty , sht:ToldBNode ;
    rdfs:comment "<S> IRI {  } on { }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/0focusIRI.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <empty.ttl> ;
      sht:focus _:s1
    ]
    .

<#0focusIRI_empty> a sht:ValidationTest ;
    mf:name "0focusIRI_empty" ;
    sht:trait sht:Empty ;
    rdfs:comment "<S1> IRI {  } on { }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/0focusIRI.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <empty.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#0focusIRI_other_fail-bnodeFocusLabel> a sht:ValidationFailure ;
    mf:name "0focusIRI_other_fail-bnodeFocusLabel" ;
    sht:trait sht:Empty , sht:ToldBNode ;
    rdfs:comment "<S> IRI {  } on { _:abcd <p1> <o1> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/0focusIRI.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Babcd_Ip1_Io1.ttl> ;
      sht:focus _:abcd
    ]
    .

<#0focusIRI_other> a sht:ValidationTest ;
    mf:name "0focusIRI_other" ;
    sht:trait sht:Empty ;
    rdfs:comment "<S> IRI {  } on { <s1> <p1> <o1> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/0focusIRI.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Io1.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#0focusBNODE_empty_fail-iriFocusLabel> a sht:ValidationFailure ;
    mf:name "0focusBNODE_empty_fail-iriFocusLabel" ;
    sht:trait sht:Empty ;
    rdfs:comment "<S> BNODE {  } on <s1> in { }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/0focusBNODE.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <empty.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#0focusBNODE_empty> a sht:ValidationTest ;
    mf:name "0focusBNODE_empty" ;
    sht:trait sht:Empty , sht:ToldBNode ;
    rdfs:comment "<S> BNODE {  } on _:abcd in { }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/0focusBNODE.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <empty.ttl> ;
      sht:focus _:abcd
    ]
    .

<#0focusBNODE_other_fail-iriFocusLabel> a sht:ValidationFailure ;
    mf:name "0focusBNODE_other_fail-iriFocusLabel" ;
    sht:trait sht:Empty ;
    rdfs:comment "<S> BNODE {  } on { <s1> <p1> <o1> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/0focusBNODE.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Io1.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#0focusBNODE_other> a sht:ValidationTest ;
    mf:name "0focusBNODE_other" ;
    sht:trait sht:Empty , sht:ToldBNode ;
    rdfs:comment "<S> BNODE {  } on { _:abcd <p1> <o1> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/0focusBNODE.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Babcd_Ip1_Io1.ttl> ;
      sht:focus _:abcd
    ]
    .

<#1focusIRI_dot_fail-bnodeFocusLabel> a sht:ValidationFailure ;
    mf:name "1focusIRI_dot_fail-bnodeFocusLabel" ;
    sht:trait sht:FocusConstraint , sht:ToldBNode ;
    rdfs:comment "<S> IRI { <p1> . } on <s> in { _:abcd <p1> <o1> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1focusIRI_dot.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Babcd_Ip1_Io1.ttl> ;
      sht:focus _:abcd
    ]
    .

<#1focusIRI_dot_pass> a sht:ValidationTest ;
    mf:name "1focusIRI_dot_pass" ;
    sht:trait sht:FocusConstraint ;
    rdfs:comment "<S> IRI { <p1> . } on <s> in { <s1> <p1> <o1> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1focusIRI_dot.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Io1.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1focusBNODE_dot_fail-iriFocusLabel-equal> a sht:ValidationFailure ;
    mf:name "1focusBNODE_dot_fail-iriFocusLabel-equal" ;
    sht:trait sht:FocusConstraint , sht:LexicalBNode ;
    rdfs:comment "<S> BNODE { <p1> . } on <s> in { <s1> <p1> <o1> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1focusBNODE_dot.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Io1.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1focusBNODE_dot_pass> a sht:ValidationTest ;
    mf:name "1focusBNODE_dot_pass" ;
    sht:trait sht:FocusConstraint , sht:ToldBNode ;
    rdfs:comment "<S> BNODE { <p1> . } on <s> in { _:abcdefghijklmnopqrs <p1> <o1> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1focusBNODE_dot.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Babcdefghijklmnopqrs_Ip1_Io1.ttl> ;
      sht:focus _:abcdefghijklmnopqrs
    ]
    .

<#1focusnonLiteral-dot_pass-iri-equal> a sht:ValidationTest ;
    mf:name "1focusnonLiteral-dot_pass-iri-equal" ;
    sht:trait sht:FocusConstraint , sht:LengthFacet ;
    rdfs:comment "<S1> NONLITERAL { <p1> . } on { <s1> <p1> <o1> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1focusnonLiteral-dot.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Io1.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

###  } kind
###  datatype {

<#focusdatatype_pass> a sht:ValidationTest ;
    mf:name "focusdatatype_pass" ;
    sht:trait sht:FocusConstraint ;
    rdfs:comment "<S> <dt1> on { <s1> <p1> 'ab'^^my:bloodType }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/focusdatatype.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_LabDTbloodType.ttl> ;
      sht:focus "ab"^^<http://a.example/bloodType>
    ]
    .

<#focusdatatype_fail> a sht:ValidationFailure ;
    mf:name "focusdatatype_fail" ;
    sht:trait sht:FocusConstraint ;
    rdfs:comment "<S> <dt1> on { <s1> <p1> 'ab'^^my:bloodType999 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/focusdatatype.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_LabDTbloodType999.ttl> ;
      sht:focus "ab"^^<http://a.example/bloodType999>
    ] ;
    .

<#focusdatatype_pass-empty> a sht:ValidationTest ;
    mf:name "focusdatatype_pass-empty" ;
    sht:trait sht:FocusConstraint ;
    rdfs:comment "<S> <dt1> on 'ab'^^<bloodType> in {  }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/focusdatatype.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <empty.ttl> ;
      sht:focus "ab"^^<http://a.example/bloodType>
    ]
    .

<#focusdatatype_fail-empty> a sht:ValidationFailure ;
    mf:name "focusdatatype_fail-empty" ;
    sht:trait sht:FocusConstraint ;
    rdfs:comment "<S> <dt1> on 'ab'^^<bloodType999> in {  }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/focusdatatype.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <empty.ttl> ;
      sht:focus "ab"^^<http://a.example/bloodType999>
    ] ;
    .

###  } datatype
###  value sets {

<#focusvs_pass> a sht:ValidationTest ;
    mf:name "focusvs_pass" ;
    sht:trait sht:FocusConstraint ;
    rdfs:comment "<S> [<v1> <v2> <v3>] on { <s1> <p1> <v1> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/focusvs.shex> ;
      sht:shape <http://a.example/vs1> ;
      sht:data <Is1_Ip1_Iv1.ttl> ;
      sht:focus <http://a.example/v1>
    ]
    .

<#focusvs_fail> a sht:ValidationFailure ;
    mf:name "focusvs_fail" ;
    sht:trait sht:FocusConstraint ;
    rdfs:comment "<S> [<v1> <v2> <v3>] on { <s1> <p1> <v1a> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/focusvs.shex> ;
      sht:shape <http://a.example/vs1> ;
      sht:data <Is1_Ip1_Iv1a.ttl> ;
      sht:focus <http://a.example/v1a>
    ] ;
    .

###  } value sets
###  AND focus {

<#1focusvsANDdatatype_fail> a sht:ValidationFailure ;
    mf:name "1focusvsANDdatatype_fail" ;
    sht:trait sht:FocusConstraint , sht:Unsatisfiable ;
    rdfs:comment "<S> [<v1> <v2> <v3>] AND <dt1> on {  }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/focusvsANDdatatype.shex> ;
      sht:shape <http://a.example/vs1> ;
      sht:data <empty.ttl> ;
      sht:focus <http://a.example/v1>
    ] ;
    .

<#1focusvsANDIRI_pass> a sht:ValidationTest ;
    mf:name "1focusvsANDIRI_pass" ;
    sht:trait sht:FocusConstraint ;
    rdfs:comment "<S> [<v1> <v2> <v3>] AND IRI on <v1> in {  }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/focusvsANDIRI.shex> ;
      sht:shape <http://a.example/vs1> ;
      sht:data <empty.ttl> ;
      sht:focus <http://a.example/v1>
    ]
    .

<#1focusvsANDIRI_fail> a sht:ValidationFailure ;
    mf:name "1focusvsANDIRI_fail" ;
    sht:trait sht:FocusConstraint ;
    rdfs:comment "<S> [<v1> <v2> <v3>] AND IRI on <v4> in {  }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/focusvsANDIRI.shex> ;
      sht:shape <http://a.example/vs1> ;
      sht:data <empty.ttl> ;
      sht:focus <http://a.example/v4>
    ] ;
    .

###  } AND focus
###  OR focus {

<#1focusvsORdatatype_pass-val> a sht:ValidationTest ;
    mf:name "1focusvsORdatatype_pass-val" ;
    sht:trait sht:FocusConstraint ;
    rdfs:comment "<S> [<v1> <v2> <v3>] OR <dt1> on <v1> in {  }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/focusvsORdatatype.shex> ;
      sht:shape <http://a.example/vs1> ;
      sht:data <empty.ttl> ;
      sht:focus <http://a.example/v1>
    ]
    .

<#1focusvsORdatatype_fail-val> a sht:ValidationFailure ;
    mf:name "1focusvsORdatatype_fail-val" ;
    sht:trait sht:FocusConstraint ;
    rdfs:comment "<S> [<v1> <v2> <v3>] OR <dt1> on <v4> in {  }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/focusvsORdatatype.shex> ;
      sht:shape <http://a.example/vs1> ;
      sht:data <empty.ttl> ;
      sht:focus <http://a.example/v4>
    ] ;
    .

<#1focusvsORdatatype_pass-dt> a sht:ValidationTest ;
    mf:name "1focusvsORdatatype_pass-dt" ;
    sht:trait sht:FocusConstraint ;
    rdfs:comment "<S> [<v1> <v2> <v3>] OR <dt1> on 'v1'^^<dt1> in {  }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/focusvsORdatatype.shex> ;
      sht:shape <http://a.example/vs1> ;
      sht:data <empty.ttl> ;
      sht:focus "v1"^^<http://a.example/dt1>
    ]
    .

<#1focusvsORdatatype_fail-dt> a sht:ValidationFailure ;
    mf:name "1focusvsORdatatype_fail-dt" ;
    sht:trait sht:FocusConstraint ;
    rdfs:comment "<S> [<v1> <v2> <v3>] OR <dt1> on 'v1'^^<dt2> in {  }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/focusvsORdatatype.shex> ;
      sht:shape <http://a.example/vs1> ;
      sht:data <empty.ttl> ;
      sht:focus "v1"^^<http://a.example/dt2>
    ] ;
    .

<#focusNOTRefOR1dot_pass-inOR> a sht:ValidationTest ;
    mf:name "focusNOTRefOR1dot_pass-inOR" ;
    sht:trait sht:FocusConstraint ;
    rdfs:comment "<S1> NOT @<S2> OR { <p2> . } <S2> { <p3> . } in { <n1> <p2> <n2> }" ;
    mf:status mf:Proposed ;
    mf:action [
      sht:schema <../schemas/focusNOTRefOR1dot.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <In1_Ip2_In2.ttl> ;
      sht:focus <http://a.example/n1>
    ]
    .

<#focusNOTRefOR1dot_fail-inNOT> a sht:ValidationFailure ;
    mf:name "focusNOTRefOR1dot_fail-inNOT" ;
    sht:trait sht:FocusConstraint ;
    rdfs:comment "<S1> NOT @<S2> OR { <p2> . } <S2> { <p3> . } in { <n1> <p3> <n2> }" ;
    mf:status mf:Proposed ;
    mf:action [
      sht:schema <../schemas/focusNOTRefOR1dot.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <In1_Ip3_In2.ttl> ;
      sht:focus <http://a.example/n1>
    ]
    .

<#focusNOTRefOR1dot_pass-other> a sht:ValidationTest ;
    mf:name "focusNOTRefOR1dot_pass-other" ;
    sht:trait sht:FocusConstraint ;
    rdfs:comment "<S1> NOT @<S2> OR { <p2> . } <S2> { <p3> . } in { <n1> <p4> <n2> }" ;
    mf:status mf:Proposed ;
    mf:action [
      sht:schema <../schemas/focusNOTRefOR1dot.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <In1_Ip4_In2.ttl> ;
      sht:focus <http://a.example/n1>
    ]
    .

###  } OR focus
###  focusFacet {
####    lengths {

<#1focusLength-dot_fail-iri-short> a sht:ValidationFailure ;
    mf:name "1focusLength-dot_fail-iri-short" ;
    sht:trait sht:FocusConstraint , sht:LengthFacet ;
    rdfs:comment "<S1> LENGTH 19 { <p1> . } on { <s> <p1> <o1> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1focusLength-dot.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is_Ip1_Io1.ttl> ;
      sht:focus <http://a.example/s>
    ]
    .

<#1focusLength-dot_pass-iri-equal> a sht:ValidationTest ;
    mf:name "1focusLength-dot_pass-iri-equal" ;
    sht:trait sht:FocusConstraint , sht:LengthFacet ;
    rdfs:comment "<S1> LENGTH 19 { <p1> . } on { <s1> <p1> <o1> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1focusLength-dot.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Io1.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1focusLength-dot_fail-iri-long> a sht:ValidationFailure ;
    mf:name "1focusLength-dot_fail-iri-long" ;
    sht:trait sht:FocusConstraint , sht:LengthFacet ;
    rdfs:comment "<S1> LENGTH 19 { <p1> . } on { <s1a> <p1> <o1> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1focusLength-dot.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1a_Ip1_Io1.ttl> ;
      sht:focus <http://a.example/s1a>
    ]
    .

<#1focusLength-dot_fail-bnode-short> a sht:ValidationFailure ;
    mf:name "1focusLength-dot_fail-bnode-short" ;
    sht:trait sht:FocusConstraint , sht:LexicalBNode , sht:LengthFacet , sht:ToldBNode ;
    rdfs:comment "<S1> LENGTH 19 { <p1> . } on { _:abcd <p1> <o1> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1focusLength-dot.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Babcd_Ip1_Io1.ttl> ;
      sht:focus _:abcd
    ]
    .

<#1focusLength-dot_pass-bnode-equal> a sht:ValidationTest ;
    mf:name "1focusLength-dot_pass-bnode-equal" ;
    sht:trait sht:FocusConstraint , sht:LexicalBNode , sht:LengthFacet , sht:ToldBNode ;
    rdfs:comment "<S1> LENGTH 19 { <p1> . } on { _:abcdefghijklmnopqrs <p1> <o1> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1focusLength-dot.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Babcdefghijklmnopqrs_Ip1_Io1.ttl> ;
      sht:focus _:abcdefghijklmnopqrs
    ]
    .

<#1focusLength-dot_fail-bnode-long> a sht:ValidationFailure ;
    mf:name "1focusLength-dot_fail-bnode-long" ;
    sht:trait sht:FocusConstraint , sht:LexicalBNode , sht:LengthFacet , sht:ToldBNode ;
    rdfs:comment "<S1> LENGTH 19 { <p1> . } on { _:abcdefghijklmnopqrst <p1> <o1> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1focusLength-dot.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Babcdefghijklmnopqrst_Ip1_Io1.ttl> ;
      sht:focus _:abcdefghijklmnopqrst
    ]
    .


<#1focusMinLength-dot_fail-iri-short> a sht:ValidationFailure ;
    mf:name "1focusMinLength-dot_fail-iri-short" ;
    sht:trait sht:FocusConstraint , sht:LengthFacet ;
    rdfs:comment "<S1> MINLENGTH 19 { <p1> . } on { <s> <p1> <o1> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1focusMinLength-dot.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is_Ip1_Io1.ttl> ;
      sht:focus <http://a.example/s>
    ]
    .

<#1focusMinLength-dot_pass-iri-equal> a sht:ValidationTest ;
    mf:name "1focusMinLength-dot_pass-iri-equal" ;
    sht:trait sht:FocusConstraint , sht:LengthFacet ;
    rdfs:comment "<S1> MINLENGTH 19 { <p1> . } on { <s1> <p1> <o1> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1focusMinLength-dot.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Io1.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1focusMinLength-dot_pass-iri-long> a sht:ValidationTest ;
    mf:name "1focusMinLength-dot_pass-iri-long" ;
    sht:trait sht:FocusConstraint , sht:LengthFacet ;
    rdfs:comment "<S1> MINLENGTH 19 { <p1> . } on { <s1a> <p1> <o1> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1focusMinLength-dot.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1a_Ip1_Io1.ttl> ;
      sht:focus <http://a.example/s1a>
    ]
    .

<#1focusMinLength-dot_fail-bnode-short> a sht:ValidationFailure ;
    mf:name "1focusMinLength-dot_fail-bnode-short" ;
    sht:trait sht:FocusConstraint , sht:LengthFacet , sht:LexicalBNode , sht:ToldBNode ;
    rdfs:comment "<S1> MINLENGTH 19 { <p1> . } on { _:abcd <p1> <o1> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1focusMinLength-dot.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Babcd_Ip1_Io1.ttl> ;
      sht:focus _:abcd
    ]
    .

<#1focusMinLength-dot_pass-bnode-equal> a sht:ValidationTest ;
    mf:name "1focusMinLength-dot_pass-bnode-equal" ;
    sht:trait sht:FocusConstraint , sht:LengthFacet , sht:LexicalBNode , sht:ToldBNode ;
    rdfs:comment "<S1> MINLENGTH 19 { <p1> . } on { _:abcdefghijklmnopqrs <p1> <o1> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1focusMinLength-dot.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Babcdefghijklmnopqrs_Ip1_Io1.ttl> ;
      sht:focus _:abcdefghijklmnopqrs
    ]
    .

<#1focusMinLength-dot_pass-bnode-long> a sht:ValidationTest ;
    mf:name "1focusMinLength-dot_pass-bnode-long" ;
    sht:trait sht:FocusConstraint , sht:LengthFacet , sht:ToldBNode ;
    rdfs:comment "<S1> MINLENGTH 19 { <p1> . } on { _:abcdefghijklmnopqrst <p1> <o1> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1focusMinLength-dot.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Babcdefghijklmnopqrst_Ip1_Io1.ttl> ;
      sht:focus _:abcdefghijklmnopqrst
    ]
    .


<#1focusMaxLength-dot_pass-iri-short> a sht:ValidationTest ;
    mf:name "1focusMaxLength-dot_pass-iri-short" ;
    sht:trait sht:FocusConstraint , sht:LengthFacet ;
    rdfs:comment "<S1> MAXLENGTH 19 { <p1> . } on { <s> <p1> <o1> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1focusMaxLength-dot.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is_Ip1_Io1.ttl> ;
      sht:focus <http://a.example/s>
    ]
    .

<#1focusMaxLength-dot_pass-iri-equal> a sht:ValidationTest ;
    mf:name "1focusMaxLength-dot_pass-iri-equal" ;
    sht:trait sht:FocusConstraint , sht:LengthFacet ;
    rdfs:comment "<S1> MAXLENGTH 19 { <p1> . } on { <s1> <p1> <o1> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1focusMaxLength-dot.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Io1.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1focusMaxLength-dot_fail-iri-long> a sht:ValidationFailure ;
    mf:name "1focusMaxLength-dot_fail-iri-long" ;
    sht:trait sht:FocusConstraint , sht:LengthFacet ;
    rdfs:comment "<S1> MAXLENGTH 19 { <p1> . } on { <s1a> <p1> <o1> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1focusMaxLength-dot.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1a_Ip1_Io1.ttl> ;
      sht:focus <http://a.example/s1a>
    ]
    .

<#1focusMaxLength-dot_pass-bnode-short> a sht:ValidationTest ;
    mf:name "1focusMaxLength-dot_pass-bnode-short" ;
    sht:trait sht:FocusConstraint , sht:LengthFacet , sht:LexicalBNode , sht:LexicalBNode ;
    rdfs:comment "<S1> MAXLENGTH 19 { <p1> . } on { _:abcd <p1> <o1> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1focusMaxLength-dot.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Babcd_Ip1_Io1.ttl> ;
      sht:focus _:abcd
    ]
    .

<#1focusMaxLength-dot_pass-bnode-equal> a sht:ValidationTest ;
    mf:name "1focusMaxLength-dot_pass-bnode-equal" ;
    sht:trait sht:FocusConstraint , sht:LengthFacet , sht:LexicalBNode , sht:LexicalBNode ;
    rdfs:comment "<S1> MAXLENGTH 19 { <p1> . } on { _:abcdefghijklmnopqrs <p1> <o1> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1focusMaxLength-dot.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Babcdefghijklmnopqrs_Ip1_Io1.ttl> ;
      sht:focus _:abcdefghijklmnopqrs
    ]
    .

<#1focusMaxLength-dot_fail-bnode-long> a sht:ValidationFailure ;
    mf:name "1focusMaxLength-dot_fail-bnode-long" ;
    sht:trait sht:FocusConstraint , sht:LexicalBNode , sht:LengthFacet ;
    rdfs:comment "<S1> MAXLENGTH 19 { <p1> . } on { _:abcdefghijklmnopqrst <p1> <o1> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1focusMaxLength-dot.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Babcdefghijklmnopqrst_Ip1_Io1.ttl> ;
      sht:focus _:abcdefghijklmnopqrst
    ]
    .

####    } lengths
####    pattern {
<#1focusPattern-dot_fail-iri-match> a sht:ValidationFailure ;
    mf:name "1focusPattern-dot_fail-iri-match" ;
    sht:trait sht:PaternFacet ;
    rdfs:comment "<S1> PATTERN '^http://a.example/s1$' { <p1> } on { <s2> <p1> <o> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1focusPattern-dot.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is2_Ip1_Io.ttl> ;
      sht:focus <http://a.example/s2>
    ].

<#1focusPattern-dot_fail-iri-short> a sht:ValidationFailure ;
    mf:name "1focusPattern-dot_fail-iri-short" ;
    sht:trait sht:PaternFacet ;
    rdfs:comment "<S1> PATTERN '^http://a.example/s1$' { <p1> } on { <s> <p1> <o1> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1focusPattern-dot.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is_Ip1_Io1.ttl> ;
      sht:focus <http://a.example/s>
    ].

<#1focusPattern-dot_pass-iri-match> a sht:ValidationTest ;
    mf:name "1focusPattern-dot_pass-iri-match" ;
    sht:trait sht:PaternFacet ;
    rdfs:comment "<S1> PATTERN 'http://a.example/s1' { <p1> } on { <s1> <p1> <o1> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1focusPattern-dot.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Io1.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1focusPattern-dot_fail-iri-long> a sht:ValidationFailure ;
    mf:name "1focusPattern-dot_fail-iri-long" ;
    sht:trait sht:PaternFacet ;
    rdfs:comment "<S1> PATTERN '^http://a.example/s1$' { <p1> } on { <s1a> <p1> <o1> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1focusPattern-dot.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1a_Ip1_Io1.ttl> ;
      sht:focus <http://a.example/s1a>
    ].

<#1focusPatternB-dot_fail-iri-match> a sht:ValidationFailure ;
    mf:name "1focusPatternB-dot_fail-iri-match" ;
    sht:trait sht:PaternFacet ;
    rdfs:comment "<S1> PATTERN 'abcdefghijklmnopqrs' { <p1> } on { <s2> <p1> <o> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1focusPatternB-dot.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is2_Ip1_Io.ttl> ;
      sht:focus <http://a.example/s2>
    ].

<#1focusPatternB-dot_fail-bnode-short> a sht:ValidationFailure ;
    mf:name "1focusPatternB-dot_fail-bnode-short" ;
    sht:trait sht:PaternFacet , sht:LexicalBNode , sht:ToldBNode ;
    rdfs:comment "<S1> PATTERN 'abcdefghijklmnopqrs' { <p1> } on { _:abcd <p1> <o1> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1focusPatternB-dot.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Babcd_Ip1_Io1.ttl> ;
      sht:focus _:abcd
    ].

<#1focusPatternB-dot_pass-bnode-match> a sht:ValidationTest ;
    mf:name "1focusPatternB-dot_pass-bnode-match" ;
    sht:trait sht:PaternFacet , sht:LexicalBNode , sht:ToldBNode ;
    rdfs:comment "<S1> PATTERN 'abcdefghijklmnopqrs' { <p1> } on { _:abcdefghijklmnopqrs <p1> <o1> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1focusPatternB-dot.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Babcdefghijklmnopqrs_Ip1_Io1.ttl> ;
      sht:focus _:abcdefghijklmnopqrs
    ]
    .

<#1focusPatternB-dot_pass-bnode-long> a sht:ValidationTest ;
    mf:name "1focusPatternB-dot_pass-bnode-long" ;
    sht:trait sht:PaternFacet , sht:LexicalBNode , sht:ToldBNode ;
    rdfs:comment "<S1> PATTERN 'abcdefghijklmnopqrs' { <p1> } on { _:abcdefghijklmnopqrst <p1> <o1> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1focusPatternB-dot.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Babcdefghijklmnopqrst_Ip1_Io1.ttl> ;
      sht:focus _:abcdefghijklmnopqrst
    ]
    .

####    } pattern
###  } focusFacet
###  kind + length facet {

<#1focusIRILength_dot_fail-bnodeFocusLabel-equal> a sht:ValidationFailure ;
    mf:name "1focusIRILength_dot_fail-bnodeFocusLabel-equal" ;
    sht:trait sht:FocusConstraint , sht:LexicalBNode , sht:LengthFacet , sht:ToldBNode ;
    rdfs:comment "<S> IRI LENGTH 19 { <p1> . } on <s> in { _:abcdefghijklmnopqrs <p1> <o1> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1focusIRILength_dot.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Babcdefghijklmnopqrs_Ip1_Io1.ttl> ;
      sht:focus _:abcdefghijklmnopqrs
    ]
    .

<#1focusIRILength_dot_fail-short> a sht:ValidationFailure ;
    mf:name "1focusIRILength_dot_fail-short" ;
    sht:trait sht:FocusConstraint , sht:LengthFacet ;
    rdfs:comment "<S> IRI LENGTH 19 { <p1> . } on <s> in { <s> <p1> <o1> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1focusIRILength_dot.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is_Ip1_Io1.ttl> ;
      sht:focus <http://a.example/s>
    ]
    .

<#1focusIRILength_dot_pass> a sht:ValidationTest ;
    mf:name "1focusIRILength_dot_pass" ;
    sht:trait sht:FocusConstraint , sht:LengthFacet ;
    rdfs:comment "<S> IRI LENGTH 19 { <p1> . } on <s> in { <s1> <p1> <o1> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1focusIRILength_dot.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Io1.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1focusIRILength_dot_fail-long> a sht:ValidationFailure ;
    mf:name "1focusIRILength_dot_fail-long" ;
    sht:trait sht:FocusConstraint , sht:LengthFacet ;
    rdfs:comment "<S> IRI LENGTH 19 { <p1> . } on <s> in { <s1a> <p1> <o1> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1focusIRILength_dot.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1a_Ip1_Io1.ttl> ;
      sht:focus <http://a.example/s1a>
    ]
    .

<#1focusBNODELength_dot_fail-iriFocusLabel-equal> a sht:ValidationFailure ;
    mf:name "1focusBNODELength_dot_fail-iriFocusLabel-equal" ;
    sht:trait sht:LexicalBNode , sht:LengthFacet ;
    rdfs:comment "<S> BNODE LENGTH 19 { <p1> . } on <s> in { <s1> <p1> <o1> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1focusBNODELength_dot.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Io1.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1focusBNODELength_dot_fail-short> a sht:ValidationFailure ;
    mf:name "1focusBNODELength_dot_fail-short" ;
    sht:trait sht:FocusConstraint , sht:LengthFacet , sht:LexicalBNode , sht:ToldBNode ;
    rdfs:comment "<S> BNODE LENGTH 19 { <p1> . } on <s> in { _:abcd <p1> <o1> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1focusBNODELength_dot.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Babcd_Ip1_Io1.ttl> ;
      sht:focus _:abcd
    ]
    .

<#1focusBNODELength_dot_pass> a sht:ValidationTest ;
    mf:name "1focusBNODELength_dot_pass" ;
    sht:trait sht:FocusConstraint , sht:LengthFacet , sht:LexicalBNode , sht:ToldBNode ;
    rdfs:comment "<S> BNODE LENGTH 19 { <p1> . } on <s> in { _:abcdefghijklmnopqrs <p1> <o1> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1focusBNODELength_dot.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Babcdefghijklmnopqrs_Ip1_Io1.ttl> ;
      sht:focus _:abcdefghijklmnopqrs
    ]
    .

<#1focusBNODELength_dot_fail-long> a sht:ValidationFailure ;
    mf:name "1focusBNODELength_dot_fail-long" ;
    sht:trait sht:FocusConstraint , sht:LengthFacet , sht:LexicalBNode , sht:ToldBNode ;
    rdfs:comment "<S> BNODE LENGTH 19 { <p1> . } on <s> in { _:abcdefghijklmnopqrst <p1> <o1> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1focusBNODELength_dot.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Babcdefghijklmnopqrst_Ip1_Io1.ttl> ;
      sht:focus _:abcdefghijklmnopqrst
    ]
    .

<#1focusnonLiteralLength-dot_pass-iri-equal> a sht:ValidationTest ;
    mf:name "1focusnonLiteralLength-dot_pass-iri-equal" ;
    sht:trait sht:FocusConstraint , sht:LengthFacet ;
    rdfs:comment "<S1> NONLITERAL LENGTH 19 { <p1> . } on { <s1> <p1> <o1> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1focusnonLiteralLength-dot.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Io1.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

###  } kind + length facet
###  AND OR NOT {

 # @@ In1_Ip1_In2.ttl failure tests

<#NOT1dotOR2dot_pass-empty> a sht:ValidationTest ;
    mf:name "NOT1dotOR2dot_pass-empty" ;
    sht:trait sht:OrValueExpression , sht:NotValueExpression ;
    rdfs:comment "<S1> NOT { <p1> . } OR { <p1> .; <p2> . } on {  }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/NOT1dotOR2dot.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <empty.ttl> ;
      sht:focus <http://a.example/n1>
    ]
    .

<#NOT1dotOR2dot_pass-NoShape1> a sht:ValidationTest ;
    mf:name "NOT1dotOR2dot_pass-NoShape1" ;
    sht:trait sht:OrValueExpression , sht:NotValueExpression ;
    rdfs:comment "<S1> NOT { <p1> . } OR { <p1> .; <p2> . } on { <n1>  <p2> <n2> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/NOT1dotOR2dot.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <In1_Ip2_In2.ttl> ;
      sht:focus <http://a.example/n1>
    ]
    .

<#NOT1dotOR2dot_pass-Shape2> a sht:ValidationTest ;
    mf:name "NOT1dotOR2dot_pass-Shape2" ;
    sht:trait sht:OrValueExpression , sht:NotValueExpression ;
    rdfs:comment "<S1> NOT { <p1> . } OR { <p1> .; <p2> . } on { <n1>  <p1> <n2> . <n1>  <p2> <n3> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/NOT1dotOR2dot.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <In1_Ip1_In2.In1_Ip2_In3.ttl> ;
      sht:focus <http://a.example/n1>
    ]
    .

<#NOT1dotOR2dot_fail-Shape2> a sht:ValidationFailure ;
    mf:name "NOT1dotOR2dot_fail-Shape2" ;
    sht:trait sht:OrValueExpression , sht:NotValueExpression ;
    rdfs:comment "<S1> NOT { <p1> . } OR { <p1> .; <p2> . } on { <n1>  <p1> <n2> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/NOT1dotOR2dot.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <In1_Ip1_In2.ttl> ;
      sht:focus <http://a.example/n1>
    ]
    .

<#NOT1dotOR2dotX3_pass-empty> a sht:ValidationTest ;
    mf:name "NOT1dotOR2dotX3_pass-empty" ;
    sht:trait sht:OrValueExpression , sht:NotValueExpression ;
    rdfs:comment "<S1> ((NOT { <p1> . } OR { <p1> .; <p2> . }) AND (NOT { <p3> . } OR { <p3> .; <p4> . }) AND (NOT { <p5> . } OR { <p5> .; <p6> . }) ) on {  }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/NOT1dotOR2dotX3.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <empty.ttl> ;
      sht:focus <http://a.example/n1>
    ]
    .

<#NOT1dotOR2dotX3_pass-NoShape1> a sht:ValidationTest ;
    mf:name "NOT1dotOR2dotX3_pass-NoShape1" ;
    sht:trait sht:OrValueExpression , sht:NotValueExpression ;
    rdfs:comment "<S1> ((NOT { <p1> . } OR { <p1> .; <p2> . }) AND (NOT { <p3> . } OR { <p3> .; <p4> . }) AND (NOT { <p5> . } OR { <p5> .; <p6> . }) ) on { <n1>  <p2> <n2> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/NOT1dotOR2dotX3.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <In1_Ip2_In2.ttl> ;
      sht:focus <http://a.example/n1>
    ]
    .

<#NOT1dotOR2dotX3_pass-Shape2> a sht:ValidationTest ;
    mf:name "NOT1dotOR2dotX3_pass-Shape2" ;
    sht:trait sht:OrValueExpression , sht:NotValueExpression ;
    rdfs:comment "<S1> ((NOT { <p1> . } OR { <p1> .; <p2> . }) AND (NOT { <p3> . } OR { <p3> .; <p4> . }) AND (NOT { <p5> . } OR { <p5> .; <p6> . }) ) on { <n1>  <p1> <n2> . <n1>  <p2> <n3> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/NOT1dotOR2dotX3.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <In1_Ip1_In2.In1_Ip2_In3.ttl> ;
      sht:focus <http://a.example/n1>
    ]
    .

<#NOT1dotOR2dotX3_fail-Shape2> a sht:ValidationFailure ;
    mf:name "NOT1dotOR2dotX3_fail-Shape2" ;
    sht:trait sht:OrValueExpression , sht:NotValueExpression ;
    rdfs:comment "<S1> ((NOT { <p1> . } OR { <p1> .; <p2> . }) AND (NOT { <p3> . } OR { <p3> .; <p4> . }) AND (NOT { <p5> . } OR { <p5> .; <p6> . }) ) on { <n1>  <p1> <n2> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/NOT1dotOR2dotX3.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <In1_Ip1_In2.ttl> ;
      sht:focus <http://a.example/n1>
    ]
    .

<#NOT1dotOR2dotX3AND1_fail-empty> a sht:ValidationFailure ;
    mf:name "NOT1dotOR2dotX3AND1_fail-empty" ;
    sht:trait sht:OrValueExpression , sht:NotValueExpression ;
    rdfs:comment "<S1> ((NOT { <p1> . } OR { <p1> .; <p2> . }) AND (NOT { <p3> . } OR { <p3> .; <p4> . }) AND (NOT { <p5> . } OR { <p5> .; <p6> . }) AND ({ <p1> . } OR { <p3> . } OR { <p5> . } ) ) on {  }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/NOT1dotOR2dotX3AND1.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <empty.ttl> ;
      sht:focus <http://a.example/n1>
    ]
    .

<#NOT1dotOR2dotX3AND1_fail-NoShape1> a sht:ValidationFailure ;
    mf:name "NOT1dotOR2dotX3AND1_fail-NoShape1" ;
    sht:trait sht:OrValueExpression , sht:NotValueExpression ;
    rdfs:comment "<S1> ((NOT { <p1> . } OR { <p1> .; <p2> . }) AND (NOT { <p3> . } OR { <p3> .; <p4> . }) AND (NOT { <p5> . } OR { <p5> .; <p6> . }) AND ({ <p1> . } OR { <p3> . } OR { <p5> . } ) ) on { <n1>  <p2> <n2> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/NOT1dotOR2dotX3AND1.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <In1_Ip2_In2.ttl> ;
      sht:focus <http://a.example/n1>
    ]
    .

<#NOT1dotOR2dotX3AND1_pass-Shape2> a sht:ValidationTest ;
    mf:name "NOT1dotOR2dotX3AND1_pass-Shape2" ;
    sht:trait sht:OrValueExpression , sht:NotValueExpression ;
    rdfs:comment "<S1> ((NOT { <p1> . } OR { <p1> .; <p2> . }) AND (NOT { <p3> . } OR { <p3> .; <p4> . }) AND (NOT { <p5> . } OR { <p5> .; <p6> . }) AND ({ <p1> . } OR { <p3> . } OR { <p5> . } ) ) on { <n1>  <p1> <n2> . <n1>  <p2> <n3> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/NOT1dotOR2dotX3AND1.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <In1_Ip1_In2.In1_Ip2_In3.ttl> ;
      sht:focus <http://a.example/n1>
    ]
    .

<#NOT1dotOR2dotX3AND1_fail-Shape2> a sht:ValidationFailure ;
    mf:name "NOT1dotOR2dotX3AND1_fail-Shape2" ;
    sht:trait sht:OrValueExpression , sht:NotValueExpression ;
    rdfs:comment "<S1> ((NOT { <p1> . } OR { <p1> .; <p2> . }) AND (NOT { <p3> . } OR { <p3> .; <p4> . }) AND (NOT { <p5> . } OR { <p5> .; <p6> . }) AND ({ <p1> . } OR { <p3> . } OR { <p5> . } ) ) on { <n1>  <p1> <n2> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/NOT1dotOR2dotX3AND1.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <In1_Ip1_In2.ttl> ;
      sht:focus <http://a.example/n1>
    ]
    .

<#1NOTRefOR1dot_pass-inOR> a sht:ValidationTest ;
    mf:name "1NOTRefOR1dot_pass-inOR" ;
    rdfs:comment "<S1> { <p1> NOT @<S2> OR { <p2> . } } <S2> { <p3> . } in { <n1> <p1> <n2> . <n2> <p2> \"X\" }" ;
    mf:status mf:Proposed ;
    mf:action [
      sht:schema <../schemas/1NOTRefOR1dot.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <In1_Ip1_In2.In2_Ip2_LX.ttl> ;
      sht:focus <http://a.example/n1>
    ]
    .

<#1NOTRefOR1dot_fail-inNOT> a sht:ValidationFailure ;
    mf:name "1NOTRefOR1dot_fail-inNOT" ;
    rdfs:comment "<S1> { <p1> NOT @<S2> OR { <p2> . } } <S2> { <p3> . } in { <n1> <p1> <n2> . <n2> <p3> \"X\" }" ;
    mf:status mf:Proposed ;
    mf:action [
      sht:schema <../schemas/1NOTRefOR1dot.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <In1_Ip1_In2.In2_Ip3_LX.ttl> ;
      sht:focus <http://a.example/n1>
    ]
    .

<#1NOTRefOR1dot_pass-other> a sht:ValidationTest ;
    mf:name "1NOTRefOR1dot_pass-other" ;
    rdfs:comment "<S1> { <p1> NOT @<S2> OR { <p2> . } } <S2> { <p3> . } in { <n1> <p1> <n2> . <n2> <p4> \"X\" }" ;
    mf:status mf:Proposed ;
    mf:action [
      sht:schema <../schemas/1NOTRefOR1dot.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <In1_Ip1_In2.In2_Ip4_LX.ttl> ;
      sht:focus <http://a.example/n1>
    ]
    .

###  } AND OR NOT
## } focus constraint
## shape extern {

<#shapeExtern_pass> a sht:ValidationTest ;
    mf:name "shapeExtern_pass" ;
    sht:trait sht:SemanticAction , sht:ExternalShape ;
    rdfs:comment "<Sext> EXTERNAL + <Sext> { <p2> . } on <n2> in { <s1> <p1> <n2> . <n2> <p2> \"X\" }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/shapeExtern.shex> ;
      sht:shape <http://a.example/Sext> ;
      sht:data <In1_Ip1_In2.In2_Ip2_LX.ttl> ;
      sht:focus <http://a.example/n2> ;
      sht:shapeExterns <../schemas/shapeExtern.shextern>
    ]
    .

<#shapeExtern_fail> a sht:ValidationFailure ;
    mf:name "shapeExtern_fail" ;
    sht:trait sht:SemanticAction , sht:ExternalShape ;
    rdfs:comment "<Sext> EXTERNAL + <Sext> { <p2> . } on <n1> in { <s1> <p1> <n2> . <n2> <p2> \"X\" }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/shapeExtern.shex> ;
      sht:shape <http://a.example/Sext> ;
      sht:data <In1_Ip1_In2.In2_Ip2_LX.ttl> ;
      sht:focus <http://a.example/n1> ;
      sht:shapeExterns <../schemas/shapeExtern.shextern>
    ]
    .

<#shapeExternRef_pass> a sht:ValidationTest ;
    mf:name "shapeExternRef_pass" ;
    sht:trait sht:SemanticAction , sht:ExternalShape ;
    rdfs:comment "<S> { <p1> @<Sext> } <Sext> EXTERNAL + <S> { <p2> . } on { <s1> <p1> <n2> . <n2> <p2> \"X\" }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/shapeExternRef.shex> ;
      sht:shape <http://a.example/S> ;
      sht:data <In1_Ip1_In2.In2_Ip2_LX.ttl> ;
      sht:focus <http://a.example/n1> ;
      sht:shapeExterns <../schemas/shapeExtern.shextern>
    ]
    .

<#shapeExternRef_fail> a sht:ValidationFailure ;
    mf:name "shapeExternRef_fail" ;
    sht:trait sht:SemanticAction , sht:ExternalShape ;
    rdfs:comment "<S> { <p1> @<Sext> } <Sext> EXTERNAL + <S> { <p2> . } on { <n1> <p1> <n2> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/shapeExternRef.shex> ;
      sht:shape <http://a.example/S> ;
      sht:data <In1_Ip1_In2.ttl> ;
      sht:focus <http://a.example/n1> ;
      sht:shapeExterns <../schemas/shapeExtern.shextern>
    ]
    .

## } shape extern
## relative IRIs {
   # schema paths include ../validation in order to be easy to find.
<#1dot-relative_pass-short-shape> a sht:ValidationTest ;
    mf:name "1dot-relative_pass-short-shape" ;
    sht:trait sht:relativeIRI ;
    rdfs:comment "<S1> { <p1> [<o1>] } on <S1> in { <s1> <p1> <o1> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../validation/1dot-relative.shex> ;
      sht:shape <S1> ;
      sht:data <Is1_Ip1_Io1-relative.ttl> ;
      sht:focus <s1>
    ]
    .

<#1dot-relative_pass-relative-shape> a sht:ValidationTest ;
    mf:name "1dot-relative_pass-relative-shape" ;
    sht:trait sht:relativeIRI ;
    rdfs:comment "<S1> { <p1> [<o1>] } on <../validation/S1> in { <s1> <p1> <o1> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../validation/1dot-relative.shex> ;
      sht:shape <../validation/S1> ;
      sht:data <Is1_Ip1_Io1-relative.ttl> ;
      sht:focus <s1>
    ]
    .

## } relative IRIs
## manual schemas {

<#false-lead-excluding-value-shape> a sht:ValidationTest ;
    mf:name "false-lead-excluding-value-shape" ;
    sht:trait sht:EachOf ;
    rdfs:comment "<S> { :a @<T1>*; (:a @<T2>+ | :b int); :b .} <T1>{:b @<T3>} <T2>{:b @<T4>} <T3>{:c .} <T4>{:d .}" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../validation/false-lead-excluding-value-shape.shex> ;
      sht:shape <http://a.example.org/S> ;
      sht:data <false-lead-excluding-value-shape.ttl> ;
      sht:focus <x>
    ]
    .

<#nPlus1> a sht:ValidationTest ;
    mf:name "nPlus1" ;
    sht:trait sht:EachOf , sht:Exhaustive ;
    rdfs:comment "<S> { :a .*; (:a .+ | :a .); :a . } / { <x> :a 1, 3 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../validation/nPlus1.shex> ;
      sht:shape <http://a.example.org/S> ;
      sht:data <nPlus1.ttl> ;
      sht:focus <x>
    ]
    .

# <#nPlus1-greedy_fail> a sht:ValidationFailure ;
#     mf:name "nPlus1-greedy_fail" ;
#     sht:trait sht:EachOf , sht:Greedy ;
#     rdfs:comment "<S> { :a .*; (:a .+ | :a .); :a . } / { <x> :a 1, 3 } Greedy" ;
#     mf:status mf:Approved ;
#     mf:action [
#       sht:schema <../validation/nPlus1.shex> ;
#       sht:shape <http://a.example.org/S> ;
#       sht:data <nPlus1.ttl> ;
#       sht:focus <x>
#     ]
#     .

<#nPlus1-greedy-rewrite> a sht:ValidationTest ;
    mf:name "nPlus1-greedy-rewrite" ;
    sht:trait sht:EachOf ;
    rdfs:comment "<S> { :a [1]; (:a [2]+ | :a [3]); :a [4]* } / { <x> :a 1, 3 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../validation/nPlus1-greedy-rewrite.shex> ;
      sht:shape <http://a.example.org/S> ;
      sht:data <nPlus1.ttl> ;
      sht:focus <x>
    ]
    .

<#skipped> a sht:ValidationTest ;
    mf:name "skipped" ;
    sht:trait sht:EachOf ;
    rdfs:comment "<S> { ( :a .; :b . )?; :c . } on { <x> :c 1 }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../validation/skipped.shex> ;
      sht:shape <http://a.example.org/S> ;
      sht:data <skipped.ttl> ;
      sht:focus <x>
    ]
    .

<#2Eachdot> a sht:ValidationTest ;
    mf:name "2Eachdot" ;
    sht:trait sht:EachOf ;
    rdfs:comment "@@ 2Eachdot" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/2Eachdot.shex> ;
      sht:shape <http://a.example/S> ;
      sht:data <a1b1.ttl> ;
      sht:focus <s0>
    ]
    .

<#open2Eachdotclosecard25c1dot> a sht:ValidationTest ;
    mf:name "open2Eachdotclosecard25c1dot" ;
    sht:trait sht:EachOf ;
    rdfs:comment "<S> { ( :a .; :b . ){2,5}; :c . }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/open2Eachdotclosecard25c1dot.shex> ;
      sht:shape <http://a.example/S> ;
      sht:data <abX3c1.ttl> ;
      sht:focus <x>
    ]
    .

<#PstarT> a sht:ValidationTest ;
    mf:name "PstarT" ;
    sht:trait sht:EachOf ;
    rdfs:comment "<S1> {:a @<P>*; :a @<T>} / { <n> :a <pt1>,  <pt2>,  <p>,  <t> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../validation/Pstar.shex> ;
      sht:shape <http://a.example/base/S1> ;
      sht:data <Pstar.ttl> ;
      sht:focus <http://a.example/base/n>
    ]
    .

# <#PstarT-greedy> a sht:ValidationTest ;
#     mf:name "PstarT-greedy" ;
#     sht:trait sht:EachOf , sht:Greedy ;
#     rdfs:comment "<S1> {:a @<P>*; :a @<T>} / { <n> :a <pt1>,  <pt2>,  <p>,  <t> } Greedy" ;
#     mf:status mf:Approved ;
#     mf:action [
#       sht:schema <../validation/Pstar.shex> ;
#       sht:shape <http://a.example/base/S1> ;
#       sht:data <Pstar.ttl> ;
#       sht:focus <http://a.example/base/n>
#     ]
#     .

<#PTstar> a sht:ValidationTest ;
    mf:name "PTstar" ;
    sht:trait sht:EachOf , sht:Exhaustive ;
    rdfs:comment "<S2> {:a @<P>; :a @<T>*} / { <n> :a <pt1>,  <pt2>,  <p>,  <t> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../validation/Pstar.shex> ;
      sht:shape <http://a.example/base/S2> ;
      sht:data <Pstar.ttl> ;
      sht:focus <http://a.example/base/n>
    ]
    .

# <#PTstar-greedy-fail> a sht:ValidationFailure ;
#     mf:name "PTstar-greedy-fail" ;
#     sht:trait sht:EachOf , sht:Greedy ;
#     rdfs:comment "<S2> {:a @<P>; :a @<T>*} / { <n> :a <pt1>,  <pt2>,  <p>,  <t> } Greedy" ;
#     mf:status mf:Approved ;
#     mf:action [
#       sht:schema <../validation/Pstar.shex> ;
#       sht:shape <http://a.example/base/S2> ;
#       sht:data <Pstar.ttl> ;
#       sht:focus <http://a.example/base/n>
#     ]
#     .

<#PTstar-greedy-rewrite> a sht:ValidationTest ;
    mf:name "PTstar-greedy-rewrite" ;
    sht:trait sht:EachOf ;
    rdfs:comment "<S2> {:a @<T>*; :a @<P>} / { <n> :a <pt1>,  <pt2>,  <p>,  <t> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../validation/Pstar-greedy-rewrite.shex> ;
      sht:shape <http://a.example/base/S2> ;
      sht:data <Pstar.ttl> ;
      sht:focus <http://a.example/base/n>
    ]
    .

<#PstarTstar> a sht:ValidationTest ;
    mf:name "PstarTstar" ;
    sht:trait sht:EachOf ;
    rdfs:comment "<S3> {:a @<P>*; :a @<T>*} / { <n> :a <pt1>,  <pt2>,  <p>,  <t> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../validation/Pstar.shex> ;
      sht:shape <http://a.example/base/S3> ;
      sht:data <Pstar.ttl> ;
      sht:focus <http://a.example/base/n>
    ]
    .

<#P2T2> a sht:ValidationTest ;
    mf:name "P2T2" ;
    sht:trait sht:EachOf , sht:Exhaustive ;
    rdfs:comment "<S4> {:a @<P>{2}; :a @<T>{2}} / { <n> :a <pt1>,  <pt2>,  <p>,  <t> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../validation/Pstar.shex> ;
      sht:shape <http://a.example/base/S4> ;
      sht:data <Pstar.ttl> ;
      sht:focus <http://a.example/base/n>
    ]
    .

## } manual schemas
## imports {
### shape reference {

### 2RefS1-IS2  : I=2RefS2       S1 | 2RefS2      :          S2 sht:imports
### 2RefS2-IS1  : I=2RefS1       S2 | 2RefS1      :          S1 sht:imports
### 2RefS1-Icirc: I=2RefS2-Icirc S1 | 2RefS2-Icirc: I=2RefS1 S2 sht:imports , sht:circularImports

### 3circRefS123           :                          S1 S2 S3
### 3circRefS1-IS23        : I=3circRefS23                  S1 | 3circRefS23      :                 S2 S3
### 3circRefS1-IS2-IS3     : I=3circRefS2-IS3               S1 | 3circRefS2-IS3   : I=3circRefS3       S2 | 3circRefS3: S3
### 3circRefS3-IS12        : I=3circRefS12                  S3 | 3circRefS12      :                 S1 S2
### 3circRefS123-Icirc     : I=3circRefS123-Icirc S1 S2 S3
### 3circRefS1-Icirc       : I=3circRefS2-Icirc             S1 | 3circRefS2-Icirc : I=3circRefS3-Icirc S2 | 3circRefS3-Icirc: I=3circRefS1-Icirc S3
### 3circRefS1-IS2-IS3-IS3 : I=3circRefS2-IS3 I=3circRefS3  S1 | 3circRefS2-IS3   : I=3circRefS3       S2 | 3circRefS3: S3

<#2RefS1-IS2> a sht:ValidationTest ;
    mf:name "2RefS1-IS2" ;
    sht:trait sht:Import ;
    rdfs:comment "I2 <S1> { <p1> @<S2> } | <S2> { <p2> . } on { <s1> <p1> <n2> . <n2> <p2> \"X\" }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/2RefS1-IS2.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <In1_Ip1_In2.In2_Ip2_LX.ttl> ;
      sht:focus <http://a.example/n1>
    ] ;
    mf:result <In2_Ip2_In1@In1_Ip1_LX.val>
    .

<#2RefS1-IS2_fail-p2> a sht:ValidationFailure ;
    mf:name "2RefS1-IS2_fail-p2" ;
    sht:trait sht:Import ;
    rdfs:comment "I2 <S1> { <p1> @<S2> } | <S2> { <p2> . } on { <n1> <p1> <n2> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/2RefS1-IS2.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <In1_Ip1_In2.ttl> ;
      sht:focus <http://a.example/n1>
    ] ;
    .

<#2RefS2-IS1> a sht:ValidationTest ;
    mf:name "2RefS2-IS1" ;
    sht:trait sht:Import ;
    rdfs:comment "I2 <S2> { <p2> . } | <S1> { <p1> @<S2> }  on { <s1> <p1> <n2> . <n2> <p2> \"X\" }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/2RefS2-IS1.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <In1_Ip1_In2.In2_Ip2_LX.ttl> ;
      sht:focus <http://a.example/n1>
    ] ;
    mf:result <In2_Ip2_In1@In1_Ip1_LX.val>
    .

<#2RefS1-Icirc> a sht:ValidationTest ;
    mf:name "2RefS1-Icirc" ;
    sht:trait sht:Import ;
    rdfs:comment "I2 <S1> { <p1> @<S2> } | I1 <S2> { <p2> . } on { <s1> <p1> <n2> . <n2> <p2> \"X\" }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/2RefS1-Icirc.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <In1_Ip1_In2.In2_Ip2_LX.ttl> ;
      sht:focus <http://a.example/n1>
    ] ;
    mf:result <In2_Ip2_In1@In1_Ip1_LX.val>
    .

<#2RefS1-Icirc_fail-p2> a sht:ValidationFailure ;
    mf:name "2RefS1-Icirc_fail-p2" ;
    sht:trait sht:Import ;
    rdfs:comment "I2circ <S1> { <p1> @<S2> } | <S2> { <p2> . } on { <n1> <p1> <n2> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/2RefS1-Icirc.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <In1_Ip1_In2.ttl> ;
      sht:focus <http://a.example/n1>
    ] ;
    .

<#3circRefS1-IS23> a sht:ValidationTest ;
    mf:name "3circRefS1-IS23" ;
    sht:trait sht:Import ;
    rdfs:comment "I23 <S1> { <p1> .; <p2> @<S2>? } | <S2> { <p3> @<S3> } <S3> { <p4> @<S1> } on { <n1> <p1> \"X\" ; <p2> <n2> . <n2> <p3> <n3> . <n3> <p4> <n5> . <n5> <p1> \"X\" }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/3circRefS1-IS23.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <3circRefPlus1_pass-open.ttl> ;
      sht:focus <http://a.example/n1>
    ] ;
    mf:result <3circRefPlus1_pass-open.val>
    .

<#3circRefS1-IS23_pass-p1> a sht:ValidationTest ;
    mf:name "3circRefS1-IS23_pass-p1" ;
    sht:trait sht:Import ;
    rdfs:comment "I23 <S1> { <p1> .; <p2> @<S2>? } | <S2> { <p3> @<S3> } <S3> { <p4> @<S1> } on { <n1> <p1> <n2> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/3circRefS1-IS23.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <In1_Ip1_In2.ttl> ;
      sht:focus <http://a.example/n1>
    ] ;
    .

<#3circRefS1-IS2-IS3> a sht:ValidationTest ;
    mf:name "3circRefS1-IS2-IS3" ;
    sht:trait sht:Import ;
    rdfs:comment "I2 <S1> { <p1> .; <p2> @<S2>? } | I3 <S2> { <p3> @<S3> } | <S3> { <p4> @<S1> } on { <n1> <p1> \"X\" ; <p2> <n2> . <n2> <p3> <n3> . <n3> <p4> <n5> . <n5> <p1> \"X\" }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/3circRefS1-IS2-IS3.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <3circRefPlus1_pass-open.ttl> ;
      sht:focus <http://a.example/n1>
    ] ;
    mf:result <3circRefPlus1_pass-open.val>
    .

<#3circRefS3-IS12> a sht:ValidationTest ;
    mf:name "3circRefS3-IS12" ;
    sht:trait sht:Import ;
    rdfs:comment "I2 <S3> { <p4> @<S1> } | <S1> { <p1> .; <p2> @<S2>? } <S2> { <p3> @<S3> } on { <n1> <p1> \"X\" ; <p2> <n2> . <n2> <p3> <n3> . <n3> <p4> <n5> . <n5> <p1> \"X\" }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/3circRefS3-IS12.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <3circRefPlus1_pass-open.ttl> ;
      sht:focus <http://a.example/n1>
    ] ;
    mf:result <3circRefPlus1_pass-open.val>
    .

<#3circRefS123-Icirc> a sht:ValidationTest ;
    mf:name "3circRefS123-Icirc" ;
    sht:trait sht:Import ;
    rdfs:comment "I1 <S1> { <p1> .; <p2> @<S2>? } <S2> { <p3> @<S3> } <S3> { <p4> @<S1> } on { <n1> <p1> \"X\" ; <p2> <n2> . <n2> <p3> <n3> . <n3> <p4> <n5> . <n5> <p1> \"X\" }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/3circRefS123-Icirc.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <3circRefPlus1_pass-open.ttl> ;
      sht:focus <http://a.example/n1>
    ] ;
    mf:result <3circRefPlus1_pass-open.val>
    .

<#3circRefS1-Icirc> a sht:ValidationTest ;
    mf:name "3circRefS1-Icirc" ;
    sht:trait sht:Import ;
    rdfs:comment "I2 <S1> { <p1> .; <p2> @<S2>? } | I3 <S2> { <p3> @<S3> } | I1 <S3> { <p4> @<S1> } on { <n1> <p1> \"X\" ; <p2> <n2> . <n2> <p3> <n3> . <n3> <p4> <n5> . <n5> <p1> \"X\" }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/3circRefS1-Icirc.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <3circRefPlus1_pass-open.ttl> ;
      sht:focus <http://a.example/n1>
    ] ;
    mf:result <3circRefPlus1_pass-open.val>
    .

<#3circRefS1-IS2-IS3-IS3> a sht:ValidationTest ;
    mf:name "3circRefS1-IS2-IS3-IS3" ;
    sht:trait sht:Import ;
    rdfs:comment "I2 I3 <S1> { <p1> .; <p2> @<S2>? } | I3 <S2> { <p3> @<S3> } | <S3> { <p4> @<S1> } on { <n1> <p1> \"X\" ; <p2> <n2> . <n2> <p3> <n3> . <n3> <p4> <n5> . <n5> <p1> \"X\" }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/3circRefS1-IS2-IS3-IS3.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <3circRefPlus1_pass-open.ttl> ;
      sht:focus <http://a.example/n1>
    ] ;
    mf:result <3circRefPlus1_pass-open.val>
    .

### } shape reference
### start shape reference {

<#start2RefS1-IstartS2> a sht:ValidationTest ;
    mf:name "start2RefS1-IstartS2" ;
    sht:trait sht:Import, sht:Start ;
    rdfs:comment "I2 start=@<S1> <S1> { <p1> @<S2> } | <S2> { <p2> . } on { <s1> <p1> <n2> . <n2> <p2> \"X\" }" ;
    mf:status mf:Proposed ;
    mf:action [
      sht:schema <../schemas/start2RefS1-IstartS2.shex> ;
      # sht:shape <http://a.example/S1> ;
      sht:data <In1_Ip1_In2.In2_Ip2_LX.ttl> ;
      sht:focus <http://a.example/n1>
    ] ;
    mf:result <In2_Ip2_In1@In1_Ip1_LX.val>
    .

<#start2RefS2-IstartS1> a sht:ValidationTest ;
    mf:name "start2RefS2-IstartS1" ;
    sht:trait sht:Import, sht:Start ;
    rdfs:comment "I2 start=@<S2> <S2> { <p2> @<S1> } | <S1> { <p1> . } on { <s1> <p2> <n2> . <n2> <p1> \"X\" }" ;
    mf:status mf:Proposed ;
    mf:action [
      sht:schema <../schemas/start2RefS2-IstartS1.shex> ;
      # sht:shape <http://a.example/S2> ;
      sht:data <In1_Ip2_In2.In2_Ip1_LX.ttl> ;
      sht:focus <http://a.example/n1>
    ] ;
    mf:result <In2_Ip2_In1@In1_Ip1_LX.val>
    .


### } start shape reference
### value reference {

<#1valExprRef-IV1_fail-lit-short> a sht:ValidationFailure ;
    mf:name "1valExprRef-IV1_fail-lit-short" ;
    sht:trait sht:ValueReference , sht:LengthFacet , sht:Import ;
    rdfs:comment "<vc1> = LITERAL MINLENGTH 5 <S1> { <p1> <vc1> } on { <s1> <p1> \"abcd\" }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1valExprRef-IV1.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Labcd.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1valExprRef-IV1_pass-lit-equal> a sht:ValidationTest ;
    mf:name "1valExprRef-IV1_pass-lit-equal" ;
    sht:trait sht:ValueReference , sht:LengthFacet , sht:Import ;
    rdfs:comment "<vc1> = LITERAL MINLENGTH 5 <S1> { <p1> <vc1> } on { <s1> <p1> \"abcde\" }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1valExprRef-IV1.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Labcde.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1valExprRefbnode-IV1_fail-lit-short> a sht:ValidationFailure ;
    mf:name "1valExprRefbnode-IV1_fail-lit-short" ;
    sht:trait sht:ValueReference , sht:LengthFacet , sht:Import ;
    rdfs:comment "_:vc1 = LITERAL MINLENGTH 5 <S1> { <p1> _:vc1 } on { <s1> <p1> \"abcd\" }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1valExprRefbnode-IV1.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Labcd.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#1valExprRefbnode-IV1_pass-lit-equal> a sht:ValidationTest ;
    mf:name "1valExprRefbnode-IV1_pass-lit-equal" ;
    sht:trait sht:ValueReference , sht:LengthFacet , sht:Import ;
    rdfs:comment "_:vc1 = LITERAL MINLENGTH 5 <S1> { <p1> _:vc1 } on { <s1> <p1> \"abcde\" }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1valExprRefbnode-IV1.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Labcde.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

### } value reference
### include {

<#2EachInclude1-IS2_pass> a sht:ValidationTest ;
    mf:name "2EachInclude1-IS2_pass" ;
    sht:trait sht:Include , sht:EachOf , sht:Import ;
    rdfs:comment "I2 <S1> { &<S2>; <p1> . } on { <n1> <p1> \"X\" ; <p2> \"Y\" }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/2EachInclude1-IS2.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <In1_Ip1_LX.In1_Ip2_LY.ttl> ;
      sht:focus <http://a.example/n1>
    ]
    .

### } include
## } imports
## lists {

<#1list0PlusDot-empty_pass> a sht:ValidationTest ;
    mf:name "1list0PlusDot-empty_pass" ;
    sht:trait sht:Include , sht:EachOf , sht:Import ;
    rdfs:comment "<S1> { <p1> (DOT*) } on { <n1> <p1> () }" ;
    mf:status mf:Proposed ;
    mf:action [
      sht:schema <../schemas/1list0PlusDot.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <In1_Ip1_list_empty.ttl> ;
      sht:focus <http://a.example/n1>
    ]
    .

<#1list0PlusDot-list_Iv1,Iv2,Iv3_pass> a sht:ValidationTest ;
    mf:name "1list0PlusDot-list_Iv1,Iv2,Iv3_pass" ;
    sht:trait sht:Include , sht:EachOf , sht:Import ;
    rdfs:comment "<S1> { <p1> (DOT*) } on { <n1> <p1> (<v1> <v2> <v3>) }" ;
    mf:status mf:Proposed ;
    mf:action [
      sht:schema <../schemas/1list0PlusDot.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <In1_Ip1_list_Iv1,Iv2,Iv3.ttl> ;
      sht:focus <http://a.example/n1>
    ]
    .

<#1list0PlusDot-list_Iv1,Iv2,Lx_pass> a sht:ValidationTest ;
    mf:name "1list0PlusDot-list_Iv1,Iv2,Lx_pass" ;
    sht:trait sht:Include , sht:EachOf , sht:Import ;
    rdfs:comment "<S1> { <p1> (DOT*) } on { <n1> <p1> (<v1> <v2> \"X\") }" ;
    mf:status mf:Proposed ;
    mf:action [
      sht:schema <../schemas/1list0PlusDot.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <In1_Ip1_list_Iv1,Iv2,LX.ttl> ;
      sht:focus <http://a.example/n1>
    ]
    .

<#1list0PlusDot-manualList_Iv1,Iv2,Iv3_pass> a sht:ValidationTest ;
    mf:name "1list0PlusDot-manualList_Iv1,Iv2,Iv3_pass" ;
    sht:trait sht:Include , sht:EachOf , sht:Import ;
    rdfs:comment "<S1> { <p1> (DOT*) } on { <n1> <p1> (<v1> <v2> <v3>) }" ;
    mf:status mf:Proposed ;
    mf:action [
      sht:schema <../schemas/1list0PlusDot.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <In1_Ip1_manualList_Iv1,Iv2,Iv3.ttl> ;
      sht:focus <http://a.example/n1>
    ]
    .

<#1list0PlusDot-manualList_extraArc_Iv1,Iv2,Iv3_fail> a sht:ValidationFailure ;
    mf:name "1list0PlusDot-manualList_extraArc_Iv1,Iv2,Iv3_fail" ;
    sht:trait sht:Include , sht:EachOf , sht:Import ;
    rdfs:comment "<S1> { <p1> (DOT*) } on { <n1> <p1> (<v1> <v2> <v3>) }" ;
    mf:status mf:Proposed ;
    mf:action [
      sht:schema <../schemas/1list0PlusDot.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <In1_Ip1_manualList_extraArc_Iv1,Iv2,Iv3.ttl> ;
      sht:focus <http://a.example/n1>
    ]
    .

# <#1list0PlusDot-manualList_circular_Iv1,Iv2,Iv3_fail> a sht:ValidationFailure ;
#     mf:name "1list0PlusDot-manualList_circular_Iv1,Iv2,Iv3_fail" ;
#     sht:trait sht:Include , sht:EachOf , sht:Import ;
#     rdfs:comment "<S1> { <p1> (DOT*) } on { <n1> <p1> (<v1> <v2> <v3>) }" ;
#     mf:status mf:Proposed ;
#     mf:action [
#       sht:schema <../schemas/1list0PlusDot.shex> ;
#       sht:shape <http://a.example/S1> ;
#       sht:data <In1_Ip1_manualList_circular_Iv1,Iv2,Iv3.ttl> ;
#       sht:focus <http://a.example/n1>
#     ]
#     .

<#1list0PlusDot-manualList_2firsts_Iv1,Iv2,Iv3_fail> a sht:ValidationFailure ;
    mf:name "1list0PlusDot-manualList_2firsts_Iv1,Iv2,Iv3_fail" ;
    sht:trait sht:Include , sht:EachOf , sht:Import ;
    rdfs:comment "<S1> { <p1> (DOT*) } on { <n1> <p1> (<v1> <v2> <v3>) }" ;
    mf:status mf:Proposed ;
    mf:action [
      sht:schema <../schemas/1list0PlusDot.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <In1_Ip1_manualList_2firsts_Iv1,Iv2,Iv3.ttl> ;
      sht:focus <http://a.example/n1>
    ]
    .

<#1list0PlusIri-empty_pass> a sht:ValidationTest ;
    mf:name "1list0PlusIri-empty_pass" ;
    sht:trait sht:Include , sht:EachOf , sht:Import ;
    rdfs:comment "<S1> { <p1> (IRI*) } on { <n1> <p1> () }" ;
    mf:status mf:Proposed ;
    mf:action [
      sht:schema <../schemas/1list0PlusIri.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <In1_Ip1_list_empty.ttl> ;
      sht:focus <http://a.example/n1>
    ]
    .

<#1list0PlusIri-list_Iv1,Iv2,Iv3_pass> a sht:ValidationTest ;
    mf:name "1list0PlusIri-list_Iv1,Iv2,Iv3_pass" ;
    sht:trait sht:Include , sht:EachOf , sht:Import ;
    rdfs:comment "<S1> { <p1> (IRI*) } on { <n1> <p1> (<v1> <v2> <v3>) }" ;
    mf:status mf:Proposed ;
    mf:action [
      sht:schema <../schemas/1list0PlusIri.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <In1_Ip1_list_Iv1,Iv2,Iv3.ttl> ;
      sht:focus <http://a.example/n1>
    ]
    .

<#1list0PlusIri-list_Iv1,Iv2,Lx_fail> a sht:ValidationFailure ;
    mf:name "1list0PlusIri-list_Iv1,Iv2,Lx_fail" ;
    sht:trait sht:Include , sht:EachOf , sht:Import ;
    rdfs:comment "<S1> { <p1> (IRI*) } on { <n1> <p1> (<v1> <v2> \"X\") }" ;
    mf:status mf:Proposed ;
    mf:action [
      sht:schema <../schemas/1list0PlusIri.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <In1_Ip1_list_Iv1,Iv2,LX.ttl> ;
      sht:focus <http://a.example/n1>
    ]
    .

<#1list1PlusIri-empty_pass> a sht:ValidationFailure ;
    mf:name "1list1PlusIri-empty_pass" ;
    sht:trait sht:Include , sht:EachOf , sht:Import ;
    rdfs:comment "<S1> { <p1> (IRI*) } on { <n1> <p1> () }" ;
    mf:status mf:Proposed ;
    mf:action [
      sht:schema <../schemas/1list1PlusIri.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <In1_Ip1_list_empty.ttl> ;
      sht:focus <http://a.example/n1>
    ]
    .

<#1list1PlusIri-list_Iv1,Iv2,Iv3_pass> a sht:ValidationTest ;
    mf:name "1list1PlusIri-list_Iv1,Iv2,Iv3_pass" ;
    sht:trait sht:Include , sht:EachOf , sht:Import ;
    rdfs:comment "<S1> { <p1> (IRI*) } on { <n1> <p1> (<v1> <v2> <v3>) }" ;
    mf:status mf:Proposed ;
    mf:action [
      sht:schema <../schemas/1list1PlusIri.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <In1_Ip1_list_Iv1,Iv2,Iv3.ttl> ;
      sht:focus <http://a.example/n1>
    ]
    .

<#1list1PlusIri-list_Iv1,Iv2,Lx_fail> a sht:ValidationFailure ;
    mf:name "1list1PlusIri-list_Iv1,Iv2,Lx_fail" ;
    sht:trait sht:Include , sht:EachOf , sht:Import ;
    rdfs:comment "<S1> { <p1> (IRI*) } on { <n1> <p1> (<v1> <v2> \"X\") }" ;
    mf:status mf:Proposed ;
    mf:action [
      sht:schema <../schemas/1list1PlusIri.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <In1_Ip1_list_Iv1,Iv2,LX.ttl> ;
      sht:focus <http://a.example/n1>
    ]
    .

## } lists
## ShapeMaps {

<#node_kind_example> a sht:ValidationFailure ; # node_kind_example
    mf:name "node_kind_example" ;
    sht:trait sht:ShapeMap ;
    rdfs:comment "<S> {<p1> IRI} on { <s1> <p1> <o1> . <s2> <p2> <o2> . <s3> <p1> \"o3\" }" ;
    mf:status mf:Proposed ;
    mf:action [
      sht:schema <../schemas/node_kind_example.shex> ;
      sht:map <node_kind_example_map.json> ;
      sht:data <node_kind_example.ttl>
    ] ;
    mf:result <node_kind_example_results.json>
    .

<#dependent_shape> a sht:ValidationTest ; # dependent_shape
    mf:name "dependent_shape" ;
    sht:trait sht:ShapeMap ;
    rdfs:comment "<S1> {<p1> @<S2>} <S2> {<p2> [<s3>]} on { <s1> <p1> <s2> . <s2> <p2> <s3> }" ;
    mf:status mf:Proposed ;
    mf:action [
      sht:schema <../schemas/dependent_shape.shex> ;
      sht:map <dependent_shape_map.json> ;
      sht:data <dependent_shape.ttl>
    ] ;
    mf:result <dependent_shape_results.json>
    .

<#recursion_example> a sht:ValidationTest ; # recursion_example
    mf:name "recursion_example" ;
    sht:trait sht:ShapeMap , sht:RecursiveData ;
    rdfs:comment "<S1> {<p1> @<S1>*} on { <s1> <p1> <s2> . <s2> <p1> <s3> . <s3> <p1> <s1> }" ;
    mf:status mf:Proposed ;
    mf:action [
      sht:schema <../schemas/recursion_example.shex> ;
      sht:map <recursion_example_map.json> ;
      sht:data <recursion_example.ttl>
    ] ;
    mf:result <recursion_example_results.json>
    .

## } ShapeMaps
## Extends {

<#extends-abstract-multi-empty_pass> a sht:ValidationTest ;
    mf:name "extends-abstract-multi-empty_pass" ;
    sht:trait sht:Extends , sht:Abstract , sht:MultiExtends , sht:Closed ;
    rdfs:comment "<Issue> C { ... @<Person> ... @<Employee> } ABS <Person> <User> EXT @<Person> ABS <Rep> <Employee> EXT @<Person> EXT @<Rep> on { <Issue1> ... <User2> ... <Thompson.J> ... } " ;
    mf:status mf:proposed ;
    mf:action [
      sht:schema <../schemas/extends-abstract-multi-empty.shex> ;
      sht:shape <http://a.example/IssueShape> ;
      sht:data <extends-abstract-multi-empty_pass.ttl> ;
      sht:focus <http://a.example/Issue1>
    ] ;
    .

<#extends-abstract-multi-empty_pass-missingOptRef1> a sht:ValidationTest ;
    mf:name "extends-abstract-multi-empty_pass-missingOptRef1" ;
    sht:trait sht:Extends , sht:Abstract , sht:MultiExtends , sht:Closed ;
    rdfs:comment "<Issue> C { ... @<Person> ... @<Employee> } ABS <Person> <User> EXT @<Person> ABS <Rep> <Employee> EXT @<Person> EXT @<Rep> on { <Issue1> ... - @<Employee> <User2> ... <Thompson.J> ... } " ;
    mf:status mf:proposed ;
    mf:action [
      sht:schema <../schemas/extends-abstract-multi-empty.shex> ;
      sht:shape <http://a.example/IssueShape> ;
      sht:data <extends-abstract-multi-empty_no-employee.ttl> ;
      sht:focus <http://a.example/Issue1>
    ] ;
    .

<#extends-abstract-multi-empty_fail-missingRef2> a sht:ValidationFailure ;
    mf:name "extends-abstract-multi-empty_fail-missingRef2" ;
    sht:trait sht:Extends , sht:Abstract , sht:MultiExtends , sht:Closed ;
    rdfs:comment "<Issue> C { ... @<Person> ... @<Employee> } ABS <Person> <User> EXT @<Person> ABS <Rep> <Employee> EXT @<Person> EXT @<Rep> on { <Issue1> ... - @<Person> <User2> ... <Thompson.J> ... } " ;
    mf:status mf:proposed ;
    mf:action [
      sht:schema <../schemas/extends-abstract-multi-empty.shex> ;
      sht:shape <http://a.example/IssueShape> ;
      sht:data <extends-abstract-multi-empty_no-person.ttl> ;
      sht:focus <http://a.example/Issue1>
    ] ;
    .

<#extends-abstract-multi-empty_fail-Ref1ExtraOR> a sht:ValidationFailure ;
    mf:name "extends-abstract-multi-empty_fail-Ref1ExtraOR" ;
    sht:trait sht:Extends , sht:Abstract , sht:MultiExtends , sht:Closed ;
    rdfs:comment "<Issue> C { ... @<Person> ... @<Employee> } ABS <Person> <User> EXT @<Person> ABS <Rep> <Employee> EXT @<Person> EXT @<Rep> on { <Issue1> ... - @<Person> <User2> f:name; f:givenName; f:familyName. <Thompson.J> ... } " ;
    mf:status mf:proposed ;
    mf:action [
      sht:schema <../schemas/extends-abstract-multi-empty.shex> ;
      sht:shape <http://a.example/IssueShape> ;
      sht:data <extends-abstract-multi-empty_extraOR.ttl> ;
      sht:focus <http://a.example/Issue1>
    ] ;
    .

<#extends-abstract-multi-empty_fail-ReferrerExtraP> a sht:ValidationFailure ;
    mf:name "extends-abstract-multi-empty_fail-ReferrerExtraP" ;
    sht:trait sht:Extends , sht:Abstract , sht:MultiExtends , sht:Closed ;
    rdfs:comment "<Issue> C { ... @<Person> ... @<Employee> } ABS <Person> <User> EXT @<Person> ABS <Rep> <Employee> EXT @<Person> EXT @<Rep> on { <Issue1> ... - @<Person> <User2> f:name; f:givenName; f:familyName. <Thompson.J> ... } " ;
    mf:status mf:proposed ;
    mf:action [
      sht:schema <../schemas/extends-abstract-multi-empty.shex> ;
      sht:shape <http://a.example/IssueShape> ;
      sht:data <extends-abstract-multi-empty_issue-extraP.ttl> ;
      sht:focus <http://a.example/Issue1>
    ] ;
    .

<#extends-abstract-multi-empty_fail-Ref1ExtraP> a sht:ValidationFailure ;
    mf:name "extends-abstract-multi-empty_fail-Ref1ExtraP" ;
    sht:trait sht:Extends , sht:Abstract , sht:MultiExtends , sht:Closed ;
    rdfs:comment "<Issue> C { ... @<Person> ... @<Employee> } ABS <Person> <User> EXT @<Person> ABS <Rep> <Employee> EXT @<Person> EXT @<Rep> on { <Issue1> ... - @<Person> <User2> f:name; f:givenName; f:familyName. <Thompson.J> ... } " ;
    mf:status mf:proposed ;
    mf:action [
      sht:schema <../schemas/extends-abstract-multi-empty.shex> ;
      sht:shape <http://a.example/IssueShape> ;
      sht:data <extends-abstract-multi-empty_user-extraP.ttl> ;
      sht:focus <http://a.example/Issue1>
    ] ;
    .

<#extends-abstract-multi-empty_fail-Ref2ExtraP> a sht:ValidationFailure ;
    mf:name "extends-abstract-multi-empty_fail-Ref2ExtraP" ;
    sht:trait sht:Extends , sht:Abstract , sht:MultiExtends , sht:Closed ;
    rdfs:comment "<Issue> C { ... @<Person> ... @<Employee> } ABS <Person> <User> EXT @<Person> ABS <Rep> <Employee> EXT @<Person> EXT @<Rep> on { <Issue1> ... - @<Person> <User2> f:name; f:givenName; f:familyName. <Thompson.J> ... } " ;
    mf:status mf:proposed ;
    mf:action [
      sht:schema <../schemas/extends-abstract-multi-empty.shex> ;
      sht:shape <http://a.example/IssueShape> ;
      sht:data <extends-abstract-multi-empty_employee-extraP.ttl> ;
      sht:focus <http://a.example/Issue1>
    ] ;
    .

<#ExtendsRepeatedP-pass> a sht:ValidationTest ;
    mf:name "ExtendsRepeatedP-pass" ;
    sht:trait sht:Extends , sht:Exhaustive ;
    rdfs:comment "<A> { :p{2}; :q[3] } <B> @<A>AND{ :p+; :q+ } <C> EXT @<B> { :p } on { :s :p 1,2,3; :q 3 }" ;
    mf:status mf:proposed ;
    mf:action [
        sht:schema <../schemas/ExtendsRepeatedP.shex> ;
        sht:shape <http://a.example/#C> ;
        sht:data <sP123q3.ttl> ;
        sht:focus <http://a.example/s> ;
    ] ;
    .

<#ExtendsRepeatedP-fail_vs> a sht:ValidationFailure ;
    mf:name "ExtendsRepeatedP-fail_vs" ;
    sht:trait sht:Extends ;
    rdfs:comment "<A> { :p{2}; :q[3] } <B> @<A>AND{ :p+; :q+ } <C> EXT @<B> { :p } on { :s :p 1,2,3; :q 99 }" ;
    mf:status mf:proposed ;
    mf:action [
        sht:schema <../schemas/ExtendsRepeatedP.shex> ;
        sht:shape <http://a.example/#C> ;
        sht:data <sP123q99.ttl> ;
        sht:focus <http://a.example/s> ;
    ] ;
    .

<#ANDAbstract-pass> a sht:ValidationTest ;
    mf:name "ANDAbstract-pass" ;
    sht:trait sht:Extends ;
    rdfs:comment "ABSTRACT <A> /sA/ AND {:p} <B> @<A> AND /s B/ {:p} on { <sABxxxxxxxxx> <p> 0 }" ;
    mf:status mf:proposed ;
    mf:action [
        sht:schema <../schemas/ANDAbstract.shex> ;
        sht:shape <http://a.example/B> ;
        sht:data <sAB.ttl> ;
        sht:focus <http://a.example/sABxxxxxxxxx> ;
    ] ;
    .

<#ANDAbstract-fail_G1pattern> a sht:ValidationFailure ;
    mf:name "ANDAbstract-fail_G1pattern" ;
    sht:trait sht:Extends ;
    rdfs:comment "ABSTRACT <A> /sA/ AND {:p} <B> @<A> AND /s B/ {:p} on { <sAxxxxxxxxxx> <p> 0 }" ;
    mf:status mf:proposed ;
    mf:action [
        sht:schema <../schemas/ANDAbstract.shex> ;
        sht:shape <http://a.example/B> ;
        sht:data <sAB.ttl> ;
        sht:focus <http://a.example/sAxxxxxxxxxx> ;
    ] ;
    .

<#ANDAbstract-fail_pattern> a sht:ValidationFailure ;
    mf:name "ANDAbstract-fail_pattern" ;
    sht:trait sht:Extends ;
    rdfs:comment "ABSTRACT <A> /sA/ AND {:p} <B> @<A> AND /s B/ {:p} on { <sxBxxxxxxxxx> <p> 0 }" ;
    mf:status mf:proposed ;
    mf:action [
        sht:schema <../schemas/ANDAbstract.shex> ;
        sht:shape <http://a.example/B> ;
        sht:data <sAB.ttl> ;
        sht:focus <http://a.example/sxBxxxxxxxxx> ;
    ] ;
    .

<#AND3G-pass> a sht:ValidationTest ;
    mf:name "AND3G-pass" ;
    sht:trait sht:Extends ;
    rdfs:comment "ABS <A> ABS <B> @<A> <C> <D> @<B> AND @<A> on { <sABCDxxxxxxx> <p> 0 }" ;
    mf:status mf:proposed ;
    mf:action [
        sht:schema <../schemas/AND3G.shex> ;
        sht:shape <http://a.example/D> ;
        sht:data <sABCD.ttl> ;
        sht:focus <http://a.example/sABCDxxxxxxx> ;
    ] ;
    .

<#AND3G-fail_G2pattern> a sht:ValidationFailure ;
    mf:name "AND3G-fail_G2pattern" ;
    sht:trait sht:Extends ;
    rdfs:comment "ABS <A> ABS <B> @<A> <C> <D> @<B> AND @<A> on { <sAxxxxxxxxxx> <p> 0 }" ;
    mf:status mf:proposed ;
    mf:action [
        sht:schema <../schemas/AND3G.shex> ;
        sht:shape <http://a.example/D> ;
        sht:data <sABCD.ttl> ;
        sht:focus <http://a.example/sxBCDxxxxxxx> ;
    ] ;
    .

<#AND3G-fail_G1Bpattern> a sht:ValidationFailure ;
    mf:name "AND3G-fail_G1Bpattern" ;
    sht:trait sht:Extends ;
    rdfs:comment "ABS <A> ABS <B> @<A> <C> <D> @<B> AND @<A> on { <sxxCxxxxxxxx> <p> 0 }" ;
    mf:status mf:proposed ;
    mf:action [
        sht:schema <../schemas/AND3G.shex> ;
        sht:shape <http://a.example/D> ;
        sht:data <sABCD.ttl> ;
        sht:focus <http://a.example/sABxDxxxxxxx> ;
    ] ;
    .

<#ExtendAND3G-pass> a sht:ValidationTest ;
    mf:name "ExtendAND3G-pass" ;
    sht:trait sht:Extends , sht:Exhaustive ;
    rdfs:comment "<E> EXTENDS @<D> {:p [2]} on { <sABCDExxxxxx> <p> 0, 2 }" ;
    mf:status mf:proposed ;
    mf:action [
        sht:schema <../schemas/ExtendAND3G.shex> ;
        sht:shape <http://a.example/E> ;
        sht:data <sABCDE.ttl> ;
        sht:focus <http://a.example/sABCDExxxxxx> ;
    ] ;
    .

<#ExtendAND3G-fail_EXTG1> a sht:ValidationFailure ;
    mf:name "ExtendAND3G-fail_EXTG1" ;
    sht:trait sht:Extends ;
    rdfs:comment "<E> EXTENDS @<D> {:p [2]} on { <sABCDExxxxxx> <p> 2 }" ;
    mf:status mf:proposed ;
    mf:action [
        sht:schema <../schemas/ExtendAND3G.shex> ;
        sht:shape <http://a.example/E> ;
        sht:data <sABCDE.ttl> ;
        sht:focus <http://a.example/sABCDExxxxx1> ;
    ] ;
    .

<#ExtendAND3G-fail_ExtraP> a sht:ValidationFailure ;
    mf:name "ExtendAND3G-fail_ExtraP" ;
    sht:trait sht:Extends ;
    rdfs:comment "<E> EXTENDS @<D> {:p [2]} on { <sABCDExxxxxx> <p> 0, 2, 3 }" ;
    mf:status mf:proposed ;
    mf:action [
        sht:schema <../schemas/ExtendAND3G.shex> ;
        sht:shape <http://a.example/E> ;
        sht:data <sABCDE.ttl> ;
        sht:focus <http://a.example/sABCDExxxxx3> ;
    ] ;
    .

<#ExtendAND3G-fail_G3pattern> a sht:ValidationFailure ;
    mf:name "ExtendAND3G-fail_G3pattern" ;
    sht:trait sht:Extends ;
    rdfs:comment "<E> EXTENDS @<D> {:p [2]} on { <sxBCDExxxxxx> <p> 0, 2 }" ;
    mf:status mf:proposed ;
    mf:action [
        sht:schema <../schemas/ExtendAND3G.shex> ;
        sht:shape <http://a.example/E> ;
        sht:data <sABCDE.ttl> ;
        sht:focus <http://a.example/sxBCDExxxxxx> ;
    ] ;
    .

<#ExtendAND3G-fail_EXTG1ANDG1> a sht:ValidationFailure ;
    mf:name "ExtendAND3G-fail_EXTG1ANDG1" ;
    sht:trait sht:Extends ;
    rdfs:comment "<E> EXTENDS @<D> {:p [2]} on { <sABxDExxxxxx> <p> 0, 2 }" ;
    mf:status mf:proposed ;
    mf:action [
        sht:schema <../schemas/ExtendAND3G.shex> ;
        sht:shape <http://a.example/E> ;
        sht:data <sABCDE.ttl> ;
        sht:focus <http://a.example/sABxDExxxxxx> ;
    ] ;
    .

<#ExtendAND3G-fail_EXTG1pattern> a sht:ValidationFailure ;
    mf:name "ExtendAND3G-fail_EXTG1pattern" ;
    sht:trait sht:Extends ;
    rdfs:comment "<E> EXTENDS @<D> {:p [2]} on { <sABCxExxxxxx> <p> 0, 2 }" ;
    mf:status mf:proposed ;
    mf:action [
        sht:schema <../schemas/ExtendAND3G.shex> ;
        sht:shape <http://a.example/E> ;
        sht:data <sABCDE.ttl> ;
        sht:focus <http://a.example/sABCxExxxxxx> ;
    ] ;
    .

<#ExtendAND3G-fail_G0> a sht:ValidationFailure ;
    mf:name "ExtendAND3G-fail_G0" ;
    sht:trait sht:Extends ;
    rdfs:comment "<E> EXTENDS @<D> {:p [2]} on { <sABCDxxxxxxx> <p> 0, 2 }" ;
    mf:status mf:proposed ;
    mf:action [
        sht:schema <../schemas/ExtendAND3G.shex> ;
        sht:shape <http://a.example/E> ;
        sht:data <sABCDE.ttl> ;
        sht:focus <http://a.example/sABCDxxxxxxx> ;
    ] ;
    .

<#Extend3G-pass> a sht:ValidationTest ;
    mf:name "Extend3G-pass" ;
    sht:trait sht:Extends , sht:Exhaustive ;
    rdfs:comment "@@Extend3G-15" ;
    mf:status mf:proposed ;
    mf:action [
        sht:schema <../schemas/Extend3G.shex> ;
        sht:shape <http://a.example/G> ;
        sht:data <sABCDEFG.ttl> ;
        sht:focus <http://a.example/sABCDEFGxxxx> ;
    ] ;
    .

<#Extend3G-t16> a sht:ValidationFailure ;
    mf:name "Extend3G-t16" ;
    sht:trait sht:Extends ;
    rdfs:comment "@@Extend3G-16" ;
    mf:status mf:proposed ;
    mf:action [
        sht:schema <../schemas/Extend3G.shex> ;
        sht:shape <http://a.example/G> ;
        sht:data <sABCDEFG.ttl> ;
        sht:focus <http://a.example/sABCDEFGxxx1> ;
    ] ;
    .

<#Extend3G-t17> a sht:ValidationFailure ;
    mf:name "Extend3G-t17" ;
    sht:trait sht:Extends ;
    rdfs:comment "@@Extend3G-17" ;
    mf:status mf:proposed ;
    mf:action [
        sht:schema <../schemas/Extend3G.shex> ;
        sht:shape <http://a.example/G> ;
        sht:data <sABCDEFG.ttl> ;
        sht:focus <http://a.example/sABCDEFGxxx3> ;
    ] ;
    .

<#Extend3G-t18> a sht:ValidationFailure ;
    mf:name "Extend3G-t18" ;
    sht:trait sht:Extends ;
    rdfs:comment "@@Extend3G-18" ;
    mf:status mf:proposed ;
    mf:action [
        sht:schema <../schemas/Extend3G.shex> ;
        sht:shape <http://a.example/G> ;
        sht:data <sABCDEFG.ttl> ;
        sht:focus <http://a.example/sxBCDEFGxxxx> ;
    ] ;
    .

<#Extend3G-t19> a sht:ValidationFailure ;
    mf:name "Extend3G-t19" ;
    sht:trait sht:Extends ;
    rdfs:comment "@@Extend3G-19" ;
    mf:status mf:proposed ;
    mf:action [
        sht:schema <../schemas/Extend3G.shex> ;
        sht:shape <http://a.example/G> ;
        sht:data <sABCDEFG.ttl> ;
        sht:focus <http://a.example/sABxDEFGxxxx> ;
    ] ;
    .

<#Extend3G-t20> a sht:ValidationFailure ;
    mf:name "Extend3G-t20" ;
    sht:trait sht:Extends ;
    rdfs:comment "@@Extend3G-20" ;
    mf:status mf:proposed ;
    mf:action [
        sht:schema <../schemas/Extend3G.shex> ;
        sht:shape <http://a.example/G> ;
        sht:data <sABCDEFG.ttl> ;
        sht:focus <http://a.example/sABCxEFGxxxx> ;
    ] ;
    .

<#Extend3G-t21> a sht:ValidationFailure ;
    mf:name "Extend3G-t21" ;
    sht:trait sht:Extends ;
    rdfs:comment "@@Extend3G-21" ;
    mf:status mf:proposed ;
    mf:action [
        sht:schema <../schemas/Extend3G.shex> ;
        sht:shape <http://a.example/G> ;
        sht:data <sABCDEFG.ttl> ;
        sht:focus <http://a.example/sABCDxFGxxxx> ;
    ] ;
    .

<#ExtendANDExtend3GAND3G-pass> a sht:ValidationTest ;
    mf:name "ExtendANDExtend3GAND3G-pass" ;
    sht:trait sht:Extends , sht:Exhaustive ;
    rdfs:comment "@@ExtendANDExtend3GAND3G-22" ;
    mf:status mf:proposed ;
    mf:action [
        sht:schema <../schemas/ExtendANDExtend3GAND3G.shex> ;
        sht:shape <http://a.example/J> ;
        sht:data <sABCDEFGHIJ.ttl> ;
        sht:focus <http://a.example/sABCDEFGHIJx> ;
    ] ;
    .

<#ExtendANDExtend3GAND3G-t23> a sht:ValidationTest ;
    mf:name "ExtendANDExtend3GAND3G-t23" ;
    sht:trait sht:Extends ;
    rdfs:comment "@@ExtendANDExtend3GAND3G-23" ;
    mf:status mf:proposed ;
    mf:action [
        sht:schema <../schemas/ExtendANDExtend3GAND3G.shex> ;
        sht:shape <http://a.example/A> ;
        sht:data <sABCDEFGHIJ.ttl> ;
        sht:focus <http://a.example/sABCDEFGHIJx> ;
    ] ;
    .

<#ExtendANDExtend3GAND3G-t24> a sht:ValidationFailure ;
    mf:name "ExtendANDExtend3GAND3G-t24" ;
    sht:trait sht:Extends ;
    rdfs:comment "@@ExtendANDExtend3GAND3G-24" ;
    mf:status mf:proposed ;
    mf:action [
        sht:schema <../schemas/ExtendANDExtend3GAND3G.shex> ;
        sht:shape <http://a.example/J> ;
        sht:data <sABCDEFGHIJ.ttl> ;
        sht:focus <http://a.example/sxBCDEFGHIJx> ;
    ] ;
    .

<#ExtendANDExtend3GAND3G-t25> a sht:ValidationFailure ;
    mf:name "ExtendANDExtend3GAND3G-t25" ;
    sht:trait sht:Extends ;
    rdfs:comment "@@ExtendANDExtend3GAND3G-25" ;
    mf:status mf:proposed ;
    mf:action [
        sht:schema <../schemas/ExtendANDExtend3GAND3G.shex> ;
        sht:shape <http://a.example/J> ;
        sht:data <sABCDEFGHIJ.ttl> ;
        sht:focus <http://a.example/sABCDEFxHIJx> ;
    ] ;
    .

<#ExtendANDExtend3GAND3G-t26> a sht:ValidationFailure ;
    mf:name "ExtendANDExtend3GAND3G-t26" ;
    sht:trait sht:Extends ;
    rdfs:comment "@@ExtendANDExtend3GAND3G-26" ;
    mf:status mf:proposed ;
    mf:action [
        sht:schema <../schemas/ExtendANDExtend3GAND3G.shex> ;
        sht:shape <http://a.example/J> ;
        sht:data <sABCDEFGHIJ.ttl> ;
        sht:focus <http://a.example/sABCDEFGxIJx> ;
    ] ;
    .

<#ExtendANDExtend3GAND3G-t27> a sht:ValidationFailure ;
    mf:name "ExtendANDExtend3GAND3G-t27" ;
    sht:trait sht:Extends ;
    rdfs:comment "@@ExtendANDExtend3GAND3G-27" ;
    mf:status mf:proposed ;
    mf:action [
        sht:schema <../schemas/ExtendANDExtend3GAND3G.shex> ;
        sht:shape <http://a.example/J> ;
        sht:data <sABCDEFGHIJ.ttl> ;
        sht:focus <http://a.example/sABCDEFGHxJx> ;
    ] ;
    .

<#ExtendANDExtend3GAND3G-t28> a sht:ValidationFailure ;
    mf:name "ExtendANDExtend3GAND3G-t28" ;
    sht:trait sht:Extends ;
    rdfs:comment "@@ExtendANDExtend3GAND3G-28" ;
    mf:status mf:proposed ;
    mf:action [
        sht:schema <../schemas/ExtendANDExtend3GAND3G.shex> ;
        sht:shape <http://a.example/J> ;
        sht:data <sABCDEFGHIJ.ttl> ;
        sht:focus <http://a.example/sABCDEFGHIxx> ;
    ] ;
    .

<#ExtendANDExtend3GAND3G-t29> a sht:ValidationFailure ;
    mf:name "ExtendANDExtend3GAND3G-t29" ;
    sht:trait sht:Extends ;
    rdfs:comment "@@ExtendANDExtend3GAND3G-29" ;
    mf:status mf:proposed ;
    mf:action [
        sht:schema <../schemas/ExtendANDExtend3GAND3G.shex> ;
        sht:shape <http://a.example/J> ;
        sht:data <sABCDEFGHIJ.ttl> ;
        sht:focus <http://a.example/sABCDEFGHIJ0> ;
    ] ;
    .

<#ExtendANDExtend3GAND3G-t30> a sht:ValidationFailure ;
    mf:name "ExtendANDExtend3GAND3G-t30" ;
    sht:trait sht:Extends ;
    rdfs:comment "@@ExtendANDExtend3GAND3G-30" ;
    mf:status mf:proposed ;
    mf:action [
        sht:schema <../schemas/ExtendANDExtend3GAND3G.shex> ;
        sht:shape <http://a.example/J> ;
        sht:data <sABCDEFGHIJ.ttl> ;
        sht:focus <http://a.example/sABCDEFGHIJ1> ;
    ] ;
    .

<#ExtendANDExtend3GAND3G-t31> a sht:ValidationFailure ;
    mf:name "ExtendANDExtend3GAND3G-t31" ;
    sht:trait sht:Extends ;
    rdfs:comment "@@ExtendANDExtend3GAND3G-31" ;
    mf:status mf:proposed ;
    mf:action [
        sht:schema <../schemas/ExtendANDExtend3GAND3G.shex> ;
        sht:shape <http://a.example/J> ;
        sht:data <sABCDEFGHIJ.ttl> ;
        sht:focus <http://a.example/sABCDEFGHIJ2> ;
    ] ;
    .

<#ExtendANDExtend3GAND3G-t32> a sht:ValidationFailure ;
    mf:name "ExtendANDExtend3GAND3G-t32" ;
    sht:trait sht:Extends ;
    rdfs:comment "@@ExtendANDExtend3GAND3G-32" ;
    mf:status mf:proposed ;
    mf:action [
        sht:schema <../schemas/ExtendANDExtend3GAND3G.shex> ;
        sht:shape <http://a.example/J> ;
        sht:data <sABCDEFGHIJ.ttl> ;
        sht:focus <http://a.example/sABCDEFGHIJ3> ;
    ] ;
    .

<#ExtendANDExtend3GAND3G-t33> a sht:ValidationTest ;
    mf:name "ExtendANDExtend3GAND3G-t33" ;
    sht:trait sht:Extends , sht:Exhaustive ;
    rdfs:comment "@@ExtendANDExtend3GAND3G-33" ;
    mf:status mf:proposed ;
    mf:action [
        sht:schema <../schemas/ExtendANDExtend3GAND3G.shex> ;
        sht:shape <http://a.example/J> ;
        sht:data <sABCDEFGHIJ.ttl> ;
        sht:focus <http://a.example/sABCDEFGHIJ5> ;
    ] ;
    .

<#ExtendANDExtend3GAND3G-t34> a sht:ValidationFailure ;
    mf:name "ExtendANDExtend3GAND3G-t34" ;
    sht:trait sht:Extends ;
    rdfs:comment "@@ExtendANDExtend3GAND3G-34" ;
    mf:status mf:proposed ;
    mf:action [
        sht:schema <../schemas/ExtendANDExtend3GAND3G.shex> ;
        sht:shape <http://a.example/J> ;
        sht:data <sABCDEFGHIJ.ttl> ;
        sht:focus <http://a.example/sABCDEFGHIJ6> ;
    ] ;
    .

<#ExtendANDExtend3GAND3G-t35> a sht:ValidationFailure ;
    mf:name "ExtendANDExtend3GAND3G-t35" ;
    sht:trait sht:Extends ;
    rdfs:comment "@@ExtendANDExtend3GAND3G-35" ;
    mf:status mf:proposed ;
    mf:action [
        sht:schema <../schemas/ExtendANDExtend3GAND3G.shex> ;
        sht:shape <http://a.example/J> ;
        sht:data <sABCDEFGHIJ.ttl> ;
        sht:focus <http://a.example/sABCDEFGHIJ7> ;
    ] ;
    .

<#vitals-RESTRICTS-pass_lie-Observation> a sht:ValidationTest ;
    mf:name "vitals-RESTRICTS-pass_lie-Observation" ;
    sht:trait sht:Extends ;
    rdfs:comment "@@vitals-RESTRICTS-36" ;
    mf:status mf:proposed ;
    mf:action [
        sht:schema <../schemas/vitals-RESTRICTS.shex> ;
        sht:shape <http://a.example/#Observation> ;
        sht:data <vitals.ttl> ;
        sht:focus <http://a.example/#lie> ;
    ] ;
    .

<#vitals-RESTRICTS-pass_lie-Vital> a sht:ValidationTest ;
    mf:name "vitals-RESTRICTS-pass_lie-Vital" ;
    sht:trait sht:Extends , sht:Exhaustive ;
    rdfs:comment "@@vitals-RESTRICTS-37" ;
    mf:status mf:proposed ;
    mf:action [
        sht:schema <../schemas/vitals-RESTRICTS.shex> ;
        sht:shape <http://a.example/#Vital> ;
        sht:data <vitals.ttl> ;
        sht:focus <http://a.example/#lie> ;
    ] ;
    .

<#vitals-RESTRICTS-pass_lie-BP> a sht:ValidationTest ;
    mf:name "vitals-RESTRICTS-pass_lie-BP" ;
    sht:trait sht:Extends , sht:Exhaustive ;
    rdfs:comment "@@vitals-RESTRICTS-38" ;
    mf:status mf:proposed ;
    mf:action [
        sht:schema <../schemas/vitals-RESTRICTS.shex> ;
        sht:shape <http://a.example/#BP> ;
        sht:data <vitals.ttl> ;
        sht:focus <http://a.example/#lie> ;
    ] ;
    .

<#vitals-RESTRICTS-pass_lie-PostureVital> a sht:ValidationTest ;
    mf:name "vitals-RESTRICTS-pass_lie-PostureVital" ;
    sht:trait sht:Extends , sht:Exhaustive ;
    rdfs:comment "@@vitals-RESTRICTS-39" ;
    mf:status mf:proposed ;
    mf:action [
        sht:schema <../schemas/vitals-RESTRICTS.shex> ;
        sht:shape <http://a.example/#PostureVital> ;
        sht:data <vitals.ttl> ;
        sht:focus <http://a.example/#lie> ;
    ] ;
    .

<#vitals-RESTRICTS-pass_lie-ReclinedVital> a sht:ValidationTest ;
    mf:name "vitals-RESTRICTS-pass_lie-ReclinedVital" ;
    sht:trait sht:Extends , sht:Exhaustive ;
    rdfs:comment "@@vitals-RESTRICTS-40" ;
    mf:status mf:proposed ;
    mf:action [
        sht:schema <../schemas/vitals-RESTRICTS.shex> ;
        sht:shape <http://a.example/#ReclinedVital> ;
        sht:data <vitals.ttl> ;
        sht:focus <http://a.example/#lie> ;
    ] ;
    .

<#vitals-RESTRICTS-pass_lie-PostureBP> a sht:ValidationTest ;
    mf:name "vitals-RESTRICTS-pass_lie-PostureBP" ;
    sht:trait sht:Extends , sht:Exhaustive ;
    rdfs:comment "@@vitals-RESTRICTS-41" ;
    mf:status mf:proposed ;
    mf:action [
        sht:schema <../schemas/vitals-RESTRICTS.shex> ;
        sht:shape <http://a.example/#PostureBP> ;
        sht:data <vitals.ttl> ;
        sht:focus <http://a.example/#lie> ;
    ] ;
    .

<#vitals-RESTRICTS-pass_lie-ReclinedBP> a sht:ValidationTest ;
    mf:name "vitals-RESTRICTS-pass_lie-ReclinedBP" ;
    sht:trait sht:Extends , sht:Exhaustive ;
    rdfs:comment "@@vitals-RESTRICTS-42" ;
    mf:status mf:proposed ;
    mf:action [
        sht:schema <../schemas/vitals-RESTRICTS.shex> ;
        sht:shape <http://a.example/#ReclinedBP> ;
        sht:data <vitals.ttl> ;
        sht:focus <http://a.example/#lie> ;
    ] ;
    .

<#vitals-RESTRICTS-pass_lie-Posture> a sht:ValidationTest ;
    mf:name "vitals-RESTRICTS-pass_lie-Posture" ;
    sht:trait sht:Extends , sht:Exhaustive ;
    rdfs:comment "@@vitals-RESTRICTS-43" ;
    mf:status mf:proposed ;
    mf:action [
        sht:schema <../schemas/vitals-RESTRICTS.shex> ;
        sht:shape <http://a.example/#Posture> ;
        sht:data <vitals.ttl> ;
        sht:focus <http://a.example/#lie> ;
    ] ;
    .

<#vitals-RESTRICTS-pass_lie-Reclined> a sht:ValidationTest ;
    mf:name "vitals-RESTRICTS-pass_lie-Reclined" ;
    sht:trait sht:Extends , sht:Exhaustive ;
    rdfs:comment "@@vitals-RESTRICTS-44" ;
    mf:status mf:proposed ;
    mf:action [
        sht:schema <../schemas/vitals-RESTRICTS.shex> ;
        sht:shape <http://a.example/#Reclined> ;
        sht:data <vitals.ttl> ;
        sht:focus <http://a.example/#lie> ;
    ] ;
    .

<#vitals-RESTRICTS-pass_sit-Observation> a sht:ValidationTest ;
    mf:name "vitals-RESTRICTS-pass_sit-Observation" ;
    sht:trait sht:Extends , sht:Exhaustive ;
    rdfs:comment "@@vitals-RESTRICTS-45" ;
    mf:status mf:proposed ;
    mf:action [
        sht:schema <../schemas/vitals-RESTRICTS.shex> ;
        sht:shape <http://a.example/#Observation> ;
        sht:data <vitals.ttl> ;
        sht:focus <http://a.example/#sit> ;
    ] ;
    .

<#vitals-RESTRICTS-pass_sit-Vital> a sht:ValidationTest ;
    mf:name "vitals-RESTRICTS-pass_sit-Vital" ;
    sht:trait sht:Extends , sht:Exhaustive ;
    rdfs:comment "@@vitals-RESTRICTS-46" ;
    mf:status mf:proposed ;
    mf:action [
        sht:schema <../schemas/vitals-RESTRICTS.shex> ;
        sht:shape <http://a.example/#Vital> ;
        sht:data <vitals.ttl> ;
        sht:focus <http://a.example/#sit> ;
    ] ;
    .

<#vitals-RESTRICTS-pass_sit-BP> a sht:ValidationTest ;
    mf:name "vitals-RESTRICTS-pass_sit-BP" ;
    sht:trait sht:Extends , sht:Exhaustive ;
    rdfs:comment "@@vitals-RESTRICTS-47" ;
    mf:status mf:proposed ;
    mf:action [
        sht:schema <../schemas/vitals-RESTRICTS.shex> ;
        sht:shape <http://a.example/#BP> ;
        sht:data <vitals.ttl> ;
        sht:focus <http://a.example/#sit> ;
    ] ;
    .

<#vitals-RESTRICTS-pass_sit-PostureVital> a sht:ValidationTest ;
    mf:name "vitals-RESTRICTS-pass_sit-PostureVital" ;
    sht:trait sht:Extends , sht:Exhaustive ;
    rdfs:comment "@@vitals-RESTRICTS-48" ;
    mf:status mf:proposed ;
    mf:action [
        sht:schema <../schemas/vitals-RESTRICTS.shex> ;
        sht:shape <http://a.example/#PostureVital> ;
        sht:data <vitals.ttl> ;
        sht:focus <http://a.example/#sit> ;
    ] ;
    .

<#vitals-RESTRICTS-fail_sit-ReclinedVital> a sht:ValidationFailure ;
    mf:name "vitals-RESTRICTS-fail_sit-ReclinedVital" ;
    sht:trait sht:Extends , sht:Exhaustive ;
    rdfs:comment "@@vitals-RESTRICTS-49" ;
    mf:status mf:proposed ;
    mf:action [
        sht:schema <../schemas/vitals-RESTRICTS.shex> ;
        sht:shape <http://a.example/#ReclinedVital> ;
        sht:data <vitals.ttl> ;
        sht:focus <http://a.example/#sit> ;
    ] ;
    .

<#vitals-RESTRICTS-pass_sit-PostureBP> a sht:ValidationTest ;
    mf:name "vitals-RESTRICTS-pass_sit-PostureBP" ;
    sht:trait sht:Extends , sht:Exhaustive ;
    rdfs:comment "@@vitals-RESTRICTS-50" ;
    mf:status mf:proposed ;
    mf:action [
        sht:schema <../schemas/vitals-RESTRICTS.shex> ;
        sht:shape <http://a.example/#PostureBP> ;
        sht:data <vitals.ttl> ;
        sht:focus <http://a.example/#sit> ;
    ] ;
    .

<#vitals-RESTRICTS-fail_sit-ReclinedBP> a sht:ValidationFailure ;
    mf:name "vitals-RESTRICTS-fail_sit-ReclinedBP" ;
    sht:trait sht:Extends , sht:Exhaustive ;
    rdfs:comment "@@vitals-RESTRICTS-51" ;
    mf:status mf:proposed ;
    mf:action [
        sht:schema <../schemas/vitals-RESTRICTS.shex> ;
        sht:shape <http://a.example/#ReclinedBP> ;
        sht:data <vitals.ttl> ;
        sht:focus <http://a.example/#sit> ;
    ] ;
    .

<#vitals-RESTRICTS-pass_sit-Posture> a sht:ValidationTest ;
    mf:name "vitals-RESTRICTS-pass_sit-Posture" ;
    sht:trait sht:Extends , sht:Exhaustive ;
    rdfs:comment "@@vitals-RESTRICTS-52" ;
    mf:status mf:proposed ;
    mf:action [
        sht:schema <../schemas/vitals-RESTRICTS.shex> ;
        sht:shape <http://a.example/#Posture> ;
        sht:data <vitals.ttl> ;
        sht:focus <http://a.example/#sit> ;
    ] ;
    .

<#vitals-RESTRICTS-fail_sit-Reclined> a sht:ValidationFailure ;
    mf:name "vitals-RESTRICTS-fail_sit-Reclined" ;
    sht:trait sht:Extends , sht:Exhaustive ;
    rdfs:comment "@@vitals-RESTRICTS-53" ;
    mf:status mf:proposed ;
    mf:action [
        sht:schema <../schemas/vitals-RESTRICTS.shex> ;
        sht:shape <http://a.example/#Reclined> ;
        sht:data <vitals.ttl> ;
        sht:focus <http://a.example/#sit> ;
    ] ;
    .

## } Extends
## Abstract {

## } Abstract
# deferred {
## error reporting {
<#1dot_fail-empty-err> a sht:ValidationFailure ;
    mf:name "1dot_fail-empty-err" ;
    sht:trait sht:ErrorReport ;
    rdfs:comment "<S> { <p1> . } on {  }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/1dot.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <empty.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

<#2dot_fail-empty-err> a sht:ValidationFailure ; # 2dot_fail-missing-err
    mf:name "2dot_fail-empty-err" ;
    sht:trait sht:ErrorReport ;
    rdfs:comment "<S> { <p1> .; <p2> . } on { <s1> <p1> <o1> }" ;
    mf:status mf:Approved ;
    mf:action [
      sht:schema <../schemas/2dot.shex> ;
      sht:shape <http://a.example/S1> ;
      sht:data <Is1_Ip1_Io1.ttl> ;
      sht:focus <http://a.example/s1>
    ]
    .

## } error reporting
# futureWork {
## inherit {

 # !../schemas/0Inherit1.shex
 # !../schemas/1dotInherit1.shex
 # !../schemas/1dotInherit3.shex
 # !../schemas/1dot3Inherit.shex [1dotInherit3.shex]
 # !../schemas/1dot3InheritLN.shex

### virtual {
 # !../schemas/1dotVirtualShapeCode1.shex
 # !../schemas/1dotVirtual.shex
### } virtual
## } inherit
## unlabeled semantic actions {
 # !../schemas/1dotUnlabeledCode1.shex
## } unlabeled semantic actions
## everything {
 # !../schemas/_all.shex
 # !../schemas/kitchenSink.shex
## } everything
# } futureWork
