知识推理————相关工具介绍(你值得了解)

相关工具简介

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 官网
    相关工具总结
发布了23 篇原创文章 · 获赞 24 · 访问量 585

猜你喜欢

转载自blog.csdn.net/qq_35340189/article/details/104198451
今日推荐