2015-03-31 114 views
0

我無法編寫正確的Stardog規則。由於我還沒有找到驗證規則語法的方法,因此如果它是語法或邏輯錯誤,我現在不會。無論哪種情況,啓用推理(規則2中的reasoning=SL,版本3中的reasoning=true)似乎都不會觸發規則。Stardog規則不會觸發

@prefix : <http://www.example.org/rules#> . 
@prefix rule: <tag:stardog:api:rule:> . 
@base <http://www.example.org/rules#> . 

[] a rule:SPARQLRule ; 
    rule:content """ 
PREFIX : <http://www.example.org/rules#> 
PREFIX draft: <http://our/prefix#> 
IF { 
    ?x a draft:Obs; draft:has_code ?code . 
    ?z a <http://www.w3.org/ns/sparql#UUID> . // OR: BIND (UUID() AS ?z) 
    } 
THEN { 
    ?z a draft:Code . 
    ?x draft:has_code ?z . 
} 
""" . 

我想用下面的SPARQL查詢觸發規則:

PREFIX : <http://our/prefix> 
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> 
SELECT ?code 
FROM <tag:stardog:api:context:default> 
FROM <http://our/graph> 
WHERE { 
    ?s rdf:type :Obs . 
    ?obs :has_code ?code . 
} 

回答