#BASE <http://base.example/#> PREFIX ex: <http://ex.example/#> PREFIX foaf: <http://foaf.example/#> PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> start = <IssueShape> <IssueShape> { ex:state (ex:unassigned ex:assigned), ex:reportedBy @<UserShape>, ex:reportedOn xsd:dateTime, (ex:reproducedBy @<EmployeeShape>, ex:reproducedOn xsd:dateTime)?, ex:related @<IssueShape>* } <UserShape> { (foaf:name xsd:string | foaf:givenName xsd:string+, foaf:familyName xsd:string), foaf:mbox IRI } <EmployeeShape> { foaf:givenName xsd:string+, foaf:familyName xsd:string, foaf:phone IRI+, foaf:mbox IRI }
#BASE <http://base.example/#> PREFIX ex: <http://ex.example/#> PREFIX foaf: <http://foaf.example/#> PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> <Issue1> ex:state ex:unassigned ; ex:reportedBy <User2> ; ex:reportedOn "2013-01-23T10:18:00"^^xsd:dateTime ; ex:reproducedBy <Thompson.J> ; ex:reproducedOn "2013-01-23T11:00:00"^^xsd:dateTime ; # ex:related <Issue2>, <Issue3> . <User2> foaf:givenName "Bob" ; foaf:familyName "Smith" ; foaf:mbox <mailto:bob@example.org> . <Thompson.J> foaf:givenName "Joe", "Joseph" ; foaf:familyName "Thompson" ; foaf:phone <tel:+456> ; foaf:mbox <mailto:joe@example.org> .
Comparing placement of
semantic extension tests:
test on triple:
test on group:
test on shape: