精华内容
下载资源
问答
  • jena

    2009-03-23 11:31:00
    Code//1、创建模型[Model](rdf模型)//无怪乎是用一堆三元组表示Modelmodel=createModel();//2、创建查询[Query]Queryquery=QueryFactory.make();//2-1、设置查询类型为select型query.setQ...

    ContractedBlock.gifExpandedBlockStart.gifCode
     //1、创建模型[Model](rdf模型)
           
    //无怪乎是用一堆三元组表示
            Model model = createModel() ;
            
    //2、创建查询[Query]
            Query query = QueryFactory.make() ;
            
    //2-1、设置查询类型 为select型
            query.setQueryType(Query.QueryTypeSelect) ;
                   
    //3、创建模式[Pattern]
            
    //3-1、创建元素组[ElementGroup](组中每一个元素都是一个三元组模式[ElementTriplePattern])
            ElementGroup elg = new ElementGroup() ;
                   
    //3-2、创建变量(Node类型)
            Node varTitle = Node.createVariable("title") ;
            Node varX 
    = Node.createVariable("x") ;
                   
    //3-3、创建三元组(基于变量和谓词(或者叫属性))
            Triple t1 = new Triple(varX, DC.title.asNode(),  varTitle) ;
            
    //3-4、创建三元组模式(基于三元组)
            ElementTriplePattern tp1 = new ElementTriplePattern(t1) ;
            
    //3-5、将三元组模式加入元素组中
            elg.addElementTriplePattern(tp1) ;
                   
    //(3-2 --〉 3-5)可以重复多次,最终得到一个元素组[ElementGroup]
                    Triple t2 = new Triple(varX, DC.description.asNode(), Node.createVariable("desc")) ;
            elg.addElementTriplePattern(
    new ElementTriplePattern(t2)) ;
                   
    //4、将元素组[ElementGroup]设置到查询[Query],
            
    //这个元素组[ElementGroup]相当于SPARQL中的查询条件
            query.setQueryPattern(elg) ;
             
    //5、设置查询的选择结果,
            
    //相当于SPARQL中的查询结果条目,就是select后面跟的部分
            query.addResultVar(varTitle) ;
                    
    //下句可对序列化造成影响:
            
    //如果有这一句,查询将序列化为引入PREFIX的文档,文档中的谓词(属性)将以前缀:名称形式出现;
            
    //否则,将序列化为无PREFIX引入的文档,文档中的的谓词(属性)将以全名称形式出现。
            
    //该句有无对查询结果无影响。
            query.getPrefixMapping().setNsPrefix("dc" , DC.getURI()) ;
            query.serialize(
    new IndentedWriter(System.out,true)) ;
            System.out.println() ;
                   
    //6、将模型、查询一并交给查询引擎,执行查询
            
    //查询的过程是一个模式匹配的过程,和prolog的机制应该一样,都和描述逻辑有关
            QueryExecution qexec = QueryExecutionFactory.create(query, model) ;
             
    //7、结果的显示。。。(现在还没仔细研究,再说)
            
    //dot.gif.
             
    //8、最后别忘了吧查询引擎关掉,释放资源
            
    //下面这一句话,就把查询引擎、模型、查询以及查询中由三元组模式构成的元素组全释放了
            qexec.close() ;
    QueryExecutionFactory.create()到底干了什么?QueryExecution如何被实例化?
    实际上这是一个问题。从调用上来看,QueryExecution qexec 
    = QueryExecutionFactory.create(query, model) ;就得到了一个实现QueryExecution接口的实例。仔细看了一下create方法,发现里面包含了很多层级,先将调用关系和类与接口层次关系描述出来,再看设计者为何要设置如此的层级。
    QueryExecutionFactory.create(query, model)
     
    -->QueryExecutionFactory.make(query, model)
      
    -->QueryEngineFactory f = QueryEngineRegistry.get().find(query, dataset);
      
    //QueryEngineRegistry.get() 返回该类的单例,该类构造为单例模式。该单例模式在构造的时候,不仅构造了一个QueryEngineRegistry的实例,另外还调用 DefaultEngineFactory.register()方法。先记着这么回事儿,继续。
      
    //然后该单例通过find返回一个[实现QueryEngineFactory接口的实例]。
      
    //如何返回这个[QueryEngineFactory接口的实例]成为注意的焦点
       
    //QueryEngineRegistry该类实际上封装了一个以[实现QueryExecutionFactory接口实例]为元素的ArrayList
       
    //该类通过find方法返回特定的[实现QueryEngineFactory接口的实例]
       
    //通过addFactory()调用add()方法,向ArrayList添加实例。所以先找找在何处调用了该方法。
       
    //经过查找project中,有QueryEngine2.register()和QueryEngine2_StagePlan.register()调用了该方法
       
    //以QueryEngine2.register()为例,
       <--QueryEngine2.register()
       
    //该方法在调用 QueryEngineRegistry.addFactory()的时候,在实际参数的位置声明并实例化了QueryEngineFactory接口,
       
    //实现了QueryEngineFactory接口的accept()与create()方法。
       
    //这个create()方法的实现就是下面调用(f.create(query, dataset);)的实现。
       
    //---------------------------------------------------------------------
      
    //先告一段落,再回都看看上面记着的那回事儿:
      -->DefaultEngineFactory.register(QueryEngineRegistry registry);
      
    //这个方法new了一个DefaultEngineFactory实例
       -->registry.add(new DefaultEngineFactory()) ;   //给QueryEngineRegistry单例的ArrayList中添加了一个DefaultEngineFactory类的实例。我认为可以用 registry.add(new DefaultEngineFactory()) ;这句话代替。而DefaultEngineFactory类的实现了QueryEngineFactory接口,实现了accept();和 create()接口方法。
         -->f.create(query, dataset);
      
    //实现QueryEngineFactory接口的实例f用create()方法返回实现QueryExecution接口的实例。
      
    //具体地,new QueryEngine实例qe.并调用qe.setDataSet方法设置qe的DataSet类型的dataset成员变量。
      
    //qe的构造是以Query实例为参数的,构造的时候,将设置qe的Query类型的query成员变量,并设置qe的Context类型的成员变量context
    //-----------------------------------------------------------------------------------
    以下是上面涉及类与接口的继承关系
                      [I]QueryExecution
                      
    |                   |
                      
    |                   |
        [C]QueryEngine              
    |
                      
    |                   |
                      
    |                   |
    [C]QueryEngine2    [C]QueryEngine2_StagePlan

    [I]QueryEngineFactory
      
    |   
      
    |   
    [C]DefaultEngineFactory
    //-----------------------------------------------------------------------------------
    //到此为止,就创建出了实例为QueryEngine类实例,或者为QueryEngine2或QueryEngine2_StagePlan类实例
    //而看着几个类的构造的顺序
    //QueryEngine2-->QueryEngine
    //QueryEngine2_StagePlan-->QueryEngine2-->QueryEngine
    //归根结底,这几个类实例的初始化都归结到了QueryEngine上
    //看一下QueryEngine的构造函数,经过构造,QueryEngine会设置两个成员变量非别是Query类型和Context类型
    //一个一个来dot.gif
    //Query == sparql语句
    --从前面第一篇关于arq编程调用模式看,Query就是sparql语句在arq中的对象形式。
    比如一个select sparql语句,经过编程调用,形成一个QueryTypeSelect 的Query实例,该实例会包含where条件等。
    另外包含了序列化方法,以及深层拷贝的clone方法
    //1.Query如何初始化?--这个没价值了,看看调用就清楚了,就是把sparql化为Query中属性的值的过程
    //1+另外研究一下Query结构和sparql语法的对应关系还是比较有意义的,sparql语法参见:http://www.w3.org/TR/rdf-sparql-query/
    //2.Query在执行过程中如何运作
    //3.Query中涉及的几个重要对象
     --int queryType:查询类型
     
    --Syntax syntax:语法对象,继承自Symbol类,里面有用的实际是一个表示语法的url字符串
     
    --List orderBy:顾名思义。。。
     
    --List resultVars:调用者想返回的变量的名称们
     
    --Element queryPattern:where语句,条件(们),这个对象的继承和集合比较有意思,无论是单体还是集合还有单体的各种类型都继承自抽象类Element类
      
    --List resultNodes:查询返回的结果集合,还没来得及看组成成员细节
      
    --PrefixMapping prefixMap:前缀url的命名,

    转载于:https://www.cnblogs.com/zhxiaomiao/archive/2009/03/23/1419545.html

    展开全文
  • JENA-664 GeoSPARQL Jena

    2021-01-03 07:31:54
    <ul><li>jena-geosparql is failing the rat check due to the OGC schema file. </li><li>jena-fuseki-geosparql is using Logback Classic for logging and may need to be replaced with preferred logger.</li>...
  • Commonsrdf-Jena 显示将与一起使用的代码。 package org.apache.jena.commonsrdf.examples Ex_ParseIntoCommonsRDFGraph 显示如何使用Jena解析器将解析器输出流式传输到任何CommonsRDF图中。 Ex_...
  • 耶拿(Jena)自述 欢迎使用Apache Jena,这是一个用于编写语义Web应用程序的Java框架。 有关项目网站(包括文档),请参见 。 活动模块的代码库在git中:
  • apache jena

    2018-07-30 12:44:28
    jena本体解析,根据apache.jar进行本体解析,分离出本体类属性等
  • jena安装包

    2018-07-05 21:23:01
    apach-jena-3.8.0安装包,最新版安装包。。。。。。。。。
  • <div><p>This adds the commonsrdf project to the jena-osgi bundle <p>Tested with Karaf 4.2.6</p><p>该提问来源于开源项目:apache/jena</p></div>
  • jena框架实例

    2017-09-01 10:59:12
    jena框架实例jena框架实例jena框架实例jena框架实例jena框架实例jena框架实例jena框架实例jena框架实例jena框架实例jena框架实例jena框架实例jena框架实例jena框架实例jena框架实例jena框架实例jena框架实例jena框架...
  • Jena简介

    千次阅读 2020-02-05 23:34:57
    Jena是HP实验室语义网研究项目组的开源工具,是一个基于JAVA的语义网应用框架。 Jena共有两个版本Jena1(2000)[1] 和Jena2(2003)[2] 。 Jena1提供的工具包括: RDF/XML解析器 一个查询语言 对于N3、N-...

    Jena是HP实验室语义网研究项目组的开源工具,是一个基于JAVA的语义网应用框架。

    Jena共有两个版本Jena1(2000)[1] 和Jena2(2003)[2] 。

    Jena1提供的工具包括:

    1. RDF/XML解析器
    2. 一个查询语言
    3. 对于N3、N-triple、RDF/XML输出的I/O模型 
    4. 用于操作DAML+OIL的附加API

    当前最新版本为Jena3.13.1,对于Jena1,Jena2提供了大量新的APIs对RDFS和OWL的支持。并实现动态数据访问和结果输出。

    Jena的核心是三元组,Jena2的两个新功能。提供了新的用于展示的API和动态生成虚拟三元组(遵循RDF和OWL语义)。

    Jena的结构主要可以分为三层:Graph Layer(视图层)、EnhGraph Layer(视图加强层)、Model Layer(模型层)。

    Graph Layer层基于RDF抽象语法,主要实现的是三元组的存储,存储的数据不仅包含源数据也包含通过推理等得到的新数据等,并将其用适当的方式展示出来。

    EnhGraph Layer层是一个中间层,用于联系Graph Layer层与Model Layer层,能同时提供节点和图形多个视图。该层提供多态对象,反映了程序的多态性。该层起到存储模型层中生成的所有图形,根据操作者的需求进行调用,起到承上启下的作用。

    Model Layer层是数据的输入层,通过Model等多个API提供了丰富对图中节点操作的方法,是Jena的核心层。

    参考文献

    [1] Carroll J J , Dickinson I , Dollin C , et al. Jena:implementing the semantic web recommendations[C]// International World Wide Web Conference on Alternate Track Papers & Posters. ACM, 2004.

    [2] 杨夏柏,杨明,杨德强, 等.基于Jena系统的知识融合三元组存储结构研究[J].价值工程,2018,37(8):126-129.

    [3] 余凡.基于本体的语义信息检索模型研究[D].湖北:湖北工业大学,2010.

     

    展开全文
  • Jena配置

    2021-04-21 10:30:34
    Jena下载:http://jena.apache.org/ 如图所示,我下载的是3.7.0版本的(目前最新版)。 Jena RDF API:...1)将下载的apache-jena-3.7.0.zip解压到任意路径,解压之后生成apache-jena-3.7.0文件夹,即完成了

    Eclipse下载:https://www.eclipse.org/downloads/ (我的版本是4.7.0 Oxygen)
    Jena下载:http://jena.apache.org/

    如图所示,我下载的是3.7.0版本的(目前最新版)。

    Jena RDF API:http://jena.apache.org/tutorials/rdf_api.html

    2 安装与配置
    1)将下载的apache-jena-3.7.0.zip解压到任意路径,解压之后生成apache-jena-3.7.0文件夹,即完成了安装。

    2)将Eclipse打开,创建一个Java project,名字为jenaTesting,如图所示:

    3)右健单击刚创建的工程,选择“Build Path”->“Configure Build Path”

    4)在打开的对话框中选择“Java Build Path”,在右边标签中选择“Libraries”,之后选择“Add Extenal JARs”

    找到 Jena 存放的路径。全选中lib文件夹中的内容。打开将其添加到工程。

    点击apply and close,Jena就配置完成了

    版权声明:本文为CSDN博主「手可摘星辰Iris」的原创文章
    原文链接:https://blog.csdn.net/u013819513/article/details/79903106

    特别注意:添加jar时,lib里的jar放到classpath
    在这里插入图片描述

    展开全文
  • Jena 1206

    2020-12-26 18:04:57
    <div><p>Added W3C DCAT, VoID, ORG and ROV vocabularies</p><p>该提问来源于开源项目:apache/jena</p></div>
  • Apache Jena

    2019-10-06 00:31:59
    Apache Jena Apache Jena - Apache JenaApache JenaWelcome to the Apache Jena project! Apache Jena™ is a Java framework for building Sem...

    Apache Jena - Apache Jena

    Apache Jena

    Welcome to the Apache Jena project! Apache Jena™ is a Java framework for building Semantic Web applications. Jena provides a collection of tools and Java libraries to help you to develop semantic web and linked-data apps, tools and servers.

    The Jena Framework includes:

    • an API for reading, processing and writing RDF data in XML, N-triples and Turtle formats;
    • an ontology API for handling OWL and RDFS ontologies;
    • a rule-based inference engine for reasoning with RDF and OWL data sources;
    • stores to allow large numbers of RDF triples to be efficiently stored on disk;
    • a query engine compliant with the latest SPARQL specification
    • servers to allow RDF data to be published to other applications using a variety of protocols, including SPARQL

    In April 2012, Jena graduated from the Apache incubator process and was approved as a top-level Apache project.

    Quick shortcuts

    I would like to ...

    posted on 2012-12-13 10:25 lexus 阅读(...) 评论(...) 编辑 收藏

    转载于:https://www.cnblogs.com/lexus/archive/2012/12/13/2815840.html

    展开全文
  • <div><p>fixes JENA-731 and JENA-732 <p>This reverts the reverted commit by Benson Margulies so that generated sources are put in <code>target/generated-sources/jena</code> according to Maven plugin ...
  • JENA-1409: jena-db testing

    2020-12-26 18:04:52
    <div><p>Covers <a href="https://issues.apache.org/jira/browse/JENA-1406">JENA-1406, PR #295</p><p>该提问来源于开源项目:apache/jena</p></div>
  • <div><p>This PR adds the highlighting feature describe in JENA-1459. This PR includes unit tests for the highlighting feature. <p>Once the PR is approved, I'll submit an update to the jena-text ...
  • jena 入门

    2019-02-28 21:58:04
    jena下载 地址:http://jena.apache.org/download/index.cgi 以前版本下载:http://archive.apache.org/dist/jena/ (最低版本2.7.0) 以前版本下载:...
  • jena2.13,jena jia包,官网最新版。jena是一个java 的API,用来支持语义网的有关应用。
  • jena2.11.1

    2014-04-06 09:00:47
    语义网技术 必备的jena。jar包 希望能够对大家有用
  • 耶拿工作区 用于Apache Jena代码的区域。
  • jena-core:org.apache.jena.system" as "jena-core:org.apache.jena.sys", and puts an adapter class <code>JenaInit</code> in "jena-arq:org.apache.jena.system" that has two functions to...
  • Jena OSGi bundle

    2021-01-03 07:31:53
    <div><p>Embedding core Jena modules in a single OSGi bundle. <p>This works around classloader issues such as Jena's use of <code>Class.forName(), but does not yet support other OSGi bundles to ...
  • jena-core:jar:2.10.0-SNAPSHOT, org.apache.jena:jena-iri:jar:0.9.5-SNAPSHOT, org.apache.jena:jena-arq:jar:2.10.0-SNAPSHOT, org.apache.jena:jena-tdb:jar:0.10.0-SNAPSHOT, org.apache.jena:jena-larq:jar:...
  • <div><p>See https://issues.apache.org/jira/browse/JENA-1058</p><p>该提问来源于开源项目:apache/jena</p></div>
  • Apache Jena网站 这是网站的源代码,位于以下位置: https://jena.apache.org/ 储存库结构 该存储库使用3个分支来构建网站。 main分支,其中包含网站的所有资源。 asf-site分支,其中包含用于实际网站的生成网站...
  • <div><p>These two commits will upgrade jena-text and jena-spatial to use Lucene 6.4.1 (and spatial4j 0.6). <p>Things to note: <ul><li>The Lucene index format is incompatible. Old indexes need to be ...
  • jena introduction

    2013-03-20 10:40:01
    jena开发介绍,用于开发owl解析等最多填写5个。
  • Apache jena osgi

    2020-12-30 06:41:07
    <div><p>Builds on #21 by splitting out jena-osgi* to submodules under <code>apache-jena-osgi</code>. <p>Merges in #21, #22, #23 </p><p>该提问来源于开源项目:apache/jena</p></div>
  • <div><p>Implemented ES support for Jena Text Indexing capability</p><p>该提问来源于开源项目:apache/jena</p></div>
  • 适用于 Android 的 Apache Jena 该项目旨在使框架在 Android 上可用。 虽然 Jena 是用纯 Java 编写的,但由于多个包冲突问题,它不能按原样用于 Android。 为了克服这些问题,我们创建了一个 Android 端口,使开发...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,443
精华内容 577
关键字:

jena