GraphDB的可视图形不显示所有三元组

时间:2017-07-13 16:07:09

标签: rdf rdfs graphdb

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

app.directive("player",['PlayerListS', function (PlayerListS) {
    return {
        restrict: 'E',
        scope: {
            person:'@person',
            add:'&add'
        },
        replace: false,
        templateUrl: "player.html",
        controller: function($scope, $element, $compile) {
              $scope.add = function(name) {
                debugger;
                  PlayerListS.addToList(name);
                  console.log(PlayerListS.getList());
              }
        }
    };
}]);

我在GraphDB中加载了图表。

如果我将GraphDB的Visual Graph指向 @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> . ,我希望看到所有三元组,但我看到这个图

enter image description here

:joesmithfoaf:givenname未显示在图表中,但它们位于节点详细信息标签中,并且没有问题。

相反,节点foaf:family_name未连接到http://www.example.org/~joe/。它似乎非常有线,因为有一个明确的断言属于:joesmith

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

3 个答案:

答案 0 :(得分:2)

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

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

  • 此命名空间 - <http://xmlns.com/foaf/0.1/> - 在某处硬编码。

  • 此命名空间未正确执行。

让我们考虑以下例子 在每个示例之前,清除存储库并删除在 Setup&gt;中创建的前缀。命名空间

案例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/> 未显示

案例2

@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/> 未显示

案例3

@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“不真实”。
  5. 从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 - 可视图:对foaf / dbpedia的一致处理   谓词指向IRI但被视为文字

答案 1 :(得分:2)

可视图形功能显示资源(=具有IRI的东西)以及它们的连接方式。由于foaf:givenname和foaf:family_name指向文字,因此它们不会显示在图表中。你是对的,专门处理foaf。 foaf:homepage和foaf:描述属性被视为文字(因此未显示),因为它们用于引用互联网上的URL而不是指向图中其他资源的真实RDF IRI。没有其他的foaf属性被特别处理。

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

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

答案 2 :(得分:0)

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

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