• 【jena】 jena基本使用


     
    http://blog.csdn.net/hongyiluoguihua/article/details/8230317
     
    1. 什么是jena(摘自http://imarine.blog.163.com/blog/static/51380183200812774739130/ 
        
     Jena由 HP Labs(http://www.hpl.hp.com)开发的Java开发工具包, 用于Semantic Web(语义网)中的应用程序开发;Jana是开源的,在下载的文档中有Jena的完整代码。Jena框架主要包括:

    a)       以RDF/XML、三元组形式读写RDF

    资源描述框架是(RDF)是描述资源的一项标准(在技术上是W3C的推荐标准),Jena文档中有一部分呢详细介绍了RDF和Jena RDF API,其内容包括对Jena RDF包的介绍、RDF模型的创建、读写、查询等操作,以及RDF容器等的讨论。

    b) RDFS,OWL,DAML+OIL等本体的操作

    Jena框架包含一个本体子系统(Ontology Subsystem),它提供的API允许处理基于RDF的本体数据,也就是说,它支持OWL,DAML+OIL和RDFS。本体API与推理子系统结合 可以从特定本体中提取信息,Jena 2还提供文档管理器(OntDocumentManager)以支持对导入本体的文档管理。

    c) 利用数据库保存数据

        Jena 2允许将数据存储到硬盘中,或者是OWL文件,或者是关系数据库中。本文处理的本体就是OWL文件读入的。

    d)查询模型   

    Jena 2提供了ARQ查询引擎,它实现SPARQL查询语言和RDQL,从而支持对模型的查询。另外,查询引擎与关系数据库相关联,这使得查询存储在关系数据库中的本体时能够达到更高的效率。

    e) 基于规则的推理

    Jena 2支持基于规则的简单推理,其推理机制支持将推理器(inference reasoners)导入Jena,创建模型时将推理器与模型关联以实现推理。

    Protégé是一个开源的本体编辑器(目前的版本是Protégé 3.2),用户可以在GUI环境下创建本体或者知识库。有一种说法是:Jena对应用程序就像Protégé对我们——我们使用Protégé操作本体, 应用程序则是使用Jena来做同样的工作。当然这些应用程序还是得由我们来编写。

        
      2. jena的使用

        2.1 从http://www.hpl.hp.co.uk/people/bwm/rdf/jena/download.htm 下载jena包。

    在百度中输入“jena ppt” 点击第一个连接,可以下到一个关于jena的ppt,内容不错。
        2.2 我们使用的是eclipse平台新建一个工程,导入jena/lib里面的jar包。
        2.3 使用jena提供的各种API。。(强大的东东)
            我下载的jena包2.4包含了一些简单的demo。
            

        2.2 我们使用的是eclipse平台新建一个工程,导入jena/lib里面的jar包。
        2.3 使用jena提供的各种API。。(强大的东东)
            我下载的jena包2.4包含了一些简单的demo。
            
    1.本体模型OntModel

    本体模型(OntModel)是对Jena RDF模型的扩展(继承自RDF模型),提供了处理本体数据的功能。使用Jena处理本体首先就是要建立一个本体模型,之后就能够通过本体模型中所定义的 方法操作模型,比如导入子模型()、获取模型中本体的信息、操作本体属性以及将本体的表示输出到磁盘文件等等。Jena通过model包中的 ModelFactory创建本体模型,ModelFactory是Jena提供用来创建各种模型的类,在类中定义了具体实现模型的成员数据以及创建模型 的二十多种方法。一个最简单的创建本体模型的语句如下:

    OntModel ontModel = ModelFactory.createOntologyModel();

    该语句不含参数,应用默认设置创建一个本体模型ontModel,也就是说:它使用OWL语言、基于内存,支持RDFS推理。可以通过创建时应用模型类别 (OntModelSpec)参数创建不同的模型,以实现不同语言不同类型不同推理层次的本体操作。例如,下面的语句创建了一个使用DAML语言内存本体 模型。直观地讲,内存模型就是只在程序运行时存在的模型,它没有将数据写回磁盘文件或者数据库表。

    OntModel ontModel = ModelFactory.createOntologyModel( OntModelSpec.DAML_MEM );

    更多类型设置可以参照OntModelSpec类中的数据成员的说明。

    我们所使用的本体是从OWL文件获得的,也就是说,是从磁盘读取的。读取的方法是调用Jena OntoModel提供的Read方法。例如

    ontModel.read("file:D:/temp/Creatrue/Creature.owl");

    就是读取位于D盘相应目录下的Creature.owl文件以建立本体模型。Read方法也有很多重载,上面调用的方法以文件的绝对路径作为参数。其他的方法声明如下

    read( String url );

    read( Reader reader, String base );

    read( InputStream reader, String base );

    read( String url, String lang );

    read( Reader reader, String base, String Lang );

    read( InputStream reader, String base, String Lang );

    2.文档管理器Document manager

    本体文档管理器(OntDocumentManager)是用来帮助管理本体文档的类,它包含了导入本体文档创建本体模型、帮助缓存下载网络上的本体等功 能。每个本体模型都有一个相关联的文档管理器。在创建本体模型时,可以创建独立的文档管理器并作为参数传递给模型工厂(ModelFactory)。文档 管理器有非常多的配置选项,基本可以满足应用的需求。首先,每个文档管理器的参数都可以通过Java代码来设置 (注:OntDocumentManager有五种重载的构造函数)。另外,文档管理器也可以在创建的时候从一个RDF格式的策略文件读取相应设定值。

    下面的例子创建一个文档管理器并将它与以创建的本体模型关联。

    OntModel m = ModelFactory.createOntologyModel();

    OntDocumentManager dm = m.getDocumentManager();

        3.接口OntClass

    这个接口中定义了本体种与概念(也就是类Class)相关的操作,通过OntModel中的

    listClasses()

    便可以返回模型中的所有概念组成的迭代器(Iterator),然后调用OntClass的各种方法具体进行具体操作。OntoClass对概念之间的各 种关系都有相应的定义方法,典型的有添加子类、添加约束、创建互斥概念、迭代返回某种类型的概念以及相关的逻辑判断等等。

    4.基本本体类型OntResource

    所有本体API中用于表示本体的类继承自OntResource,这样就可以在OntResource中放置所有类公用的功能,并可以为一般的方法设置通 用的返回值。Java接口OntResource扩展了Jena的RDF资源接口,所以任何可以接受资源或者RDFNode的方法都可以接受 OntResource,并且也就可以接受任何其他本体值。虽然这个类涵盖了涉及本体的所有类,在例子中并没有使用它。从Jena Java Doc可以获得它的详细信息。

  • 相关阅读:
    麦茶商务的网站
    jQuery Ajax 实例 ($.ajax、$.post、$.get)
    关于meta知多少
    WebApp之Meta标签
    html5开发之viewport使用
    bootstrap
    8.8&8.9 dp训练小结
    2019.8.10小结
    2019.8.17 小结
    [NOI2001]炮兵阵地 题解
  • 原文地址:https://www.cnblogs.com/549294286/p/3058496.html
Copyright © 2020-2023  润新知