From aad887ee753b8e94b34dc78a1f338da858fc0217 Mon Sep 17 00:00:00 2001 From: Eric Prud'hommeaux Date: Sat, 7 Oct 2017 06:07:21 -0400 Subject: [PATCH 1/3] ~ address data LangTag in [shexSpec/shex#71] --- validation/Is1_Ip1_LAtUFR.ttl | 1 + validation/Is1_Ip1_LabLTUEN-UFR-UJURA.ttl | 1 + validation/Is1_Ip1_LabLTUEN-UFR.ttl | 1 + validation/Is1_Ip1_LabLTUEN.ttl | 1 + validation/manifest.jsonld | 97 ++++++++++++++++++++++- validation/manifest.ttl | 80 ++++++++++++++++++- 6 files changed, 173 insertions(+), 8 deletions(-) create mode 100644 validation/Is1_Ip1_LAtUFR.ttl create mode 100644 validation/Is1_Ip1_LabLTUEN-UFR-UJURA.ttl create mode 100644 validation/Is1_Ip1_LabLTUEN-UFR.ttl create mode 100644 validation/Is1_Ip1_LabLTUEN.ttl diff --git a/validation/Is1_Ip1_LAtUFR.ttl b/validation/Is1_Ip1_LAtUFR.ttl new file mode 100644 index 00000000..fe4f38ae --- /dev/null +++ b/validation/Is1_Ip1_LAtUFR.ttl @@ -0,0 +1 @@ + "septante"@FR . diff --git a/validation/Is1_Ip1_LabLTUEN-UFR-UJURA.ttl b/validation/Is1_Ip1_LabLTUEN-UFR-UJURA.ttl new file mode 100644 index 00000000..cc9dff3a --- /dev/null +++ b/validation/Is1_Ip1_LabLTUEN-UFR-UJURA.ttl @@ -0,0 +1 @@ + "ab"@EN-FR-JURA . diff --git a/validation/Is1_Ip1_LabLTUEN-UFR.ttl b/validation/Is1_Ip1_LabLTUEN-UFR.ttl new file mode 100644 index 00000000..c5323632 --- /dev/null +++ b/validation/Is1_Ip1_LabLTUEN-UFR.ttl @@ -0,0 +1 @@ + "ab"@EN-FR . diff --git a/validation/Is1_Ip1_LabLTUEN.ttl b/validation/Is1_Ip1_LabLTUEN.ttl new file mode 100644 index 00000000..a5a77a57 --- /dev/null +++ b/validation/Is1_Ip1_LabLTUEN.ttl @@ -0,0 +1 @@ + "ab"@EN . diff --git a/validation/manifest.jsonld b/validation/manifest.jsonld index 2690b884..b20439fa 100644 --- a/validation/manifest.jsonld +++ b/validation/manifest.jsonld @@ -4241,7 +4241,7 @@ "status": "mf:proposed" }, { - "@id": "#1val1LANGTAG_pass", + "@id": "#1val1LANGTAG_passLabLTen-fr", "@type": "sht:ValidationTest", "action": { "schema": "../schemas/1val1LANGTAG.shex", @@ -4250,13 +4250,30 @@ "focus": "http://a.example/s1" }, "extensionResults": [], - "name": "1val1LANGTAG_pass", + "name": "1val1LANGTAG_passLabLTen-fr", "trait": [ "LanguageTagEquivalence" ], "comment": " { ['ab'@en-fr] } on { 'ab'@en-fr }", "status": "mf:proposed" }, + { + "@id": "#1val1LANGTAG_passLabLTEN-FR", + "@type": "sht:ValidationTest", + "action": { + "schema": "../schemas/1val1LANGTAG.shex", + "shape": "http://a.example/S1", + "data": "Is1_Ip1_LabLTUEN-UFR.ttl", + "focus": "http://a.example/s1" + }, + "extensionResults": [], + "name": "1val1LANGTAG_passLabLTEN-FR", + "trait": [ + "LanguageCase" + ], + "comment": " { ['ab'@en-fr] } on { 'ab'@EN-FR }", + "status": "mf:proposed" + }, { "@id": "#1val1LANGTAG_Lab", "@type": "sht:ValidationFailure", @@ -4291,6 +4308,23 @@ "comment": " { ['ab'@en-fr] } on { 'ab'@en }", "status": "mf:proposed" }, + { + "@id": "#1val1LANGTAG_LabLTEN", + "@type": "sht:ValidationFailure", + "action": { + "schema": "../schemas/1val1LANGTAG.shex", + "shape": "http://a.example/S1", + "data": "Is1_Ip1_LabLTUEN.ttl", + "focus": "http://a.example/s1" + }, + "extensionResults": [], + "name": "1val1LANGTAG_LabLTEN", + "trait": [ + "LanguageCase" + ], + "comment": " { ['ab'@en-fr] } on { 'ab'@EN }", + "status": "mf:proposed" + }, { "@id": "#1val1LANGTAG_LabLTen-fr-jura", "@type": "sht:ValidationFailure", @@ -4308,6 +4342,23 @@ "comment": " { ['ab'@en-fr] } on { 'ab'@en-fr-jura }", "status": "mf:proposed" }, + { + "@id": "#1val1LANGTAG_LabLTEN-FR-JURA", + "@type": "sht:ValidationFailure", + "action": { + "schema": "../schemas/1val1LANGTAG.shex", + "shape": "http://a.example/S1", + "data": "Is1_Ip1_LabLTUEN-UFR-UJURA.ttl", + "focus": "http://a.example/s1" + }, + "extensionResults": [], + "name": "1val1LANGTAG_LabLTEN-FR-JURA", + "trait": [ + "LanguageCase" + ], + "comment": " { ['ab'@en-fr] } on { 'ab'@EN-FR-JURA }", + "status": "mf:proposed" + }, { "@id": "#1val1LANGTAG_LaLTen-fr", "@type": "sht:ValidationFailure", @@ -12443,7 +12494,26 @@ "Stem", "ValueSet" ], - "comment": " { [@fr-@fr-be-@fr-cd-@fr-ch] } on { 'septante'@fr }", + "comment": " { [@fr~-@fr-be-@fr-cd-@fr-ch] } on { 'septante'@fr }", + "status": "mf:proposed" + }, + { + "@id": "#1val1languageStemMinuslanguage3_passLAtFR", + "@type": "sht:ValidationTest", + "action": { + "schema": "../schemas/1val1languageStemMinuslanguage3.shex", + "shape": "http://a.example/S1", + "data": "Is1_Ip1_LAtUFR.ttl", + "focus": "http://a.example/s1" + }, + "extensionResults": [], + "name": "1val1languageStemMinuslanguage3_passLAtFR", + "trait": [ + "Stem", + "ValueSet", + "LanguageCase" + ], + "comment": " { [@fr-@fr-be-@fr-cd-@fr-ch] } on { 'septante'@FR }", "status": "mf:proposed" }, { @@ -12590,6 +12660,25 @@ "comment": " { [@fr~-@fr-be~-@fr-cd~-@fr-ch] } on { 'septante'@fr }", "status": "mf:proposed" }, + { + "@id": "#1val1languageStemMinuslanguageStem3_passLAtFR", + "@type": "sht:ValidationTest", + "action": { + "schema": "../schemas/1val1languageStemMinuslanguageStem3.shex", + "shape": "http://a.example/S1", + "data": "Is1_Ip1_LAtUFR.ttl", + "focus": "http://a.example/s1" + }, + "extensionResults": [], + "name": "1val1languageStemMinuslanguageStem3_passLAtFR", + "trait": [ + "Stem", + "ValueSet", + "LanguageCase" + ], + "comment": " { [@fr~-@fr-be~-@fr-cd~-@fr-ch] } on { 'septante'@FR }", + "status": "mf:proposed" + }, { "@id": "#1val1languageStemMinuslanguageStem3_passLAtfr-FR", "@type": "sht:ValidationTest", @@ -18708,4 +18797,4 @@ ] } ] -} \ No newline at end of file +} diff --git a/validation/manifest.ttl b/validation/manifest.ttl index b9bb6edc..926164e2 100644 --- a/validation/manifest.ttl +++ b/validation/manifest.ttl @@ -13,6 +13,8 @@ @prefix prov: . # TODO: + # unify At and LT (both indicate language tag) + # @en-fr examples could reuse @fr-{be,cd,ch,fr} # focus* on empty.ttl # ../schemas/1IRI_with_all_punctuationdot.shex # ../schemas/1IRI_with_UCHAR.1dot.shex @@ -318,10 +320,13 @@ <#1val1DOUBLElowercase_0_0e0> #### language tag equivalence - <#1val1LANGTAG_pass> # { ['ab'@en-fr] } + <#1val1LANGTAG_passLabLTen-fr> # { ['ab'@en-fr] } + <#1val1LANGTAG_passLabLTEN-FR> # { ['ab'@en-fr] } <#1val1LANGTAG_Lab> <#1val1LANGTAG_LabLTen> + <#1val1LANGTAG_LabLTEN> <#1val1LANGTAG_LabLTen-fr-jura> + <#1val1LANGTAG_LabLTEN-FR-JURA> <#1val1LANGTAG_LaLTen-fr> #### datatyped literal equivalence @@ -816,6 +821,7 @@ <#1val1languageStem_fail> <#1val1literallanguageStem_failLAtfr> <#1val1languageStemMinuslanguage3_passLAtfr> + <#1val1languageStemMinuslanguage3_passLAtFR> <#1val1languageStemMinuslanguage3_passLAtfr-FR> <#1val1literallanguageStemMinusliterallanguage3_failLAtfr-FR> <#1val1languageStemMinuslanguage3_failLAtfr-be> @@ -824,6 +830,7 @@ <#1val1languageStemMinuslanguage3_failLAtfr-ch> <#1val1languageStemMinuslanguage3_passLAtfr-be-fbcl> <#1val1languageStemMinuslanguageStem3_passLAtfr> + <#1val1languageStemMinuslanguageStem3_passLAtFR> <#1val1languageStemMinuslanguageStem3_passLAtfr-FR> <#1val1languageStemMinuslanguageStem3_LAtfr-be> <#1val1languageStemMinuslanguageStem3_LAtfr-cd> @@ -4566,8 +4573,8 @@ #### } numeric equivalence #### language tag equivalence { -<#1val1LANGTAG_pass> a sht:ValidationTest ; - mf:name "1val1LANGTAG_pass" ; +<#1val1LANGTAG_passLabLTen-fr> a sht:ValidationTest ; + mf:name "1val1LANGTAG_passLabLTen-fr" ; sht:trait sht:LanguageTagEquivalence ; rdfs:comment " { ['ab'@en-fr] } on { 'ab'@en-fr }" ; mf:status mf:proposed ; @@ -4579,6 +4586,19 @@ ] . +<#1val1LANGTAG_passLabLTEN-FR> a sht:ValidationTest ; + mf:name "1val1LANGTAG_passLabLTEN-FR" ; + sht:trait sht:LanguageCase ; + rdfs:comment " { ['ab'@en-fr] } on { 'ab'@EN-FR }" ; + mf:status mf:proposed ; + mf:action [ + sht:schema <../schemas/1val1LANGTAG.shex> ; + sht:shape ; + sht:data ; + sht:focus + ] + . + <#1val1LANGTAG_Lab> a sht:ValidationFailure ; mf:name "1val1LANGTAG_Lab" ; sht:trait sht:LanguageTagEquivalence ; @@ -4605,6 +4625,19 @@ ] ; . +<#1val1LANGTAG_LabLTEN> a sht:ValidationFailure ; + mf:name "1val1LANGTAG_LabLTEN" ; + sht:trait sht:LanguageCase ; + rdfs:comment " { ['ab'@en-fr] } on { 'ab'@EN }" ; + mf:status mf:proposed ; + mf:action [ + sht:schema <../schemas/1val1LANGTAG.shex> ; + sht:shape ; + sht:data ; + sht:focus + ] ; + . + <#1val1LANGTAG_LabLTen-fr-jura> a sht:ValidationFailure ; mf:name "1val1LANGTAG_LabLTen-fr-jura" ; sht:trait sht:LanguageTagEquivalence ; @@ -4618,6 +4651,19 @@ ] ; . +<#1val1LANGTAG_LabLTEN-FR-JURA> a sht:ValidationFailure ; + mf:name "1val1LANGTAG_LabLTEN-FR-JURA" ; + sht:trait sht:LanguageCase ; + rdfs:comment " { ['ab'@en-fr] } on { 'ab'@EN-FR-JURA }" ; + mf:status mf:proposed ; + mf:action [ + sht:schema <../schemas/1val1LANGTAG.shex> ; + sht:shape ; + sht:data ; + sht:focus + ] ; + . + <#1val1LANGTAG_LaLTen-fr> a sht:ValidationFailure ; mf:name "1val1LANGTAG_LaLTen-fr" ; sht:trait sht:LanguageTagEquivalence ; @@ -11089,7 +11135,7 @@ <#1val1languageStemMinuslanguage3_passLAtfr> a sht:ValidationTest ; mf:name "1val1languageStemMinuslanguage3_passLAtfr" ; sht:trait sht:ValueSet, sht:Stem ; - rdfs:comment " { [@fr-@fr-be-@fr-cd-@fr-ch] } on { 'septante'@fr }" ; + rdfs:comment " { [@fr~-@fr-be-@fr-cd-@fr-ch] } on { 'septante'@fr }" ; mf:status mf:proposed ; mf:action [ sht:schema <../schemas/1val1languageStemMinuslanguage3.shex> ; @@ -11099,6 +11145,19 @@ ] . +<#1val1languageStemMinuslanguage3_passLAtFR> a sht:ValidationTest ; + mf:name "1val1languageStemMinuslanguage3_passLAtFR" ; + sht:trait sht:ValueSet, sht:Stem, sht:LanguageCase ; + rdfs:comment " { [@fr-@fr-be-@fr-cd-@fr-ch] } on { 'septante'@FR }" ; + mf:status mf:proposed ; + mf:action [ + sht:schema <../schemas/1val1languageStemMinuslanguage3.shex> ; + sht:shape ; + sht:data ; + sht:focus + ] + . + <#1val1languageStemMinuslanguage3_passLAtfr-FR> a sht:ValidationTest ; mf:name "1val1languageStemMinuslanguage3_passLAtfr-FR" ; sht:trait sht:ValueSet, sht:Stem ; @@ -11203,6 +11262,19 @@ ] . +<#1val1languageStemMinuslanguageStem3_passLAtFR> a sht:ValidationTest ; + mf:name "1val1languageStemMinuslanguageStem3_passLAtFR" ; + sht:trait sht:ValueSet, sht:Stem, sht:LanguageCase ; + rdfs:comment " { [@fr~-@fr-be~-@fr-cd~-@fr-ch] } on { 'septante'@FR }" ; + mf:status mf:proposed ; + mf:action [ + sht:schema <../schemas/1val1languageStemMinuslanguageStem3.shex> ; + sht:shape ; + sht:data ; + sht:focus + ] + . + <#1val1languageStemMinuslanguageStem3_passLAtfr-FR> a sht:ValidationTest ; mf:name "1val1languageStemMinuslanguageStem3_passLAtfr-FR" ; sht:trait sht:ValueSet, sht:Stem ; From af8c8ff3edfd4f766ba7260eaad75a2d899c4629 Mon Sep 17 00:00:00 2001 From: Eric Prud'hommeaux Date: Sat, 7 Oct 2017 06:16:28 -0400 Subject: [PATCH 2/3] ~ address schema LangTag in [shexSpec/shex#71] --- schemas/1val1LANGTAG_L_U.json | 23 +++ schemas/1val1LANGTAG_L_U.shex | 3 + schemas/1val1LANGTAG_U_L.json | 23 +++ schemas/1val1LANGTAG_U_L.shex | 3 + schemas/1val1STRING_LITERAL2_with_subtag.json | 2 +- ...1val1STRING_LITERAL_LONG2_with_subtag.json | 2 +- .../1val1languageStemMinuslanguageStemU3.json | 37 +++++ .../1val1languageStemMinuslanguageStemU3.shex | 6 + .../1val1languageStemMinuslanguageStemU3.ttl | 20 +++ schemas/_all.json | 4 +- schemas/_all.ttl | 4 +- schemas/manifest.jsonld | 27 ++++ schemas/manifest.ttl | 27 ++++ validation/manifest.jsonld | 144 ++++++++++++++++++ validation/manifest.ttl | 112 ++++++++++++++ 15 files changed, 431 insertions(+), 6 deletions(-) create mode 100644 schemas/1val1LANGTAG_L_U.json create mode 100644 schemas/1val1LANGTAG_L_U.shex create mode 100644 schemas/1val1LANGTAG_U_L.json create mode 100644 schemas/1val1LANGTAG_U_L.shex create mode 100644 schemas/1val1languageStemMinuslanguageStemU3.json create mode 100644 schemas/1val1languageStemMinuslanguageStemU3.shex create mode 100644 schemas/1val1languageStemMinuslanguageStemU3.ttl diff --git a/schemas/1val1LANGTAG_L_U.json b/schemas/1val1LANGTAG_L_U.json new file mode 100644 index 00000000..61afc5c6 --- /dev/null +++ b/schemas/1val1LANGTAG_L_U.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": [ + { + "value": "ab", + "language": "en-FR" + } + ] + } + } + } + ] +} diff --git a/schemas/1val1LANGTAG_L_U.shex b/schemas/1val1LANGTAG_L_U.shex new file mode 100644 index 00000000..ce2261a8 --- /dev/null +++ b/schemas/1val1LANGTAG_L_U.shex @@ -0,0 +1,3 @@ + { + ["ab"@en-FR] +} diff --git a/schemas/1val1LANGTAG_U_L.json b/schemas/1val1LANGTAG_U_L.json new file mode 100644 index 00000000..7b4e9037 --- /dev/null +++ b/schemas/1val1LANGTAG_U_L.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": [ + { + "value": "ab", + "language": "EN-fr" + } + ] + } + } + } + ] +} diff --git a/schemas/1val1LANGTAG_U_L.shex b/schemas/1val1LANGTAG_U_L.shex new file mode 100644 index 00000000..cef1f5b1 --- /dev/null +++ b/schemas/1val1LANGTAG_U_L.shex @@ -0,0 +1,3 @@ + { + ["ab"@EN-fr] +} diff --git a/schemas/1val1STRING_LITERAL2_with_subtag.json b/schemas/1val1STRING_LITERAL2_with_subtag.json index fe99fda6..20c7bb27 100644 --- a/schemas/1val1STRING_LITERAL2_with_subtag.json +++ b/schemas/1val1STRING_LITERAL2_with_subtag.json @@ -13,7 +13,7 @@ "values": [ { "value": "STRING_LITERAL2", - "language": "en-uk" + "language": "en-UK" } ] } diff --git a/schemas/1val1STRING_LITERAL_LONG2_with_subtag.json b/schemas/1val1STRING_LITERAL_LONG2_with_subtag.json index 945c9c00..f5ac92c4 100644 --- a/schemas/1val1STRING_LITERAL_LONG2_with_subtag.json +++ b/schemas/1val1STRING_LITERAL_LONG2_with_subtag.json @@ -13,7 +13,7 @@ "values": [ { "value": "STRING_LITERAL_LONG2", - "language": "en-uk" + "language": "en-UK" } ] } diff --git a/schemas/1val1languageStemMinuslanguageStemU3.json b/schemas/1val1languageStemMinuslanguageStemU3.json new file mode 100644 index 00000000..7f984d1d --- /dev/null +++ b/schemas/1val1languageStemMinuslanguageStemU3.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": "FR", + "exclusions": [ + { + "type": "LanguageStem", + "stem": "FR-BE" + }, + { + "type": "LanguageStem", + "stem": "FR-CD" + }, + { + "type": "LanguageStem", + "stem": "FR-CH" + } + ] + } + ] + } + } + } + ] +} diff --git a/schemas/1val1languageStemMinuslanguageStemU3.shex b/schemas/1val1languageStemMinuslanguageStemU3.shex new file mode 100644 index 00000000..53b02520 --- /dev/null +++ b/schemas/1val1languageStemMinuslanguageStemU3.shex @@ -0,0 +1,6 @@ + { + [@FR~ + - @FR-BE~ + - @FR-CD~ + - @FR-CH~] +} diff --git a/schemas/1val1languageStemMinuslanguageStemU3.ttl b/schemas/1val1languageStemMinuslanguageStemU3.ttl new file mode 100644 index 00000000..88e1f8a1 --- /dev/null +++ b/schemas/1val1languageStemMinuslanguageStemU3.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 "FR" ] ) ] ] . + diff --git a/schemas/_all.json b/schemas/_all.json index 5a91af67..2b80c87e 100644 --- a/schemas/_all.json +++ b/schemas/_all.json @@ -234,7 +234,7 @@ }, { "value": "STRING_LITERAL2", - "language": "en-uk" + "language": "en-UK" }, "http://all.example/", "http://all.example/val1", @@ -286,7 +286,7 @@ }, { "value": "STRING_LITERAL_LONG2", - "language": "en-uk" + "language": "en-UK" } ] } diff --git a/schemas/_all.ttl b/schemas/_all.ttl index 0a851c81..dcc6d2ea 100644 --- a/schemas/_all.ttl +++ b/schemas/_all.ttl @@ -92,7 +92,7 @@ prefix1:S2e a sx:EachOf ; sx:valueExpr [ a sx:Shape ; sx:expression [ a sx:TripleConstraint ; sx:predicate ; sx:valueExpr [ a sx:NodeConstraint ; sx:values ( - "STRING_LITERAL2" "STRING_LITERAL2"@en-UK : prefix1:val1#comment + "STRING_LITERAL2" "STRING_LITERAL2"@en-uk : prefix1:val1#comment prefix1:#comment @@ -102,7 +102,7 @@ prefix1:S2e a sx:EachOf ; '€߿ࠀ࿿က쿿퀀퟿�𐀀𿿽񀀀󿿽􀀀􏿽' "\"\\" "𝟘𝟙𝟚𝟛𝟜𝟝𝟞𝟟𝟠𝟡" # outside of BMP - """STRING_LITERAL_LONG2"""@en-UK + """STRING_LITERAL_LONG2"""@en-uk ) ] ] ] ] [ a sx:TripleConstraint ; sx:annotation ( diff --git a/schemas/manifest.jsonld b/schemas/manifest.jsonld index 231ed28e..d16b6049 100644 --- a/schemas/manifest.jsonld +++ b/schemas/manifest.jsonld @@ -443,6 +443,24 @@ "json": "1val1LANGTAG.json", "ttl": "1val1LANGTAG.ttl" }, + { + "@id": "#1val1LANGTAG_U_L", + "@type": "sht:RepresentationTest", + "name": "1val1LANGTAG_U_L", + "status": "mf:proposed", + "shex": "1val1LANGTAG_U_L.shex", + "json": "1val1LANGTAG_U_L.json", + "ttl": "1val1LANGTAG.ttl" + }, + { + "@id": "#1val1LANGTAG_L_U", + "@type": "sht:RepresentationTest", + "name": "1val1LANGTAG_L_U", + "status": "mf:proposed", + "shex": "1val1LANGTAG_L_U.shex", + "json": "1val1LANGTAG_L_U.json", + "ttl": "1val1LANGTAG.ttl" + }, { "@id": "#1val1IRIREFDatatype", "@type": "sht:RepresentationTest", @@ -1847,6 +1865,15 @@ "json": "1val1languageStemMinuslanguageStem3.json", "ttl": "1val1languageStemMinuslanguageStem3.ttl" }, + { + "@id": "#1val1languageStemMinuslanguageStemU3", + "@type": "sht:RepresentationTest", + "name": "1val1languageStemMinuslanguageStemU3", + "status": "mf:proposed", + "shex": "1val1languageStemMinuslanguageStemU3.shex", + "json": "1val1languageStemMinuslanguageStemU3.json", + "ttl": "1val1languageStemMinuslanguageStemU3.ttl" + }, { "@id": "#1val1literal", "@type": "sht:RepresentationTest", diff --git a/schemas/manifest.ttl b/schemas/manifest.ttl index 013776b1..460d562b 100644 --- a/schemas/manifest.ttl +++ b/schemas/manifest.ttl @@ -57,6 +57,8 @@ <#1val1DOUBLE> <#1val1DOUBLElowercase> <#1val1LANGTAG> + <#1val1LANGTAG_U_L> + <#1val1LANGTAG_L_U> <#1val1IRIREFDatatype> <#1val1true> <#1val1false> @@ -213,6 +215,7 @@ <#1val1languageStem> <#1val1languageStemMinuslanguage3> <#1val1languageStemMinuslanguageStem3> + <#1val1languageStemMinuslanguageStemU3> <#1val1literal> <#1val1literallanguageStem> <#1val1literallanguageStemMinusliterallanguage3> @@ -816,6 +819,22 @@ sx:ttl <1val1LANGTAG.ttl> ; . +<#1val1LANGTAG_U_L> a sht:RepresentationTest ; + mf:name "1val1LANGTAG_U_L" ; + mf:status mf:proposed ; + sx:shex <1val1LANGTAG_U_L.shex> ; + sx:json <1val1LANGTAG_U_L.json> ; + sx:ttl <1val1LANGTAG.ttl> ; + . + +<#1val1LANGTAG_L_U> a sht:RepresentationTest ; + mf:name "1val1LANGTAG_L_U" ; + mf:status mf:proposed ; + sx:shex <1val1LANGTAG_L_U.shex> ; + sx:json <1val1LANGTAG_L_U.json> ; + sx:ttl <1val1LANGTAG.ttl> ; + . + <#1val1IRIREFDatatype> a sht:RepresentationTest ; mf:name "1val1IRIREFDatatype" ; mf:status mf:proposed ; @@ -2104,6 +2123,14 @@ sx:ttl <1val1languageStemMinuslanguageStem3.ttl> ; . +<#1val1languageStemMinuslanguageStemU3> a sht:RepresentationTest ; + mf:name "1val1languageStemMinuslanguageStemU3" ; + mf:status mf:proposed ; + sx:shex <1val1languageStemMinuslanguageStemU3.shex> ; + sx:json <1val1languageStemMinuslanguageStemU3.json> ; + sx:ttl <1val1languageStemMinuslanguageStemU3.ttl> ; + . + <#1val1literallanguageStem> a sht:RepresentationTest ; mf:name "1val1literallanguageStem" ; mf:status mf:proposed ; diff --git a/validation/manifest.jsonld b/validation/manifest.jsonld index b20439fa..e2f462a1 100644 --- a/validation/manifest.jsonld +++ b/validation/manifest.jsonld @@ -4376,6 +4376,74 @@ "comment": " { ['ab'@en-fr] } on { 'a'@en-fr }", "status": "mf:proposed" }, + { + "@id": "#1val1LANGTAG_U_L_passLabLTen-fr", + "@type": "sht:ValidationTest", + "action": { + "schema": "../schemas/1val1LANGTAG_U_L.shex", + "shape": "http://a.example/S1", + "data": "Is1_Ip1_LabLTen-fr.ttl", + "focus": "http://a.example/s1" + }, + "extensionResults": [], + "name": "1val1LANGTAG_U_L_passLabLTen-fr", + "trait": [ + "LanguageCase" + ], + "comment": " { ['ab'@EN-fr] } on { 'ab'@en-fr }", + "status": "mf:proposed" + }, + { + "@id": "#1val1LANGTAG_U_L_Lab", + "@type": "sht:ValidationFailure", + "action": { + "schema": "../schemas/1val1LANGTAG_U_L.shex", + "shape": "http://a.example/S1", + "data": "Is1_Ip1_Lab.ttl", + "focus": "http://a.example/s1" + }, + "extensionResults": [], + "name": "1val1LANGTAG_U_L_Lab", + "trait": [ + "LanguageCase" + ], + "comment": " { ['ab'@EN-fr] } on { 'ab' }", + "status": "mf:proposed" + }, + { + "@id": "#1val1LANGTAG_U_L_LabLTen", + "@type": "sht:ValidationFailure", + "action": { + "schema": "../schemas/1val1LANGTAG_U_L.shex", + "shape": "http://a.example/S1", + "data": "Is1_Ip1_LabLTen.ttl", + "focus": "http://a.example/s1" + }, + "extensionResults": [], + "name": "1val1LANGTAG_U_L_LabLTen", + "trait": [ + "LanguageCase" + ], + "comment": " { ['ab'@EN-fr] } on { 'ab'@en }", + "status": "mf:proposed" + }, + { + "@id": "#1val1LANGTAG_L_U_passLabLTen-fr", + "@type": "sht:ValidationTest", + "action": { + "schema": "../schemas/1val1LANGTAG_L_U.shex", + "shape": "http://a.example/S1", + "data": "Is1_Ip1_LabLTen-fr.ttl", + "focus": "http://a.example/s1" + }, + "extensionResults": [], + "name": "1val1LANGTAG_L_U_passLabLTen-fr", + "trait": [ + "LanguageCase" + ], + "comment": " { ['ab'@en-FR] } on { 'ab'@en-fr }", + "status": "mf:proposed" + }, { "@id": "#1val1IRIREFDatatype_pass", "@type": "sht:ValidationTest", @@ -12660,6 +12728,25 @@ "comment": " { [@fr~-@fr-be~-@fr-cd~-@fr-ch] } on { 'septante'@fr }", "status": "mf:proposed" }, + { + "@id": "#1val1languageStemMinuslanguageStemU3_passLAtfr", + "@type": "sht:ValidationTest", + "action": { + "schema": "../schemas/1val1languageStemMinuslanguageStemU3.shex", + "shape": "http://a.example/S1", + "data": "Is1_Ip1_LAtfr.ttl", + "focus": "http://a.example/s1" + }, + "extensionResults": [], + "name": "1val1languageStemMinuslanguageStemU3_passLAtfr", + "trait": [ + "Stem", + "ValueSet", + "LanguageCase" + ], + "comment": " { [@FR~-@FR-BE~-@FR-CD~-@FR-CH] } on { 'septante'@fr }", + "status": "mf:proposed" + }, { "@id": "#1val1languageStemMinuslanguageStem3_passLAtFR", "@type": "sht:ValidationTest", @@ -12679,6 +12766,25 @@ "comment": " { [@fr~-@fr-be~-@fr-cd~-@fr-ch] } on { 'septante'@FR }", "status": "mf:proposed" }, + { + "@id": "#1val1languageStemMinuslanguageStemU3_passLAtFR", + "@type": "sht:ValidationTest", + "action": { + "schema": "../schemas/1val1languageStemMinuslanguageStemU3.shex", + "shape": "http://a.example/S1", + "data": "Is1_Ip1_LAtUFR.ttl", + "focus": "http://a.example/s1" + }, + "extensionResults": [], + "name": "1val1languageStemMinuslanguageStemU3_passLAtFR", + "trait": [ + "Stem", + "ValueSet", + "LanguageCase" + ], + "comment": " { [@FR~-@FR-BE~-@FR-CD~-@FR-CH] } on { 'septante'@FR }", + "status": "mf:proposed" + }, { "@id": "#1val1languageStemMinuslanguageStem3_passLAtfr-FR", "@type": "sht:ValidationTest", @@ -12715,6 +12821,25 @@ "comment": " { [@fr~-@fr-be~-@fr-cd~-@fr-ch] } on { 'septante'@fr-be }", "status": "mf:proposed" }, + { + "@id": "#1val1languageStemMinuslanguageStemU3_LAtfr-be", + "@type": "sht:ValidationFailure", + "action": { + "schema": "../schemas/1val1languageStemMinuslanguageStemU3.shex", + "shape": "http://a.example/S1", + "data": "Is1_Ip1_LAtfr-be.ttl", + "focus": "http://a.example/s1" + }, + "extensionResults": [], + "name": "1val1languageStemMinuslanguageStemU3_LAtfr-be", + "trait": [ + "Stem", + "ValueSet", + "LanguageCase" + ], + "comment": " { [@FR~-@FR-BE~-@FR-CD~-@FR-CH] } on { 'septante'@fr-be }", + "status": "mf:proposed" + }, { "@id": "#1val1languageStemMinuslanguageStem3_LAtfr-cd", "@type": "sht:ValidationFailure", @@ -12769,6 +12894,25 @@ "comment": " { [@fr~-@fr-be~-@fr-cd~-@fr-ch] } on { 'septante'@fr-be-fbcl }", "status": "mf:proposed" }, + { + "@id": "#1val1languageStemMinuslanguageStemU3_LAtfr-be-fbcl", + "@type": "sht:ValidationFailure", + "action": { + "schema": "../schemas/1val1languageStemMinuslanguageStemU3.shex", + "shape": "http://a.example/S1", + "data": "Is1_Ip1_LAtfr-be-fbcl.ttl", + "focus": "http://a.example/s1" + }, + "extensionResults": [], + "name": "1val1languageStemMinuslanguageStemU3_LAtfr-be-fbcl", + "trait": [ + "Stem", + "ValueSet", + "LanguageCase" + ], + "comment": " { [@FR~-@FR-BE~-@FR-CD~-@FR-CH] } on { 'septante'@fr-be-fbcl }", + "status": "mf:proposed" + }, { "@id": "#1dotOne2dot_pass_p1", "@type": "sht:ValidationTest", diff --git a/validation/manifest.ttl b/validation/manifest.ttl index 926164e2..b18af81a 100644 --- a/validation/manifest.ttl +++ b/validation/manifest.ttl @@ -328,6 +328,10 @@ <#1val1LANGTAG_LabLTen-fr-jura> <#1val1LANGTAG_LabLTEN-FR-JURA> <#1val1LANGTAG_LaLTen-fr> + <#1val1LANGTAG_U_L_passLabLTen-fr> + <#1val1LANGTAG_U_L_Lab> + <#1val1LANGTAG_U_L_LabLTen> + <#1val1LANGTAG_L_U_passLabLTen-fr> #### datatyped literal equivalence <#1val1IRIREFDatatype_pass> # { ['ab'^^my:bloodType] } @@ -830,12 +834,16 @@ <#1val1languageStemMinuslanguage3_failLAtfr-ch> <#1val1languageStemMinuslanguage3_passLAtfr-be-fbcl> <#1val1languageStemMinuslanguageStem3_passLAtfr> + <#1val1languageStemMinuslanguageStemU3_passLAtfr> <#1val1languageStemMinuslanguageStem3_passLAtFR> + <#1val1languageStemMinuslanguageStemU3_passLAtFR> <#1val1languageStemMinuslanguageStem3_passLAtfr-FR> <#1val1languageStemMinuslanguageStem3_LAtfr-be> + <#1val1languageStemMinuslanguageStemU3_LAtfr-be> <#1val1languageStemMinuslanguageStem3_LAtfr-cd> <#1val1languageStemMinuslanguageStem3_LAtfr-ch> <#1val1languageStemMinuslanguageStem3_LAtfr-be-fbcl> + <#1val1languageStemMinuslanguageStemU3_LAtfr-be-fbcl> ## triple expressions ### AND tripleExpr @@ -4677,6 +4685,58 @@ ] ; . +<#1val1LANGTAG_U_L_passLabLTen-fr> a sht:ValidationTest ; + mf:name "1val1LANGTAG_U_L_passLabLTen-fr" ; + sht:trait sht:LanguageCase ; + rdfs:comment " { ['ab'@EN-fr] } on { 'ab'@en-fr }" ; + mf:status mf:proposed ; + mf:action [ + sht:schema <../schemas/1val1LANGTAG_U_L.shex> ; + sht:shape ; + sht:data ; + sht:focus + ] + . + +<#1val1LANGTAG_U_L_Lab> a sht:ValidationFailure ; + mf:name "1val1LANGTAG_U_L_Lab" ; + sht:trait sht:LanguageCase ; + rdfs:comment " { ['ab'@EN-fr] } on { 'ab' }" ; + mf:status mf:proposed ; + mf:action [ + sht:schema <../schemas/1val1LANGTAG_U_L.shex> ; + sht:shape ; + sht:data ; + sht:focus + ] ; + . + +<#1val1LANGTAG_U_L_LabLTen> a sht:ValidationFailure ; + mf:name "1val1LANGTAG_U_L_LabLTen" ; + sht:trait sht:LanguageCase ; + rdfs:comment " { ['ab'@EN-fr] } on { 'ab'@en }" ; + mf:status mf:proposed ; + mf:action [ + sht:schema <../schemas/1val1LANGTAG_U_L.shex> ; + sht:shape ; + sht:data ; + sht:focus + ] ; + . + +<#1val1LANGTAG_L_U_passLabLTen-fr> a sht:ValidationTest ; + mf:name "1val1LANGTAG_L_U_passLabLTen-fr" ; + sht:trait sht:LanguageCase ; + rdfs:comment " { ['ab'@en-FR] } on { 'ab'@en-fr }" ; + mf:status mf:proposed ; + mf:action [ + sht:schema <../schemas/1val1LANGTAG_L_U.shex> ; + sht:shape ; + sht:data ; + sht:focus + ] + . + #### } language tag equivalence #### datatyped literal equivalence { @@ -11262,6 +11322,19 @@ ] . +<#1val1languageStemMinuslanguageStemU3_passLAtfr> a sht:ValidationTest ; + mf:name "1val1languageStemMinuslanguageStemU3_passLAtfr" ; + sht:trait sht:ValueSet, sht:Stem, sht:LanguageCase ; + rdfs:comment " { [@FR~-@FR-BE~-@FR-CD~-@FR-CH] } on { 'septante'@fr }" ; + mf:status mf:proposed ; + mf:action [ + sht:schema <../schemas/1val1languageStemMinuslanguageStemU3.shex> ; + sht:shape ; + sht:data ; + sht:focus + ] + . + <#1val1languageStemMinuslanguageStem3_passLAtFR> a sht:ValidationTest ; mf:name "1val1languageStemMinuslanguageStem3_passLAtFR" ; sht:trait sht:ValueSet, sht:Stem, sht:LanguageCase ; @@ -11275,6 +11348,19 @@ ] . +<#1val1languageStemMinuslanguageStemU3_passLAtFR> a sht:ValidationTest ; + mf:name "1val1languageStemMinuslanguageStemU3_passLAtFR" ; + sht:trait sht:ValueSet, sht:Stem, sht:LanguageCase ; + rdfs:comment " { [@FR~-@FR-BE~-@FR-CD~-@FR-CH] } on { 'septante'@FR }" ; + mf:status mf:proposed ; + mf:action [ + sht:schema <../schemas/1val1languageStemMinuslanguageStemU3.shex> ; + sht:shape ; + sht:data ; + sht:focus + ] + . + <#1val1languageStemMinuslanguageStem3_passLAtfr-FR> a sht:ValidationTest ; mf:name "1val1languageStemMinuslanguageStem3_passLAtfr-FR" ; sht:trait sht:ValueSet, sht:Stem ; @@ -11301,6 +11387,19 @@ ] ; . +<#1val1languageStemMinuslanguageStemU3_LAtfr-be> a sht:ValidationFailure ; + mf:name "1val1languageStemMinuslanguageStemU3_LAtfr-be" ; + sht:trait sht:ValueSet, sht:Stem, sht:LanguageCase ; + rdfs:comment " { [@FR~-@FR-BE~-@FR-CD~-@FR-CH] } on { 'septante'@fr-be }" ; + mf:status mf:proposed ; + mf:action [ + sht:schema <../schemas/1val1languageStemMinuslanguageStemU3.shex> ; + sht:shape ; + sht:data ; + sht:focus + ] ; + . + <#1val1languageStemMinuslanguageStem3_LAtfr-cd> a sht:ValidationFailure ; mf:name "1val1languageStemMinuslanguageStem3_LAtfr-cd" ; sht:trait sht:ValueSet, sht:Stem ; @@ -11340,6 +11439,19 @@ ] ; . +<#1val1languageStemMinuslanguageStemU3_LAtfr-be-fbcl> a sht:ValidationFailure ; + mf:name "1val1languageStemMinuslanguageStemU3_LAtfr-be-fbcl" ; + sht:trait sht:ValueSet, sht:Stem, sht:LanguageCase ; + rdfs:comment " { [@FR~-@FR-BE~-@FR-CD~-@FR-CH] } on { 'septante'@fr-be-fbcl }" ; + mf:status mf:proposed ; + mf:action [ + sht:schema <../schemas/1val1languageStemMinuslanguageStemU3.shex> ; + sht:shape ; + sht:data ; + sht:focus + ] ; + . + ## } value sets ## triple expressions { ### AND tripleExpr { From f42235feef793e5f80d185a0063adee1131286ef Mon Sep 17 00:00:00 2001 From: Eric Prud'hommeaux Date: Thu, 16 Jun 2022 00:11:07 +0200 Subject: [PATCH 3/3] ~ ShExR sx:shapes () --- schemas/1val1languageStemMinuslanguageStemU3.ttl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/schemas/1val1languageStemMinuslanguageStemU3.ttl b/schemas/1val1languageStemMinuslanguageStemU3.ttl index 88e1f8a1..447a9f6e 100644 --- a/schemas/1val1languageStemMinuslanguageStemU3.ttl +++ b/schemas/1val1languageStemMinuslanguageStemU3.ttl @@ -3,7 +3,7 @@ PREFIX sx: PREFIX xsd: [] a sx:Schema ; - sx:shapes . + sx:shapes () . a sx:Shape ; sx:expression [ a sx:TripleConstraint ;