Filter 如何按BlankNode id进行筛选

Filter 如何按BlankNode id进行筛选,filter,sparql,graphdb,blank-nodes,Filter,Sparql,Graphdb,Blank Nodes,我试图在SPARQL游乐场的GraphDB上运行此查询 select * where { ?s content:value ?value . FILTER REGEX(str(?value), "_:x1697BD364N0abcdd866d54") } ?值是B节点 我正在尝试筛选BNode ID为:的所有值。\ux1697bd364n0abcdd866d54 我尝试了几种不同的方法来按ID进行过滤: FILTER REGEX(str(?value),“#bnode id

我试图在SPARQL游乐场的GraphDB上运行此查询

select * where { 
    ?s content:value ?value .
    FILTER REGEX(str(?value), "_:x1697BD364N0abcdd866d54")
} 
?值
是B节点

我正在尝试筛选BNode ID为:的所有值。\ux1697bd364n0abcdd866d54

我尝试了几种不同的方法来按ID进行过滤:

  • FILTER REGEX(str(?value),“#bnode id”)
  • FILTER(?value),“#bnode id”)
  • 但没有一个是成功的

    问题:
  • 如何根据bnode id进行筛选
  • 是否可以STR(bnode)
  • 如何根据bnode id标签进行筛选
  • 标签信息。简而言之,SPARQL查询中不能依赖空白节点标签:

    结果集中的标签
    \uuuA
    与具有相同标签的数据图中的空白节点之间不需要存在任何关系

    应用程序编写器不应期望查询中的空白节点标签引用数据中的特定空白节点

    如果在SPARQL中很难通过属性等来区分空白节点,可以使用GraphDB的内部资源标识符

    PREFIX ent: <http://www.ontotext.com/owlim/entity#>
    SELECT * {
        ?s content:value ?value .
        ?s ent:id ?id .
        FILTER (?id = 424242)
    }
    
    返回
    ltrl
    的词法形式(文字);返回
    rsrc
    (IRI)的码点表示形式


    在SPARQL查询中,空白节点不能工作,甚至没有标记的空白节点,因为图模式中的空白节点作为非区分变量,并且II)不作为RDF数据集中特定空白节点的引用。显而易见的解决方案是通过其某些属性来确定空白节点。很重,是真的。我还是sparql的新手:)所以我想我的工具集是一个正在进行的工作。这很好。我在寻找一种通过bnode id进行过滤的方法,因为我在寻找我拥有的特定id。GraphDB标识符不是一个可以在这里帮助我的数字。但无论如何,这是一个很好的技巧:)在RDF文件中是否有这些要导入的空白节点标签?这些标签在导入后会发生变化。@ UEIEIU不可能通过它的一些属性来识别空白节点吗?@ AKSW是可能的。我的问题大多是理论性的。我想知道为什么我可以得到Blanknode ID
    PREFIX ent: <http://www.ontotext.com/owlim/entity#>
    SELECT * {
        ?s content:value ?value 
        BIND (ent:id(?s) AS ?id)
        FILTER (?id = 424242)
    }
    
    simple literal  STR (literal ltrl)
    simple literal  STR (IRI rsrc)