使用自动生成的代码将RDB转换为RDF

使用自动生成的代码将RDB转换为RDF,rdf,sparql,virtuoso,linked-data,Rdf,Sparql,Virtuoso,Linked Data,我正在使用OpenLink Virtuoso软件使用本教程将关系数据库转换为RDF: 我有一个数据库,其中有5个表:作者、关键字、出版物、引用、权限,我使用.csv文件将它们导入到Virtuoso数据库中 所以我基本上遵循了的步骤,因为我需要使用我自己的本体,这是为R2RML图生成的代码: @prefix rr: <http://www.w3.org/ns/r2rml#> . @prefix CSV: <http://localhost:8890/schemas/CSV/>

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

我有一个数据库,其中有5个表:作者、关键字、出版物、引用、权限,我使用.csv文件将它们导入到Virtuoso数据库中

所以我基本上遵循了的步骤,因为我需要使用我自己的本体,这是为R2RML图生成的代码:

@prefix rr: <http://www.w3.org/ns/r2rml#> .
@prefix CSV: <http://localhost:8890/schemas/CSV/> .
@prefix csv-stat: <http://localhost:8890/CSV/stat#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix void: <http://rdfs.org/ns/void#> .
@prefix scovo: <http://purl.org/NET/scovo#> .
@prefix aowl: <http://bblfish.net/work/atom-owl/2006-06-06/> .
@prefix dcterms: <http://purl.org/dc/terms/> .
@prefix foaf: <http://xmlns.com/foaf/0.1/> .
@prefix bibo: <http://purl.org/ontology/bibo/> . 


<#TriplesMapAuthors_csv> a rr:TriplesMap; 
rr:logicalTable [ rr:tableSchema "CSV" ;         
rr:tableOwner "DBA" ; rr:tableName "Authors_csv" ]; 
rr:subjectMap [ rr:termtype "IRI"  ; 
rr:template "http://localhost:8890/CSV/authors_csv/ID={ID}"; 
rr:class CSV:Authors_csv; rr:graph <http://localhost:8890/CSV#> ];
rr:predicateObjectMap [ rr:predicateMap [ rr:constant CSV:id ] ; 
rr:objectMap [ rr:column "ID" ]; ] ;
rr:predicateObjectMap [ rr:predicateMap [ rr:constant CSV:authorid ] ; 
rr:objectMap [ rr:column "AuthorID" ]; ] ;
rr:predicateObjectMap [ rr:predicateMap [ rr:constant CSV:authorname ] ; 
rr:objectMap [ rr:column "AuthorName" ]; ] ;
rr:predicateObjectMap [ rr:predicateMap [ rr:constant CSV:authormidlename ] ; 
rr:objectMap [ rr:column "AuthorMidleName" ]; ] ;
rr:predicateObjectMap [ rr:predicateMap [ rr:constant CSV:authorsurname ] ; 
rr:objectMap [ rr:column "AuthorSurname" ]; ] ;
rr:predicateObjectMap [ rr:predicateMap [ rr:constant CSV:authorurl ] ; 
rr:objectMap [ rr:column "AuthorURL" ]; ] ;
rr:predicateObjectMap [ rr:predicateMap [ rr:constant CSV:authoremail ] ; 
rr:objectMap [ rr:column "AuthorEmail" ]; ] ;
rr:predicateObjectMap [ rr:predicateMap [ rr:constant CSV:csd_dep ] ; 
rr:objectMap [ rr:column "CSD_DEP" ]; ] .

<#TriplesMapKeywords_csv> a rr:TriplesMap; rr:logicalTable [ rr:tableSchema "CSV" ; rr:tableOwner "DBA" ; rr:tableName "Keywords_csv" ]; 
rr:subjectMap [ rr:termtype "IRI"  ; rr:template "http://localhost:8890/CSV/keywords_csv/ID={ID}"; rr:class CSV:Keywords_csv; rr:graph <http://localhost:8890/CSV#> ];
rr:predicateObjectMap [ rr:predicateMap [ rr:constant CSV:id ] ; rr:objectMap [ rr:column "ID" ]; ] ;
rr:predicateObjectMap [ rr:predicateMap [ rr:constant CSV:publicationid ] ; rr:objectMap [ rr:column "PublicationID" ]; ] ;
rr:predicateObjectMap [ rr:predicateMap [ rr:constant CSV:keyword ] ; rr:objectMap [ rr:column "Keyword" ]; ] ;
rr:predicateObjectMap [ rr:predicateMap [ rr:constant CSV:keywordorder ] ; rr:objectMap [ rr:column "KeywordOrder" ]; ] .

<#TriplesMapPublications_csv> a rr:TriplesMap; rr:logicalTable [ rr:tableSchema "CSV" ; rr:tableOwner "DBA" ; rr:tableName "Publications_csv" ]; 
rr:subjectMap [ rr:termtype "IRI"  ; rr:template "http://localhost:8890/CSV/publications_csv/ID={ID}"; rr:class CSV:Publications_csv; rr:graph <http://localhost:8890/CSV#> ];
rr:predicateObjectMap [ rr:predicateMap [ rr:constant CSV:id ] ; rr:objectMap [ rr:column "ID" ]; ] ;
rr:predicateObjectMap [ rr:predicateMap [ rr:constant CSV:publicationid ] ; rr:objectMap [ rr:column "PublicationID" ]; ] ;
rr:predicateObjectMap [ rr:predicateMap [ rr:constant CSV:publicationtitle ] ; rr:objectMap [ rr:column "PublicationTitle" ]; ] ;
rr:predicateObjectMap [ rr:predicateMap [ rr:constant CSV:mediatype ] ; rr:objectMap [ rr:column "MediaType" ]; ] ;
rr:predicateObjectMap [ rr:predicateMap [ rr:constant CSV:publicationtype ] ; rr:objectMap [ rr:column "PublicationType" ]; ] ;
rr:predicateObjectMap [ rr:predicateMap [ rr:constant CSV:mediatitle ] ; rr:objectMap [ rr:column "MediaTitle" ]; ] ;
rr:predicateObjectMap [ rr:predicateMap [ rr:constant CSV:mediapublisher ] ; rr:objectMap [ rr:column "MediaPublisher" ]; ] ;
rr:predicateObjectMap [ rr:predicateMap [ rr:constant CSV:mediaeditors ] ; rr:objectMap [ rr:column "MediaEditors" ]; ] ;
rr:predicateObjectMap [ rr:predicateMap [ rr:constant CSV:mediavolinfo ] ; rr:objectMap [ rr:column "MediaVolInfo" ]; ] ;
rr:predicateObjectMap [ rr:predicateMap [ rr:constant CSV:publicationyear ] ; rr:objectMap [ rr:column "PublicationYear" ]; ] ;
rr:predicateObjectMap [ rr:predicateMap [ rr:constant CSV:publicationnoofpages ] ; rr:objectMap [ rr:column "PublicationNoOfPages" ]; ] ;
rr:predicateObjectMap [ rr:predicateMap [ rr:constant CSV:publicationpagesinmedium ] ; rr:objectMap [ rr:column "PublicationPagesInMedium" ]; ] ;
rr:predicateObjectMap [ rr:predicateMap [ rr:constant CSV:publicationfilename ] ; rr:objectMap [ rr:column "PublicationFileName" ]; ] ;
rr:predicateObjectMap [ rr:predicateMap [ rr:constant CSV:publicationcomments ] ; rr:objectMap [ rr:column "PublicationComments" ]; ] ;
rr:predicateObjectMap [ rr:predicateMap [ rr:constant CSV:publicationrelatedurl ] ; rr:objectMap [ rr:column "PublicationRelatedURL" ]; ] ;
rr:predicateObjectMap [ rr:predicateMap [ rr:constant CSV:publicationrelatedurltext ] ; rr:objectMap [ rr:column "PublicationRelatedURLText" ]; ] ;
rr:predicateObjectMap [ rr:predicateMap [ rr:constant CSV:publicationlocation ] ; rr:objectMap [ rr:column "PublicationLocation" ]; ] ;
rr:predicateObjectMap [ rr:predicateMap [ rr:constant CSV:publicationpuburl ] ; rr:objectMap [ rr:column "PublicationPubURL" ]; ] ;
rr:predicateObjectMap [ rr:predicateMap [ rr:constant CSV:displayonmlkd ] ; rr:objectMap [ rr:column "DisplayOnMLKD" ]; ] ;
rr:predicateObjectMap [ rr:predicateMap [ rr:constant CSV:displayoniskp ] ; rr:objectMap [ rr:column "DisplayOnISKP" ]; ] ;
rr:predicateObjectMap [ rr:predicateMap [ rr:constant CSV:publishonweb ] ; rr:objectMap [ rr:column "PublishOnWeb" ]; ] .

<#TriplesMapReferences_csv> a rr:TriplesMap; rr:logicalTable [ rr:tableSchema "CSV" ; rr:tableOwner "DBA" ; rr:tableName "References_csv" ]; 
rr:subjectMap [ rr:termtype "IRI"  ; rr:template "http://localhost:8890/CSV/references_csv/ID={ID}"; rr:class CSV:References_csv; rr:graph <http://localhost:8890/CSV#> ];
rr:predicateObjectMap [ rr:predicateMap [ rr:constant CSV:id ] ; rr:objectMap [ rr:column "ID" ]; ] ;
rr:predicateObjectMap [ rr:predicateMap [ rr:constant CSV:refid ] ; rr:objectMap [ rr:column "RefID" ]; ] ;
rr:predicateObjectMap [ rr:predicateMap [ rr:constant CSV:refpaperid ] ; rr:objectMap [ rr:column "RefPaperID" ]; ] ;
rr:predicateObjectMap [ rr:predicateMap [ rr:constant CSV:refdetails ] ; rr:objectMap [ rr:column "RefDetails" ]; ] ;
rr:predicateObjectMap [ rr:predicateMap [ rr:constant CSV:refyear ] ; rr:objectMap [ rr:column "RefYear" ]; ] .

<#TriplesMapRights_csv> a rr:TriplesMap; rr:logicalTable [ rr:tableSchema "CSV" ; rr:tableOwner "DBA" ; rr:tableName "Rights_csv" ]; 
rr:subjectMap [ rr:termtype "IRI"  ; rr:template "http://localhost:8890/CSV/rights_csv/ID={ID}"; rr:class CSV:Rights_csv; rr:graph <http://localhost:8890/CSV#> ];
rr:predicateObjectMap [ rr:predicateMap [ rr:constant CSV:id ] ; rr:objectMap [ rr:column "ID" ]; ] ;
rr:predicateObjectMap [ rr:predicateMap [ rr:constant CSV:publicationid ] ; rr:objectMap [ rr:column "PublicationID" ]; ] ;
rr:predicateObjectMap [ rr:predicateMap [ rr:constant CSV:authorid ] ; rr:objectMap [ rr:column "AuthorID" ]; ] ;
rr:predicateObjectMap [ rr:predicateMap [ rr:constant CSV:authororder ] ; rr:objectMap [ rr:column "AuthorOrder" ]; ] .
示例图IRIs和链接数据实体URI 名为Graph IRIs的RDF文档: 我尝试使用以下查询查看所有结果以进行检查:

SELECT *
FROM <http://localhost:8890/CSV>
WHERE {?s ?o ?p}
上面的查询返回的是空的,只有3个标题为s、o、p的空列

问题:
因此,基于上述结果,我如何找到我的图形存储的位置,以及我应该在Virtuoso端点上使用什么SPARQL查询来查看我的结果?

您在查询中犯了一个小错误

URI中的所有标点符号都是重要的,您的图形名称列表显示http://localhost:8890/CSV 但你已经问过了http://localhost:8890/CSV -注意丢失的标志

您需要修改查询,如下所示:

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

请注意,我还将变量顺序更改为?s?p?o而不是?s?o?p,这没有什么区别,因为变量名称是用户定义的,但如果选择图形中的所有三元组,则通常使用?s?p?o,因为名称对应于主题,三元组的谓词和对象

好的,我认为这确实是我的问题,但现在我有以下错误:Virtuoso 42000错误SR186:没有权限执行用户ID为106、组ID为106的dpipe DB.DBA.RL_I2ID SPARQL查询:定义sql:big data const 0输出格式:text/html选择*从何处{s?p?o}在我看来,我需要授予用户一些特权。但我不知道我对这一点还相当陌生:/@sokras这是一个不同的问题。堆栈溢出不仅仅是让问题得到回答,而是让未来的人们能够找到答案。请把你的新问题当作一个新问题来问,因为如果人们隐藏在评论中,他们就找不到它或它的答案。哦,对不起,我没有意识到。我将创建一个新的@RobV如何查看我为每个表创建的每个图形?我的意思是,在“从何处”链接上,我应该仅查看为“出版物”表制作的图表吗?@sokras这又是一个不同的问题,因此请询问它作为将来的参考。。。有关的问题通常最好在、或通过以下方式提出:。
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/
SELECT *
FROM <http://localhost:8890/CSV>
WHERE {?s ?o ?p}
SELECT *
FROM <http://localhost:8890/CSV#>
WHERE {?s ?p ?o}