GraphDB 的 Visual graph 不显示所有的三元组

GraphDB's Visual graph does not display all triples

在我的图表中,我有以下断言

  @prefix :     <http://www.example.org/~joe/contact.rdf#> .
  @prefix foaf: <http://xmlns.com/foaf/0.1/> .
  @prefix rdf:  <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .

  :joesmith a foaf:Person ;
        foaf:givenname "Joe" ;
        foaf:family_name "Smith" ;
        foaf:homepage <http://www.example.org/~joe/> ;
        foaf:mbox <mailto:joe.smith@example.org> .

我在 GraphDB 中加载了图表。

如果我将 GraphDB 的 Visual Graph 指向 :joesmith,我希望看到所有的三元组,但我看到了这个图

foaf:givennamefoaf:family_name 没有显示在图表中,但它们在节点详细信息选项卡中,没关系。

相反,节点 http://www.example.org/~joe/ 未连接到 :joesmith。看起来很连线,因为有一个明确的断言属于 :joesmith

这是错误还是我的数据有问题?

这绝对是一个错误。此错误仅影响 Visual Graph 功能。在 SPARQL 结果视图中,一切正常。

这个问题似乎很复杂。有两个因素:

  • 这个命名空间—— <http://xmlns.com/foaf/0.1/> — 在某处进行了硬编码。

  • 此命名空间处理不正确。

让我们考虑以下示例。
在每个示例之前,清除您的存储库并删除在 设置 > 命名空间.

中创建的前缀

案例一

@prefix :     <http://www.example.org/~joe/contact.rdf#> .
@prefix foaf: <http://xmlns.com/foaf/0.1/> .
@prefix rdf:  <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .

  :joesmith a foaf:Person ;
        foaf:givenname "Joe" ;
        foaf:family_name "Smith" ;
        foaf:homepage <http://www.example.org/~joe/> ;
        foaf:mbox <mailto:joe.smith@example.org> .

正如您所指出的,<http://www.example.org/~joe/> 未显示

案例二

@prefix :     <http://www.example.org/~joe/contact.rdf#> .
@prefix foo: <http://xmlns.com/foaf/0.1/> .
@prefix rdf:  <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .

  :joesmith a foo:Person ;
        foo:givenname "Joe" ;
        foo:family_name "Smith" ;
        foo:homepage <http://www.example.org/~joe/> ;
        foo:mbox <mailto:joe.smith@example.org> .

在这种情况下,<http://www.example.org/~joe/> 不显示

案例三

@prefix :     <http://www.example.org/~joe/contact.rdf#> .
@prefix foaf: <http://xmlns.com/foaf/01/> .
@prefix rdf:  <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .

  :joesmith a foaf:Person ;
        foaf:givenname "Joe" ;
        foaf:family_name "Smith" ;
        foaf:homepage <http://www.example.org/~joe/> ;
        foaf:mbox <mailto:joe.smith@example.org> .

在这种情况下,显示 <http://www.example.org/~joe/>

案例4

@prefix :     <http://www.example.org/~joe/contact.rdf#> .
@prefix foaf: <http://xmln.com/foaf/0.1/> .
@prefix rdf:  <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .

  :joesmith a foaf:Person ;
        foaf:givenname "Joe" ;
        foaf:family_name "Smith" ;
        foaf:homepage <http://www.example.org/~joe/> ;
        foaf:mbox <mailto:joe.smith@example.org> .

在这种情况下,显示 <http://www.example.org/~joe/>


我会尝试通过发送电子邮件直接联系他们的支持团队。


更新 1

他们说有四种 RDF 术语:

  1. URI
  2. 文字
  3. 空白节点
  4. URI 被他们的团队视为 "not real"。

从 GraphDB 查询日志中,可以确定哪些 URI 属于第四类。

BIND (strstarts(str(?p), "http://purl.org/dc/terms/") ||
      strstarts(str(?p), "http://dbpedia.org/ontology/subsidiary") AS ?isMeta)
    FILTER(!strstarts(str(?p), "http://www.w3.org/2002/07/owl#")
              && !strstarts(str(?p), "http://www.w3.org/1999/02/22-rdf-syntax-ns#")
              && !strstarts(str(?p), "http://www.w3.org/2000/01/rdf-schema#")
              && !strstarts(str(?p), "http://www.openrdf.org/schema/sesame#")
              && !strstarts(str(?p), "http://www.ontologydesignpatterns.org/ont/dul/DUL.owl")
              && !strstarts(str(?p), "http://www.w3.org/ns/prov")
              && !strstarts(str(?p), "http://dbpedia.org/ontology/wikiPage")
              && !strstarts(str(?p), "http://dbpedia.org/property/wikiPage")
              && !strstarts(str(?p), "http://www.omg.org/spec/")
              && !strstarts(str(?p), "http://www.wikidata.org/entity/")
              && !strstarts(str(?p), "http://factforge.net/")
              && ?p != <http://dbpedia.org/property/logo>;
              && ?p != <http://dbpedia.org/property/hasPhotoCollection>;
              && ?p != <http://dbpedia.org/property/website>;
              && ?p != <http://dbpedia.org/property/homepage>;
              && ?p != <http://dbpedia.org/ontology/thumbnail>;
              && ?p != <http://xmlns.com/foaf/0.1/depiction>;
              && ?p != <http://xmlns.com/foaf/0.1/homepage>;
            )

更新 2

在 GraphDB 8.3 中,它在某种程度上是 fixed

GDB-2076 - Visual graph: consistent handling of foaf/dbpedia predicates that point to IRIs but are treated as literals

可视化图形功能显示资源(= 具有 IRI 的事物)及其连接方式。由于 foaf:givenname 和 foaf:family_name 指向文字,因此它们未显示在图中。你说得对,foaf 是经过特殊处理的。属性 foaf:homepage 和 foaf:depiction 被视为指向文字(因此未显示),因为它们用于引用 Internet 上的 URL,而不是指向其他资源的真实 RDF IRI图。没有其他 foaf 属性被特殊处理。

在 GraphDB 的未来版本中,您将对省略的内容进行更精细的控制。

已编辑:在侧面板(显示文字的地方)未显示 foaf:homepage 与将其从图表中隐藏不一致。这将在下一个版本中解决。

从 GraphDB 8.3 开始,您可以通过创建自己的可视化图形配置来配置可视化图形的所有查询。在此处查看文档。 http://graphdb.ontotext.com/documentation/enterprise/devhub/custom-graph-views.html?highlight=visual%20graph%20config

还有一个网络研讨会。 https://www.ontotext.com/custom-graph-views-webinar-recording/