Skip to content

replacing values from SPARQL based constraints in the sh:message #117

@Dragos0000

Description

@Dragos0000

Example of SHACL shape with SPARQL query

    rdf:type sh:SPARQLConstraint ;
    rdfs:label "skos-xl pref label in the same language " ;
    sh:message "multiple skos-xl preferred label for language \"{$lang}\"" ;
    sh:prefixes <http://publications.europa.eu/ontology/skosShapes> ;
    sh:select """prefix skos: <http://www.w3.org/2004/02/skos/core#>
prefix skosxl: <http://www.w3.org/2008/05/skos-xl#>
SELECT $this ?lang (skosxl:prefLabel as ?path) (?l1f as ?value)
WHERE {
    $this skosxl:prefLabel ?l1 .
  ?l1 skosxl:literalForm ?l1f .
  $this skosxl:prefLabel ?l2 .
  ?l2 skosxl:literalForm ?l2f .
  FILTER ( ?l1 != ?l2 && lang(?l1f) = lang(?l2f) )
  BIND (lang(?l1f) as ?lang)
}

Expected Behavior

Would expect the variable {$lang} to be replaced in the sh:message from the SPARQL query.
ex: multiple skos-xl preferred label for language "en"

Actual Behavior

In the validation process will get "multiple skos-xl preferred label for language "{$lang}"" message. The variable lang is not being replaced.

Is this supported or will be supported ?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions