diff --git a/TODO b/TODO new file mode 100644 index 00000000..50b1494b --- /dev/null +++ b/TODO @@ -0,0 +1 @@ +'-' in e.g. [[@en - @en-US]] is called "Minus". "Excl" would be better. diff --git a/negativeSyntax/Dot-Minus-emptylanguageStem.shex b/negativeSyntax/Dot-Minus-emptylanguageStem.shex new file mode 100644 index 00000000..4a33e6d8 --- /dev/null +++ b/negativeSyntax/Dot-Minus-emptylanguageStem.shex @@ -0,0 +1 @@ + [. - @~] diff --git a/negativeSyntax/emptylanguageStem-Minus-emptylanguageStem.shex b/negativeSyntax/emptylanguageStem-Minus-emptylanguageStem.shex new file mode 100644 index 00000000..d7083e5e --- /dev/null +++ b/negativeSyntax/emptylanguageStem-Minus-emptylanguageStem.shex @@ -0,0 +1 @@ + [@~ - @~] diff --git a/negativeSyntax/manifest.jsonld b/negativeSyntax/manifest.jsonld index 23afc29f..7d3d83ce 100644 --- a/negativeSyntax/manifest.jsonld +++ b/negativeSyntax/manifest.jsonld @@ -487,6 +487,20 @@ "status": "mf:proposed", "shex": "a.shex" }, + { + "@id": "#Dot-Minus-emptylanguageStem", + "@type": "sht:NegativeSyntax", + "name": "Dot-Minus-emptylanguageStem", + "status": "mf:proposed", + "shex": "Dot-Minus-emptylanguageStem.shex" + }, + { + "@id": "#emptylanguageStem-Minus-emptylanguageStem", + "@type": "sht:NegativeSyntax", + "name": "emptylanguageStem-Minus-emptylanguageStem", + "status": "mf:proposed", + "shex": "emptylanguageStem-Minus-emptylanguageStem.shex" + }, { "@id": "#base-no-uri", "@type": "sht:NegativeSyntax", diff --git a/negativeSyntax/manifest.ttl b/negativeSyntax/manifest.ttl index 465c6870..aaa61fd9 100644 --- a/negativeSyntax/manifest.ttl +++ b/negativeSyntax/manifest.ttl @@ -76,6 +76,8 @@ <#STRING_LITERAL_LONG2-ending-QUOTATION_MARK4> <#STRING_LITERAL_LONG2-unterminated> <#a> + <#Dot-Minus-emptylanguageStem> + <#emptylanguageStem-Minus-emptylanguageStem> <#base-no-uri> <#base-uri-dot> <#bnodedot> @@ -520,6 +522,18 @@ sx:shex ; . +<#Dot-Minus-emptylanguageStem> a sht:NegativeSyntax ; + mf:name "Dot-Minus-emptylanguageStem" ; + mf:status mf:proposed ; + sx:shex ; + . + +<#emptylanguageStem-Minus-emptylanguageStem> a sht:NegativeSyntax ; + mf:name "emptylanguageStem-Minus-emptylanguageStem" ; + mf:status mf:proposed ; + sx:shex ; + . + <#base-no-uri> a sht:NegativeSyntax ; mf:name "base-no-uri" ; mf:status mf:proposed ; diff --git a/schemas/1val1emptylanguageStem.json b/schemas/1val1emptylanguageStem.json new file mode 100644 index 00000000..fa52d020 --- /dev/null +++ b/schemas/1val1emptylanguageStem.json @@ -0,0 +1,23 @@ +{ + "@context": "http://www.w3.org/ns/shex.jsonld", + "type": "Schema", + "shapes": [ + { + "id": "http://a.example/S1", + "type": "Shape", + "expression": { + "type": "TripleConstraint", + "predicate": "http://a.example/p1", + "valueExpr": { + "type": "NodeConstraint", + "values": [ + { + "type": "LanguageStem", + "stem": "" + } + ] + } + } + } + ] +} diff --git a/schemas/1val1emptylanguageStem.shex b/schemas/1val1emptylanguageStem.shex new file mode 100644 index 00000000..e32ed09e --- /dev/null +++ b/schemas/1val1emptylanguageStem.shex @@ -0,0 +1,3 @@ + { + [@~] +} diff --git a/schemas/1val1emptylanguageStem.ttl b/schemas/1val1emptylanguageStem.ttl new file mode 100644 index 00000000..a4711c95 --- /dev/null +++ b/schemas/1val1emptylanguageStem.ttl @@ -0,0 +1,14 @@ +PREFIX ex: +PREFIX sx: +PREFIX xsd: + +[] a sx:Schema ; + sx:shapes . + + a sx:Shape ; + sx:expression [ a sx:TripleConstraint ; + sx:predicate ; + sx:valueExpr [ a sx:NodeConstraint ; + sx:values ( [ a sx:LanguageStem ; + sx:stem "" ] ) ] ] . + diff --git a/schemas/1val1emptylanguageStemMinuslanguage3.json b/schemas/1val1emptylanguageStemMinuslanguage3.json new file mode 100644 index 00000000..db24a526 --- /dev/null +++ b/schemas/1val1emptylanguageStemMinuslanguage3.json @@ -0,0 +1,28 @@ +{ + "@context": "http://www.w3.org/ns/shex.jsonld", + "type": "Schema", + "shapes": [ + { + "id": "http://a.example/S1", + "type": "Shape", + "expression": { + "type": "TripleConstraint", + "predicate": "http://a.example/p1", + "valueExpr": { + "type": "NodeConstraint", + "values": [ + { + "type": "LanguageStemRange", + "stem": "", + "exclusions": [ + "fr-be", + "fr-cd", + "fr-ch" + ] + } + ] + } + } + } + ] +} diff --git a/schemas/1val1emptylanguageStemMinuslanguage3.shex b/schemas/1val1emptylanguageStemMinuslanguage3.shex new file mode 100644 index 00000000..0df883d2 --- /dev/null +++ b/schemas/1val1emptylanguageStemMinuslanguage3.shex @@ -0,0 +1,6 @@ + { + [@~ + - @fr-be + - @fr-cd + - @fr-ch] +} diff --git a/schemas/1val1emptylanguageStemMinuslanguage3.ttl b/schemas/1val1emptylanguageStemMinuslanguage3.ttl new file mode 100644 index 00000000..b2bc38e2 --- /dev/null +++ b/schemas/1val1emptylanguageStemMinuslanguage3.ttl @@ -0,0 +1,17 @@ +PREFIX ex: +PREFIX sx: +PREFIX xsd: + +[] a sx:Schema ; + sx:shapes . + + a sx:Shape ; + sx:expression [ a sx:TripleConstraint ; + sx:predicate ; + sx:valueExpr [ a sx:NodeConstraint ; + sx:values ( [ a sx:LanguageStemRange ; + sx:exclusion ("fr-be" + "fr-cd" + "fr-ch") ; + sx:stem "" ] ) ] ] . + diff --git a/schemas/1val1emptylanguageStemMinuslanguageStem3.json b/schemas/1val1emptylanguageStemMinuslanguageStem3.json new file mode 100644 index 00000000..e8c96547 --- /dev/null +++ b/schemas/1val1emptylanguageStemMinuslanguageStem3.json @@ -0,0 +1,37 @@ +{ + "@context": "http://www.w3.org/ns/shex.jsonld", + "type": "Schema", + "shapes": [ + { + "id": "http://a.example/S1", + "type": "Shape", + "expression": { + "type": "TripleConstraint", + "predicate": "http://a.example/p1", + "valueExpr": { + "type": "NodeConstraint", + "values": [ + { + "type": "LanguageStemRange", + "stem": "", + "exclusions": [ + { + "type": "LanguageStem", + "stem": "fr-be" + }, + { + "type": "LanguageStem", + "stem": "fr-cd" + }, + { + "type": "LanguageStem", + "stem": "fr-ch" + } + ] + } + ] + } + } + } + ] +} diff --git a/schemas/1val1emptylanguageStemMinuslanguageStem3.shex b/schemas/1val1emptylanguageStemMinuslanguageStem3.shex new file mode 100644 index 00000000..d2f78e87 --- /dev/null +++ b/schemas/1val1emptylanguageStemMinuslanguageStem3.shex @@ -0,0 +1,6 @@ + { + [@~ + - @fr-be~ + - @fr-cd~ + - @fr-ch~] +} diff --git a/schemas/1val1emptylanguageStemMinuslanguageStem3.ttl b/schemas/1val1emptylanguageStemMinuslanguageStem3.ttl new file mode 100644 index 00000000..6e164bd6 --- /dev/null +++ b/schemas/1val1emptylanguageStemMinuslanguageStem3.ttl @@ -0,0 +1,20 @@ +PREFIX ex: +PREFIX sx: +PREFIX xsd: + +[] a sx:Schema ; + sx:shapes . + + a sx:Shape ; + sx:expression [ a sx:TripleConstraint ; + sx:predicate ; + sx:valueExpr [ a sx:NodeConstraint ; + sx:values ( [ a sx:LanguageStemRange ; + sx:exclusion ([ a sx:LanguageStem ; + sx:stem "fr-be" ] + [ a sx:LanguageStem ; + sx:stem "fr-cd" ] + [ a sx:LanguageStem ; + sx:stem "fr-ch" ]) ; + sx:stem "" ] ) ] ] . + diff --git a/schemas/manifest.jsonld b/schemas/manifest.jsonld index d5fd7bb4..26d3630f 100644 --- a/schemas/manifest.jsonld +++ b/schemas/manifest.jsonld @@ -1838,6 +1838,33 @@ "json": "1val1language.json", "ttl": "1val1language.ttl" }, + { + "@id": "#1val1emptylanguageStem", + "@type": "sht:RepresentationTest", + "name": "1val1emptylanguageStem", + "status": "mf:proposed", + "shex": "1val1emptylanguageStem.shex", + "json": "1val1emptylanguageStem.json", + "ttl": "1val1emptylanguageStem.ttl" + }, + { + "@id": "#1val1emptylanguageStemMinuslanguage3", + "@type": "sht:RepresentationTest", + "name": "1val1emptylanguageStemMinuslanguage3", + "status": "mf:proposed", + "shex": "1val1emptylanguageStemMinuslanguage3.shex", + "json": "1val1emptylanguageStemMinuslanguage3.json", + "ttl": "1val1emptylanguageStemMinuslanguage3.ttl" + }, + { + "@id": "#1val1emptylanguageStemMinuslanguageStem3", + "@type": "sht:RepresentationTest", + "name": "1val1emptylanguageStemMinuslanguageStem3", + "status": "mf:proposed", + "shex": "1val1emptylanguageStemMinuslanguageStem3.shex", + "json": "1val1emptylanguageStemMinuslanguageStem3.json", + "ttl": "1val1emptylanguageStemMinuslanguageStem3.ttl" + }, { "@id": "#1val1languageStem", "@type": "sht:RepresentationTest", diff --git a/schemas/manifest.ttl b/schemas/manifest.ttl index f4266bbe..02c04892 100644 --- a/schemas/manifest.ttl +++ b/schemas/manifest.ttl @@ -212,6 +212,9 @@ <#1val1dotMinuslanguage3> <#1val1dotMinuslanguageStem3> <#1val1language> + <#1val1emptylanguageStem> + <#1val1emptylanguageStemMinuslanguage3> + <#1val1emptylanguageStemMinuslanguageStem3> <#1val1languageStem> <#1val1languageStemMinuslanguage3> <#1val1languageStemMinuslanguageStem3> @@ -2117,6 +2120,30 @@ sx:ttl <1val1language.ttl> ; . +<#1val1emptylanguageStem> a sht:RepresentationTest ; + mf:name "1val1emptylanguageStem" ; + mf:status mf:proposed ; + sx:shex <1val1emptylanguageStem.shex> ; + sx:json <1val1emptylanguageStem.json> ; + sx:ttl <1val1emptylanguageStem.ttl> ; + . + +<#1val1emptylanguageStemMinuslanguage3> a sht:RepresentationTest ; + mf:name "1val1emptylanguageStemMinuslanguage3" ; + mf:status mf:proposed ; + sx:shex <1val1emptylanguageStemMinuslanguage3.shex> ; + sx:json <1val1emptylanguageStemMinuslanguage3.json> ; + sx:ttl <1val1emptylanguageStemMinuslanguage3.ttl> ; + . + +<#1val1emptylanguageStemMinuslanguageStem3> a sht:RepresentationTest ; + mf:name "1val1emptylanguageStemMinuslanguageStem3" ; + mf:status mf:proposed ; + sx:shex <1val1emptylanguageStemMinuslanguageStem3.shex> ; + sx:json <1val1emptylanguageStemMinuslanguageStem3.json> ; + sx:ttl <1val1emptylanguageStemMinuslanguageStem3.ttl> ; + . + <#1val1languageStem> a sht:RepresentationTest ; mf:name "1val1languageStem" ; mf:status mf:proposed ; diff --git a/validation/manifest.jsonld b/validation/manifest.jsonld index 64269c70..82f51ef0 100644 --- a/validation/manifest.jsonld +++ b/validation/manifest.jsonld @@ -12358,6 +12358,204 @@ "comment": " { [@fr] } on { 'septante'@fr-be }", "status": "mf:proposed" }, + { + "@id": "#1val1emptylanguageStem_passLAtfr", + "@type": "sht:ValidationTest", + "action": { + "schema": "../schemas/1val1emptylanguageStem.shex", + "shape": "http://a.example/S1", + "data": "Is1_Ip1_LAtfr.ttl", + "focus": "http://a.example/s1" + }, + "extensionResults": [], + "name": "1val1emptylanguageStem_passLAtfr", + "trait": [ + "Stem", + "ValueSet" + ], + "comment": " { [@~] } on { 'septante'@fr }", + "status": "mf:proposed" + }, + { + "@id": "#1val1emptylanguageStem_fail-literal", + "@type": "sht:ValidationFailure", + "action": { + "schema": "../schemas/1val1emptylanguageStem.shex", + "shape": "http://a.example/S1", + "data": "Is1_Ip1_Lab.ttl", + "focus": "http://a.example/s1" + }, + "extensionResults": [], + "name": "1val1emptylanguageStem_fail-literal", + "trait": [ + "Stem", + "ValueSet" + ], + "comment": " { [@~] } on { '' }", + "status": "mf:proposed" + }, + { + "@id": "#1val1emptylanguageStem_fail-empty", + "@type": "sht:ValidationFailure", + "action": { + "schema": "../schemas/1val1emptylanguageStem.shex", + "shape": "http://a.example/S1", + "data": "Is1_Ip1_L.ttl", + "focus": "http://a.example/s1" + }, + "extensionResults": [], + "name": "1val1emptylanguageStem_fail-empty", + "trait": [ + "Stem", + "ValueSet" + ], + "comment": " { [@~] } on { '' }", + "status": "mf:proposed" + }, + { + "@id": "#1val1emptylanguageStem_fail-integer", + "@type": "sht:ValidationFailure", + "action": { + "schema": "../schemas/1val1emptylanguageStem.shex", + "shape": "http://a.example/S1", + "data": "Is1_Ip1_INT12345.ttl", + "focus": "http://a.example/s1" + }, + "extensionResults": [], + "name": "1val1emptylanguageStem_fail-integer", + "trait": [ + "Stem", + "ValueSet" + ], + "comment": " { [@~] } on { 12345 }", + "status": "mf:proposed" + }, + { + "@id": "#1val1emptylanguageStemMinuslanguage3_passLAtfr", + "@type": "sht:ValidationTest", + "action": { + "schema": "../schemas/1val1emptylanguageStemMinuslanguage3.shex", + "shape": "http://a.example/S1", + "data": "Is1_Ip1_LAtfr.ttl", + "focus": "http://a.example/s1" + }, + "extensionResults": [], + "name": "1val1emptylanguageStemMinuslanguage3_passLAtfr", + "trait": [ + "Stem", + "ValueSet" + ], + "comment": " { [@~-@fr-be-@fr-cd-@fr-ch] } on { 'septante'@fr }", + "status": "mf:proposed" + }, + { + "@id": "#1val1emptylanguageStemMinuslanguage3_failLAtfr-be", + "@type": "sht:ValidationFailure", + "action": { + "schema": "../schemas/1val1emptylanguageStemMinuslanguage3.shex", + "shape": "http://a.example/S1", + "data": "Is1_Ip1_LAtfr-be.ttl", + "focus": "http://a.example/s1" + }, + "extensionResults": [], + "name": "1val1emptylanguageStemMinuslanguage3_failLAtfr-be", + "trait": [ + "Stem", + "ValueSet" + ], + "comment": " { [@~-@fr-be-@fr-cd-@fr-ch] } on { 'septante'@fr-be }", + "status": "mf:proposed" + }, + { + "@id": "#1val1emptylanguageStemMinuslanguage3_passLAtfr-be-fbcl", + "@type": "sht:ValidationTest", + "action": { + "schema": "../schemas/1val1emptylanguageStemMinuslanguage3.shex", + "shape": "http://a.example/S1", + "data": "Is1_Ip1_LAtfr-be-fbcl.ttl", + "focus": "http://a.example/s1" + }, + "extensionResults": [], + "name": "1val1emptylanguageStemMinuslanguage3_passLAtfr-be-fbcl", + "trait": [ + "Stem", + "ValueSet" + ], + "comment": " { [@~-@fr-be-@fr-cd-@fr-ch] } on { 'septante'@fr-be-fbcl }", + "status": "mf:proposed" + }, + { + "@id": "#1val1emptylanguageStemMinuslanguageStem3_LAtfr", + "@type": "sht:ValidationTest", + "action": { + "schema": "../schemas/1val1emptylanguageStemMinuslanguageStem3.shex", + "shape": "http://a.example/S1", + "data": "Is1_Ip1_LAtfr.ttl", + "focus": "http://a.example/s1" + }, + "extensionResults": [], + "name": "1val1emptylanguageStemMinuslanguageStem3_LAtfr", + "trait": [ + "Stem", + "ValueSet" + ], + "comment": " { [@~-@fr-be~-@fr-cd~-@fr-ch~] } on { 'septante'@fr }", + "status": "mf:proposed" + }, + { + "@id": "#1val1emptylanguageStemMinuslanguageStem3_failLAtfr-be", + "@type": "sht:ValidationFailure", + "action": { + "schema": "../schemas/1val1emptylanguageStemMinuslanguageStem3.shex", + "shape": "http://a.example/S1", + "data": "Is1_Ip1_LAtfr-be.ttl", + "focus": "http://a.example/s1" + }, + "extensionResults": [], + "name": "1val1emptylanguageStemMinuslanguageStem3_failLAtfr-be", + "trait": [ + "Stem", + "ValueSet" + ], + "comment": " { [@~-@fr-be~-@fr-cd~-@fr-ch~] } on { 'septante'@fr-be }", + "status": "mf:proposed" + }, + { + "@id": "#1val1emptylanguageStemMinuslanguageStem3_LAtfr-be-fbcl", + "@type": "sht:ValidationFailure", + "action": { + "schema": "../schemas/1val1emptylanguageStemMinuslanguageStem3.shex", + "shape": "http://a.example/S1", + "data": "Is1_Ip1_LAtfr-be-fbcl.ttl", + "focus": "http://a.example/s1" + }, + "extensionResults": [], + "name": "1val1emptylanguageStemMinuslanguageStem3_LAtfr-be-fbcl", + "trait": [ + "Stem", + "ValueSet" + ], + "comment": " { [@~-@fr-be~-@fr-cd~-@fr-ch~] } on { 'septante'@fr-be-fbcl }", + "status": "mf:proposed" + }, + { + "@id": "#1val1emptylanguageStemMinuslanguageStem3_LAtfrc", + "@type": "sht:ValidationTest", + "action": { + "schema": "../schemas/1val1emptylanguageStemMinuslanguageStem3.shex", + "shape": "http://a.example/S1", + "data": "Is1_Ip1_LAtfrc.ttl", + "focus": "http://a.example/s1" + }, + "extensionResults": [], + "name": "1val1emptylanguageStemMinuslanguageStem3_LAtfrc", + "trait": [ + "Stem", + "ValueSet" + ], + "comment": " { [@~-@fr-be~-@fr-cd~-@fr-ch~] } on { 'septante'@frc }", + "status": "mf:proposed" + }, { "@id": "#1val1languageStem_passLAtfr", "@type": "sht:ValidationTest", diff --git a/validation/manifest.ttl b/validation/manifest.ttl index d522b13a..7541f314 100644 --- a/validation/manifest.ttl +++ b/validation/manifest.ttl @@ -811,6 +811,17 @@ <#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> @@ -11039,6 +11050,149 @@ ] . +<#1val1emptylanguageStem_passLAtfr> a sht:ValidationTest ; + mf:name "1val1emptylanguageStem_passLAtfr" ; + sht:trait sht:ValueSet , sht:Stem ; + rdfs:comment " { [@~] } on { 'septante'@fr }" ; + mf:status mf:proposed ; + mf:action [ + sht:schema <../schemas/1val1emptylanguageStem.shex> ; + sht:shape ; + sht:data ; + sht:focus + ] + . + +<#1val1emptylanguageStem_fail-literal> a sht:ValidationFailure ; + mf:name "1val1emptylanguageStem_fail-literal" ; + sht:trait sht:ValueSet , sht:Stem ; + rdfs:comment " { [@~] } on { '' }" ; + mf:status mf:proposed ; + mf:action [ + sht:schema <../schemas/1val1emptylanguageStem.shex> ; + sht:shape ; + sht:data ; + sht:focus + ] ; + . + +<#1val1emptylanguageStem_fail-empty> a sht:ValidationFailure ; + mf:name "1val1emptylanguageStem_fail-empty" ; + sht:trait sht:ValueSet , sht:Stem ; + rdfs:comment " { [@~] } on { '' }" ; + mf:status mf:proposed ; + mf:action [ + sht:schema <../schemas/1val1emptylanguageStem.shex> ; + sht:shape ; + sht:data ; + sht:focus + ] ; + . + +<#1val1emptylanguageStem_fail-integer> a sht:ValidationFailure ; + mf:name "1val1emptylanguageStem_fail-integer" ; + sht:trait sht:ValueSet , sht:Stem ; + rdfs:comment " { [@~] } on { 12345 }" ; + mf:status mf:proposed ; + mf:action [ + sht:schema <../schemas/1val1emptylanguageStem.shex> ; + sht:shape ; + sht:data ; + sht:focus + ] ; + . + +<#1val1emptylanguageStemMinuslanguage3_passLAtfr> a sht:ValidationTest ; + mf:name "1val1emptylanguageStemMinuslanguage3_passLAtfr" ; + sht:trait sht:ValueSet , sht:Stem ; + rdfs:comment " { [@~-@fr-be-@fr-cd-@fr-ch] } on { 'septante'@fr }" ; + mf:status mf:proposed ; + mf:action [ + sht:schema <../schemas/1val1emptylanguageStemMinuslanguage3.shex> ; + sht:shape ; + sht:data ; + sht:focus + ] + . + +<#1val1emptylanguageStemMinuslanguage3_failLAtfr-be> a sht:ValidationFailure ; + mf:name "1val1emptylanguageStemMinuslanguage3_failLAtfr-be" ; + sht:trait sht:ValueSet , sht:Stem ; + rdfs:comment " { [@~-@fr-be-@fr-cd-@fr-ch] } on { 'septante'@fr-be }" ; + mf:status mf:proposed ; + mf:action [ + sht:schema <../schemas/1val1emptylanguageStemMinuslanguage3.shex> ; + sht:shape ; + sht:data ; + sht:focus + ] ; + . + +<#1val1emptylanguageStemMinuslanguage3_passLAtfr-be-fbcl> a sht:ValidationTest ; + mf:name "1val1emptylanguageStemMinuslanguage3_passLAtfr-be-fbcl" ; + sht:trait sht:ValueSet , sht:Stem ; + rdfs:comment " { [@~-@fr-be-@fr-cd-@fr-ch] } on { 'septante'@fr-be-fbcl }" ; + mf:status mf:proposed ; + mf:action [ + sht:schema <../schemas/1val1emptylanguageStemMinuslanguage3.shex> ; + sht:shape ; + sht:data ; + sht:focus + ] + . + +<#1val1emptylanguageStemMinuslanguageStem3_LAtfr> a sht:ValidationTest ; + mf:name "1val1emptylanguageStemMinuslanguageStem3_LAtfr" ; + sht:trait sht:ValueSet , sht:Stem ; + rdfs:comment " { [@~-@fr-be~-@fr-cd~-@fr-ch~] } on { 'septante'@fr }" ; + mf:status mf:proposed ; + mf:action [ + sht:schema <../schemas/1val1emptylanguageStemMinuslanguageStem3.shex> ; + sht:shape ; + sht:data ; + sht:focus + ] + . + +<#1val1emptylanguageStemMinuslanguageStem3_LAtfrc> a sht:ValidationTest ; + mf:name "1val1emptylanguageStemMinuslanguageStem3_LAtfrc" ; + sht:trait sht:ValueSet , sht:Stem ; + rdfs:comment " { [@~-@fr-be~-@fr-cd~-@fr-ch~] } on { 'septante'@frc }" ; + mf:status mf:proposed ; + mf:action [ + sht:schema <../schemas/1val1emptylanguageStemMinuslanguageStem3.shex> ; + sht:shape ; + sht:data ; + sht:focus + ] + . + +<#1val1emptylanguageStemMinuslanguageStem3_failLAtfr-be> a sht:ValidationFailure ; + mf:name "1val1emptylanguageStemMinuslanguageStem3_failLAtfr-be" ; + sht:trait sht:ValueSet , sht:Stem ; + rdfs:comment " { [@~-@fr-be~-@fr-cd~-@fr-ch~] } on { 'septante'@fr-be }" ; + mf:status mf:proposed ; + mf:action [ + sht:schema <../schemas/1val1emptylanguageStemMinuslanguageStem3.shex> ; + sht:shape ; + sht:data ; + sht:focus + ] + . + +<#1val1emptylanguageStemMinuslanguageStem3_LAtfr-be-fbcl> a sht:ValidationFailure ; + mf:name "1val1emptylanguageStemMinuslanguageStem3_LAtfr-be-fbcl" ; + sht:trait sht:ValueSet , sht:Stem ; + rdfs:comment " { [@~-@fr-be~-@fr-cd~-@fr-ch~] } on { 'septante'@fr-be-fbcl }" ; + mf:status mf:proposed ; + mf:action [ + sht:schema <../schemas/1val1emptylanguageStemMinuslanguageStem3.shex> ; + sht:shape ; + sht:data ; + sht:focus + ] ; + . + <#1val1languageStem_passLAtfr> a sht:ValidationTest ; mf:name "1val1languageStem_passLAtfr" ; sht:trait sht:ValueSet , sht:Stem ;