RDF语句可以有多个主题吗?

Lia*_*iam 0 rdf semantic-web linked-data json-ld

如果你对这个问题的回答是肯定的,你能给我一个使用JSON-LD格式的例子吗?

Sta*_*lin 5

答案是否定的.

RDF 1.1概念和抽象语法:

1.2资源和声明

断言RDF三重说,一些关系,由谓词所示,由主体和客体表示的资源之间成立.对应于RDF三元组的此语句称为RDF语句.谓词本身是一个IRI,表示一个属性,即可以被认为是二元关系的资源.(涉及两个以上实体的关系只能在RDF中间接表达.)


如果您只是寻找具有常用术语的多语句的语法糖. -

在Turtle中,有谓词列表对象列表,但是,没有主题列表.
另请参阅此问题: 在OWL中的表达式前面列出.

更新

在JSON-LD 1.1中,您可以使用@reverse关键字,即编写类似的内容

{
  "@id": "#homer",
  "http://example.com/vocab#name": "Homer",
  "@reverse": {
    "http://example.com/vocab#parent": [
      {
        "@id": "#bart",
        "http://example.com/vocab#name": "Bart"
      }, {
        "@id": "#lisa",
        "http://example.com/vocab#name": "Lisa"
      }
    ]
  }
}
Run Code Online (Sandbox Code Playgroud)

代替

[
  {
    "@id": "#homer",
    "http://example.com/vocab#name": "Homer"
  }, {
    "@id": "#bart",
    "http://example.com/vocab#name": "Bart",
    "http://example.com/vocab#parent": { "@id": "#homer" }
  }, {
    "@id": "#lisa",
    "http://example.com/vocab#name": "Lisa",
    "http://example.com/vocab#parent": { "@id": "#homer" }
  }
]
Run Code Online (Sandbox Code Playgroud)


Ant*_*ann 5

事实上,答案可能需要一些澄清。一条 RDF 语句不能有多个主语,因为它没有任何主语(从 RDF 规范定义的“主语”的意义上来说)。

当人们想要谈论“RDF 三元组”时,谈论“RDF 声明”是很常见的。RDF 三元组是一种句法构造,它是三个元素的序列,按顺序称为主语谓语宾语。每个 RDF 三元组只有一个主题。从 RDF 规范的意义上来说,主语要么IRI,要么是空白节点。然而, RDF 语句并不是RDF 三元组。这是 RDF 三元组所表达的事实。例如,如果我说地球绕着太阳转,我就是在发表一个声明。地球不是 RDF 规范意义上的主题,因为它不是 IRI(遵循 RFC 规范的字符序列)或空白节点(存在变量)。这是一个由物质组成的星球,当然,这些物质都不是 UNICODE 字符。不过,我可以编写一个 RDF 三元组来表达以下语句:

dbr:Earth  onto:revolvesAround  dbr:Sun .
Run Code Online (Sandbox Code Playgroud)

dbr:是 DBpedia 资源的前缀https://dbpedia.org/resource/。这表达了 RDF 语句,根据该语句,某事物(用 表示)根据 表示的关系与dbr:Earth其他事物(由 表示)相关。但这个陈述同样可以使用以下三元组来表达:dbr:Sunonto:revolvesAround

wd:Q2  onto:revolvesAround  wd:Q525 .
Run Code Online (Sandbox Code Playgroud)

wd:是 wikidata 的前缀https://www.wikidata.org/wiki/。语句是相同的(考虑到 DBpedia 中的说明是dbr:Earth owl:sameAs wd:Q2dbr:Sun owl:sameAs wd:525),但三元组不同。尤其是题材不同。因此,从某种意义上说,您可以认为同一个 RDF 语句可以有多个主题。无论您用 JSON-LD 还是其他形式表示它并不重要。