SWRL и текущая дата и время

Я пытаюсь использовать вкладку swrl, используемую с протеже, и мне было интересно, есть ли способ установить текущее время и дату в правиле. Также мне нужно знать, могу ли я вычесть 2 свойства данных (тип: dateTime).

Заранее спасибо


person Aline Ait Ammeur    schedule 14.11.2015    source источник


Ответы (1)


Правило, использующее текущую дату и время, скорее всего, подразумевало бы, что онтология не является монотонной - выводы, сделанные на ее основе, будут меняться со временем без каких-либо изменений в онтологии. Это может застать некоторых пользователей вашей онтологии врасплох.

Тем не менее, я не знаю способа выполнить математические операции или зафиксировать текущее время на вкладке 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 можно найти здесь

person Ignazio    schedule 14.11.2015
comment
Спасибо за доверие. Я пытаюсь написать это правило SWRL на протеже: Правило: Человек (? P), Активность (? A), StartTimeActivity (? A,? Starttime), GreaterThan (Currenttime,? starttime), NOT isPerforming (? p,? а)-> Напомнить(?p, doActivity?a) - person Aline Ait Ammeur; 14.11.2015