fuseki数据库的安装与使用

fuseki数据库的安装和使用

文章目录

  • fuseki数据库的安装和使用
    • 1 安装与连接fuseki
        • - 下载安装包
        • - 解压缩
        • - 对工具包授权
        • - 启动fuseki服务器
        • - java连接fuseki
          • Maven配置
          • 步骤
    • 2 fuseki-SPARQL
      • 2.1 简介
      • 2.2 查询
        • - 简单查询
        • - 多匹配查询
        • - RDF 文字查询
        • - 查询中构造表达式
      • 2.3 构造RDF图谱
      • 2.4 约束查询结果
        • - 字符串约束
        • - 数值约束
      • 2.5 其他语法
        • - INSERT
        • - DELETE
        • - LOAD
        • - CLEAR

1 安装与连接fuseki

安装环境:

  • macOS High Sierra 10.13.6

- 下载安装包

  • 在 fuseki官网上下载 apache-jena-fuseki 安装包
  • 版本自选,win 系统下载 .zip 文件,linux 系统下载 .tar.gz 文件

fuseki数据库的安装与使用_第1张图片

- 解压缩

  • 下载完成后,在本地恰当位置解压缩
  • 解压后内容如下:

fuseki数据库的安装与使用_第2张图片

- 对工具包授权

  • 在终端进入解压缩的文件目录

  • 执行以下指令,对 fuseki 工具包进行授权

    // chmod +x 在linux系统中表示对文件增加可执行权限(rwx分别为写、读、可执行)
    // chmod 777 表示任何人都可以进行读写执行(7=r4+w2+x1)chmod +x fuseki-server
    chmod +x fuseki-server bin/s-get
    chmod +x fuseki-server bin/s-delete
    chmod +x fuseki-server bin/s-head
    chmod +x fuseki-server bin/s-post
    chmod +x fuseki-server bin/s-put
    chmod +x fuseki-server bin/s-query
    chmod +x fuseki-server bin/s-update
    //即对fuseki-server以及bin目录下的所有可执行文件进行授权,允许对数据库进行增删改查操作
    

- 启动fuseki服务器

  • 授权完毕后,执行下述指令,启动服务器

    // linux中./表示是一个可执行文件
    // update表示允许更新数据集
    // mem表示创建一个空的基于内存的数据集
    // /ds为fuseki默认数据集地址
    ./fuseki-server --update --mem /ds
    
  • 若启动成功,终端打印提示信息,表示fuseki服务器已启动,端口默认为3030
    fuseki数据库的安装与使用_第3张图片

  • 在网页中打开 fuseki数据库操作页面,即可进行增删改查

fuseki数据库的安装与使用_第4张图片

- java连接fuseki

  1. Maven配置

fuseki数据库的安装与使用_第5张图片

  • Apache Jena ARQ (SPARQL 1.1 Query Engine)

    a SPARQL 1.1 query engine for Apache Jena

  • Apache Jena Core

    Jena is a Java framework for building Semantic Web applications. It provides a programmatic environment for RDF, RDFS and OWL, SPARQL and includes a rule-based inference engine.

  • Apache Jena Fuseki A SPARQL 1.1 Server

    Fuseki is a SPARQL 1.1 Server which provides the SPARQL query, SPARQL update and SPARQL graph store protocols.

  • Apache Jena RDF Connection

    RDF Connection

  1. 步骤
  • 本地启动 fuseki 服务器,localhost:3030
public class Main{
	public static void main(String ...args) {
        //建立数据库连接
        RDFConnectionRemoteBuilder builder = RDFConnectionFuseki.create().destination("http://localhost:3030/ds/query"); 
        //查询语句
        Query query = QueryFactory.create("SELECT ?subject ?predicate ? object\n" + 
                                          "WHERE {\n" +
                                          "  ?subject ?predicate ?object\n" +
                                          "}\n" +
                                          "LIMIT 25");
        //query??
        try ( RDFConnectionFuseki conn = (RDFConnectionFuseki)builder.build() ) {
            conn.queryResultSet(query, ResultSetFormatter::out);
        }
    } 
}
  1. End Point 设置
    在这里插入图片描述

2 fuseki-SPARQL

  • 参考文档:https://www.w3.org/TR/sparql11-query/

2.1 简介

  • SPARQL 是针对 RDF 数据的查询语言
  • 可以实现跨数据集的查询
  • 数据可以存储在本地 RDF 文件中,也可以在中间件中解析为 RDF 形式
  • SPARQL 查询的结果为结果集 result set 或者 RDF 图

2.2 查询

- 简单查询

  • 多数SPARQL查询语句都包含一个三元组集合,称为 basic graph pattern
  • 三元组集合类似 RDF triples,但是每个主语、谓语、宾语都可以是变量
  • 查询示例

    • 在给定的数据图谱中,找出一本书的标题
    • 查询语句包括两个部分
      • SELECT 语句:定义查询结果中的变量
      • WHERE 语句:提供 basic graph pattern 来进行匹配

fuseki数据库的安装与使用_第6张图片

- 多匹配查询

  • 查询语句可能有多个匹配结果

fuseki数据库的安装与使用_第7张图片

- RDF 文字查询

  • 匹配语言标签:“cat”@en
  • 匹配数字类型:“42”^^xsd.integer

- 查询中构造表达式

fuseki数据库的安装与使用_第8张图片

2.3 构造RDF图谱

  • 使用 CONSTRUCT 关键词,根据已有 RDF 图谱的格式构造一个新的图谱并返回

fuseki数据库的安装与使用_第9张图片

2.4 约束查询结果

  • 使用 FILTER 关键词,对查询结果进行条件约束
  • 作用域:在 filter 出现的整个 group 中都生效
    fuseki数据库的安装与使用_第10张图片

- 字符串约束

  • 使用 regex 关键词,对字符串进行匹配

  • 增加 “i” 标识,可以设置对匹配的大小写不敏感

  • 语法:

    SELECT ?title
    WHERE {
    	?x dc:title ?title
    	FILTER regex(?title, "web", "i")
    }
    

- 数值约束

  • 直接使用运算符进行判断约束

  • 语法:

    SELECT ?title ?price
    WHERE {
    	?x ns:price ?price .
    	FILTER regex(?price < 30)
    	?x dc:title ?title .
    }
    

2.5 其他语法

  • 其他语法参见下述 SPARQL 官网说明:

- INSERT

  • https://www.w3.org/TR/2013/REC-sparql11-update-20130321/#insertData

- DELETE

  • https://www.w3.org/TR/2013/REC-sparql11-update-20130321/#deleteData

- LOAD

  • https://www.w3.org/TR/2013/REC-sparql11-update-20130321/#load

- CLEAR

  • https://www.w3.org/TR/2013/REC-sparql11-update-20130321/#clear

你可能感兴趣的:(fuseki)