微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

是否有 SPARQL 查询将一个工作流的不同流程步骤跟踪到一行

如何解决是否有 SPARQL 查询将一个工作流的不同流程步骤跟踪到一行

我使用 GraphDB 来存储不同的生产步骤。生产步骤以它们的步骤为代表,例如 A、B、C、D。 属于一起的流程步骤由对象属性“:hasUpstreamProduktionsnummer”连接起来。

数据包含许多不同的工作流程。哪里还缺少一些生产步骤。因此,工作流可以以类 B 的实例结束,也可以以类 C 的实例开始。

为了可视化工作流程,我需要创建一个表格,其中包含一行中的所有生产步骤,并为缺失的部分保留一个可用空间。例如:

A1  B1  C1
    B2  C2
A3  B3  
A4      
        C4

我的方法是 :hasUpstreamProduktionsnummer 作为 transtiv 和以下内容

    select distinct ?A ?B ?C where {
    
    {   ?A a :A.
    ?A :hasUpstreamProduktionsnummer ?AUP.}
Optional
    { ?B owl:sameAs ?AUP.
    ?B a :B.}
Optional
    { ?C owl:sameAs ?AUP.
    ?C a :C. }
}
  

对于工作流 1,查询将产生以下结果:

    A1      C1
    A1  B1  
    A1  

是否有任何选项可以在一行中查询它们?

有没有更高效的写查询?就我而言,我需要为 B 和 C 写下相同的内容作为起点。

数据:

@base <http://BLB.de/Daten/Produktionsdaten/>
@prefix : <http://BLB.de/Daten/Produktionsdaten/> .
<A1> a :A;
:hasUpstreamProduktionsnummer <B1>.
<B1> a :B;
:hasUpstreamProduktionsnummer <C1>.
<C1> a :C.
<B2> a :B;
:hasUpstreamProduktionsnummer <C2>.
<C2> a :C.
<A3> a :A;
:hasUpstreamProduktionsnummer <B3>.
<B3> a :B.
<A4> a :A.
<C4> a :C

感谢您提前提供帮助!

解决方法

UninformedUser 使用 SPARQL Elements Optional、Union 和 filter 解决的问题在以下查询中不存在:

Sub Get_Data()
With Sheet4
        lastrow = .Cells(.Rows.Count,"A").End(xlUp).Row + 1
    End With
Sheet4.Range("G7").Copy
Sheet2.Range("A" & lastrow).PasteSpecial xlPasteValues
Sheet4.Range("H7").Copy
Sheet2.Range("C" & lastrow).PasteSpecial xlPasteValues
Sheet4.Range("I7").Copy
Sheet2.Range("E" & lastrow).PasteSpecial xlPasteValues
Sheet4.Range("J7").Copy
Sheet2.Range("F" & lastrow).PasteSpecial xlPasteValues
Sheet4.Range("K7").Copy
Sheet2.Range("H" & lastrow).PasteSpecial xlPasteValues
Sheet4.Range("L7").Copy
Sheet2.Range("J" & lastrow).PasteSpecial xlPasteValues
Sheet4.Range("M7").Copy
Sheet2.Range("L" & lastrow).PasteSpecial xlPasteValues
Sheet4.Range("N7").Copy
Sheet2.Range("M" & lastrow).PasteSpecial xlPasteValues
End Sub

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?