【问题标题】:Find orphan nodes with SPARQL使用 SPARQL 查找孤立节点
【发布时间】:2022-08-17 18:44:34
【问题描述】:

我正在尝试在 Fuseki 数据库中使用 SPARQL 查找孤立节点(没有任何传入关系的节点)。 我尝试了几个查询,但都没有返回正确的结果。

我尝试了以下方法:

查询 1(从linkedIn 获得)

  select ?o ?isOrphan where {  GRAPH <http://localhost:8080/catalog/-1305288727> {
      ?s ?p ?o .
      FILTER(!isLiteral(?o))
    bind(!(EXISTS {?o ?p1 ?o2}) as ?isOrphan)}}

查询 2

SELECT ?source ?s ?p ?o
WHERE { GRAPH <http://localhost:8080/catalog/-1305288727>{
    ?s ?p ?o  .
    FILTER EXISTS {?source ?p ?s  } .
 }
}

查询 3 - FILTER 中的未绑定变量 pp

  SELECT ?source ?s ?p ?o
WHERE { GRAPH <http://localhost:8080/catalog/-1305288727>{
    ?s ?p ?o  .
    FILTER EXISTS {?source ?pp ?s  } .
 }
}

非常感谢任何帮助。

    标签: sparql


    【解决方案1】:

    此查询查找作为任何三元组主题的每个实体,然后检查该实体是否不是任何三元组的对象。

    SELECT ?orphan
    FROM <http://localhost:8080/catalog/-1305288727>
    WHERE {
    
      ?orphan ?p1 [] .
    
      FILTER NOT EXISTS { ?linkingNode ?p2 ?orphan . }
    
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-29
      • 2017-11-28
      • 1970-01-01
      • 1970-01-01
      • 2014-07-21
      相关资源
      最近更新 更多