I wonder if there is a possibility to express the following code in a more readable manner. Maybe without SHACL-SPARQL. Is it possible to use the function sh:filterShape in this context?
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix : <http://www.semanticweb.org#> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
:RoomNumberShape a sh:NodeShape ;
sh:target [
a sh:SPARQLTarget ;
sh:prefixes [
sh:declare [
sh:prefix "" ;
sh:namespace "http://www.semanticweb.org#"^^xsd:anyURI ;
] ;
sh:declare [
sh:prefix "rdf" ;
sh:namespace "http://www.w3.org/1999/02/22-rdf-syntax-ns#"^^xsd:anyURI ;
]
] ;
sh:select """
SELECT ?node
WHERE {
?node :has_RD :RD200 ;
rdf:type :Room ;
}
""" ;
] ;
sh:property [
sh:path :has_RoomNumber ;
sh:minCount 1 ;
sh:maxCount 1 ;
] .```
question from:
https://stackoverflow.com/questions/65641676/using-shfiltershape-instead-of-shtarget 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…