我正在尝试使用protege使用的swrl选项卡,我想知道是否有任何方法可以断言规则中的当前时间和日期。我还需要知道是否可以减去2个数据属性(类型: dateTime)。
提前谢谢你
发布于 2015-11-14 23:35:54
使用当前日期和时间的规则很可能意味着本体是非单调的-从它得出的推论将随时间变化,而不会对本体进行任何更改。这可能会让你的本体的一些用户感到惊讶。
也就是说,我不知道如何在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编程的源代码、示例和支持可以在here中找到
https://stackoverflow.com/questions/33709226
复制相似问题