王昊奋老师,请问在构建特定领域的知识图谱过程中,已有的实体关系种类太少,有什么办法可以扩充关系的种类?

目前在做医疗方面的知识图谱,但现有的关系种类太少了,有什么办法能够挖掘更多新的关系呢?

王昊奋 - 知识图谱从业者

赞同来自: fish

关系种类的扩充属于schema扩展的需求,对于特定领域一般是需要事先定义的。如果你希望通过挖掘或学习手段来发现更多关系,要不就是在处理各种数据(如果是结构化数据,那么就是映射时发现有无法和现有schema映射的字段或新的property;对于半结构化数据,wrapper抽取出来的key或property无法与现有的schema中的property对齐;对于非结构化数据,可以通过co-occurrence发现不少无法用现有关系匹配的新的关联;或者通过Open Information Extraction发现不少潜在的关系)通过括号中说的策略进行处理。

澄田贵树

赞同来自:

老师,我一直有一个疑问,就是本体文件(.owl)里面是一定要有实例吗?我在第五讲的资料里,发现了一个Jena_tutorial.java,里面有一行注释是这样说的:创建一个新Model将本体与实例数据进行合并。是不是意思是我的本体文件可以只定义层级结构,实例数据(.nt)是所有的实例,两个可以进行合并? 比如说:我通过protege生成了一个owl文件,又通过D2RQ生成了一个nt文件,他们可以通过Jena_tutorial.java里面的代码进行合并吗?合并之后是不是就相当于schema和实例合并在一起了?

澄田贵树

赞同来自:

这是您第五讲资料里的Jena_tutorial.java,第三行注释说:将本体和实例合并。这一块代码是什么意思?还有,我一开始使用了D2RQ将RDB转成了RDF(.nt文件),其实我觉得这个nt文件里已经包含了schema和实例之间的关系,那么.nt文件是不是就已经包含了本体和实例的信息?
// 为本体创建Model
Model ontoModel = ModelFactory.createDefaultModel();
ontoModel.read(Union.class.getResource("/data/finance-onto.owl").toString());

// 为实例数据创建Model
Model dataModel = ModelFactory.createDefaultModel();
dataModel.read(Union.class.getResource("/data/finance-data.nt").toString());

// 创建一个新Model将本体与实例数据进行合并
Model fusionModel = ModelFactory.createDefaultModel();
fusionModel.add(ontoModel);
fusionModel.add(dataModel);

要回复问题请先登录注册