Windows下Jena+fuseki安装配置和简单使用(没有eclipse)


由于要复现一个简单的KGQA示例,所以需要安装Jena和fuseki。不过感觉这方面的资料好像比较少。。。

根据:jena的安装和介绍

1. Jena和fuseki介绍

主要参考《知识图谱——方法、实践与应用》这本书,以及b站对应的王昊奋老师的知识图谱视频、ppt截图(第五课:数据存储,29分钟左右)

1.1 简介

Apache Jena是Apache顶级项目,其前身为惠普实验室开发的Jena工具包。Jena是语义Web领域主要的开源框架和RDF三元组库,较好地遵循W3C标准,其功能包括RDF数据管理、RDFS和OWL本体管理、SPARQL查询处理等。Jena具有一套原生存储引擎,可对RDF三元组进行基于磁盘或内存的存储管理;同时具有一套基于规则的推理引擎,用于执行RDFS和OWL本体推理任务。
在这里插入图片描述

1.2 技术架构

Apache Jena的框架如图所示。自底向上看,

  • Jena的存储API为上层提供基本三元组存储和本体存储功能,支持的底层存储类型包括:基于内存的存储、基于关系数据库的SDB存储、基于原生三元组的TDB存储和用户定制的存储。
  • 推理API为上层提供本体推理服务,可以使用Jena内置基于规则的推理机进行RDFS和OWL本体上的推理任务,或者选择通过接口调用第三方外部推理机。
  • Jena对外界应用程序的API包括实现基本三元组管理功能的RDF API、实现RDFS和OWL本体推理功能的本体API、和实现查询处理功能的SPARQL API。

Java应用程序代码可以通过导入类库的形式直接调用这些API。Jena还提供了支持各种RDF三元组格式的解析器和编写器,支持的三元组格式包括:RDF/XML(Protege默认的保存格式)、Turtle、N-Triple和RDFa
在这里插入图片描述
实质上,Jena是一个Java框架类库。在一般情况下,上述功能需要再Java程序中进行调用。Jena为了用户使用方便,提供了一个名为Fuseki的独立RDF数据库Web应用程序。
Fuseki是基于Jena的SPARQL服务器,可以作为独立的服务由命令行启动,也可以作为操作系统服务或Java Web应用程序。Fuseki底层存储基于TDB,具有SPARQL查询处理的Web用户界面,同时提供服务器监控和管理功能界面。Fuseki支持最新的SPARQL1.1版本,同时支持SPARQL图存储HTTP协议。

2. Jena和fuseki安装

参考官网的说明:https://jena.apache.org/download/index.cgi
在这里插入图片描述
要先安装java环境

2.1 java安装

2.1.1 jdk和jre区别

其实以前装过很多次了,很早之前就说java有jdk和jre,但是jre是合并到jdk里的,所以只下载一个jdk就OK了。

根据:Java中JDK和JRE的区别是什么?它们的作用分别是什么?

JRE是Java Runtime Environment的缩写,顾名思义是java运行时环境,包含了java虚拟机,java基础类库。是使用java语言编写的程序运行所需要的软件环境,是提供给想运行java程序的用户使用的,还有所有的Java类库的class文件,都在lib目录下,并且都打包成了jar。至于在Windows上的虚拟机是哪个文件呢?就是<JRE安装目录>/bin/client中的jvm.dll

Jdk是Java Development Kit的缩写,顾名思义是java开发工具包,是程序员使用java语言编写java程序所需的开发工具包,是提供给程序员使用的。JDK包含了JRE,同时还包含了编译java源码的编译器javac,还包含了很多java程序调试和分析的工具:jconsole,jvisualvm等工具软件,还包含了java程序编写所需的文档和demo例子程序。
如果你需要运行java程序,只需安装JRE就可以了。如果你需要编写java程序,需要安装JDK

2.1.2 jdk安装

搜索的不要搜java安装,那个搜出来会是这个页面:https://www.java.com/zh-CN/download/windows_offline.jsp
这个页面是java对浏览器的支持
在这里插入图片描述


正确的安装:
搜索java SE development

截止到我写这篇博客,java SE development的下载界面已经不是下面这个最经典的样子了,图自2018年的博客win10系统安装jdk8全过程
在这里插入图片描述
而是长成了这个样子:https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html

这是jdk8的链接,建议直接安装jdk11以上的版本,例如:jdk18的链接,是https://www.oracle.com/java/technologies/downloads/#jdk18-windows
在这里插入图片描述
除了界面发生了改变,下载也需要登陆Oracle账号才可以下载了,如果网速不太好,可能就有点恶心了。

下载后一路next傻瓜式安装,但是一定要记得jdk和jre的路径,因为后续要配置系统路径。
在这里插入图片描述

2.1.3 环境变量配置

参考菜鸟教程:Windows 10 配置Java 环境变量
在系统路径中,新建并赋值以下内容:

JAVA_HOME
C:\Program Files\Java\jdk1.8.0_281
# 这个路径换成自己jdk安装目录

在这里插入图片描述

CLASSPATH
.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;
# 注意 这里%前面必须是 一个 点 一个分号 ".;",如果build这么写,在命令行输入javac会报错

在这里插入图片描述在系统路径Path中新建以下两个:

%JAVA_HOME%\bin
%JAVA_HOME%\jre\bin

在这里插入图片描述

2.1.4 验证是否安装成功

依次在命令行输入:

java
javac
java -version # 一个横岗

输出的东西都是正常的,没有error就可以。

2.2 jena和fuseki安装

可以参考知乎专栏文章:实践篇(四):Apache jena SPARQL endpoint及推理中关于jena的安装部分

2.2.1 下载

jena的版本更新很快,目前已经到了3.17.
关于归档文件,可以在这里看到(最好选二进制版本的那个文件夹):http://archive.apache.org/dist/jena/
在这里插入图片描述
github也有release文件:https://github.com/apache/jena/releases
在这里插入图片描述

jena有 binary distribution和source distribution,选择二进制版本的那个; Jena Fuseki只有二进制版本;fuseki和其他的功能模块不在同一个文件中,需要分别下载apache-jena和apache-jena-fuseki(我要复现的项目是3.9版本,所以选了3.9)

如果下载的是二进制文件,类似:
在这里插入图片描述
下载好了直接解压就可以用了,类似:
在这里插入图片描述

2.2.2 环境变量配置

因为要配置系统路径,所以要把上面解压后的文件夹放到一个合适的地方。
参考:

  1. 把解压后的两个文件放到同一个文件夹中,推荐新建一个jena文件夹
    在这里插入图片描述
  2. 配置环境变量(和配置java的环境变量差不多)如果是win10,可以直接在搜索框搜索: 高级系统设置,然后就能以最快的速度打开环境变量的设置
    在这里插入图片描述
    新建系统变量:
    JENA_HOME
    # 注意 不是JAVA_HOME
    C:\software\jena\apache-jena-3.9.0
    # 换成自己jena的目录
    
    在这里插入图片描述
    在系统变量Path中增加:
    %JENA_HOME%\bat
    # 可以在jena的安装目录下看到bat这个目录(这里面存储的是一些批处理脚本文件)
    

2.2.3 验证是否安装成功

命令行里输入:

sparql -version

在这里插入图片描述

2.2.4 启动fuseki 服务

其实就是运行这个批处理文件:
在这里插入图片描述
需要进行目录切换,类似:
在这里插入图片描述

2.2.5 指定数据库

–loc 指定数据库路径 数据库名称

fuseki-server.bat --update --loc=tdbdata /databaseName

2.2.6 配置数据源及相关信息

C:\software\jena\apache-jena-fuseki-3.9.0>fuseki-server.bat
[2021-03-12 15:43:23] Server     INFO  Apache Jena Fuseki 3.9.0
[2021-03-12 15:43:24] Config     INFO  FUSEKI_HOME=C:\software\jena\apache-jena-fuseki-3.9.0\.
[2021-03-12 15:43:24] Config     INFO  FUSEKI_BASE=C:\software\jena\apache-jena-fuseki-3.9.0\run
[2021-03-12 15:43:24] Config     INFO  Shiro file: file://C:\software\jena\apache-jena-fuseki-3.9.0\run\shiro.ini
[2021-03-12 15:43:25] Server     INFO  Started 2021/03/12 15:43:25 CST on port 3030
[2021-03-12 15:44:01] Admin      INFO  [1] GET http://localhost:3030/$/server
[2021-03-12 15:44:01] Admin      INFO  [1] 200 OK (1 ms)

命令行运行脚本之后,可以看到,访问的链接。
在浏览器输入 http://localhost:3030/ ,就会进入Fuseki的配置页面。类似:
在这里插入图片描述

2.2.7 更改Shiro权限

Fuseki 使用Shiro管理系统的权限,默认情况下用户只有只读操作,没有权限操作数据库,当然也不能读取数据库。必须通过下面的方式更改shiro配置才可以对数据库进行操作。

\jena\fuseki\run\shiro.ini 文件中,将/$/**的值改为localhostFilter
我这个版本默认就是localhostFilter,都不用修改?但是搜索jena无法操作数据库,结果都是让改为这个localhostFilter,先试试。

## Control functions open to anyone
/$/status = anon
/$/ping   = anon

## and the rest are restricted to localhost.
/$/** = localhostFilter

另外,上面的信息中有:Config INFO Shiro file: file://C:\software\jena\apache-jena-fuseki-3.9.0\run\shiro.ini

参考

<think>好的,用户想了解信号线滤波电容的选择方法。首先我需要回忆一下相关知识,确保信息准确。滤波电容的主要作用是滤除高频噪声,稳定信号。那选型时需要考虑哪些因素呢? 首先想到的是电容的容值。不同的频率需要不同容值的电容来有效滤波。一般来说,高频噪声可能需要小容值电容,比如0.1μF,而低频则可能需要大一些的,比如10μF。不过具体如何确定呢?可能需要结合噪声频率电容的阻抗特性来分析。 然后是电容的类型。常见的陶瓷电容、电解电容、钽电容各有特点。陶瓷电容适合高频,ESR低,但容值小;电解电容容值大但高频性能差。所以可能需要组合使用,比如并联不同容值的电容来覆盖更宽的频段。 接下来是自谐振频率的问题。电容在自谐振频率附近阻抗最低,超过这个频率后呈现感性,滤波效果下降。所以需要选择自谐振频率高于噪声频率的电容。这可能需要查看电容的datasheet,了解其频率特性。 还有电压额定值。电容的耐压必须高于信号线上的最大电压,否则可能损坏。通常要留有一定余量,比如1.5到2倍的电压余量。 布局布线的影响也不能忽视。电容应尽量靠近噪声源或需要滤波的器件放置,引线过长会增加电感,影响高频性能。可能需要使用短而宽的走线,或者多层板设计来减少寄生电感。 另外,是否需要考虑温度稳定性?某些电容的容值会随温度变化,比如电解电容。如果工作环境温度变化大,可能需要选择温度特性较好的材质,如X7R或C0G陶瓷电容。 还有滤波电路的结构。是单纯并联电容,还是使用π型滤波、LC滤波等结构?不同结构对电容的要求不同,比如LC滤波需要电感电容配合,可能影响电容的选择。 用户可能的应用场景是什么?是数字信号线还是模拟信号线?数字信号如时钟线可能有高频噪声,需要小容值电容;模拟信号可能对噪声更敏感,需综合考虑。 是否需要考虑成本?钽电容比陶瓷电容贵,电解电容更便宜但体积大。在空间受限的情况下,可能优先选择陶瓷电容。 还有ESRESL的影响。ESR过大会影响滤波效果,特别是在高频时。低ESR的电容更适合高频滤波。而ESL会限制高频性能,所以需要选择封装小的电容,如0402或0201,以减少电感。 总结一下,选择滤波电容的步骤可能是:确定噪声频率范围→计算或选择合适容值的电容→选择电容类型封装→验证自谐振频率ESR/ESL→考虑布局温度影响→实际测试调整。 可能需要提醒用户实际测试的重要性,因为理论计算可能无法完全覆盖实际情况,比如PCB布局实际噪声源的复杂性。 有没有可能用户的问题涉及到电源滤波?不过题目明确说是信号线,所以应聚焦在信号完整性方面,而非电源去耦。但有时信号线滤波也会用到类似原理,比如抑制高频干扰。 是否需要举例说明?比如,假设信号线上有100MHz的噪声,选择0.1μF的陶瓷电容,其自谐振频率在10MHz左右的话可能就不合适,需要选更小容值的,比如0.01μF,使其自谐振频率接近100MHz,从而在该频率处阻抗最低。 或者,当噪声频率范围较宽时,并联多个容值的电容,如0.1μF10pF的组合,以覆盖不同频段。 还要注意电容的耐压值是否足够,避免击穿。例如,信号线电压是5V,选用耐压16V的电容。 另外,是否需要考虑电容的漏电流?特别是在高阻抗信号线路中,漏电流可能引入噪声。比如电解电容漏电流较大,可能不适合高阻抗电路,而陶瓷电容漏电流小,更适合。 最后,可能需要建议用户参考具体器件的应用笔记或设计指南,结合实际情况进行调整,并通过示波器或频谱分析仪测试滤波效果。</think>信号线滤波电容的选择需综合考虑噪声抑制需求、频率特性及电路布局,以下是分步说明: --- ### **一、明确滤波目标** 1. **确定噪声频段** 通过测试或仿真分析干扰信号的频率范围(如$$f_{noise}=10MHz-100MHz$$)。 2. **明确滤波目标阻抗** 根据信号源阻抗负载阻抗,计算目标滤波频段的阻抗需求。 --- ### **二、电容选型核心参数** 1. **容值选择** - 高频噪声(>10MHz):选用小容量陶瓷电容(如$$0.1\mu F$$)。 - 中低频噪声(<1MHz):可搭配大容量电容(如$$10\mu F$$电解电容)。 - **经验公式**:$$C \approx \frac{1}{2\pi f \cdot Z}$$(其中$$Z$$为目标阻抗,$$f$$为噪声频率)。 2. **自谐振频率(SRF)** 电容在SRF时阻抗最低,需满足: $$SRF > f_{noise}$$ 例如:0.1μF陶瓷电容SRF约15MHz,适合抑制10MHz以下噪声;0.01μF电容SRF可达50MHz。 3. **ESR(等效串联电阻)与ESL(等效串联电感)** - 高频滤波需低ESR(如X7R/X5R陶瓷电容)。 - 小封装(0402/0201)降低ESL,提升高频性能。 --- ### **三、电容类型对比** | 类型 | 特点 | 适用场景 | |------------|--------------------------|------------------------| | 陶瓷电容 | 高频特性好,ESR低 | 信号线高频滤波 | | 电解电容 | 容值大,低频滤波 | 电源低频噪声抑制 | | 钽电容 | 容值稳定,耐压高 | 中频滤波,精密电路 | --- ### **四、布局与布线要点** 1. **就近放置** 电容尽量靠近噪声源或敏感器件(距离≤3mm)。 2. **减小回路电感** - 使用短而宽的走线。 - 多层板优先选择相邻电源/地平面。 3. **多电容并联策略** 并联不同容值电容(如0.1μF+10nF)以拓宽滤波频段。 --- ### **五、验证与调试** 1. **频域测试** 用网络分析仪测量滤波后阻抗曲线,确认SRF覆盖噪声频段。 2. **时域测试** 示波器观察信号过冲/振铃改善情况。 3. **温度影响** 高温环境下需验证X7R/X5R电容的容值漂移(C0G材质更稳定)。 --- ### **六、典型案例** **场景**:抑制100MHz数字信号线噪声 1. 选0.01μF 0402陶瓷电容(SRF≈150MHz)。 2. 并联1nF电容(SRF≈500MHz)增强高频滤波。 3. 布局时电容GND引脚直接连接底层地平面。 --- ### **常见误区** - **盲目增大容值**:大电容SRF低,高频时呈感性,反而失效。 - **忽略PCB寄生参数**:长走线电感可能使滤波效果下降50%以上。 通过理论计算结合实测调整,可优化滤波电容方案。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

吨吨不打野

解决了问题,觉得还行就给点

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值