跳转到主要内容

未提供项目描述

项目描述

RDFrame | SHACL配置文件 | CQL配置文件

关于

此库有两个用途。

  1. X -> SPARQL映射的开发,目前有两种风味
    1. SHACL解释用于显示,+端点定义作为RDF -> SPARQL
    2. CQL 到 SPARQL 即开发人员可以用Python以特定方式实现映射,并可以有一个紧密的REPL过程,包括可视化示例。
  2. 最终用户生成/指定使用上述内容的配置文件。 即用户只需使用Web界面指定配置文件或特定的CQL查询以实现预期结果。

RDFrame GUI组件

Prez SHACL版本

  1. 运行时值 - 在使用例如对象的URI检索信息时指定的数据;容器对象的URI,从中列出成员项;用于分页的limit和offset值。

  2. 端点定义。这指定了从端点返回的对象的类(类),以及有关排序和分页的信息。

    1. 当使用sh:target / sh:select时,可以在sh:select中使用$定义变量。这些值将按优先顺序在运行时填充
      1. 运行时值
      2. 由端点定义指定的默认值。目前,已使用自定义属性来定义默认的limit和offset值。
  3. 配置文件定义。用于指定应返回焦点对象的哪些属性。

  4. SPARQL查询。这是从上述三个输入生成的。

  5. 示例数据。这是任何可以用于测试或演示配置文件/端点定义的RDF数据。

  6. 结果。这是将生成的SPARQL查询应用于示例数据的结果。

CQL版本

描述即将推出 - 可在/cql找到

解决常见用例的模式

当前的SHACL配置文件针对Prez的一组已知用例进行了定制。

1.1 根据容器对象的关系列出对象。

端点定义要求

  1. 容器对象的URI,可以是运行时值。
  2. sh:target / sh:select语句
  3. sh:targetClass

由于使用sh:select作为字符串存在限制,因此需要sh:targetClass。sh:targetClass是生成生成的SPARQL查询的Construct部分所必需的。sh:select子查询仅进行验证和插入 - 没有程序性地提取组件。

在配置文件中指定要包括/排除的焦点对象属性(参见3.1 -> 3.3)。

1.1.1 从焦点节点选择中向查询的CONSTRUCT部分添加三元组

可选地,可以从焦点节点选择中向查询的CONSTRUCT部分添加三元组。要添加的三元组可以通过sh:rule / sh:subject sh:predicate sh:object定义。如果任何这些(sh:subject sh:predicate sh:object)的值是字面量,并且字面量以'?'开头,它将转换为生成的SPARQL查询中的变量。注意:默认情况下,仅从焦点节点选择中包括对象的CLASS。这是唯一提供的机制,用于提供来自用于焦点节点选择的SELECT子查询的附加三元组。可以指定要包括的属性在配置文件中(通过SHACL属性形状)。

1.2 根据类列出对象。

端点定义要求

  1. sh:targetClass - 要列出的对象的类。

在配置文件中指定要包括/排除的焦点对象属性(参见3.1 -> 3.3)。

2.1 根据URI描述对象

端点定义要求

  1. 对象的运行时值,例如:{"object": "http://my-object-uri"}
  2. 在端点定义中使用sh:targetNode "$object"

在配置文件中指定要包括/排除的焦点对象属性(参见3.1 -> 3.3)。

3.1 包括焦点节点的所有属性

包括给定焦点节点的所有直接属性,即作为三元组模式<focus_uri> ?p ?o

似乎没有从SHACL借用相关概念以提供指定从给定焦点节点检索所有谓词值的机制。由于这在显示数据时是一个常见用例,因此为了简洁,已创建扩展属性。

http://example.com/shacl-extension#allPredicateValues

此属性用于替代sh:path下指定的路径值,例如

ex:OpenNodeShape
    a              sh:NodeShape ;
    sh:property [
        sh:path shext:allPredicateValues ;
    ] ;

3.2 包括焦点节点的指定属性

指定要包括的属性意味着所有未明确包括的属性都应被排除

可以使用SHACL属性路径包括指定的属性路径

这些可以直接使用属性形状上的sh:path指定,或者可以使用sh:union指定多个属性路径。

3.2.1 简单地包括指定的属性 - 单个属性路径

配置文件要求

  1. sh:path <property path expression>

3.2.2 复杂地包括指定的属性 - 多个属性路径

配置文件要求

  1. sh:path ( sh:union ( <property path expression 1> <property path expression 2> ...) )
    

3.3 排除焦点节点的指定属性

指定要排除的属性意味着所有未排除的直接属性都应被包括

配置文件要求

  1. 属性形状包括一个sh:maxCount为0

NB:当前的假设是用户可以选择包括指定的

在Prez端点中使用模式

3.4 包括空节点属性链

虽然SHACL词汇表提供了识别空节点的途径,但似乎没有简洁的方法来指定应包括空节点属性链的描述。因此,已创建自定义属性。该属性可以包含在配置文件的nodeshape上。属性是http://example.com/shacl-extension#bnode-depth。该属性的值是跟随的空节点(对象/主体对)的数量。使用方法如下

ex:OpenNodeShape
    a sh:NodeShape ;
    shext:bnode-depth 2 ;
.

4.1 包括特定的对象值

配置文件要求

  1. 使用 sh:hasValue 指定单个值或使用 sh:in 与 RDF 列表指定多个值来指定对象值。

在Prez端点中使用模式

以下表格显示了在提议的 Prez 端点定义中不同模式的使用位置。

端点 端点定义模式 配置文件定义模式
Catprez 目录列表 1.2 根据类列出对象。
Catprez 目录对象 2.1 根据URI描述对象 3.1 包括焦点节点的所有属性
3.4 包括空节点属性链
Catprez 资源列表 1.1 根据容器对象的关系列出对象。 3.2.2 复杂地包括指定的属性 - 多个属性路径
Catprez 资源对象 2.1 根据URI描述对象 3.1 包括焦点节点的所有属性
3.4 包括空节点属性链
Vocprez 词汇列表 1.2 根据类列出对象。
Vocprez 词汇对象 2.1 根据URI描述对象 3.1 包括焦点节点的所有属性
3.4 包括空节点属性链
Vocprez 词汇对象 子页面 1/2 1.1 根据容器对象的关系列出对象。 3.1 包括焦点节点的所有属性
Vocprez 词汇概念对象 2.1 根据URI描述对象 3.1 包括焦点节点的所有属性
3.4 包括空节点属性链
3.2.2 复杂地包括指定的属性 - 多个属性路径
Vocprez 集合列表 1.2 根据类列出对象。
Vocprez 集合对象 2.1 根据URI描述对象 3.1 包括焦点节点的所有属性
3.4 包括空节点属性链
Vocprez 集合概念对象 2.1 根据URI描述对象 3.1 包括焦点节点的所有属性
3.4 包括空节点属性链
Spaceprez 数据集列表 1.2 根据类列出对象。
Spaceprez 数据集对象 2.1 根据URI描述对象 3.1 包括焦点节点的所有属性
3.4 包括空节点属性链
Spaceprez 功能集合列表 1.1 根据容器对象的关系列出对象。
Spaceprez 功能集合对象 2.1 根据URI描述对象 3.3 排除焦点节点的指定属性
3.4 包括空节点属性链
Spaceprez 功能列表 1.1 根据容器对象的关系列出对象。
Spaceprez 功能对象 2.1 根据URI描述对象 3.1 包括焦点节点的所有属性
3.4 包括空节点属性链

附录 - 为什么使用 sh:union 和属性形状?

直接且精确:sh:union 和属性路径允许直接引用特定属性,提供对显示属性的清晰和细致控制。它们支持 SPARQL 属性路径语法以处理复杂的属性关系,并且可以使用 sh:union 在单个 RDF 列表中指定。

  • sh:inversePath
  • sh:alternativePath
  • sh:path 由于这些属性路径在配置文件中使用,它们关于在选定一组焦点节点之后选择属性,因此最常见的用例是需要属性联合而不是逻辑与。sh:union 可以直接映射到 SPARQL 联合,从而从配置文件到 SPARQL 查询提供清晰和直接的映射。

由于这些是在属性节点上指定的,因此 sh:minCount 和 sh:maxCount 也可用,并且可以用来表示可选属性(sh:minCount 0)或表示应排除属性(sh:maxCount 0)。

项目详情


下载文件

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

源分布

rdframe-0.1.1.tar.gz (23.1 kB 查看哈希)

上传时间

构建分布

rdframe-0.1.1-py3-none-any.whl (22.5 kB 查看哈希)

上传时间 Python 3

由以下机构支持

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