为什么在以下查询中,结果中列出了Category:American_architecture_by_state
?
select distinct ?s where { ?s skos:broader category:Architecture_in_Alabama}
Isn' t category:American_architecture_by_state
,应该是category:Architecture_in_Alabama
的父类别而不是子类别?
当我使用skos时,这真的搞砸了我的结果:更宽*因为我希望它从Parent节点开始并遍历到子节点。
答案 0 :(得分:1)
当我使用skos时,这真的搞砸了我的结果:像我一样宽广 期望它从Parent节点开始并遍历到子节点。
我不确定你的期望。 skos:更广泛的定义在SKOS标准的§8 Semantic Relations中给出:
8. Semantic Relations
属性skos:wider和skos:narrower用于断言a 两个SKOS概念之间的直接分层链接。 三A skos:更广泛的B断言B,三联的对象是a 比A更广泛的概念,三联的主题。同样,a 三重C skos:较窄的D断言D,对象 三重,是一个比C更狭窄的概念,三重主题。
这意味着查询
select distinct ?s where {
?s skos:broader category:Architecture_in_Alabama
}
应选择更窄的类别而不是类别:Architecture_in_Alabama 。现在,我同意看起来美国的建筑可能是阿拉巴马州建筑的超类别,但重要的是要注意类别与类不同。如果A是B的子类,那么A的所有内容也是B.但这不是类别的工作方式。
8.6.6。 skos:更广泛和传递性
请注意,skos:wider不是传递属性。同样的, skos:narrower不是传递属性。
8.6.8。分层关系中的循环(skos:widerTransitive和Reflexivity)
在下图中,已在层级中说明了一个循环 关系。请注意,此图表与SKOS数据模型一致, 即,没有条件要求skos:widerTransitive 漫反射的。
例37(一致)<A> skos:broader <B> . <B> skos:broader <A> .
实际情况可能是这样的情况:美国架构按州类别比大多数“XXX架构”类别更广泛,反之亦然 。例如,看看DBpedia page for American architecture by state;请注意,它(仅作为一个示例)Architecture_in_New_York作为更广泛的值,但它也更广泛的 for 的值是skos:更广泛的Architecture_in_New_York。我同意这有点奇怪,可能是不受欢迎的,但并不是不允许的:
[对于]使用知识组织系统的许多应用程序,a 层次关系中的循环代表潜在的问题。对于 这些应用程序,计算传递闭包 skos:widerTransitive然后寻找X形式的语句 skos:widerTransitive X是查找周期的便捷策略 在层次关系中。应用程序应如何处理此类问题 声明在本规范中没有定义,可能会有所不同 应用
答案 1 :(得分:0)
因为Category:American_architecture_by_state
中存在skis:broader
及其反is skos:broader of
。该查询运行良好,如果您不希望在结果集中使用Category:American_architecture_by_state
,则需要重新考虑您的查询。