使用语义本体将关系数据库转换为RDF

使用语义本体将关系数据库转换为RDF,rdf,sparql,semantic-web,ontology,virtuoso,Rdf,Sparql,Semantic Web,Ontology,Virtuoso,我最近一直在尝试使用Virtuoso来描述具有特定语义本体的给定RDB(关系数据库)。我想使用的本体是:dc、foaf、dct、bibo、cito(我是新手,所以我不太明白dc和dct是不是一回事) 我一直在遵循本教程,了解如何做到这一点: 我的问题是,在本教程中,类是从零开始创建的,而我需要使用现有的类。不幸的是,我也不允许发布本体的链接。 我特别想描述: 包含以下列的“作者”表(已发表论文的作者): AuthorID、AuthorName、AuthorMiddleName、AuthorUR

我最近一直在尝试使用Virtuoso来描述具有特定语义本体的给定RDB(关系数据库)。我想使用的本体是:dc、foaf、dct、bibo、cito(我是新手,所以我不太明白dc和dct是不是一回事)
我一直在遵循本教程,了解如何做到这一点:
我的问题是,在本教程中,类是从零开始创建的,而我需要使用现有的类。不幸的是,我也不允许发布本体的链接。
我特别想描述:

包含以下列的“作者”表(已发表论文的作者):
AuthorID、AuthorName、AuthorMiddleName、AuthorURL、authorMail、部门

“关键字”表(出版物的关键字),列为:
PublicationID、关键字(字符串类型)、关键字顺序(整数类型)

包含以下列的“出版物”表:
PublicationID、PublicationTitle、MediaType(字符串类型)、PublicationType(整数)、MediaTitle、MediaPublisher、MediaEditor、MediaVolInfo、PublicationYear、PublicationNoOffPages、PublicationPagesInMedium、PublicationFileName、PublicationComments、PublicationRelatedURL、PublicationLocation、PubUrl、,DisplayOnMLKD(整型)、DisplayOnISKP(整型)、DisplayOnWeb(整型)

“参考资料”表(出版物参考资料),列为:
RefID,RefPaperID,RefDetails,RefYear

包含以下列的“权限”表(出版物权限):
PublicationID、AuthorID、AuthorOrder

我试着做了一些这方面的工作,但我想我可能有一些问题。
例如,我目前正试图表示“出版物”表,在我的文件中,我有以下内容:

@prefix dc:      <http://purl.org/dc/elements/1.1/> .
@prefix db:      <http://lpis.csd.auth.gr/> .
@prefix foaf:    <http://xmlns.com/foaf/0.1/> .
@prefix cito:    <http://purl.org/net/cito/> .
@prefix rdfs:    <http://www.w3.org/2000/01/rdf-schema#> .
@prefix dct:     <http://purl.org/dc/terms/> .
@prefix bibo:    <http://purl.org/ontology/bibo/> .
@prefix owl:     <http://www.w3.org/2002/07/owl#> .
@prefix xsd:     <http://www.w3.org/2001/XMLSchema#> .
@prefix map:     <http://lpis.csd.auth.gr#> .
@prefix rdf:     <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix vocab:   <http://localhost:2020/vocab/resource/> .
@prefix atr: <http://localhost:8890/rdfv_pt/schemas/authors#> .
@prefix kwrd: <http://localhost:8890/rdfv_pt/schemas/keywords#> .
@prefix pub: <http://localhost:8890/rdfv_pt/schemas/publications#> .
@prefix ref: <http://localhost:8890/rdfv_pt/schemas/references#> .
@prefix rig: http://localhost:8890/rdfv_pt/schemas/rights#> .

pub:Publication a rdfs:Class 
rdfs:label "Publication" ;
rdfs:comment "Publication Class" .

pub:PublicationID a dc:identifier .

pub:PublicationTitle a dc:title .

pub:MediaType a rdf:Property ;
rdfs:domain pub:Publication;
rdfs:range xsd:string ;
rdfs:label "Media type" .
@前缀dc:。
@前缀db:。
@前缀foaf:。
@前缀cito:。
@前缀rdfs:。
@前缀dct:。
@前缀bibo:。
@前缀owl:。
@前缀xsd:。
@前缀映射:。
@前缀rdf:。
@前缀vocab:。
@前缀atr:。
@前缀kwrd:。
@前缀发布:。
@前缀ref:。
@前缀钻机:http://localhost:8890/rdfv_pt/schemas/rights#> .
发布:发布a rdfs:Class
rdfs:标签为“出版物”;
rdfs:注释“发布类”。
pub:PublicationID是dc:标识符。
pub:PublicationTitle a dc:title。
pub:mediatypeardf:Property;
rdfs:域发布:发布;
rdfs:range xsd:string;
rdfs:标签为“媒体类型”。
问题1: 所以这只是一个片段,但我这里的问题是如何表达“发布”是现有本体的一个类?正如您在上面看到的,我从零开始定义类“Publication”

问题2(更重要): 正如您在教程中所看到的,virtuoso工具中导入的表以某种方式映射到特定的URL。但是,我无法找到导入到virtuoso的每个表的URL,我只是放置了一些占位符URL(这些是localhost URL)。如何找到导入到virtuoso的每个表的URL

任何信息都非常有用,谢谢


PPS。这是我的第一篇文章,请原谅我的格式错误。

这可能太宽泛了,因为你问了几个不同的问题,并且没有提供足够的信息让我们清楚地了解你到底想做什么。也就是说

问题1: 这只是一个片段,但我的问题是如何表达 “发布”是现有本体的一个类吗?尽你所能 如上所述,我从零开始定义“Publication”类

如果使用普通RDF(不使用OWL或其他一些本体语言)执行此操作,则只需使用本体中发布类的URI。例如,如果您正在描述某些资源
http://.../pub73
来自您的数据,某些本体中的发布类是
http://publication-ontology/Publication
,您只需说:

<http://.../pub73> rdf:type <http://publication-ontology/Publication>
随后,他们在清单5中定义了一个映射,该映射定义了如何从自动映射中获取此类实例:

graph <http://localhost:8890/rdfv_demo/testdata/products#>
subject prd:product_iri(OPLWEB.DBA.PRODUCT.PRODUCT_ID)
predicate rdf:type
object prd:Product
要断言数据行对应于某个其他类的实例,只需在对应的清单5中使用该类的URI即可。例如,要制作
bibo:Document
类型的东西,您可以执行以下操作:

prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
prefix bibo: <…>

graph <…>

subject …
predicate rdf:type
object bibo:Document
前缀rdf:
前缀bibo:
图表
主题…
谓词rdf:type
对象bibo:文档

这可能太宽泛了,因为您提出了几个不同的问题,并且没有提供足够的信息让我们清楚地了解您到底在做什么。也就是说

问题1: 这只是一个片段,但我的问题是如何表达 “发布”是现有本体的一个类吗?尽你所能 如上所述,我从零开始定义“Publication”类

如果使用普通RDF(不使用OWL或其他一些本体语言)执行此操作,则只需使用本体中发布类的URI。例如,如果您正在描述某些资源
http://.../pub73
来自您的数据,某些本体中的发布类是
http://publication-ontology/Publication
,您只需说:

<http://.../pub73> rdf:type <http://publication-ontology/Publication>
随后,他们在清单5中定义了一个映射,该映射定义了如何从自动映射中获取此类实例:

graph <http://localhost:8890/rdfv_demo/testdata/products#>
subject prd:product_iri(OPLWEB.DBA.PRODUCT.PRODUCT_ID)
predicate rdf:type
object prd:Product
要断言数据行对应于某个其他类的实例,只需在对应的清单5中使用该类的URI即可。例如,要制作
bibo:Document
类型的东西,您可以执行以下操作:

prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
prefix bibo: <…>

graph <…>

subject …
predicate rdf:type
object bibo:Document
前缀rdf:
前缀bibo:
图表
主题…
谓词rdf:type
对象bibo:文档

我认为您的问题是从遵循一份相当古老的白皮书作为指南开始的,而不是从。我鼓励您通过上述渠道跟进后者。

我认为您的问题是从一个相当老的问题开始的