2017-03-14 17 views
0

질문이 있습니다. 나는 이런 예나 규칙이 :Jena 규칙을 사용하여 온톨로지 트리플의 값을 업데이트하십시오.

[rule1: 

(?if rdf:type p:InferredConfiguration) 
(?if p:userName ?userEmail) 
(?subProfile rdf:type u:PersonSubProfile) 
(?subProfile u:hasUsername ?email) 
equal(?userEmail, ?email) 

(?subProfile u:hasName "") 
(?subProfile u:hasLastname "") 
(?subProfile u:hasPhone "") 
(?subProfile u:hasEducation "Low") 
-> 
(?subProfile u:hasPhone "00000") 

print('**************** Phone defined - Rule 1 ***************') 
] 

문제는 규칙이 위의 "hasPhone"속성의 값을 업데이트하지 않는다는 것입니다,하지만 하나 개 더 많은 가치를 추가합니다. 값을 업데이트하거나 이전 값을 제거하고 새 값을 추가하려면 어떻게해야합니까?

감사합니다.

답변

0

나는 솔루션

[rule1: 

(?if rdf:type p:InferredConfiguration) 
(?if p:userName ?userEmail) 
(?subProfile rdf:type u:PersonSubProfile) 
(?subProfile u:hasUsername ?email) 
equal(?userEmail, ?email) 

(?subProfile u:hasName "") 
(?subProfile u:hasLastname "") 
(?subProfile u:hasPhone ?var) 
equal (?var, "") 
(?subProfile u:hasEducation "Low") 
    -> 
drop(7) 
(?subProfile u:hasPhone "00000") 

print('**************** Phone defined - Rule 1 ***************') 
] 
발견