Version

Fuseki v1

Fuseki v2 since Jena 2.13.0

Both v1 and v2 are active and maintained.[2015/06/29]

v1

1 start

$ cd FUSEKI_V1_HOME
$ chmod +x fuseki-server s-*
$ ./fuseki-server --update --mem /ds # the dataset name is '/ds'

fuseki-server options

  • --localhost

    listen only to localhost NIC

  • --port=PORT

    set the port number

  • --update

    allow update, otherwise only serve read requests.
    ignored if a configuration file is given

  • fuseki-server --mem /DatasetPathName

    create an empty, in-memory(non-persistent) dataset

  • fuseki-server --file=FILE /DatasetPathName

    create an empty, in-memory(non-persistent) dataset, then load FILE into it

  • fuseki-server --loc=DIR /DatasetPathName

    use an existing TDB database, create an empty is it doesnot exist

  • fuseki-server --desc=assemblerFile

    construct a database based on the general assembler description

  • fuseki-server --config=ConfigFile

    construct one or more service endpoints based on the confifuration file, see # 6

2 user interface

http://localhost:3030/

3 script control

$ cd FUSEKI_V1_HOME

Server URI schema

Fuseki's default port is 3030

  • /dataset/query: SPARQL query endpoint
  • /dataset/update: SPARQL update language endpoint
  • /dataset/data: SPARQL Graph Store Protocol endpoint
  • /dataset/upload: file upload endpoint

4 security

Fuseki does not currently offer security and access control itself.

Data can be updated without access control if the server is started with the --update argument. If started without that argument, data is read-only.

5 logging

see Fuseki_V1_HOME/fuseki-server.jar/jena-log4j.properties

6 configuration

A Fuseki server can be set up using a configuration file.

The command-line arguments for publishing a single dataset are a short cut that, internally, builds a default configuration based on the dataset name given.

The configuration is an RDF graph. One graph consists of one server description, with a number of services, and each service offers a number of endpoints over a dataset.

All datasets are described by assembler descriptions.

samples:

// [1] prefixes
@prefix fuseki:  <http://jena.apache.org/fuseki#> .
@prefix rdf:     <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs:    <http://www.w3.org/2000/01/rdf-schema#> .
@prefix tdb:     <http://jena.hpl.hp.com/2008/tdb#> .
@prefix ja:      <http://jena.hpl.hp.com/2005/11/Assembler#> .
@prefix :        <#> .
// [2] server - server context, custom code, and avaiable services
## ---------------------------------------------------------------
[] rdf:type fuseki:Server ;
# Server-wide context parameters can be given here.
# For example, to set query timeouts: on a server-wide basis:
# Format 1: "1000" -- 1 second timeout
# Format 2: "10000,60000" -- 10s timeout to first result, then 60s timeout to for rest of query.
# See java doc for ARQ.queryTimeout
# ja:context [ ja:cxtName "arq:queryTimeout" ;  ja:cxtValue "10000" ] ;

# Load custom code (rarely needed)
# ja:loadClass "your.code.Class" ;

# Services available.  Only explicitly listed services are configured.
#  If there is a service description not linked from this list, it is ignored.
fuseki:services (
    <#service1>
    <#service2>
) .
// [3] dataset - a tdb dataset
## ---------------------------------------------------------------
# Declaration additional assembler items.
[] ja:loadClass "com.hp.hpl.jena.tdb.TDB" .

# TDB
tdb:DatasetTDB  rdfs:subClassOf  ja:RDFDataset .
tdb:GraphTDB    rdfs:subClassOf  ja:Model .

// [4] service 1 - a service use in-memory dataset,
// customed dataset's and SPARQL services' endpoint
## ---------------------------------------------------------------
## Updatable in-memory dataset.

<#service1> rdf:type fuseki:Service ;
    fuseki:name                       "ds" ;       # http://host:port/ds
    fuseki:serviceQuery               "query" ;    # SPARQL query service
    fuseki:serviceQuery               "sparql" ;   # SPARQL query service
    fuseki:serviceUpdate              "update" ;   # SPARQL query service
    fuseki:serviceUpload              "upload" ;   # Non-SPARQL upload service
    fuseki:serviceReadWriteGraphStore "data" ;     # SPARQL Graph store protocol (read and write)
    # A separate read-only graph store endpoint:
    fuseki:serviceReadGraphStore      "get" ;      # SPARQL Graph store protocol (read only)
    fuseki:dataset                   <#dataset-mem> ;
    .

<#dataset-mem> rdf:type ja:RDFDataset .

// [5] service 2 - read only in-memory single graph data
## ---------------------------------------------------------------
<#service2> rdf:type fuseki:Service ;
    fuseki:name                     "books" ;    # http://host:port/books
    fuseki:serviceQuery             "query" ;    # SPARQL query service
    fuseki:serviceReadGraphStore    "data" ;     # SPARQL Graph store protocol (read only)
    fuseki:dataset           <#books> ;
    .

<#books>    rdf:type ja:RDFDataset ;
    rdfs:label "Books" ;
    ja:defaultGraph
        [ rdfs:label "books.ttl" ;
          a ja:MemoryModel ;
          ja:content [ja:externalContent <file:Data/books.ttl> ] ;
        ] ;
    .
// [6] service 3 - with a customed TDB
## ---------------------------------------------------------------
<#service3>  rdf:type fuseki:Service ;
    fuseki:name              "tdb" ;       # http://host:port/tdb
    fuseki:serviceQuery      "sparql" ;    # SPARQL query service
    fuseki:dataset           <#dataset> ;
    .

<#dataset> rdf:type      tdb:DatasetTDB ;
    tdb:location "DB" ;
    # Query timeout on this dataset (1s, 1000 milliseconds)
    ja:context [ ja:cxtName "arq:queryTimeout" ;  ja:cxtValue "1000" ] ;
    # Make the default graph be the union of all named graphs.
    ## tdb:unionDefaultGraph true ;
    .

7 dataset

7.1 TDB

samples:

[1] fuseki-server --desc tdb.ttl /ds

# tdb.ttl
@prefix rdf:     <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs:    <http://www.w3.org/2000/01/rdf-schema#> .
@prefix ja:      <http://jena.hpl.hp.com/2005/11/Assembler#> .
@prefix tdb:     <http://jena.hpl.hp.com/2008/tdb#> .

[] ja:loadClass "com.hp.hpl.jena.tdb.TDB" .
tdb:DatasetTDB  rdfs:subClassOf  ja:RDFDataset .
tdb:GraphTDB    rdfs:subClassOf  ja:Model .

<#dataset> rdf:type      tdb:DatasetTDB ;
    tdb:location "DB" ;
    .

[2] fuseki-server --loc=DB /ds

<#dataset> rdf:type      tdb:DatasetTDB ;
    tdb:location "DB" ;
    tdb:unionDefaultGraph true ;
    .

7.2 general database description

The Fuseki server can be given an assembler description to build a variety of model and datasets types.

samples:

fuseki-server --desc **assembler.ttl** /ds

// assembler.ttl
# Dataset of default graph and one named graph.
<#dataset> rdf:type ja:RDFDataset ;
    ja:defaultGraph <#modelDft> ;
    ja:namedGraph
        [ ja:graphName      <http://example.org/name1> ;
          ja:graph          <#model1> ] ;
    .

<#modelDft> a ja:MemoryModel ;
    ja:content [ ja:externalContent <file:Data.ttl> .

<#model1>  rdf:type ja:MemoryModel ;
    ja:content [ ja:externalContent <file:FILE-1.ttl> ] ;
    ja:content [ ja:externalContent <file:FILE-2.ttl> ] ;
    .

8 SPARQL Over HTTP(SOH)

see SOH - SPARQL over HTTP for more details.

9 use from Java

see ARQ - Querying Remote SPARQL Services for more details.

v2

TODO

Jena Fuseki 102的更多相关文章

  1. Jena Fuseki 101

    前言 正如其承诺的那样 Expose your triples as a SPARQL end-point accessible over HTTP. Fuseki provides REST-sty ...

  2. python使用rdflib创建rdf,在jena fuseki上执行SPARQL查询

    建立并启动jena fuseki服务 参考:https://www.cnblogs.com/bincoding/p/11223372.html 使用rdflib创建rdf文件 import rdfli ...

  3. 搭建Jena Fuseki并执行SPARQL查询

    1. 下载Jena Fuseki:http://jena.apache.org/download/index.cgi 2. 运行服务 windows解压后双击fuseki-server.bat lin ...

  4. Apache Jena Fuseki使用

    下载Apache Jena Fuseki 先从apache官网下载fuseki压缩包.然后解压到目标文件夹. apache官网:http://jena.apache.org/download/ 这里我 ...

  5. Jena TDB 102

    1 Introduction TDB is a RDF storage of Jena. official guarantees and limitations TDB support full ra ...

  6. Jena Fuseki安装完成后不能添加数据库

    问题描述:安装Jena成功后可以进入管理页面,无法通过界面选择和查询数据 解决方案: 进入 apache-jena-fuseki-3.12.0\run 修改 shiro.ini 配置文件 注释 /$/ ...

  7. Jena+fuseki

    1.下载apache-jena-3.1.0.tar.gz,这个可以将ttl三元组文件或者xml文件加载 进入bin目录,执行./tdbloader2 --loc /path/for/database ...

  8. Outline of Apache Jena Notes

    1 description 这篇是语义网应用框架Apache Jena学习记录的索引. 初始动机见Apache Jena - A Bootstrap 2 Content 内容组织基本上遵循Jena首页 ...

  9. 导入本体到Jena TDB数据库

    本体的存储方法或称本体持久化,大致分为基于内存的方式.基于文件的方式.基于数据库的方式和专门的管理工具方式4种(傅柱等, 2013).其中,基于数据库的方式又有基于关系数据库.基于面向对象数据库.基于 ...

随机推荐

  1. 从C语言快速学PHP

    PHP是解释性语言,是Web开发中常用的语言.对于web编程,建议学习时参考w3cschool的在线api手册. PHP和C语言及其相似,懂C的人只要稍加学习就能写出简单的PHP程序.以下是PHP与C ...

  2. collectionView布局原理及瀑布流布局方式

    一直以来都想研究瀑布流的具体实现方法(起因是因为一则男女程序员应聘的笑话,做程序的朋友应该都知道).最近学习到了瀑布流的实现方法,瀑布流的实现方式有多种,这里应用collectionView来重写其U ...

  3. ReactiveCocoa信号使用方法

    最近研究RAC时都是基于UI控件来使用,对单独的signal没有使用过,最近在网上看到一篇文章是关于RAC单独signal的使用.在学习整理后将个人觉得能帮助用于UI控件的一些signal使用方法记录 ...

  4. js之oop <四>对象管理

    对象扩展管理 Object.isExtensible() 检测对象是否可扩展(一般返回true).Object.preventExtensions() 防止对象扩展. var p = {p1:&quo ...

  5. STM32学习笔记(十) CAN通讯测试(环回模式)

    1.CAN通讯的理解 想学习CAN通讯,那么要对通讯协议有一定的认知.通讯协议是指通信双方对数据传送控制的一种约定.约定中包括对数据格式,同步方式,传输速度,传送步骤,检纠错方式以及控制字符定义等问题 ...

  6. C#_批量插入数据到Sqlserver中的四种方式

    先创建一个用来测试的数据库和表,为了让插入数据更快,表中主键采用的是GUID,表中没有创建任何索引.GUID必然是比自增长要快的,因为你生成一个GUID算法所花的时间肯定比你从数据表中重新查询上一条记 ...

  7. Listview 隐藏item

    隐藏某一项item(防止list改变后导致复用convertview而错乱--如果删掉list中的该项,会导致复用convertview混乱) 方法: convertView.setVisibilit ...

  8. oracle中DDL DML指什么?

    DDL create table 创建表 alter table 修改表 drop table 删除表 truncate table 删除表中所有行 create index 创建索引 drop in ...

  9. uva 1001(最短路)

    题意:在一个三维的奶酪里面有n(n<=100)个洞,老鼠A想到达老鼠B的位置,在洞里面可以瞬间移动,在洞外面的移动速度为10秒一个单位,求最短时间 题解:如果两个洞相交,那么d[i][j]=0: ...

  10. DbUtils常用API的使用 方便以后查阅

    package com.lizhou.Test; import java.sql.SQLException; import java.util.List; import java.util.Map; ...