Обновление значений в тройках онтологий с помощью правил 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, а добавляет еще одно значение. Как я могу обновить значение или удалить старое и добавить новое?

Спасибо.


person A.Sim    schedule 14.03.2017    source источник


Ответы (1)


я нашел решение

[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 ***************')
]
person A.Sim    schedule 15.03.2017