Hello!
I am trying to use infer values through sh:values using sh:nodes, sh:filterShape, sh:minus.
However, it is not working as intended. Assuming I am writing something incorrectly.
As a similar example to what I am doing. I want to infer values for a property through a skos:broader connection and then subtract any that the focusNode already has through the property and only infer values of a specific class.
ex:Dog skos:broader ex:Mammal ;
ex:characteristics ex:Hair , ex:Four-legged, ex:Terrestrial, ex:Vertebrae.
ex:Mammal ex:characteristcs ex:Vertebrae, ex:MilkProducer, ex:Hair .
ex:Vertebrae rdf:type ex:SkeletalStructure .
ex:Four-legged rdf:type ex:Locomotion.
ex:MilkProducer rdf:type ex:Food .
ex:Terrestrial rdf:type ex:Habitat.
I want to create a set of inferred values from the parent which only include ex:SkeletalStructure and ex:Food. If the focusNode already has the value for the property then I do not want it to show up in the inherited values.
sh:values [
sh:minus [sh:path ex:characteristics ]; #also tried as (sh:this ex:characteristics); also tried putting it with the sh:node itself.
sh:filterShape [
sh:or (
[
sh:class ex:Food ;
]
[
sh:class ex:SkeletalStructure;
]
) ;
] ;
sh:nodes [
sh:distinct [
sh:path (
skos:broader
ex:characteristics
) ;
];
] ;
];