跳转到主要内容

基于LODE的Python OWL本体文档工具。

项目描述

https://rawcdn.githack.com/RDFLib/pyLODE/master/img/pyLODE-250.png https://badge.fury.io/py/pyLODE.svg

pyLODE

基于LODE的Python OWL本体文档工具。

除了制作可读性强的本体网页外,pyLODE还通过仅对良好文档化的输入产生良好结果来鼓励本体注释的最佳实践!pyLODE在下面的部分中定义了它认为的“良好文档化”,例如 pyLODE理解的内容

新模式:在3.1.0版本中,pyLODE现在有一个名为supermodel的新模式,除了现有的ontpub模式之外。这种新模式允许文档化多部分模型的配置文件和模块。有关更多信息,请参阅supermodel.md


关于v 3.x变更的说明

这是pyLODE版本3.0.1,它与pyLODE 2.x版本大不相同。它尚未处理pyLODE 2.13.2所做的所有各种“配置文件”,例如SKOS“词汇”和配置文件词汇“配置文件”,它只处理OWL“本体”,也不处理所有特殊数据类型,例如JSON文字,但它以更直接的方式生成HTML,代码也更为高效和易于维护,这就是它被制作出来的原因。

v 3.x最终将赶上v 2.13.2的所有功能。

要访问pyLODE的2.13.2版本,请从PyPI下载它,从GitHub检查它,或通过在线服务访问。


内容

  1. 快速入门

  2. 使用

  3. pyLODE理解的内容

  4. 示例

  5. 安装

  6. 测试

  7. 与LODE的区别

  8. 发布

  9. 许可

  10. 引用

  11. 合作

  12. 联系方式

快速入门

实时OWL文档环境工具(LODE)是一个知名的(在语义网领域)基于Java和XSLT的工具,用于生成人类可读的HTML文档,用于OWL和RDF本体。该工具现在已经有些过时(老式HTML,使用像XSLT这样的旧技术)并且其(《在线版本》)并不总是在线的。

此工具是LODE功能的完整重新实现,使用Python和Python的RDF操作模块rdflib。要文档化的本体使用rdflib进行解析和检查,并直接使用Python的dominate包生成HTML。

使用

该工具可以用多种方式使用

  • BASH命令行脚本
    • bin/中的pyLODE.sh

  • Windows EXE
    • bin/中的pyLODE.exe

  • Mac可执行文件
    • bin/中的pyLODE

  • Python脚本
    • cli.py或模块

  • 本地作为服务
    • 通过流行的Falcon框架

    • 请参阅主文件夹中的server.py

  • 在线作为服务

命令行参数

BASH、Windows EXE和Python脚本方法都使用相同的命令行参数

usage: cli.py [-h] [-v] [-o OUTPUTFILE] [-c {true,false}] input

positional arguments:
    input                 Input file location or URL

optional arguments:
    -h, --help          show this help message and exit
    -v, --version       show program's version number and exit
    -o OUTPUTFILE,
    --outputfile OUTPUTFILE
                        A name you wish to assign to the output file. Will be
                        postfixed with .html if not already added. If no
                        output file is given, output will be printed to screen
    -c {true,false},
    --css {true,false}
                        Whether (true) or not (false) to include CSS within an
                        output HTML file.
基本用法
  • 作为Python脚本

  • 在此目录中执行

python pylode examples/ontpub/minimal.ttl -o minimal.html

这将在此目录中生成文件minimal.html,应与目录examples/minimal.html中的文件完全匹配。

  • 作为docker容器

构建docker镜像

docker build -t pylode:latest .

复制示例目录,将其挂载到容器中,并在容器中运行cli.py

docker  run  --mount 'type=bind,src=<ttl_directory>,target=/app/pylode/data' pylode:latest  python3.10 pylode/cli.py data/<ttl_file> -o data/<html_file>

注意:<ttl_directory>必须是绝对路径

模块使用

OWL

from pylode.profiles.ontpub import OntPub

# initialise
od = OntPub(ontology="some-ontology-file.ttl")

# produce HTML
html = od.make_html()

# or save HTML to a file
od.make_html(destination="some-resulting-html-file.html")

SKOS

from pylode.profiles.vocpub import VocPub

# initialise
od = VocPub(ontology="some-ontology-file.ttl")

# produce HTML
html = od.make_html()

# or save HTML to a file
od.make_html(destination="some-resulting-html-file.html")

这将从some-ontology-file.ttl读取并在此目录中生成文件some-resulting-html-file.html

示例

examples/目录包含多个由pyLODE此版本生成的RDF和HTML文件的配对。

您还可以在网上查看这些示例文件的渲染版本

pyLODE理解的内容

pyLODE了解定义本体(owl:Ontology)以及通常在其中找到的主要元素,例如类(owl:Classrdf:Class)和属性(rdf:Propertyowl:ObjectProperty等)。

要查看pyLODE当前支持的本体、类和RDF属性文档的属性,只需查看rdf_elements.py文件。所有支持的元素属性都列在那里。

pyLODE不会将您可以在RDF中描述的所有内容都翻译成HTML!这是一个有意识的设计选择,以确保生成某种传统的文档本体风格。然而,可以通过创建此项目的Issue tracker上的问题来支持新的属性和本体模式。

虽然它确实了解实例数据,例如命名个体,但它并不是为了文档化包含类实例的大型本体而设计的。

关于代理的说明

pyLODE可以理解简单和复杂的代理对象。如果您真的必须,也可以使用简单的字符串属性,如dc:contributor "Nicholas J. Car",但更好的做法是利用真正的链接数据表示,例如具有网页地址、电子邮件、隶属关系、ORCID等的复杂代理对象。

<ontology_x>
    dct:creator [
        sdo:name "Nicholas J. Car" ;
        sdo:identifier <http://orcid.org/0000-0002-8742-7730> ;
        sdo:affiliation [
            sdo:name "SURROUND Australia Pty Ldt." ;
            sdo:url "https://surroundaustralia.com"^^xsd:anyURI ;
        ] ;
    ] ;
.

请参阅rdf_elements.py:AGENT_PROPS中的所有属性列表,以查看pyLODE可以处理的代理属性。

安装

pyLODE 已在 PyPI 上发布,因此您可以使用 pip 正常安装

pip install pylode

测试

最好禁用警告以隐藏 RDFLib 库中无意义的警告。

python -m pytest tests --disable-warnings

与LODE的区别

  • 命令行访问

    • 您可以在自己的桌面上使用它,因此不需要我为使用维护实时服务

  • 使用现代简单的 HTML

    • 无 JavaScript:pyLODE 生成静态 HTML 页面

  • 适用于更广泛的本体选项,例如

    • schema.org 的 domainIncludes & rangeIncludes 属性

  • 更好的代理表示

  • 更智能的 CURIES

    • pyLODE 缓存并查找知名前缀以创建更多/更好的 CURIES

    • 它通过 CURIE 化所有找到的 URI 而不是直接打印它们来尝试智能地呈现 CURIE

  • 参考本体属性标签

    • pyLODE 缓存约 10 个知名本体(RDFS、SKOS 等),这些本体属性常用于本体文档。在这些属性中使用时,将使用背景本体的标签

  • 积极开发

    • pyLODE 自 2019 年中以来一直在积极开发,并且仍然在积极开发 - 它不是停滞不前

    • 它将在可预见的未来得到改进,以适应更多事物

    • 如果需要,将处理最近的本体文档计划,如 MOD Ontology

发布

pyLODE 在持续和不断地开发中。当前的开发者已经制定了增强功能的路线图,这里给出,但是,由于这是一个开源项目,新开发者可能加入 pyLODE 开发社区,并改变/添加开发优先级。

当前版本

截至 2024 年 7 月,当前版本为 3.2.0

发布计划

pyLODE 发布计划

版本

日期

描述

3.2.0

2024 年 27 月 7 日

依赖项更新和合并了多个小型 PR

3.1.4

2024 年 4 月 6 日

修复 load_ontology 函数的数据输入检测

3.1.3

2024 年 3 月 18 日

放宽 rdflib 版本约束

3.1.2

2024 年 3 月 18 日

放宽 httpx 版本约束

3.1.1

2024 年 2 月 19 日

修复发布

3.1.0

2024 年 2 月 19 日

添加超级模型模式 - 支持文档化配置文件和模块

3.0.5

2023 年 4 月 27 日

小修补

3.0.4

2022 年 5 月 24 日

使用 Poetry

3.0.2

2022 年 5 月 24 日

支持预格式化的 skos:example literals

3.0.1

2022 年 1 月 6 日

直接使用 dominate 生成 HTML;更易于维护和扩展

2.13.2

2021 年 12 月 21 日

将 RDFlib 更新到 6.1.1,改进测试以正确使用 pytest

2.10.0

2021 年 5 月 24 日

更新 Windows EXE 构建过程,简化版本控制

2.9.1

2021 年 4 月 28 日

支持 ASCIIDOC 格式(仅限 OntDoc 配置文件)

2.8.11

2021 年 4 月 28 日

仅为 PyPI 的其他更改

2.8.10

2021 年 4 月 27 日

仅为 PyPI 的其他更改

2.8.9

2021 年 4 月 27 日

仅为 PyPI 的增强功能

2.8.8

2021 年 4 月 27 日

修复了几个小错误,自动从 Git 标签生成版本号

2.8.6

2021 年 2 月 23 日

修复字符编码问题,更新示例,新的测试文件样式 - 每个问题

2.8.5

2021 年 1 月 5 日

对 Falcon 服务器部署选项进行了一些小改进

2.8.3

2020 年 7 月 3 日

仅打包错误修复

2.7

2020 年 7 月 1 日

对新的配置文件创建进行了大量重构,以便更容易创建

2.6

2020 年 6 月

支持 PROF 配置文件以及分类法和本体

2.4

2020 年 5 月 27 日

在 2.0 版本的基础上进行了一些改进

2.0

2020 年 4 月 18 日

包括多个配置文件 - OWP 和 vocpub

1.0

2019 年 12 月 15 日

初始工作版本

许可

本代码使用BSD 3-Clause许可证授权。有关许可证详情,请参阅许可证文件。注意以下引用,以示归属。

引用

如果您使用pyLODE,请在发布的HTML页面顶部左侧保留pyLODE标志并带有指向此页面的超链接。

合作

维护者欢迎任何合作。

如果您有建议,请通过以下联系方式发送电子邮件或在此存储库的问题跟踪器中留下问题。

但您能为我们所做的最好的事是为我们创建一个Pull Request!

联系方式

作者:
Nicholas Car
数据架构师

项目详情


下载文件

下载适用于您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源分布

pylode-3.2.0.tar.gz (676.8 kB 查看哈希)

上传时间

构建分布

pylode-3.2.0-py3-none-any.whl (693.7 kB 查看哈希)

上传时间 Python 3

由以下机构支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面