मेरे पास एक sh:SPARQLTarget और एक sh:SPARQLRule के साथ एक Nodeshape है। मैंने लक्ष्य और नियम दोनों को क्वेरी के रूप में चलाने की कोशिश की और दोनों परिणाम देते हैं, लेकिन जब मैं अपाचे जेना SHACL प्रोसेसर के साथ आकृतियों को निष्पादित कर रहा हूं, तो यह किसी भी ट्रिपल का निर्माण नहीं करेगा। मैंने कुछ गलत नहीं किया? मैं विचारों से बाहर हूं। यहाँ मेरा नोड आकार है:

iep:hasKG331
a rdf:Property, sh:NodeShape ;
sh:Target [
    a sh:SPARQLTarget ;
          sh:select """
            PREFIX express: <https://w3id.org/express#>
            PREFIX ifcowl: <http://standards.buildingsmart.org/IFC/DEV/IFC4/ADD1/OWL#>
            PREFIX rdf:  <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
            PREFIX iep: <https://www.inf.bi.rub.de/semweb/ns/ifc-enrichment-procedure/iep#>

            SELECT ?this
            WHERE {
                ?this rdf:type ifcowl:IfcWallStandardCase .
                ?relDefinesByProperties ifcowl:relatedObjects_IfcRelDefines ?this .
                ?relDefinesByProperties ifcowl:relatingPropertyDefinition_IfcRelDefinesByProperties ?pset .
                }
          """ ;

    ] ;
sh:rule [
    a sh:SPARQLRule ;
        sh:construct """
        PREFIX express: <https://w3id.org/express#>
        PREFIX ifcowl: <http://standards.buildingsmart.org/IFC/DEV/IFC4/ADD1/OWL#>
        PREFIX iep: <xxx/ifc-enrichment-procedure/iep#>

        CONSTRUCT {
            $this iep:hasKG iep:hasKG331 .
        }
        WHERE {
            ?relDBP ifcowl:relatedObjects_IfcRelDefines $this .
            ?relDBP ifcowl:relatingPropertyDefinition_IfcRelDefinesByProperties ?propSet .
            ?propSet ifcowl:hasProperties_IfcPropertySet ?psv1 .
            ?propSet ifcowl:hasProperties_IfcPropertySet ?psv2 .
            ?psv1 iep:isExternal true .
            ?psv2 iep:isLoadBearing true .
        }
    """ ;
] .

जैसा कि मैंने उल्लेख किया है, जब मैं लक्ष्य या नियम को एकल प्रश्नों के रूप में निष्पादित करता हूं, तो मुझे परिणाम मिलते हैं और लक्ष्य से फोकस नोड्स नियम में $this के रूप में सामने आते हैं। IRIs iep:isExternal और iep:isLoadBearing का अनुमान एक कदम पहले ही लग गया था। क्या मैं कुछ भूल रहा हूँ?

0
Malik Meshi 29 जिंदा 2021, 00:50

1 उत्तर

सबसे बढ़िया उत्तर

विवरण को देखे बिना, श: लक्ष्य को श होना चाहिए: लक्ष्य लोअर-केस टी के साथ। सभी संपत्ति के नाम आम तौर पर लोअर-केस होते हैं।

1
Holger Knublauch 29 जिंदा 2021, 03:44
हाहा हां बिल्कुल ऐसा ही कुछ था। इसे इंगित करने के लिए आपका बहुत-बहुत धन्यवाद।
 – 
Malik Meshi
29 जिंदा 2021, 11:11