相关工具简介
FaCT++
- 曼彻斯特大学开发的描述逻辑推理机
- 使用 C++ 实现, 且能与 Protege 集成
- Java 版本名为 Jfact, 基于 OWL API
- 使用举例
OWLReasonerFactory reasonerFactory = new JFactFactory(); // 构建推理机 OWLReasoner reasoner = this.reasonerFactory.createReasoner(ontology); reasoner.precomputeInferences(InferenceType.CLASS_HIERARCHY); // 进行推理(分类)
讯享网
FaCT++官网
Racer
- 美国Franz Inc. 公司开发的以描述逻辑为基础的本体推理,也可以用作语义知识库
- 支持 OWL DL, 支持部分 OWL 2 DL
- 支持单机和客户端/服务器两种模式
- 用 Allegro Common Lisp 实现
- 使用举例
讯享网(classify-tbox & optional (tbox (current-tbox))) // 进行TBox推理 (realize-abox & optional (abox (current-abox))) // 进行ABox推理
Racer官网
Pellet
- 马里兰大学开发的本体推理机
- 支持 OWL DL 的所有特征, 包括枚举类和XML数据类型的推理
- 支持 OWL API 以及 Jena 的接口
- 使用举例
PelletReasoner reasoner = PelletReasonerFactory.getInstance().createReasoner(ontology); // 构建一个推理机 NodeSet<OWLNamedIndividual> individuals = reasoner.getInstances(Person, true); // 通过查询接口进行推理
Pellet 在 GitHub项目
HermiT
- 牛津大学开发的本体推理机
- 基于 hypertableau 运算,更加高效
- 支持 OWL 2 规则
- 使用举例
讯享网Reasoner hermit = new Reasoner(ontology); // 构建一个推理机 System.out.println(hermit.isConsistent()); // 一致性检验
HermiT 官网

讯享网
KAON2
- OWL 推理机、本体管理API
- 基于一阶消解原理
- 针对大规模ABox进行优化

- 使用举例
OntologyManager ontologyManager = KAON2Manager.newOntologyManager(); // 创建本体 Ontology ontology = ontologyManager.createOntology("http://kaon2.semanticweb.org/example04", new HashMap<String, Object>()); Reasoner reasoner = ontology.createReasoner(); // 创建推理机并用于查询 Query whatDoPeopleKnowAbout = reasoner.createQuery(new Literal[] { KAON2Manager.factory().literal(true, person, new Term[] {X}), KAON2Manager.factory().literal(true, personKnowsAboutTopic, new Term[] {X, Y}), }, new Variable[] {X, Y});
KAON2 官网

RDFox
- 由牛津大学开发的可扩展、跨平台、基于内存的RDF三元组存储系统
- 支持并行Datalog推理、SPARQL查询
- 使用举例
讯享网OWLOntologyManager manager = OWLManager.createOWLOntologyManager(); // 创建本体与存储 OWLOntology ontology = manager.loadOntologyFromOntologyDocument(IRI.create("test.owl")); DataStore store = new DataStore(DataStore.StoreType.ParallelSimpleNN, true); store.importOntology(ontology); // 导入本体进行推理 store.applyReasoning();
RDFox 官网

Ontop
- 最先进的 OBDA 系统
- 兼容 RDFS、OWL 2 QL、R2RML、SPARQL标准
- 支持主流关系数据库: Oracle、MySQL、SQL Server、 Postgres
- 开源(Apache License 2.0)
Ontop 官网
Drools
- 商用规则管理系统,其中提供了一个规则推理引擎
- 核心算法基于 RETE 算法改进
- 提供规则定义语言, 支持嵌入 Java 代码
- 使用举例
KieServices ks = KieServices .Factory.get(); // 创建容器与会话 KieContainer kContainer = ks.getKieClasspathContainer(); KieSession kSession = KContainer.newKieSession("ksession-rules"); kSession.fireAllRules(); // 触发规则
Drools 官网
Jena
- 用于构建语义网应用的 Java 框架
- 提供了处理 RDF、RDFS、OWL数据的接口,还提供了一个规则引擎
- 提供三元组的内存存储于查询
- 使用举例
讯享网Model m = ModelFactory.createDefaultModel(); // 创建模型 Reasoner reasoner = new GenericRuleReasoner(Rule.rulesFromURL("file:rule.txt")); // 创建规则推理机 InfModel inf = ModelFactory.createInfModel(reasoner, m);
jena 官网
RDF4J (原 Sesame)
- 一个处理 RDF 数据的开源框架
- 支持语义数据的解析、存储、推理和查询
- 能够关联几乎所有 RDF 存储系统
- 能够用于访问远程 RDF 存储
- 使用举例
String pre = "PREFIX:<http://foo.org/bar#>\n"; // 创建规则 String rule = pre + "CONSTRUCT { ?p :relatesTo :Cryptography } WHERE " + "{ { :Bob ?p :Alice } UNION { :Alice ?p :Bob } }"; Repository repo = new SailRepository(new CustomGraphQueryInference(new MemoryStore(), QueryLanguage.SPARQL, rule, "")); // 创建推理知识库
RDF4J 官网
GraphDB (原 OWLIM)
- 一个可扩展的语义数据存储系统(基于RDF4J)
- 包含三元组存储、推理引擎、查询引擎
- 支持 RDFS、OWL DLP、OWL Horst, OWL 2 RL 推理

GraphDB 官网








版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/35917.html