:
my:name-status a rs:ResourceShape ; rs:property [ rs:name "name" ; rs:propertyDefinition ex:name ; rs:valueType xsd:string ; rs:occurs rs:Exactly-one ; ] ; rs:property [ rs:name "status" ; rs:propertyDefinition ex:status ; rs:allowedValue ex:unassigned , ex:assigned ; rs:occurs rs:Zero-or-one ; ] .
equivalent to
my:name-status { ex:name xsd:string , ex:status ( ex:unassigned ex:assigned )? }
But what's that mean?
I guessed it was a universal, non-qualified constraint.
SELECT ?S { { SELECT ?S (COUNT(*) AS ?S_c0) { ?S ex:name ?o . } GROUP BY ?S} { SELECT ?S (COUNT(*) AS ?S_c1) { ?S ex:name ?o . FILTER(datatype(?o) = xsd:string) } GROUP BY ?S} FILTER (?S_c0 = ?S_c1 && ?S_c0 = 1) { SELECT ?S (COUNT(*) AS ?S_c2) { ?S ex:status ?o . } GROUP BY ?S} { SELECT ?S (COUNT(*) AS ?S_c3) { ?S ex:status ?o . FILTER ((?o = ex:unassigned || ?o = ex:assigned)) } GROUP BY ?S} FILTER (?S_c2 = ?S_c3 && (?S_c0 = 0 || ?S_c0 = 1)) }
Datatype: xsd:string DataProperty: ex:name ObjectProperty: ex:status Class: ex:name-status SubClassOf: ex:name exactly 1 rdfs:Literal , ex:status only ({ ex:assigned , ex:unassigned }) , ex:status max 1 , ex:status min 0 Individual: ex:assigned Individual: ex:unassigned
http://www.slideshare.net/jelabra/semantics-2014 (start at slide 14)
$my:id