【问题标题】:Class not displayed in GraphDB类未显示在 GraphDB 中
【发布时间】:2019-08-05 14:45:20
【问题描述】:

我有以下课程:

:Foo rdf:type owl:Class ;
           rdfs:subClassOf [ rdf:type owl:Restriction ;
                             owl:onProperty :hasId ;
                             owl:someValuesFrom rdfs:Literal
                           ] .

奇怪的是,它并没有出现在 Ontotext 的 GraphDB 的 Class hierarchy 选项卡中。

有什么具体原因吗?

【问题讨论】:

  • 您是在谈论here 所示的可视化吗?不知道他们是如何计算的,但我很确定最终所有的可视化内容或多或少都基于 SPARQL 查询(或一些高级的内部内容)。也许是因为您的类是图中未显示的复杂类表达式的子类?不过只是猜测。您可以尝试一些其他复杂的类表达式作为超类来检查是否总是如此。
  • 除了复杂的原子超类之外,您还可以添加另一个原子超类,如果可行,我相信我们找到了原因,您应该联系支持
  • 你好@AKSW!好吧,如果我插入该类和一个通用定义的类 (A a owl:Class),那么我在图中只看到 A。

标签: rdf owl graphdb


【解决方案1】:

有什么具体原因吗?

来自graphdb-framework-graph-explore-8.7.0.jar/dataviz-queries/getRdfClassHierarchy.sparql

PREFIX owl: <http://www.w3.org/2002/07/owl#>
PREFIX sesame: <http://www.openrdf.org/schema/sesame#>

SELECT ?parent ?class ?count  {
    ?class sesame:directSubClassOf ?parent .
    FILTER (isURI(?parent) && isURI(?class)
        && !strstarts(str(?parent), "http://www.w3.org/2002/07/owl#")
        && !strstarts(str(?parent), "http://www.w3.org/1999/02/22-rdf-syntax-ns#")
        && !strstarts(str(?parent), "http://www.w3.org/2000/01/rdf-schema#")
    ).
    {
        SELECT ?class (COUNT(*) as ?count) {
            ?s a ?class
        } GROUP BY ?class
    }
} ORDER BY DESC (?count)

注意isURI(?parent),而[…] is a 空白节点。

【讨论】:

  • 太棒了,这正是我所期望的,因为这简化了可视化。确实,有人可能会争辩说应该显示所有类,但我想在使用复杂的类表达式时总会有限制。尽管如此,文档可以添加一个声明来澄清这一点。干杯。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-11-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-08-22
  • 1970-01-01
相关资源
最近更新 更多