问题标签 [raptor2]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
configuration - 为什么 rasqal 配置无法识别 cygwin 上已经存在的 raptor 库?
我正在尝试使用 cygwin 将 rasqal 0.9.20 库http://librdf.org/rasqal/安装到 Windows 7 机器上。之前我已经成功安装了 raptor-2.2.0 库http://librdf.org/raptor/我可以使用安装后创建的说唱歌手工具来验证这一点(./configure、./make、/make install)
我从 rasqal 的配置中得到的错误是:
我找不到修复它的方法。cofigure 文件中处理此标志的代码如下:
visual-studio - 使用 gcc 在 Cygwin 中编译库 (redland) 并使用 Visual Studio (c++) 中的输出
我目前正在尝试在 Windows 下编译 redland (librdf http://librdf.org/ )。根据他们的网站,它应该在 Windows 下构建。因为我不想花时间修复 .sln,所以我考虑在 cygwin 中编译 librdf(和必要的项目),然后在 Visual Studio 中使用该库。
所以我的问题是:是否可以在 Windows 应用程序中使用在 cygwin 中编译的库?如果是这样怎么办?
由于我是 Windows 开发人员,我不知道创建的 .a 文件与 .dll 是否有任何区别。我已经阅读了该主题,并且有必要将 cygwin1.dll 包含在项目中,但这不会成为问题。
或者有没有人有更好的想法如何将redland编译为windows dll?我考虑过使用mingw,但直到现在我还没有设法编译它。
任何帮助将不胜感激。
谢谢
更新:
感谢 Yaakov(以及他非常酷的 cygwin 端口)的帮助,同时我设法编译了 raptor(这是 librdf 的先决条件)。我所要做的就是为配置添加另一个参数:--with-xml2-config=/usr/x86_64-w64-mingw32/sys-root/mingw/bin/xml2-config
现在我正在尝试编译 rasqal,它是另一个 requesite,也取决于 raptor2。为了让它工作,我必须为 pkg-config 导出 PKG_CONFIG_PATH="/usr/x86_64-w64-mingw32/sys-root/mingw/lib/pkgconfig/" 以找到正确的 raptor 安装。
因此,为 rasqal 配置工作,但是当我尝试进行配置时,出现以下错误:
我无法理解我并没有真正进入交叉编译。有人可以指出我正确的方向吗?
c++ - librdf 编译错误,未定义对 raptor_new_world_internal' 的引用
成功安装 raptor (librdf.org) 后,我运行g++ test.cpp
编译。但是得到raptor2.h: No such file or directory
。
所以我复制/usr/include/raptor2/raptor2.h
到/usr/include/raptor2.h
,上面的错误消失了。但是出现了一个新的错误:undefined reference to `raptor_new_world_internal'
.
有人可以告诉我出了什么问题,谢谢.. 环境:ubuntu 12.04。
gcc - 为什么在考虑所有需要的库和引用时,我会收到“未定义的 xxx 引用”错误?
本质上,我正在尝试使用redland rdf库,但我无法链接到它们。当我尝试使用 redland 库的简单基本程序时,出现以下错误:
乍一看,您可能只是认为我缺少链接库,这是我在进一步检查之前的想法(见下文),但是,这些库都被考虑在内。
在这种情况下,一个适当的最小工作示例很困难,因为它需要获取和构建我正在尝试使用的库。但是,我创建了一个 GitHub存储库
其中包含构建 Redland 库所需的源文件以及我正在使用的示例代码(中断)。
为了构建库,您还需要
请注意,我正在为 Linux 的 Windows 子系统开发 Ubuntu-18.04。
要获取、构建和安装库,我使用这些终端命令:
它们在 github 存储库中作为 shell 脚本(get-raptor.sh
和get-rasqal.sh
)get-librdf.sh
提供。
还有我最小的 CMake 脚本(也在存储库中):
以及 CMake 命令的输出:
要构建,我正在使用 CLion,它只是在后台执行此操作:
因此给了我链接器错误。nm
通过使用检查 Redland 库的内容,我进行了更深入的挖掘。
第一个违规undfined reference
错误
is in function librdf_free_memory
,这是内部定义的引用librdf.a
当我们查找对 的未定义引用时raptor_free_memory
,我们发现它在内部确实是未定义的librdf.a.
。
但这libraptor2.a
无论如何都应该存在,如果我们看一下,我们会发现它确实存在并且定义为它应该是:
我的理解是,链接的过程本质上应该用里面librdf.a
的定义来填充里面的未定义引用libraptor.a
,但这显然没有发生。
为什么会这样?
xml - 如何在 SPARQL 查询语言中匹配 RDF 三元组中主题的相对 IRI?
我正在尝试使用SPARQL
匹配相对于基础的 IRI。这是 rdf-xml 代码的示例片段:
我想根据主题匹配这个三元组rdf:about="metaid_1"
。如果我运行以下 sparql 查询:
结果是:
但是当我运行以下任何一项时,我得到一个空结果:
有人可以建议基于相对metaid_1
iri 匹配三元组的替代查询吗?
编辑 - 回复评论
我忘了提到我确实尝试过BASE
这样使用:
和一些变体,但没有在评论中提出,即:
它还返回一组空的结果。
编辑 2 - 回复更多评论
@uninformedUser 是正确的,因为我要使用本地 iri,因为这些主题本质上是本地 xml 字符串的 xml 元素上的 metaid 属性。我想当我正在编写的包在网上使用时,它们会变成https://
,但现在它们只是为测试而创建的字符串。
我已经尝试将其更改为xml:base
,file:///mnt/d/libsemsim/tests/base-uri.rdf
所以现在 xml 片段显示为:
和查询:
但我的结果集仍然是空的。我想知道问题是否在于我正在查询rdf
model
自身,它是librdf 包中的中心对象,不一定是我在这里展示的 xml 的序列化表示。
sparql - 为什么我无法匹配 sparql 查询中的 URI?
我正在编写一个 sparql 查询来搜索以下内容rdfxml
这个查询:
按我的预期工作并产生:
当格式化为csv
. 然而这:
作为一个空的结果集出现。谁能告诉我为什么?
笔记:
- 我正在使用一个
C
调用rasqal
来执行查询的库,而 rdf 图是raptor
(如果这对你们中的任何人都意味着什么=]) - 所有节点都是 URI / IRI 节点,因此尝试
"SemsimMetaid0000"
也不起作用。 - 在搜索 rdf 图时没有基本 uri。序列化需要基本 uri,
rdfxml
但在搜索图形时,我还没有设置基本 uri。