I’m wondering if anyone on the list would have advice/examples for defining 
SHACL to follow best practices for embedded/nested forms. Some of the questions 
I’ve come up with so far are:


  *   PropertyGroups and PropertyShapes can have order. Can embedded Forms take 
an order position among PropertyGroups
     *   Maybe the question is can/should a NodeShape also be a PropertyGroup 
within a larger form?
  *   Is the nesting as simple as saying one Form (represented as a :NodeShape) 
isPartOf another?
     *   Or is it enough that each embedded form would have its own targetClass 
assertion, and that Class would be linked to the larger form by the 
encompassing NodeShape having a PropertyShape that includes a related sh:class 
assertion.

For example, an AuthorSubmissonForm might include an AuthorNamePropertyGroup, 
an embedded AuthorAddressForm, an embedded SubmittedWorkForm, etc.

:AuthorSubmissonForm :targetClass :Agent ;
  dcterms:hasPart :AuthorAddressForm , :SubmittedWorkForm ;
  sh:property [ sh:path foaf:name ; sh:group :NamePropertyGroup ; sh:nodeKind 
sh:Literal ;] ;
  sh:property [ sh:path :address ; sh:class :Address  ; sh:group 
:AddressPropertyGroup ; sh:nodeKind sh:IRI;] ;
  sh:property [ sh:path :submission ; sh:class :Submission ; sh:group 
:SubmissionPropertyGroup ; sh:nodeKind sh:IRI ;] .

:NamePropertyGroup rdf:type sh:PropertyGroup ; shorder 0 .

:AuthorAddressForm a sh:NodeShape , sh:PropertyGroup ; sh:targetClass :Address 
; sh:order “1” ;
  sh:property [ sh:path :streetAddress ; sh:group :AddressPropertyGroup ; 
sh:order “0” ; sh:nodeKind sh:Literal ;] ;
  sh:property [ sh:path :city ; sh:class :City  ; sh:group 
:AddressPropertyGroup ; sh:order “1” ; sh:nodeKind sh:IRI;] .

:SubmissionForm a sh:NodeShape , sh:PropertyGroup ; sh:targetClass :Submission 
; sh:order “2” ;
  sh:property [ sh:path :title ; sh:group :SubmissionPropertyGroup ; sh:order 
“0” ; sh:nodeKind sh:Literal ;] ;
  sh:property [ sh:path :Type ; sh:class :Format  ; sh:group 
:SubmissionPropertyGroup ; sh:order “1” ; sh:nodeKind sh:IRI;] .


Thanks in advance for any insights/examples,
Steven

--
Steven Folsom
Metadata Specialist
Cornell University Library
http://orcid.org/0000-0003-3427-5769
http://vivo.cornell.edu/individual/sf433
@sf433

-- 
You received this message because you are subscribed to the Google Groups 
"TopBraid Suite Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to