探究SemwidgQL与Sparql的可学习性、用户性能和偏好
1. 答案正确性分析
在对查询任务的评估中,答案被分为三类:
- 正确答案
- 有小错误的答案
- 错误答案
有小错误的答案语法正确且接近标准解决方案,但可能包含一些小的不准确之处,例如查询中包含请求所需属性的三元组模式,但在Select语句中未包含相应变量。错误答案则是语法错误、未满足任务描述要求或用户中止任务的情况。
总共对每种语言的147个任务结果进行了评估,其中21个属于查询解释任务,126个属于查询制定任务。在查询解释任务中,参与者对SemwidgQL查询的解释表现略好于Sparql任务。具体数据如下:
|语言|正确解决任务比例|有小错误的解决方案比例|错误答案比例|
| ---- | ---- | ---- | ---- |
|SemwidgQL|86%|14%|0%|
|Sparql|76%|24%|0%|
在查询制定任务中,参与者使用两种语言取得了几乎同样好的结果:
|语言|正确解决任务比例|有小错误的解决方案比例|错误答案比例|
| ---- | ---- | ---- | ---- |
|Sparql|90%|6%|4%|
|SemwidgQL|89%|7%|4%|
2. 查询制定任务评估
接下来详细描述参与者在评估期间需要解决的9个查询制定任务(任务4 - 12)的结果。为了进行后续的统计测试,将分析数据限制在正确答案或有小错误的答案对,因为错误或取消的解决方案数据无疑会扭曲结果。
2.1 平均性能分析
通过计算多个配对样本的相关t检验,比较了参与者在上述9个因变量方面的表现,结果如下表所示:
|因变量|Sparql(M)|Sparql(SD)|SemwidgQL(M)|SemwidgQL(SD)|t(124)|p|
| ---- | ---- | ---- | ---- | ---- | ---- | ---- |
|(a) 按键次数|136.32|58.90|74.56|55.02|14.33|<.001
|
|(b) 修正次数|15.10|16.49|12.15|16.10|2.04|.044
|
|(c) 合取修正次数|6.02|5.27|5.10|6.63|1.72|.088|
|(d) 暂停次数|11.06|7.95|7.57|7.36|5.82|<.001
|
|(e) 暂停时间(s)|99.82|122.89|67.84|73.91|2.99|.003
|
|(f) 任务时间(s)|152.26|117.81|109.44|89.85|4.60|<.001
|
|(g) 请求次数|3.54|4.51|4.26|5.78|-1.45|.150|
|(h) 错误请求比例|0.19|0.27|0.21|0.27|-0.56|.578|
|(i) 解决方案显示时间(s)|7.56|10.75|4.67|4.60|2.83|.005
|
从表中可以看出,SemwidgQL在9个因变量中的6个方面的值明显优于Sparql。合取修正次数(c)方面,SemwidgQL在描述上更好,但差异在统计上不显著。请求次数(g)和错误请求比例(h)方面,Sparql优于SemwidgQL,但差异同样在统计上不显著。
2.2 学习效果分析
评估了参与者在用户研究的第一遍和第二遍之间的表现变化,并比较了这两遍中Sparql和SemwidgQL之间的差异。同样计算了多个配对样本的相关t检验,不同遍次的差异如下表所示:
表3:Sparql和SemwidgQL每遍的差异
|因变量|遍次|Sparql(M)|Sparql(SD)|SemwidgQL(M)|SemwidgQL(SD)|t(56)|p|
| ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- |
|(a) 按键次数|1|143.74|71.14|83.65|66.78|2.54|.014
|
| |2|126.33|44.41|63.39|38.50|2.68|.010
|
|(b) 修正次数|1|17.14|20.00|15.95|20.55|1.96|.056|
| |2|12.28|11.28|7.74|8.81|3.40|.001
|
|(c) 合取修正次数|1|6.09|6.05|6.44|8.82|0.71|.483|
| |2|5.60|3.65|3.61|3.33|2.90|.005
|
|(d) 暂停次数|1|12.49|9.52|9.21|8.89|3.57|<.001
|
| |2|8.79|4.87|5.54|5.03|4.00|<.001
|
|(e) 暂停时间(s)|1|102.98|120.26|79.85|84.21|1.03|.309|
| |2|80.88|115.70|49.39|50.57|3.58|<.001
|
|(f) 任务时间(s)|1|166.33|140.71|125.51|103.54|2.84|.006
|
| |2|118.67|53.56|85.65|61.55|3.85|<.001
|
|(g) 请求次数|1|3.82|5.25|4.77|6.53|1.42|.161|
| |2|2.89|2.66|3.11|3.18|2.53|.014
|
|(h) 错误请求比例|1|0.21|0.27|0.27|0.28|0.90|.374|
| |2|0.17|0.26|0.12|0.22|3.77|<.001
|
|(i) 解决方案显示时间(s)|1|10.40|14.60|4.58|4.63|3.33|.002
*|
| |2|4.04|3.20|4.40|4.50|0.30|.765|
表4:每种语言第一遍和第二遍的差异
|因变量|语言|第一遍(M)|第一遍(SD)|第二遍(M)|第二遍(SD)|t(56)|p|
| ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- |
|(a) 按键次数|A(Sparql)|143.74|71.14|126.33|44.41|2.54|<.001
|
| |B(SemwidgQL)|83.65|66.78|63.39|38.50|2.68|<.001
|
|(b) 修正次数|A(Sparql)|17.14|20.00|12.28|11.28|1.96|.641|
| |B(SemwidgQL)|15.95|20.55|7.74|8.81|3.40|.004
|
|(c) 合取修正次数|A(Sparql)|6.09|6.05|6.44|3.65|0.71|.717|
| |B(SemwidgQL)|6.44|8.82|3.61|3.33|2.90|<.001
|
|(d) 暂停次数|A(Sparql)|12.49|9.52|8.79|4.87|3.57|.003
|
| |B(SemwidgQL)|9.21|8.89|5.54|5.03|4.00|<.001
|
|(e) 暂停时间(s)|A(Sparql)|102.98|120.26|80.88|115.70|1.03|.109|
| |B(SemwidgQL)|79.85|84.21|49.39|50.57|3.58|.051|
|(f) 任务时间(s)|A(Sparql)|166.33|140.71|118.67|53.56|2.84|.012
|
| |B(SemwidgQL)|125.51|103.54|85.65|61.55|3.85|<.001
|
|(g) 请求次数|A(Sparql)|3.82|5.25|2.89|2.66|1.42|.264|
| |B(SemwidgQL)|4.77|6.53|3.11|3.18|2.53|.650|
|(h) 错误请求比例|A(Sparql)|0.21|0.27|0.17|0.26|0.90|.223|
| |B(SemwidgQL)|0.27|0.28|0.12|0.22|3.77|.266|
|(i) 解决方案显示时间(s)|A(Sparql)|10.40|14.60|4.04|3.20|3.33|.005 **|
| |B(SemwidgQL)|4.58|4.63|4.40|4.50|0.30|.613|
在第一遍中,与Sparql相比,SemwidgQL在9个因变量中的4个方面结果显著更好,在另外2个因变量方面描述性地但不显著地更好,参与者使用Sparql从未有显著更好的表现。在第二遍中,除一个因变量外,SemwidgQL的结果与第一遍相比显著更好;Sparql在4个因变量方面结果显著更好,其他结果描述性地但不显著地更好。与Sparql相比,参与者在9个因变量中的5个方面使用SemwidgQL表现显著更好,同样,参与者使用Sparql从未有显著更好的表现。
3. 复杂度相关分析
为了比较参与者使用Sparql和SemwidgQL在任务复杂度方面的表现,假设任务复杂度是测量响应的预测因素。为此,针对前面提到的因变量和任务复杂度作为预测变量进行了多次线性回归分析。
在确定Sparql或其他数据库查询的难度时,以往常用Halstead复杂度度量方法,但该方法在Sparql查询包含过滤表达式时往往会产生较高的值,似乎高估了过滤表达式对复杂度的影响。因此,开发了一种基于Sparql语法表达式(Sse)表示法中查询节点数量的替代复杂度度量方法。
计算Sse基于复杂度度量的步骤如下:
1. 对Sse语法树的节点数量进行求和。
2. 将过滤表达式中匹配语言所需的所有节点合并为一个。
3. 不计算所有Select查询中都出现的第一个投影节点(即Select)。
以下是根据Halstead的D和Sse基于复杂度c计算的Sparql样本解决方案的复杂度值比较:
|任务|4|5|6|7|8|9|10|11|12|
| ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- |
|Halstead D|2.67|4.00|3.50|8.25|3.60|7.71|3.75|8.40|9.10|
|Sse基于复杂度c|2|3|3|4|3|6|3|5|8|
可以看出,没有过滤表达式的任务(4、5、6、8、10)的D和c值非常相似,而有过滤表达式的任务(7、9、11、12)的D值明显高于c值。
通过计算回归直线,并基于得出的决定系数R²进行Wilcoxon符号秩检验,结果表明c的中位数(Mdn = .86)显著优于D的中位数(Mdn = .56)(z = -2.35,p = .016),说明基于Sse的复杂度度量方法能更好地代表经验数据。
使用c作为预测变量对Sparql和SemwidgQL的所有响应变量进行线性回归分析的结果如下表所示:
|因变量|语言|F(1, 7)|p|R²|f|fi(c)|
| ---- | ---- | ---- | ---- | ---- | ---- | ---- |
|(a) 按键次数|A(Sparql)|92.43|<.001|.93|3.63|23.90c + 41.98|
| |B(SemwidgQL)|64.04|<.001|.90|3.02|21.32c - 9.57|
|(b) 修正次数|A(Sparql)|36.93|.001|.84|2.30|4.00c - 1.30|
| |B(SemwidgQL)|24.22|.002|.78|1.86|4.33c - 4.95|
|(c) 合取修正次数|A(Sparql)|42.98|<.001|.86|2.48|1.67c - 0.77|
| |B(SemwidgQL)|25.06|.002|.78|1.89|1.82c - 2.13|
|(d) 暂停次数|A(Sparql)|156.63|<.001|.96|4.73|3.08c - 0.72|
| |B(SemwidgQL)|81.27|<.001|.92|3.41|3.24c - 5.02|
|(e) 暂停时间(s)|A(Sparql)|34.19|.001|.83|2.21|39.51c - 50.15|
| |B(SemwidgQL)|60.02|<.001|.90|2.93|36.70c - 71.90|
|(f) 任务时间(s)|A(Sparql)|92.33|<.001|.93|3.63|46.19c - 31.83|
| |B(SemwidgQL)|57.90|<.001|.89|2.88|40.24c - 47.17|
|(g) 请求次数|A(Sparql)|18.27|.004|.72|1.62|2.54c - 5.95|
| |B(SemwidgQL)|59.15|<.001|.89|2.91|2.18c - 3.41|
|(h) 错误请求比例|A(Sparql)|2.05|.195|.23|0.54|0.05c + 0.07|
| |B(SemwidgQL)|0.52|.494|.07|0.27|0.02c + 0.23|
|(i) 解决方案显示时间(s)|A(Sparql)|19.27|.003|.73|1.66|2.27c - 1.64|
| |B(SemwidgQL)|7.41|.030|.51|1.03|1.33c - 0.53|
结果表明,除错误请求比例(h)外,复杂度c与所有响应变量之间存在显著关联。相应的回归方程具有非常高的R²值(三分之一≥.90),根据Cohen的标准,效应大小f也很高。
在研究的c范围内,除请求次数(g)和错误请求比例(h)外,SemwidgQL值的回归直线在所有情况下都低于Sparql值的回归直线。在这七种情况中的四种情况下,SemwidgQL直线的斜率比Sparql直线的斜率更平缓,这表明在更复杂的任务中,SemwidgQL的表现将优于Sparql。在其余三种情况下,直线在研究范围以上的复杂度值处相交。
4. 参与者主观评价
在查询任务结束后,参与者完成了问卷调查。通过计算多个Wilcoxon符号秩检验来比较参与者对Sparql和SemwidgQL的主观评价。结果显示,在写作努力方面,SemwidgQL的中位数(Mdn = 4)显著优于Sparql(Mdn = 2)(z = -3.03,p = .001);在精致程度方面,SemwidgQL的中位数(Mdn = 4)也显著优于Sparql(Mdn = 2)(z = -3.23,p < .001)。而在可学习性、直观性、逻辑结构和可理解性的主观评价方面,没有显著差异。
当被问及SemwidgQL相对于Sparql的优势时,参与者总共提到了9个独特的特征,共出现30次,其中查询简短和与面向对象编程语言相似被频繁提及。而参与者只提到了Sparql相对于SemwidgQL的3个独特优势,共出现5次。在所有答案中,79%的人将SemwidgQL列为首选查询语言,只有21%的人首选Sparql。
主观评价结果如下表所示:
|评价指标|SPARQL|SemwidgQL|
| ---- | ---- | ---- |
|可学习性|4.07|4.00|
|直观性|3.50|4.07|
|逻辑结构|4.21|4.50|
|可理解性|4.07|3.86|
|写作努力|2.43|4.29|
|精致程度|2.29|4.07|
参与者提到的优势统计如下:
|语言|优势|出现次数|
| ---- | ---- | ---- |
|Sparql|更直观、完整性、与SQL相似|5|
|SemwidgQL|路径查询语言、提高可读性、快速检测错误、更具逻辑性、更直观、更易学习、更易编写、与OOP语言相似、查询简短|30|
以下是主观评价的流程:
1. 参与者完成查询任务。
2. 参与者填写包含对Sparql和SemwidgQL各项指标评价的问卷。
3. 计算多个Wilcoxon符号秩检验来比较主观评价结果。
综上所述,从客观的性能评估到参与者的主观评价,都表明SemwidgQL在可学习性、效率等方面具有明显优势,是一种更适合初学者进入语义网和链接数据领域的轻量级语言。但同时也需注意,在处理较长的连续查询时,SemwidgQL可能会变得难以处理。
探究SemwidgQL与Sparql的可学习性、用户性能和偏好
5. SemwidgQL的表达能力评估
为了探究SemwidgQL在实际应用中对Sparql查询范围的覆盖程度,对Linked Sparql Queries Dataset(Lsq)中出现的查询进行了分析。具体操作步骤如下:
1. 从Lsq数据集中提取636,876个唯一的Select查询,这些查询共有1,526,804次执行。
2. 将这些查询转换为参数化形式,把每个查询的Iris、变量、文字和语言标签映射到通用格式(例如:SELECT ?v2 WHERE {
?v1 ?v2})。
3. 用Where语句中的相应变量列表替换Select语句中的所有通配符,并统一语言过滤表达式。
4. 自动合并完全相同的参数化查询。
5. 手动合并语法上不同但语义上相同的模式(例如,Where子句中具有相同三元组模式但顺序不同的查询,或者带有和不带有Distinct关键字且Distinct关键字不能减少结果集的查询)。
最终得到1619个唯一的查询模式,其中执行频率最高的前120个查询模式代表了Lsq数据集中所有Select查询执行的99%。基于这120个查询模式,对SemwidgQL的表达能力进行评估:
|情况|模式数量|代表的整体执行查询比例|说明|
| ---- | ---- | ---- | ---- |
|可直接表达|66|91%|这些模式可以在SemwidgQL中无限制地直接表达|
|无法表达|15|2%|这些模式包含Group By表达式或函数调用(如bound或isLiteral),SemwidgQL未实现这些功能|
|使用Union图模式|39|6%|SemwidgQL没有为这些构造提供等效功能,但部分模式可以用Filter表达式表达,且SemwidgQL允许在单个语句中声明多个查询,这些查询会被转换为单独的Sparql查询,结果的合并由处理程序完成|
计算了这120个最常用查询模式的Sse基于复杂度度量。结果显示,89%的请求的c值小于或等于8,处于用户研究的评估范围内;三分之一的请求c值为2或3;很少有查询模式的c值高于20(最高达58),但这些模式仅代表不到3%的请求。
6. 结论
SemwidgQL是一种用于Rdf数据的路径查询语言,可转换为Sparql。通过上述的各项评估,可以得出以下结论:
-
可学习性和效率
:实证用户研究表明,与Sparql相比,SemwidgQL更易于学习、更高效,并且受到学习者的青睐。在用户研究中,参与者在大多数评估的因变量方面使用SemwidgQL表现显著更好,尤其是在任务时间、修正次数以及思考正确解决方案时的暂停次数和时间等方面,表明SemwidgQL更易于使用。随着学习的深入,参与者使用SemwidgQL的表现提升更为明显,进一步证明其更易学习。
-
表达能力
:对Lsq数据集的评估表明,尽管SemwidgQL的表达能力有限,但它能够查询目前使用Sparql查询的大部分数据。并且用户研究中使用的查询与实际应用中的查询复杂度相当。
-
适用场景
:SemwidgQL并非旨在取代Sparql,而是作为一种更轻量级的语言,降低进入语义网和链接数据领域的门槛。不过,需要注意的是,连续编写的SemwidgQL查询在达到一定长度后可能会变得非常难以处理。
以下是SemwidgQL与Sparql对比的mermaid流程图:
graph LR
classDef startend fill:#F5EBFF,stroke:#BE8FED,stroke-width:2px;
classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px;
classDef decision fill:#FFF6CC,stroke:#FFBC52,stroke-width:2px;
A([开始评估]):::startend --> B{选择语言}:::decision
B -->|Sparql| C(进行查询任务):::process
B -->|SemwidgQL| D(进行查询任务):::process
C --> E(评估性能指标):::process
D --> E
E --> F(分析复杂度):::process
F --> G(参与者主观评价):::process
G --> H{是否适合任务}:::decision
H -->|是| I([选择该语言]):::startend
H -->|否| J([考虑其他语言]):::startend
综上所述,SemwidgQL在降低学习门槛、提高查询效率等方面具有明显优势,适合初学者快速进入语义网和链接数据领域进行数据查询。但在处理复杂、长查询时,可能需要结合Sparql等其他语言的优势。
SemwidgQL与Sparql对比分析
超级会员免费看
1300

被折叠的 条评论
为什么被折叠?



