- From: Holger Knublauch <holger@topquadrant.com>
- Date: Thu, 5 Nov 2015 15:55:35 +1000
- To: public-data-shapes-wg@w3.org
- Message-ID: <563AEF57.5080604@topquadrant.com>
Hi Jose, I think you can use a sh:filterShape to limit when your constraint applies. Untested: :UserShape a sh:Shape ; sh:property [ sh:predicate :role ; sh:hasValue :User ; sh:filterShape [ sh:property [ sh:predicate :role ; sh:minCount 1 ; ] ; ] ] . The intention of the above is to say that the hasValue constraint only applies to instances where :role has at least one value. Holger On 11/5/2015 15:47, Jose Emilio Labra Gayo wrote: > I would like to model optional properties which can appear or not, but > in case that they appear have a fixed value. > > For example, in ShEx, I can define the following shape: > > <UserShape> { > rdfs:label xsd:string, > ex:role ex:User ? > } > > where ex:role is an optional property with a fixed value. If it > appears, it must be ex:User. > > My first thought is that the previous example could be represented in > Shacl as: > > :UserShape > a sh:Shape ; > sh:property [ > sh:predicate rdfs:label ; > sh:datatype xsd:string ; > sh:minCount 1 ; > sh:maxCount 1 ; > ] ; > sh:property [ > sh:predicate :role ; > sh:hasValue :User ; > sh:minCount 0 ; > sh:maxCount 1 ; > ] . > > However,reading the spec, I am not sure about the interaction between > sh:minCount and sh:hasValue. > > It appears that if we include sh:minCount 0, the spec says: "If the > value is 0 then this constraint is always satisfied and so may be > omitted." > > However, the definition of sh:hasValue says: "A validation result must > be produced if there is no triple that has the focus node as its > subject, the |sh:predicate| as its predicate and the |sh:hasValue| as > its object." and the SPARQL query seems to raise an error in that > case, which means that the following instance data woud not be valid: > > :user1 rdfs:label "Student 2" . > > Is is possible to combine optional properties with fixed values as in > the previous example or is there another way to define it? > > -- > -- Jose Labra >
Received on Thursday, 5 November 2015 05:56:11 UTC