1

我想知道是否有可能以更易读的方式表达以下代码。也许没有 SHACL-SPARQL。在这种情况下可以使用函数 sh:filterShape 吗?

@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 ; 
    ] .```
4

0 回答 0