代码之家  ›  专栏  ›  技术社区  ›  The Guy with The Hat

了解构造模板

  •  0
  • The Guy with The Hat  · 技术社区  · 6 年前

    我存储了以下数据:

    me:     a        foaf:Person .
    foaf:mbox  rdfs:label  "Email" .
    

    默认模板为 ?s ?p ?o

    CONSTRUCT {
        ?type ?labeled ?label
    }
    WHERE {
        me: a ?type .
        ?labeled rdfs:label ?label .
    }
    

    我得到了这个三倍:

    foaf:Person  foaf:mbox  "Email" .
    

    这对我来说有点道理,因为有三个变量,每个变量在数据集中只有一个值可以绑定。但是,一旦我将模板中变量的顺序切换为如下所示: ?type ?label ?labeled ,我什么也没得到。为什么?模板 ?type ?labeled ?label 已经破坏了数据的原始结构,而我仍然得到了一些东西,那为什么呢 ?类型?标签?标记 有什么不同吗?

    1 回复  |  直到 6 年前
        1
  •  0
  •   The Guy with The Hat    6 年前

    As noted by @AKSW ,文本不能是谓词。 "Email" 是一个文本,因此不能构造为谓词位置。