在 Virtuoso 服务器中加载 SQL 数据库

Load SQL DB in Virtuoso Server

通过 Virtuoso 将 DB 转换为 RDF 的策略是将 OWL class 映射到每个 table,但实际上例如 Person table 可能分为两个 table "Basic info and extended" 出于数据库设计考虑,许多 table 也是中间 table 例如多对多方法 "Person has many diseases and the disease exist in many person".

所以我必须在通过 Virtuoso 将其转换为 RDF 之前更改数据库设计,例如 "merge Person tables into one and other changes"??

谢谢

这个问题也大致在同一时间在其他几个地方被问到,包括 public OpenLink Support Forums, the Virtuoso Users mailing list, a confidential OpenLink Support Case(link 进入案例系统,而不是案例本身),

答案包括:

  • 将远程SQLTABLEslink导入Virtuoso商业版后,即可创建本地VirtuosoSQLVIEW其中 JOINs TABLEsCOLUMNs 要映射到给定的 OWL class。 Virtuoso 可以自动生成关联数据 VIEW,然后您可以将通用 class 和 属性 标识符更改为您想要的利基 ontology.

  • 如您所知,Virtuoso 自动生成的关联数据 VIEWs 包括来自 SQL TABLEsVIEWs 的通用 ontology你选。然后,您可以使用 sameAssimilarClassequivalentClass 在您想要的细分市场 ontology(例如 FOAF)和这个通用 ontology 之间创建一个 "mapping ontology" 、similarPropertyequivalentProperty 和类似的映射属性。

  • 关于您对主键与外键的担忧——这种 table 特定的标识符应该 link 与 owl:sameAs 关系结合——因为,对于例如,主键值 1234 来自 Users table UserID 列和外键值 1234 来自 Users-Extended table UserID coreference(即引用)同一个实体。这些列标识符应 link 与 owl:equivalentProperty