本体建模与知识表示

1. 本体建模

(1)下载Protégé,压缩包解压到硬盘,运行Protégé 目录下的run.bat;

下载地址:protégé 或

百度网盘 请输入提取码  提取码:675d

在线版本:https://webprotege.stanford.edu/

(2)建立Person,Movie,Genre三个互斥类(Classes,在Disjoint With中,添加互斥类)

(3)创建三个对象属性(Object properties):

“hasActedIn”:表示某人参演了某电影,是“hasActor”的逆属性;

“hasActor”:表示电影有某演员,是“hasActedIn”的逆属性;

“hasGenre”:表示电影的体裁;


(4)创建类的属性,包括:体裁名genreName、演员称谓personAppellation(包含姓名personName、英文名personEnglishName)、出生日期personBirthDay、死亡日期personDeathDay、出生地personBirthPlace、个人简介personBiography;电影名称movieTitle、电影简介movieIntroduction、电影评分movieRating、电影发行日期movieReleaseDate。

(5)可视化展示本体结构:点击"Window"选项,在"Tabs"中选择"OntoGraf",双击左侧的owl:Thing,在右侧区域会显示本体信息,将展示的信息中,有加号的都双击展开,就会看到整个本体的关系图。

2.结构化数据转换到三元组。

(1)导入数据到MYSQL

  1. 打开MySQL Workbench

(可到MySQL :: Download MySQL Workbench下载安装)

  1. 点击顶部的"File"(文件)菜单,然后选择"Open SQL Script"(打开SQL脚本)。
  2. 在弹出的文件选择器中,找到并选择SQL文件(kg_demo_movie.sql)。点击"Open"(打开)。
  3. 点击执行按钮(闪电)或使用菜单中的"Execute"(执行)选项来执行SQL文件的内容。
  4. 在SCHEMAS窗口点击右键,选择refresh all。

(2)下载D2RQ (The D2RQ Platform – Accessing Relational Databases as Virtual RDF Graphs),解压缩。

注意:要开始使用 D2RQ,首先请确保已安装了Java 开发环境(JDK)。

(3)创建映射(mapping)文件

进入D2RQ目录,运行下面的命令生成默认的mapping文件:

generate-mapping -u root -p 123mysql -o kgmovie_mapping.ttl jdbc:mysql:///kgmovie?useSSL=false

//-u root 是数据库的登录名

//-p 123mysql 是登录密码

//-o kgmovie_mapping.ttl 是映射文件的名称

//jdbc:mysql:/// kgmovie 指定数据库的名称

//?useSSL=false 避免提示警告。

(4)修改映射文件:使映射三元组与创建的本体模型保持一致。

  1. 使用文本编辑器打开 kgmovie_mapping.ttl 文件;
  2. 删除其中的 id 和 label 属性:

删除以下内容:

map:genre__label a d2rq:PropertyBridge;

d2rq:belongsToClassMap map:genre;

d2rq:property rdfs:label;

d2rq:pattern "genre #@@genre.genre_id@@";

.

map:genre_genre_id a d2rq:PropertyBridge;

d2rq:belongsToClassMap map:genre;

d2rq:property vocab:genre_genre_id;

d2rq:propertyDefinitionLabel "genre genre_id";

d2rq:column "genre.genre_id";

d2rq:datatype xsd:integer;

.

map:movie__label a d2rq:PropertyBridge;

d2rq:belongsToClassMap map:movie;

d2rq:property rdfs:label;

d2rq:pattern "movie #@@movie.movie_id@@";

.

map:movie_movie_id a d2rq:PropertyBridge;

d2rq:belongsToClassMap map:movie;

d2rq:property vocab:movie_movie_id;

d2rq:propertyDefinitionLabel "movie movie_id";

d2rq:column "movie.movie_id";

d2rq:datatype xsd:integer;

  1. 修改每一行中的class和property名字:

例如:

d2rq:class vocab:genre; 为:d2rq:class :Genre;

d2rq:property vocab:genre_genre_name; 为:d2rq:property :genreName;

d2rq:property vocab:person_to_movie; 为 d2rq:property :hasActedIn;

  1. 分别将数据转为三种不同格式的RDF

转为N-TRIPLE格式(默认):

dump-rdf.bat -o kgmovie.nt  kgmovie_mapping.ttl

转为RDF/XML格式:

dump-rdf.bat -f RDF/XML -o kgmovie.rdf kgmovie_mapping.ttl

转为TURTLE格式:

dump-rdf.bat -f TURTLE -o kgmovie.ttl kgmovie_mapping.ttl

其中: kgmovie.nt 是输出RDF文件名(“N-TRIPLE”格式)

      kgmovie_mapping.ttl 是映射文件名



  1. 观察并熟悉RDF文件的三元组知识表示:

分别用文本编辑器打开kgmovie.nt、kgmovie.rdf 、 kgmovie.ttl,对比其语法和表示方式。


  • 22
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值