2

我正在使用OpenLink Virtuoso使用本教程将关系数据库转换为 RDF 。

我有一个包含 5 个表(AuthorsKeywordsPublicationsReferences、 )的数据库,我使用文件Rights将它们导入 Virtuoso 数据库。.csv

在从 RDB 到链接数据图的“转换”结束时,它显示了结果正常的操作状态,并为我提供了以下链接:

SQL 关系(表)到 RDF 语句(谓词/属性图)映射

http://localhost:8890/schemas/CSV/qm-authors_csv
http://localhost:8890/schemas/CSV/qm-keywords_csv
http://localhost:8890/schemas/CSV/qm-publications_csv
http://localhost:8890/schemas/CSV/qm-references_csv
http://localhost:8890/schemas/CSV/qm-rights_csv
http://localhost:8890/schemas/CSV/qm-VoidStatistics

示例图 IRI 和关联数据实体 URI

RDFDocument(命名图)IRIs:

Transient Views: http://localhost:8890/CSV#
http://localhost:8890/CSV/authors_csv/ID/1#this
http://localhost:8890/CSV/authors_csv/ID/1#this
http://localhost:8890/CSV/keywords_csv/ID/1#this
http://localhost:8890/CSV/publications_csv/ID/1#this
http://localhost:8890/CSV/publications_csv/ID/1#this
http://localhost:8890/CSV/objects/publications_csv/ID/1/DisplayOnMLKD.bin
http://localhost:8890/CSV/references_csv/ID/1#this
http://localhost:8890/CSV/references_csv/ID/1#this
http://localhost:8890/CSV/rights_csv/ID/1#this
http://localhost:8890/CSV/rights_csv/ID/1#this
Metadata Data Document (VoiD) URI/URL: http://localhost:8890/CSV/stat#
Linked Data Ontology URI: http://localhost:8890/schemas/CSV/

我尝试使用以下 SPARQL 查询来查看所有结果以检查它们:

SELECT *
FROM <http://localhost:8890/CSV>
WHERE {?s ?o ?p}

但我需要的是分别检查每个图表。

问题一:

基于上述结果,我如何访问使用 SPARQL 创建的每个图表(用于表、等AuthorsPublicationsReferences

问题2:

我应该写什么查询来删除图表?

4

1 回答 1

3

我建议您至少粗略浏览一下SPARQL 1.1 查询语言SPARQL 1.1 更新。你不需要记住它们的每一个方面,但浏览目录会让你对语言中的内容有所了解,并且你会知道将来在哪里看。(在我看来,这对于您可能学习或使用的任何工具包、语言等都是很好的建议。)

在一张或多张图中查询

查看13.3 查询数据集及其小节,您将在其中找到有关如何查询不同图形的示例。简而言之,您使用类似的模式

select ... where {
  ...
  graph ?g { ... }
  ...
}

默认情况下,?g将覆盖数据集中的所有图表。如果您from named在查询中使用某些部分,那么您可以限制它的范围。您还可以直接指定图形 IRI,如

graph <http://example.org/graph-to-check> { ... }

当然,规范中有更多示例。

SELECT *
FROM <http://localhost:8890/CSV>
WHERE {?s ?o ?p}

但我需要的是分别检查每个图表。

您可以使用类似的查询

select * where { graph ?g { ?s ?p ?o } }

获取每个三元组及其出现的图表。请注意(就像RobV 在回答您之前的一个问题时所做的那样),我更改了变量名称,因为三元组是(主语、谓语、宾语),所以?s ?p ?o会产生更多助记符比?s ?o ?p

删除图表

3.2 图形管理部分描述了可用于操作图形的五种操作(已添加重点):

  • CREATE操作在支持空图的存储中创建一个新图。
  • DROP操作删除一个图及其所有内容。
  • COPY操作修改一个图以包含另一个图的副本。
  • MOVE操作将所有数据从一个图形移动到另一个图形。
  • ADD操作将所有数据从一个图形复制到另一个图形。

给定的语法是

DROP  ( SILENT )? (GRAPH IRIref | DEFAULT | NAMED | ALL )

所以你会这样做,例如,

drop graph <http://example.org/graph-to-delete>
于 2014-06-20T12:41:19.550 回答