本体猫头鹰和Excel数据

问题描述

我不是程序员。我有一个猫头鹰格式的本体。我还有一个Excel工作表(它包含带有选定本体的标头的数据数字数据)。现在,我必须将excel标头与本体框架连接起来,并需要从本体中提取excel数据中的链接

解决方法

我是否正确理解您拥有RDF知识库,其架构由OWL本体描述,并且您希望将此数据从RDF导入到电子表格中?

将RDF转换为电子表格最直接的情况是SPARQL SELECT查询。

先决条件

如果应用程序或端点中没有数据可直接查询(例如,Protégé可能具有用于SPARQL查询的小部件),则有三个先决条件,否则请跳过这些先决条件:

1。导出/转换数据

如果您将数据存储在无法执行SPARQL查询的应用程序中,或者使用OWL / XML之类的语法存储为文件,则需要先进行转换,因为大多数SPARQL端点不理解此格式,但是需要RDF序列化(例如N-Triples,RDF Turtle或RDF / XML),因此您需要以其中一种格式导出数据。

2。设置SPARQL端点

现在您可以安装例如Virtuoso SPARQL端点,可以在本地或在服务器上,也可以使用其他为您提供访问凭据的端点。 安装可能会花费一些时间,但是如果更容易,则可以使用Docker映像。

3。上载数据

在Virtuoso SPARQL中,您现在可以在“链接的数据”->“四方存储上载”下的导体中上载本体和实例数据。

查询

我不知道有任何现有工具可以根据给定的Excel工作表模板自动映射本体并下载实例,因此我建议手动创建SPARQL SELECT query

示例

假设您的Excel工作表具有标题行“ name”,“ age”和“ height”(您说您具有数字数据),并且本体在RDF Turtle中定义了一个person类:

:Person a owl:Class;
        rdfs:label "Person"@en.

:age a owl:DatatypeProperty;
  rdfs:label "age"@en;
  rdfs:domain :Person;
  rdfs:range xsd:nonNegativeInteger.

:height a owl:DatatypeProperty;
  rdfs:label "height"@en;
  rdfs:domain :Person;
  rdfs:range xsd:decimal.

现在您可以编写以下SPARQL SELECT查询:

PREFIX :<http://my.prefix/>
SELECT ?person ?age ?height
{
 ?person a :person;
         :age ?age;
         :height ?height.
}

这将生成一个结果表,您可以用不同的格式获得该表。选择CSV电子表格格式,然后可以将其导入MS Excel,据我解释,这可以解决您的问题。