开放翻译环境(OTE)REST API客户端库。
项目描述
OTELib
OTELib是在OTEAPI之上构建的一个小型的Python库,它提供了一个简单且Pythonic的接口,用于访问REST服务。
它使得基于管道和过滤器设计模式的管道配置、设置和运行变得非常简单。
内容
概述
OTEAPI提供了一种REST API,可以将一系列微服务连接成一个流水线,以非常灵活和可重用的方式连接仿真工具到数据源。OTELib提供了一种简单的Python接口来访问OTEAPI,使得从用户应用程序和Python脚本/笔记本中利用OTEAPI变得容易,如图所示。
图:概述展示了OTELib如何通过简单的Python接口被用户应用程序用来访问数据和仿真工具。
OTEAPI利用管道和过滤器软件设计模式将连接到外部数据资源、映射到公共本体(以实现互操作性)、数据处理和运行仿真等过程分离成一系列可重用的组件。这种设计提供了非常高的灵活性,由于其模块化,易于维护,非常适合用于具有分布式和松散耦合团队的项目。
在OTELib中,管道和过滤器由类表示——一个管道类和目前4个通用的过滤器类。它使用策略软件设计模式来指定底层的微服务。
-
管道:用类型表示数据,将一个过滤器的输出连接到另一个过滤器的输入。除了连接过滤器之外,管道还可能有一些附加功能,包括(尚未实现)
- 提供数据和查询的访问。
- 执行授权检查。
- 提供缓存以避免不必要的重复操作。为了避免对缓存的不授权访问,缓存可能使用访问令牌进行授权。如果需要,可以支持不同的缓存策略。
Pipes将由OTELib透明创建,因此作为用户,您通常不会与管道交互。
-
数据资源:是一个过滤器,用于连接到外部数据资源,并允许用户执行查询、从资源读取或写入资源等操作。在合理的地方,一些数据资源过滤器可能实现完整的CRUD(创建、读取、更新和删除)支持。
如果数据资源过滤器从资源中读取,其
get()
方法将使用给定数据模型(可能即时生成)并按照该模型存储获取的内容。它将返回内部数据表示的引用。 -
映射:是一个过滤器,用于将描述输入的数据模型映射到公共本体中的概念。映射本身可以在过滤器配置期间提供,也可以从三联体存储中检索。
-
数据过滤器:是一个用于快速数据处理(如简单的数据转换)的过滤器。在输出生成之前,
get()
方法不会返回。 -
转换:是一个用于更耗时数据处理(如仿真或要求严格的数据转换)的过滤器。它支持轮询和等待转换完成。
如何使用OTELib
假设您想设置一个如图所示的简单流水线。
图:通过管道连接三个过滤器(数据资源过滤器、映射过滤器和转换过滤器)的通用流水线。
- 数据资源过滤器连接到一个数据资源,并使用数据模型表示从该资源中选择的内容。
- 映射过滤器将数据模型映射到本体中,使得从数据资源读取的数据具有完全的语义。
- 转换过滤器执行数据转换,这可能涉及仿真。结果通常将是另一个数据模型的一个实例。
要设置管道,您首先需要使用OTEClient
连接到正在运行的OTE服务器。
from otelib import OTEClient
client = OTEClient('http://localhost:8080')
然后,您必须配置您想使用的过滤器实例。
data_resource = client.create_dataresource(
downloadUrl="https://jpeg.org/images/jpegsystems-home.jpg",
mediaType="image/jpeg",
)
mapping = client.create_mapping(mappingType="triples")
transformation = client.create_transformation(transformation_type="celery/remote")
在您能够轻松优雅地将它们组合成管道之前。
pipeline = data_resource >> mapping >> transformation
注意,这还会透明地创建连接过滤器的管道。
要执行管道,只需调用其get()
方法。
pipeline.get()
它将返回最后转换结果的引用。请注意,在调用管道的get()
方法之前不会读取任何数据。
管道可以重用和分支。
filter2 = client.create_filter(
filterType="filter/crop",
configuration={"crop": [0, 0, 200, 200]},
)
filter3 = client.create_filter(filterType="filter/blur")
pipeline2 = pipeline >> filter2
pipeline3 = pipeline >> filter3
注意:
filter/blur
过滤器策略不存在于核心OTEAPI包中。此策略应来自另一个插件包。
以及合并。
pipeline4 = pipeline2 + pipeline3
会话
通过调用其get()
方法执行管道,这将调用最后一个过滤器的get()
方法,该过滤器将调用其输入管道的get()
方法,依此类推。因此,管道是向上游执行的,从后往前,而数据是向下游通信的。
会话的目的是允许用户或下游过滤器提供被上游过滤器消耗的配置。它作为管道中所有管道和过滤器共享的公共字典实现。如果您在调用get()
方法时未提供会话,将创建一个新的会话并将其传递到上游。
许可证
OTELib是在版权© SINTEF下以MIT许可证发布的。
致谢
OTEAPI核心得到了以下项目的支持
-
OntoTrans(2020-2024)得到了欧盟地平线2020研究和创新计划的支持,项目编号为862136。
-
VIPCOAT(2021-2025)得到了欧盟地平线2020研究和创新计划——DT-NMBP-11-2020材料建模开放创新平台的支持,项目编号为952903。
-
OpenModel(2021-2025)得到了欧盟地平线2020研究和创新计划——DT-NMBP-11-2020材料建模开放创新平台的支持,项目编号为953167。
项目详情
下载文件
下载您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。
源分发
构建分发
otelib-0.4.1.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 0e13ebf1e9f13675d0b4e9f1da67a856c629bcd3e269c06f3876c90ae771f5a6 |
|
MD5 | acc337e05ebef06b6dfc32d9ef56612f |
|
BLAKE2b-256 | 7a5301140b6c82f42cf6d03f2dc158dd960faa1c2fd6cc1e6a466783bb8beb64 |
otelib-0.4.1-py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 62badde58311dff440bbe9d09f9f6b7da2bbaa9bbdf4f1638cc4d29a1b0b06f8 |
|
MD5 | d4a8d1d847a12e15eedf82ccce9d6855 |
|
BLAKE2b-256 | b638ced20b0676b122b941c391b274c6ff73471349fdf2ab9f2da7f053974379 |