我正在尝试使用与protege一起使用的swrl选项卡,我想知道我是否有任何方法 可以在规则中断言当前时间和日期。此外,我需要知道是否可以减去2个数据图像(类型:dateTime)。
提前感谢
答案 0 :(得分: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