集成的CSV到RDF转换器,使用CSVW和纳米出版物
项目描述
Web上的CSV (CoW)
CoW是一个将.csv文件转换为关联数据的工具。具体来说,CoW是一个集成的CSV到RDF转换器,使用W3C标准CSVW进行丰富的语义表格规范,以纳米出版物作为输出RDF模型。CoW可以将任何CSV文件转换为RDF数据集。
特性
- 基于Jinja模板引擎的CSVW兼容的架构。
- 利用多线程和多核架构进行高效实现。
- 可作为Docker镜像、命令行界面(CLI)工具和库使用。
文档和支持
用户文档请参阅基本介绍视频和GitHub维基。以下提供技术细节。如果您遇到问题,请报告。也欢迎创建pull请求。
快速入门指南
运行CoW有两种方式。最快的是通过Docker,更灵活的是通过PIP。
Docker镜像
包括CoW在内的几个数据科学工具都可以通过Docker镜像获得。
安装
首先,在您的计算机上安装Docker虚拟化引擎。有关如何操作的说明可以在官方Docker网站上找到。在Docker终端中使用以下命令
# docker pull wxwilcke/datalegend
在这里,#-符号指的是您的机器上具有管理员权限的用户终端,不是命令的一部分。
成功下载(或“拉取”)镜像后,容器可以按照以下方式运行
# docker run --rm -p 3000:3000 -it wxwilcke/datalegend
现在可以通过在您首选的浏览器中打开http://localhost:3000/wetty来访问虚拟系统,并使用用户名datalegend和密码datalegend进行登录。
有关此Docker镜像的详细说明,请参阅DataLegend Playground。有关使用工具的说明,请参阅下面的用法。
命令行界面(CLI)
对于大多数用户来说,命令行界面(CLI)是使用CoW的首选方式。
安装
检查您的设备是否已安装最新版本的Python。对于Windows/MacOS,我们建议通过官方发行页面安装Python。
在您的系统上安装CoW的推荐方法是pip3
pip3 install cow-csvw
您可以使用以下命令升级您目前安装的版本
pip3 install cow-csvw --upgrade
可能的安装问题
- 权限问题。您可以通过在用户空间中安装CoW来解决它们:
pip3 install cow-csvw --user
。 - 找不到命令:请确保您的二进制用户目录(通常是MacOS中的
/Users/user/Library/Python/3.7/bin
或Linux中的/home/user/.local/bin
)已在您的PATH中(在MacOS中:/etc/paths
)。 - 报告您的问题。
用法
通过输入以下命令启动图形界面
cow_tool
选择一个CSV文件,然后单击build
以生成带有您的映射的名为myfile.csv-metadata.json
的文件(JSON架构文件)。编辑此文件(可选),然后单击convert
将CSV文件转换为RDF。输出应该是一个myfile.csv.nq
RDF文件(默认为nquads)。
命令行界面
通过输入以下命令进行直接的CSV到RDF转换
cow_tool_cli build myfile.csv
这将创建一个名为myfile.csv-metadata.json
的文件(JSON架构文件)。接下来
cow_tool_cli convert myfile.csv
此命令将输出一个名为myfile.csv.nq
的RDF文件(默认为nquads)。
您无需担心JSON文件,除非您想更改元数据架构。为了控制基本URI命名空间、谓词中使用的URI、虚拟列等,请编辑myfile.csv-metadata.json
文件或使用CoW命令。例如,您可以控制输出RDF序列化(例如使用--format turtle
)。请查看下面的选项、GitHub wiki中的示例以及技术文档。
选项
使用--help
查看选项的完整列表
usage: cow_tool_cli [-h] [--dataset DATASET] [--delimiter DELIMITER]
[--quotechar QUOTECHAR] [--encoding ENCODING] [--processes PROCESSES]
[--chunksize CHUNKSIZE] [--base BASE]
[--format [{xml,n3,turtle,nt,pretty-xml,trix,trig,nquads}]]
[--gzip] [--version]
{convert,build} file [file ...]
Not nearly CSVW compliant schema builder and RDF converter
positional arguments:
{convert,build} Use the schema of the `file` specified to convert it
to RDF, or build a schema from scratch.
file Path(s) of the file(s) that should be used for
building or converting. Must be a CSV file.
optional arguments:
-h, --help show this help message and exit
--dataset DATASET A short name (slug) for the name of the dataset (will
use input file name if not specified)
--delimiter DELIMITER
The delimiter used in the CSV file(s)
--quotechar QUOTECHAR
The character used as quotation character in the CSV
file(s)
--encoding ENCODING The character encoding used in the CSV file(s)
--processes PROCESSES
The number of processes the converter should use
--chunksize CHUNKSIZE
The number of rows processed at each time
--base BASE The base for URIs generated with the schema (only
relevant when `build`ing a schema)
--gzip Compress the output file using gzip
--format [{xml,n3,turtle,nt,pretty-xml,trix,trig,nquads}], -f [{xml,n3,turtle,nt,pretty-xml,trix,trig,nquads}]
RDF serialization format
--version show program's version number and exit
库
安装后,CoW可以作为以下库使用
from cow_csvw.csvw_tool import COW
import os
COW(mode='build', files=[os.path.join(path, filename)], dataset='My dataset', delimiter=';', quotechar='\"')
COW(mode='convert', files=[os.path.join(path, filename)], dataset='My dataset', delimiter=';', quotechar='\"', processes=4, chunksize=100, base='http://example.org/my-dataset', format='turtle', gzipped=False)
更多信息
示例
GitHub wiki提供了将CSV转换为关联数据的更多实际示例。
技术文档
CoW的技术文档维护在此GitHub仓库中(),并通过Read the Docs在http://csvw-converter.readthedocs.io/en/latest/发布。
要从源代码构建文档,请切换到docs
目录,并运行make html
。这将生成_build/html
目录中的文档HTML版本。
许可
MIT许可证(见license.txt)
致谢
作者:Albert Meroño-Peñuela,Roderick van der Weerdt,Rinke Hoekstra,Kathrin Dentler,Auke Rijpma,Richard Zijdeman,Melvin Roest,Xander Wilcke
版权:阿姆斯特丹自由大学,乌德勒支大学,国际社会史研究所
CoW由CLARIAH项目开发和维护,并由NWO资助。
项目详情
cow_csvw-2.0.0.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | a762bfb0b1db578bd63bffd670f4a7372e071a75d1cf15393e5fc4c71de09f52 |
|
MD5 | bee7ed0bf5a59c0393e1eb63d3322805 |
|
BLAKE2b-256 | 14246eb7a76f272b61b597627720acdd4507e261e8403f8c18287ee9f0df9b56 |