【发布时间】:2015-08-19 13:19:17
【问题描述】:
我在Sesame 2.8.5 中遇到了RDFS 蕴涵问题。我想从 (1) 和 (2) 中自动推导出 (3) (在此处使用 Turtle 符号)。这在the RDF 1.1 specification 中定义为规则rdfs3,在the OWL-RL specification 中定义为规则prp-rng。
(1) foaf:givenName rdfs:range xsd:string .
(2) ex:wouter foaf:givenName "Wouter" .
(3) "Wouter" a xsd:string .
我在 Sesame 中使用 ForwardChainingRDFSInferencer 类实现了这一点,如下所示:
public static void main(String[] args) throws RepositoryException, RDFHandlerException {
Repository r = new SailRepository(new ForwardChainingRDFSInferencer(new MemoryStore()));
r.initialize();
ValueFactory f = r.getValueFactory();
RepositoryConnection c = r.getConnection();
try {
c.add(FOAF.GIVEN_NAME, RDFS.RANGE, XMLSchema.STRING);
c.add(f.createURI("http://example.org/", "wouter"), FOAF.GIVEN_NAME, f.createLiteral("Wouter", XMLSchema.STRING));
RepositoryResult<Statement> s = c.getStatements(null, null, null, true);
Rio.write(Iterations.addAll(s, new LinkedHashModel()), System.out, RDFFormat.TURTLE);
} finally {c.close();}
}
输出包含许多推断的事实,例如 (4),但不包括事实 (3)。
(4) ex:wouter a rdfs:Resource .
我的问题是:如果事实 3 由于不允许出现在 RDF 三元组的主题位置中而没有派生出事实 3,那么如何执行完整的 RDFS 和/或 OWL 物化(与上述一致)提到的规格)在芝麻?
【问题讨论】: