- From: Gary Murphy <gary@schemaapp.com>
- Date: Mon, 21 Jan 2019 16:26:52 -0500
- To: public-shacl@w3.org
- Message-ID: <CADnyxpuAFhiJm=Oty-4=uEXT4gGf0zBywr3f7g-8pJh9qOed5w@mail.gmail.com>
Apologies if this is a naive question, but I've been having some difficulty with the shacl sh:pattern operator; I was working on a rule to allow the various types for schema:ImageObject width and height values and had tried the following property rules in my shape: sh:property [ sh:path schema:width ; sh:or ( [ sh:class schema:QuantitativeValue ] [ sh:datatype xsd:integer ] [ sh:datatype xsd:string ; sh:pattern "^\\d+\\.?\\d*.*" ] ) ; ] ; ] . Then using this test data: ex:BobsPix a schema:ImageObject ; schema:url "http://bob.pmx" ; schema:height "600"^^xsd:string; schema:width "600 ft"^^xsd:string ; . In shacl.org/playground, this fails to match the string "600" (with or without the ^^xsd:string); it will match the string "600.0" and if I replace the '?' with '*' it will accept "600", but then also accepts "600..0". Neither version accepts "600 px" or even "600.0 px" which I had expected to be covered with the trailing ".*" is this a quirk of the playground, or are the shacl pattern rules restricted to a subset of regex syntax? Both the question operator and ".*" seem to be supported in https://www.w3.org/TR/xpath-functions/#regex-syntax (.* is used in the examples) -- is there something else that I'm missing? (my tests work fine in https://regex101.com/ :) any and all guidance greatly welcomed ;) -- Gary Lawrence Murphy <gary@schemaapp.com> - Hunch Manifest, 15 Wyndham N 'C', Guelph
Received on Monday, 21 January 2019 21:27:27 UTC