3
我正在嘗試使用Jena框架來編輯使用Protoge 4.2構建的現有本體。即改變財產價值或增加個人或類別,然後進行推理。假設在本體論中,我們有一個規則:hasAge(?p,?age)^ swrlb:greaterThan(?age,18) - > Adult(?p)。我希望能夠改變耶拿方面的hasAge財產,看看是否有人是成年人。你能給我提供一些示例代碼嗎?任何幫助表示讚賞。在Jena框架中用SWRL規則推理粒子
我正在嘗試使用Jena框架來編輯使用Protoge 4.2構建的現有本體。即改變財產價值或增加個人或類別,然後進行推理。假設在本體論中,我們有一個規則:hasAge(?p,?age)^ swrlb:greaterThan(?age,18) - > Adult(?p)。我希望能夠改變耶拿方面的hasAge財產,看看是否有人是成年人。你能給我提供一些示例代碼嗎?任何幫助表示讚賞。在Jena框架中用SWRL規則推理粒子
假設:
下面的代碼片段將年齡添加到IND個人x-test://individual
並聲稱SWIRL將引入的財產得到滿足。
// create an empty ontology model using Pellet spec
final OntModel model = ModelFactory.createOntologyModel(PelletReasonerFactory.THE_SPEC);
// read the file
model.read(ont);
// Grab a resource and and property, and then set the property on that individual
final Resource Adult = ResourceFactory.createResource("x-domain://Adult");
final Property hasAge = ResourceFactory.createProperty("x-domain://hasAge");
final Resource res = model.createResource("x-test://individual");
res.addLiteral(hasAge, 19);
// Test that the swirl rule has executed
assert(res.hasProperty(RDF.type, Adult));