Skip to content

Commit

Permalink
~ fix associated examples
Browse files Browse the repository at this point in the history
  • Loading branch information
Eric Prud'hommeaux committed Jun 16, 2022
1 parent 2fc9d26 commit d2d7cc3
Show file tree
Hide file tree
Showing 4 changed files with 147 additions and 132 deletions.
4 changes: 3 additions & 1 deletion packages/shex-cli/test/cli/1dotOr2dot.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@
"shapes": [
{
"id": "http://a.example/S1",
"type": "ShapeDecl",
"shapeExpr": {
"type": "Shape",
"expression": {
"type": "OneOf",
Expand All @@ -27,7 +29,7 @@
}
]
}
}
} }
]
}

255 changes: 130 additions & 125 deletions packages/shex-webapp/doc/ShExRSchema.js
Original file line number Diff line number Diff line change
@@ -1,207 +1,212 @@
var ShExRSchema = `PREFIX sx: <http://www.w3.org/ns/shex#>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
BASE <http://www.w3.org/ns/shex#>
start=@<Schema>
BASE <http://www.w3.org/ns/shex>
start=@<#Schema>
<Schema> CLOSED {
<#Schema> CLOSED {
a [sx:Schema] ;
sx:imports @<IriList1Plus>? ;
sx:startActs @<SemActList1Plus>? ;
sx:start @<shapeExpr> ? ;
sx:shapes @<shapeDeclOrExprList1Plus>*
sx:imports @<#IriList1Plus> ? ;
sx:startActs @<#SemActList1Plus> ? ;
sx:start @<#shapeDeclOrExpr> ? ;
sx:shapes @<#ShapeDeclList1Plus> ?
}
# <shapeDeclOrExpr> is a shortcut for always requriing a ShapeDecl
<shapeDeclOrExpr> @<ShapeDecl> OR @<shapeExpr>
# <#shapeDeclOrExpr> is a shortcut for always requriing a ShapeDecl
<#shapeDeclOrExpr> @<#ShapeDecl> OR @<#shapeExpr>
<ShapeDecl> CLOSED {
<#ShapeDecl> CLOSED {
a [sx:ShapeDecl] ;
sx:abstract [true false]? ;
sx:shapeExpr @<shapeExpr>
sx:shapeExpr @<#shapeExpr>
}
<shapeExpr> @<ShapeOr> OR @<ShapeAnd> OR @<ShapeNot> OR @<NodeConstraint> OR @<Shape> OR @<ShapeExternal>
<#shapeExpr> @<#ShapeOr> OR @<#ShapeAnd> OR @<#ShapeNot> OR @<#NodeConstraint> OR @<#Shape> OR @<#ShapeExternal>
<ShapeOr> CLOSED {
<#ShapeOr> CLOSED {
a [sx:ShapeOr] ;
sx:shapeExprs @<shapeDeclOrExprList2Plus>
sx:shapeExprs @<#shapeDeclOrExprList2Plus>
}
<ShapeAnd> CLOSED {
<#ShapeAnd> CLOSED {
a [sx:ShapeAnd] ;
sx:shapeExprs @<shapeDeclOrExprList2Plus>
sx:shapeExprs @<#shapeDeclOrExprList2Plus>
}
<ShapeNot> CLOSED {
<#ShapeNot> CLOSED {
a [sx:ShapeNot] ;
sx:shapeExpr @<shapeDeclOrExpr>
sx:shapeExpr @<#shapeDeclOrExpr>
}
<NodeConstraint> CLOSED {
<#NodeConstraint> CLOSED {
a [sx:NodeConstraint] ;
sx:nodeKind [sx:iri sx:bnode sx:literal sx:nonliteral]?;
sx:nodeKind [sx:iri sx:bnode sx:literal sx:nonliteral] ? ;
sx:datatype IRI ? ;
&<xsFacets> ;
sx:values @<valueSetValueList1Plus>?
&<#xsFacets> ;
sx:values @<#valueSetValueList1Plus> ?
}
<Shape> CLOSED {
<#Shape> CLOSED {
a [sx:Shape] ;
sx:extends @<shapeDeclOrExprList1Plus>? ;
sx:closed [true false]? ;
sx:extra IRI* ;
sx:expression @<tripleExpression>? ;
sx:semActs @<SemActList1Plus>? ;
sx:annotation @<AnnotationList1Plus>? ;
sx:extends @<#shapeDeclOrExprList1Plus>? ;
sx:closed [true false] ? ;
sx:extra IRI * ;
sx:expression @<#tripleExpression> ? ;
sx:semActs @<#SemActList1Plus> ? ;
sx:annotation @<#AnnotationList1Plus> ?
}
<ShapeExternal> CLOSED {
a [sx:ShapeExternal] ;
<#ShapeExternal> CLOSED {
a [sx:ShapeExternal]
}
<SemAct> CLOSED {
<#SemAct> CLOSED {
a [sx:SemAct] ;
sx:name IRI ;
sx:code xsd:string?
sx:code xsd:string ?
}
<Annotation> CLOSED {
<#Annotation> CLOSED {
a [sx:Annotation] ;
sx:predicate IRI ;
sx:object @<objectValue>
sx:object @<#objectValue>
}
# <xsFacet> @<stringFacet> OR @<numericFacet>
<facet_holder> { # hold labeled productions
$<xsFacets> ( &<stringFacet> | &<numericFacet> )* ;
$<stringFacet> (
# <#xsFacet> @<#stringFacet> OR @<#numericFacet>
<#facet_holder> { # hold labeled productions
$<#xsFacets> ( &<#stringFacet> | &<#numericFacet> ) * ;
$<#stringFacet> (
sx:length xsd:integer
| sx:minlength xsd:integer
| sx:maxlength xsd:integer
| sx:pattern xsd:string ; sx:flags xsd:string?
);
$<numericFacet> (
sx:mininclusive @<numericLiteral>
| sx:minexclusive @<numericLiteral>
| sx:maxinclusive @<numericLiteral>
| sx:maxexclusive @<numericLiteral>
| sx:pattern xsd:string ; sx:flags xsd:string ?
) ;
$<#numericFacet> (
sx:mininclusive @<#numericLiteral>
| sx:minexclusive @<#numericLiteral>
| sx:maxinclusive @<#numericLiteral>
| sx:maxexclusive @<#numericLiteral>
| sx:totaldigits xsd:integer
| sx:fractiondigits xsd:integer
)
}
<numericLiteral> xsd:integer OR xsd:decimal OR xsd:double
<valueSetValue> @<objectValue> OR @<IriStem> OR @<IriStemRange>
OR @<LiteralStem> OR @<LiteralStemRange>
OR @<Language> OR @<LanguageStem> OR @<LanguageStemRange>
<objectValue> IRI OR LITERAL # rdf:langString breaks on Annotation.object
<Language> CLOSED { a [sx:Language]; sx:languageTag xsd:string }
<IriStem> CLOSED { a [sx:IriStem]; sx:stem xsd:string }
<IriStemRange> CLOSED {
a [sx:IriStemRange];
sx:stem xsd:string OR @<Wildcard>;
sx:exclusion @<IriStemExclusionList1Plus>
}
<LiteralStem> CLOSED { a [sx:LiteralStem]; sx:stem xsd:string }
<LiteralStemRange> CLOSED {
a [sx:LiteralStemRange];
sx:stem xsd:string OR @<Wildcard>;
sx:exclusion @<LiteralStemExclusionList1Plus>
}
<LanguageStem> CLOSED { a [sx:LanguageStem]; sx:stem xsd:string }
<LanguageStemRange> CLOSED {
a [sx:LanguageStemRange];
sx:stem xsd:string OR @<Wildcard>;
sx:exclusion @<LanguageStemExclusionList1Plus>
}
<Wildcard> BNODE CLOSED {
<#numericLiteral> xsd:integer OR xsd:decimal OR xsd:double
<#valueSetValue> @<#objectValue> OR @<#IriStem> OR @<#IriStemRange>
OR @<#LiteralStem> OR @<#LiteralStemRange>
OR @<#Language> OR @<#LanguageStem> OR @<#LanguageStemRange>
<#objectValue> IRI OR LITERAL # rdf:langString breaks on Annotation.object
<#Language> CLOSED { a [sx:Language] ; sx:languageTag xsd:string }
<#IriStem> CLOSED { a [sx:IriStem] ; sx:stem xsd:string }
<#IriStemRange> CLOSED {
a [sx:IriStemRange] ;
sx:stem xsd:string OR @<#Wildcard> ;
sx:exclusion @<#IriStemExclusionList1Plus>
}
<#LiteralStem> CLOSED { a [sx:LiteralStem] ; sx:stem xsd:string }
<#LiteralStemRange> CLOSED {
a [sx:LiteralStemRange] ;
sx:stem xsd:string OR @<#Wildcard> ;
sx:exclusion @<#LiteralStemExclusionList1Plus>
}
<#LanguageStem> CLOSED { a [sx:LanguageStem] ; sx:stem xsd:string }
<#LanguageStemRange> CLOSED {
a [sx:LanguageStemRange] ;
sx:stem xsd:string OR @<#Wildcard> ;
sx:exclusion @<#LanguageStemExclusionList1Plus>
}
<#Wildcard> BNODE CLOSED {
a [sx:Wildcard]
}
<tripleExpression> @<TripleConstraint> OR @<OneOf> OR @<EachOf> OR CLOSED { }
<#tripleExpression> @<#TripleConstraint> OR @<#OneOf> OR @<#EachOf> OR CLOSED { }
<OneOf> CLOSED {
<#OneOf> CLOSED {
a [sx:OneOf] ;
sx:min xsd:integer? ;
sx:max xsd:integer? ;
sx:expressions @<tripleExpressionList2Plus> ;
sx:semActs @<SemActList1Plus>? ;
sx:annotation @<AnnotationList1Plus>?
sx:min xsd:integer ? ;
sx:max xsd:integer ? ;
sx:expressions @<#tripleExpressionList2Plus> ;
sx:semActs @<#SemActList1Plus> ? ;
sx:annotation @<#AnnotationList1Plus> ?
}
<EachOf> CLOSED {
<#EachOf> CLOSED {
a [sx:EachOf] ;
sx:min xsd:integer? ;
sx:max xsd:integer? ;
sx:expressions @<tripleExpressionList2Plus> ;
sx:semActs @<SemActList1Plus>? ;
sx:annotation @<AnnotationList1Plus>?
sx:min xsd:integer ? ;
sx:max xsd:integer ? ;
sx:expressions @<#tripleExpressionList2Plus> ;
sx:semActs @<#SemActList1Plus> ? ;
sx:annotation @<#AnnotationList1Plus> ?
}
<tripleExpressionList2Plus> CLOSED {
rdf:first @<tripleExpression> ;
rdf:rest @<tripleExpressionList1Plus>
<#tripleExpressionList2Plus> CLOSED {
rdf:first @<#tripleExpression> ;
rdf:rest @<#tripleExpressionList1Plus>
}
<tripleExpressionList1Plus> CLOSED {
rdf:first @<tripleExpression> ;
rdf:rest [rdf:nil] OR @<tripleExpressionList1Plus>
<#tripleExpressionList1Plus> CLOSED {
rdf:first @<#tripleExpression> ;
rdf:rest [rdf:nil] OR @<#tripleExpressionList1Plus>
}
<TripleConstraint> CLOSED {
<#TripleConstraint> CLOSED {
a [sx:TripleConstraint] ;
sx:inverse [true false]? ;
sx:negated [true false]? ;
sx:min xsd:integer? ;
sx:max xsd:integer? ;
sx:inverse [true false] ? ;
sx:negated [true false] ? ;
sx:min xsd:integer ? ;
sx:max xsd:integer ? ;
sx:predicate IRI ;
sx:valueExpr @<shapeDeclOrExpr>? ;
sx:semActs @<SemActList1Plus>? ;
sx:annotation @<AnnotationList1Plus>?
sx:valueExpr @<#shapeDeclOrExpr> ? ;
sx:semActs @<#SemActList1Plus> ? ;
sx:annotation @<#AnnotationList1Plus> ?
}
<IriList1Plus> CLOSED {
<#IriList1Plus> CLOSED {
rdf:first IRI ;
rdf:rest [rdf:nil] OR @<IriList1Plus>
rdf:rest [rdf:nil] OR @<#IriList1Plus>
}
<SemActList1Plus> CLOSED {
rdf:first @<SemAct> ;
rdf:rest [rdf:nil] OR @<SemActList1Plus>
<#SemActList1Plus> CLOSED {
rdf:first @<#SemAct> ;
rdf:rest [rdf:nil] OR @<#SemActList1Plus>
}
<shapeDeclOrExprList2Plus> CLOSED {
rdf:first @<shapeDeclOrExpr> ;
rdf:rest @<shapeDeclOrExprList1Plus>
<#ShapeDeclList1Plus> CLOSED {
rdf:first @<#ShapeDecl> ;
rdf:rest [rdf:nil] OR @<#ShapeDeclList1Plus>
}
<shapeDeclOrExprList1Plus> CLOSED {
rdf:first @<shapeDeclOrExpr> ;
rdf:rest [rdf:nil] OR @<shapeDeclOrExprList1Plus>
<#shapeDeclOrExprList2Plus> CLOSED {
rdf:first @<#shapeDeclOrExpr> ;
rdf:rest @<#shapeDeclOrExprList1Plus>
}
<#shapeDeclOrExprList1Plus> CLOSED {
rdf:first @<#shapeDeclOrExpr> ;
rdf:rest [rdf:nil] OR @<#shapeDeclOrExprList1Plus>
}
<valueSetValueList1Plus> CLOSED {
rdf:first @<valueSetValue> ;
rdf:rest [rdf:nil] OR @<valueSetValueList1Plus>
<#valueSetValueList1Plus> CLOSED {
rdf:first @<#valueSetValue> ;
rdf:rest [rdf:nil] OR @<#valueSetValueList1Plus>
}
<AnnotationList1Plus> CLOSED {
rdf:first @<Annotation> ;
rdf:rest [rdf:nil] OR @<AnnotationList1Plus>
<#AnnotationList1Plus> CLOSED {
rdf:first @<#Annotation> ;
rdf:rest [rdf:nil] OR @<#AnnotationList1Plus>
}
<IriStemExclusionList1Plus> CLOSED {
rdf:first IRI OR @<IriStem> ;
rdf:rest [rdf:nil] OR @<IriStemExclusionList1Plus>
<#IriStemExclusionList1Plus> CLOSED {
rdf:first IRI OR @<#IriStem> ;
rdf:rest [rdf:nil] OR @<#IriStemExclusionList1Plus>
}
<LiteralStemExclusionList1Plus> CLOSED {
rdf:first xsd:string OR @<LiteralStem> ;
rdf:rest [rdf:nil] OR @<LiteralStemExclusionList1Plus>
<#LiteralStemExclusionList1Plus> CLOSED {
rdf:first xsd:string OR @<#LiteralStem> ;
rdf:rest [rdf:nil] OR @<#LiteralStemExclusionList1Plus>
}
<LanguageStemExclusionList1Plus> CLOSED {
rdf:first xsd:string OR @<LanguageStem> ;
rdf:rest [rdf:nil] OR @<LanguageStemExclusionList1Plus>
<#LanguageStemExclusionList1Plus> CLOSED {
rdf:first xsd:string OR @<#LanguageStem> ;
rdf:rest [rdf:nil] OR @<#LanguageStemExclusionList1Plus>
}
`;

Expand Down
12 changes: 8 additions & 4 deletions packages/shex-webapp/examples/ClinObs.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,10 @@
"start": "http://schema.example/ObservationShape",
"shapes": [
{
"type": "Shape",
"type": "ShapeDecl",
"id": "http://schema.example/ObservationShape",
"shapeExpr": {
"type": "Shape",
"expression": {
"type": "EachOf",
"expressions": [
Expand All @@ -27,10 +29,12 @@
}
]
}
},
} },
{
"type": "Shape",
"type": "ShapeDecl",
"id": "http://schema.example/PatientShape",
"shapeExpr": {
"type": "Shape",
"expression": {
"type": "EachOf",
"expressions": [
Expand All @@ -54,6 +58,6 @@
}
]
}
}
} }
]
}
Loading

0 comments on commit d2d7cc3

Please sign in to comment.