问题标签 [rdflib]

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.

0 投票
1 回答
3500 浏览

python - 使用 owl:Class 前缀与 rdflib 和 xml 序列化

我想owl:在我的 RDF 本体的 XML 序列化中使用前缀(使用 rdflib 版本 4.1.1);不幸的是,我仍然将序列化作为rdf:Description标签。我已经在RDFLib: Namespace prefixes in XML serialization 中查看了关于将命名空间绑定到图形的答案,但这似乎只在使用ns格式而不是xml格式进行序列化时才有效。

让我们更具体一点。我正在尝试在 XML 中获取以下本体(取自Introducing RDFS and OWL),如下所示:

这是构建这样一个东西的python代码,使用rdflib

遗憾的是,即使使用这些绑定语句,仍会打印以下 XML:

owl当然,这仍然是一个本体,并且可用 - 但由于我们有各种编辑器,使用前缀的更紧凑和可读的第一个版本将是更可取的。是否可以在rdflib不覆盖序列化方法的情况下做到这一点?

更新

作为对评论的回应,我将把我的“奖金问题”改写为对我的整个问题的简单澄清。

不是一个额外的问题这里的主题涉及 OWL 命名空间格式化本体的构造,它是更冗长的 RDF/XML 规范的简写。这里的问题比简单地为类或属性的简写声明命名空间前缀要大,有许多简写符号必须在代码中处理;例如,owl:Ontology描述应该作为良好的形式添加到这个符号中。我希望 rdflib 支持符号的完整规范——而不是必须滚动我自己的序列化。

0 投票
2 回答
521 浏览

sparql - 使用 IPython Notebook(使用 rdflib?)记录 SPARQL 查询和结果

我想使用 IPython Notebook 来记录 SPARQL 查询以及这些查询的结果。

由于任何命令行工具都可以从 IPython Notebook 中通过“bang”调用,我当然可以运行:

或者使用 roqet,我什至可以在命令本身中嵌入一个简短的查询:

arq 或 roqet 都不接受多行 SPARQL 查询作为参数。任何长于单行的查询都必须存储在文件中(例如,如上的“test1.rq”)。

更好的是直接在 IPython Notebook 单元中定义 SPARQL 查询,在那里它们可以很容易地被克隆和调整。以下作品:

但是,我没有看到传递指定要查询的数据源的 SPARQL 查询的方法,例如:

或者,至少,改进函数,使其至少采用一个文件名作为参数,如

我在 Google 上搜索了将 IPython Notebook 与 SPARQL 结合使用的示例,但没有找到。对于为数据探索而设计的环境,这似乎是一个明显的用途。我发现真正有效的唯一方法是运行 arq,但随后需要这样做

将查询粘贴到 IPython Notebook 中,它实现了记录探索数据过程的功能,但查询必须与 notebook 并行编辑,作为单独的文件。我的目标是让初学者更容易使用 SPARQL 探索 RDF 数据,并将他们的探索记录在笔记本中。一定会有更好的办法!

更新:

@Joshua Taylor,@AndyS 指出这些命令接受多行查询作为参数。这在 bash 提示符下可以正常工作,但不幸的是在 IPython Notebook 中不行,这会引发 SyntaxError:

如果我在第 1 行中转义行尾,如

但是,我无法通过转义所有行尾来执行整个命令。

所以也许问题不在于 arq 和 roqet 如何处理内联查询,而在于这些 arq 和 roqet 命令行如何传递给 IPython Notebook?

0 投票
1 回答
1043 浏览

switch-statement - SPARQL BIND 打破了价值?

我最近在许多 SPARQL 查询中使用了 VALUES,只是意识到在其中一个查询中我没有得到我期望的结果。

这是一个简单的案例:

我正在使用 VALUES 将 nsA5080 文字“翻译”为 URI。简单查询:

按预期工作:

但如果我将其更改为:

我正进入(状态:

这对我没有任何意义。额外的元组从何而来?在真正的查询中,我有 ca。VALUES 中有 30 多个元组,它们都落在结果中。还有什么更有趣的查询,看起来几乎像那个查询 - 在其他任何地方都可以正常工作。

想法?

0 投票
1 回答
839 浏览

python - rdflib 中的 ASK SPARQL 查询

我正在尝试学习 SPARQL,并且正在使用 python 的 rdflib 进行训练。我做了几次尝试,但任何 ASK 查询似乎总是给我一个 True 结果。例如,我尝试了以下方法:

结果为真,即使 'try.ttl' 中没有 false.com 类型的主题。谁能解释我为什么?预先感谢您的帮助!

更新:阅读 rdflib 手册,我发现 results 的类型是 list 并且(在我的情况下)应该包含一个带有来自 ask 查询的返回值的布尔值。我尝试了以下方法: for x in results: print x 我得到了“无”。我猜我没有以正确的方式使用查询方法。

0 投票
1 回答
158 浏览

python - Python rdflib 嵌套元素

我有一个想要修改的现有 rdf 图表。我想在n变量中添加信息。

输出:

一切几乎都是正确的,但我希望它在两个方面有所不同:

  1. 我希望只有一个包含两个条目的 rdf:Description 部分。
  2. 我希望ns1别名是symp

谢谢您的帮助!

0 投票
1 回答
330 浏览

rdf - 如何进行 RDF 本体匹配

在两个本体之间执行匹配的最佳方法是什么,以便我可以获得两个本体之间的相似度分数,这可以使集成工作变得容易(来自不同 RDF 的数据的集成)

0 投票
1 回答
888 浏览

python - 在 ubuntu 12.04 上安装 RDFlib

我正在尝试在 ubuntu 12.04 上安装 RDFlib,但无法这样做。我已经下载了一个 zip 文件并正在运行 python setup.py install 但出现错误需要鼻子。尝试:

但是当我尝试安装鼻子时,它没有安装你能告诉我该怎么做,因为我对鼻子一无所知

我也尝试过easy_install rdflib,但它也不适合我。

0 投票
0 回答
257 浏览

python - rdflib 和 NCName 错误

由于未在 RDF/XML 文件中遵守 NCName 约定而出现错误。很明显,它没有受到尊重,并且在许多地方都可以找到。有什么办法可以解决这个问题,因为我对输出文件没有任何控制权?


基本代码如下所示:

错误是这样的:

回溯(最近一次通话最后):

违规位是 ELK-09-14_10:39:59_NAME 中的冒号。文档中还有很多其他示例,例如以数字开头的其他问题。

该代码将开发成可以导入neo4j的东西,所以如果我要解决这一切都错了,我欢迎任何其他方法。

0 投票
1 回答
1076 浏览

python - 从 rdflib.term.Literal 中提取数据类型和标签名称

我正在通过 python rdflib 执行 sparql 查询,例如

我的目标是以这种方式获得概念的标签。结果我得到了这样的东西:

从中我想提取标签和数据类型。(即本例的主韧皮筛细胞和字符串)我正在使用

在哪里

但它不起作用。我是 rdflib 的新手。有谁知道我该怎么做?

我知道我需要将结果转换为字符串作为标签,但是如果数据类型不是字符串并且我想获取数据类型怎么办

0 投票
1 回答
14988 浏览

python - 使用 wordnet nltk 确定上位词或下位词

我想检查两个词(由用户给出)之间的上位词/下位词关系,这意味着它们中的任何一个都可以是其他词的上位词,也可能是两者之间没有上位词关系。我可以使用 path_similarity同样。我正在尝试这样做。如果您可以为此建议任何更好的方法。我还想知道从 sparql 查询中检查相同的方法是否更好