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

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions