2015-11-14 118 views
0

我想使用swrl選項卡與protege一起使用,並且我想知道是否有任何方法可以在規則中斷言當前時間和日期。另外我需要知道是否可以減去2個數據屬性(類型:dateTime)。SWRL和當前日期時間

感謝您提前

回答

0

使用當前日期和時間將很可能意味着本體規則是不單調 - 正在繪製的推論它會隨着時間而改變,沒有任何改變本體。這可能會讓你的本體的一些用戶感到意外。

這就是說,我不知道在Protege SWRL選項卡中執行數學運算或捕獲當前時間的方法。當然,您可以通過代碼(例如,通過OWL API)創建一個當前時間戳爲 的規則,並將其顯示在Protege中。

一個例子規則可以建立這樣的:

OWLOntologyManager m = create(); 
OWLOntology o = m.createOntology(example_iri); 
// Get hold of references to class A and class B. 
OWLClass clsA = df.getOWLClass(IRI.create(example_iri + "#A")); 
OWLClass clsB = df.getOWLClass(IRI.create(example_iri + "#B")); 
SWRLVariable var = df.getSWRLVariable(IRI.create(example_iri + "#x")); 
SWRLClassAtom body = df.getSWRLClassAtom(clsA, var); 
SWRLClassAtom head = df.getSWRLClassAtom(clsB, var); 
SWRLRule rule = df.getSWRLRule(Collections.singleton(body), Collections.singleton(head)); 
m.applyChange(new AddAxiom(o, rule)); 

來源,對OWL API編程實例和支持,可以發現here

+0

感謝您的信賴。規則:Person(?p),Activity(?a),StartTimeActivity(?a,?starttime), greaterThan(Currenttime,?starttime),NOT isPerforming(?p ,?a) - >提醒(?p,doActivity?a) –

相關問題