- From: Harvey, Philip <philip.harvey@jpmorgan.com>
- Date: Thu, 27 Feb 2025 12:55:38 +0000
- To: "public-shacl@w3.org" <public-shacl@w3.org>
- Message-ID: <PH8P130MB02777F41C0EC072DE9F093D58CCD2@PH8P130MB0277.NAMP130.PROD.OUTLOOK.COM>
I don't fully understand SHACL's semantics for nesting PropertyShapes and am hoping someone can clarify it for me. There are some examples of nested properties in the spec, such as the Person/Address example in https://www.w3.org/TR/shacl/#NodeConstraintComponent (pasted below). Is it legal to nest PropertyShape's directly, i.e. can I rewrite that Person/Address example as: ----- ex:PersonShape a sh:NodeShape ; sh:targetClass ex:Person ; sh:property [ # _:b1 sh:path ex:address ; sh:minCount 1 ; sh:property [ # can we use sh:property here instead of an intervening sh:node? sh:path ex:postalCode; sh:maxCount 1 ] . ----- I assume this pattern is not legal, mainly because it never appears in the spec examples. The (non-normative) class diagram also suggests sh:property is only legal in NodeShapes (but shacl.ttl has gives sh:property a domain of sh:Shape, not NodeShape). But perhaps more importantly I don't understand at a conceptual level why this would not be allowed. I suspect this relates to how 'value nodes' are defined, but am not sure. Thanks Phil This message is confidential and subject to terms at: https://www.jpmorgan.com/emaildisclaimer including on confidential, privileged or legal entity information, malicious content and monitoring of electronic messages. If you are not the intended recipient, please delete this message and notify the sender immediately. Any unauthorized use is strictly prohibited.
Received on Thursday, 27 February 2025 12:55:48 UTC