语义网简明教程SW6-OWL-Jena

上传人:飞*** 文档编号:51432289 上传时间:2018-08-14 格式:PPT 页数:69 大小:272.50KB
返回 下载 相关 举报
语义网简明教程SW6-OWL-Jena_第1页
第1页 / 共69页
语义网简明教程SW6-OWL-Jena_第2页
第2页 / 共69页
语义网简明教程SW6-OWL-Jena_第3页
第3页 / 共69页
语义网简明教程SW6-OWL-Jena_第4页
第4页 / 共69页
语义网简明教程SW6-OWL-Jena_第5页
第5页 / 共69页
点击查看更多>>
资源描述

《语义网简明教程SW6-OWL-Jena》由会员分享,可在线阅读,更多相关《语义网简明教程SW6-OWL-Jena(69页珍藏版)》请在金锄头文库上搜索。

1、语义网开发工具:Jena1JenaJena由 HP Labs(http:/)开发的Java开发工具包 用于开发语义网的应用系统 Jena的功能解析RDF模型提供对RDFS、OWL、DAML+OIL等本体的操作支持基于本体的规则的推理和验证2JenaJena includes: A RDF API Reading and writing RDF in RDF/XML, N3 and N-Triples An OWL API In-memory and persistent storage SPARQL query engine a rule-based inference engine 3一、解

2、析RDF模型Jena定义了许多接口来访问和处理RDF陈述RDF图称为模型,用Model接口表示陈述用Statement接口表示资源用Resource接口表示属性用Property接口表示常量用Literal接口表示提供了一个RDFNode接口作为Resource、 Property、 Literal的超 接口 通过接口操作RDF创建资源、属性等RDF元素添加、删除模型中的陈述 查询RDF模型以XML/RDF、三元组格式读写RDF文档4创建简单 RDF 模型创建描述一组虚构家庭成员之间关系的模型使用来自“关系”词汇表(http:/purl.org/vocab/relationship)的属性 s

3、iblingOf 、 spouseOf 、 parentOf 和 childOf 来描述家庭成员之间关系。家庭成员用来自虚构名称空间的 URI( http:/family/ )进行标识51、创建模型 模型是RDF图在Jena中的表示形式模型由一组RDF陈述组成通过模型可以创建资源、属性、常量增加、删除陈述可进行查询模型创建模型ModelFactory 类用于创建不同类型的模型ModelFactory.createDefaultModel():创建一个空的、内存模型,返回 Model 实例例: Model model = ModelFactory.createDefaultModel();62、

4、创建属性使用 Model.createProperty创建属性Property createProperty(String nameSpace, String localName) nameSpace:命名空间 localName:属性局部名称/ Namespace declarationsString familyUri = “http:/family/“;String relationshipUri = “http:/purl.org/vocab/relationship/“;/ Create the types of Property to describe relationships

5、in the modelProperty childOf = model.createProperty(relationshipUri,“childOf“);Property parentOf = model.createProperty(relationshipUri,“parentOf“);Property siblingOf = model.createProperty(relationshipUri,“siblingOf“);Property spouseOf = model.createProperty(relationshipUri,“spouseOf“);73、创建资源使用Mod

6、el. createResource创建资源Resource createResource(String uri) uri:资源的URI/ Create resources representing the people in our modelResource adam = model.createResource(familyUri+“adam“);Resource beth = model.createResource(familyUri+“beth“);Resource chuck = model.createResource(familyUri+“chuck“);Resource d

7、otty = model.createResource(familyUri+“dotty“);Resource edward = model.createResource(familyUri+“edward“);Resource fran = model.createResource(familyUri+“fran“);Resource greg = model.createResource(familyUri+“greg“);Resource harriet = model.createResource(familyUri+“harriet“);84、添加陈述使用Resource.addPr

8、operty添加关于资源的陈述到模型 Resource addProperty(Property p, RDFNode o) p:陈述的谓词,o:陈述的客体,本资源为主体/ Add properties to describing the relationships between themadam.addProperty(siblingOf,beth);adam.addProperty(spouseOf,dotty);adam.addProperty(parentOf,edward);adam.addProperty(parentOf,fran);beth.addProperty(sibli

9、ngOf,adam);beth.addProperty(spouseOf,chuck);chuck.addProperty(spouseOf,beth);dotty.addProperty(spouseOf,adam);dotty.addProperty(parentOf,edward);dotty.addProperty(parentOf,fran);94、添加陈述(续)也可使用Model. createStatement创建陈述Statement createStatement(Resource s, Property p, RDFNode o) Model add(Statement s

10、tmt) / Statements can also be directly created .Statement statement1 = model.createStatement(edward,childOf,adam);Statement statement2 = model.createStatement(edward,childOf,dotty);Statement statement3 = model.createStatement(edward,siblingOf,fran);/ . then added to the model:model.add(statement1);m

11、odel.add(statement2);model.add(statement3);104、添加陈述(续)/ Arrays of Statements can also be added to a Model:Statement statements = new Statement5;statements0 = model.createStatement(fran,childOf,adam);statements1 = model.createStatement(fran,childOf,dotty);statements2 = model.createStatement(fran,sibl

12、ingOf,edward);statements3 = model.createStatement(fran,spouseOf,greg);statements4 = model.createStatement(fran,parentOf,harriet);model.add(statements);/ A List of Statements can also be addedList list = new ArrayList();list.add(model.createStatement(greg,spouseOf,fran);list.add(model.createStatement

13、(greg,parentOf,harriet);list.add(model.createStatement(harriet,childOf,fran);list.add(model.createStatement(harriet,childOf,greg);model.add(list);115、查询RDF模型Model接口提供对模型中的资源、属性、陈述等的查询listStatements():List all statements listStatements(Resource s, Property p, RDFNode o) : Find all the statements matc

14、hing a pattern. listSubjects(): List all resources which are subjects of statements. listSubjectsWithProperty(Property p) : List all subjects with a given property listObjects(): List all objects in a model. listObjectsOfProperty(Property p) : List all objects of a given property 125、查询RDF模型(续)列出陈述S

15、tmtIterator listStatements() 列出所有陈述结果存放在陈述迭代器中StmtIterator listStatements(Resource s, Property p, RDFNode o) 查找满足给定模式的陈述 s: 查找的资源,p: 查找的谓词,o: 查找的客体参数可为null,表示匹配任何值例如:/ Find the exact statement “adam is a spouse of dotty“ model.listStatements(adam,spouseOf,dotty); 135、查询RDF模型(续)例:/ Find any statement

16、s made about adam StmtIterator iter = model.listStatements(adam,null,(RDFNode)null);/ print out the predicate, subject and object of each statementwhile (iter.hasNext() Statement stmt = iter.nextStatement(); / get next statementResource subject = stmt.getSubject(); / get the subjectProperty predicate = stmt.getPredicate(); / get the predicateRDFNo

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号