RDF Star - A Major Upgrade to Linked Data

Thanks to spotter @aschrijver

This has quite big implications for the AS/AP, JSON-LD, Linked Data relationship

My suspicious is that this will go into RDF 1.2, then will go into JSON-LD 1.2

It could arguably be called RDF 2.0, and JSON-LD 2.0, but people are wary of major version upgrades.

The extent to which a future AS/AP will keep track or converge with LD and tooling is of course going to be important. I have mixed feelings, it is complex, but there will have in future a big eco system, for those that follow W3C RECs. Which will be some big players.

Here’s more details:

RDF-star (formerly spelled RDF*) is an extension of RDF that was initially proposed in 2014 by Olaf Hartig and Bryan Thompson, providing a concise way to make statements about statements. It has become quite popular, especially as a means to provide interoperability between RDF and Property Graphs, and has already been implemented to various extents by a number of vendors and open-source libraries. A subgroup of the RDF-DEV Community Group then formed to gather feedback, use-cases, and explore the possibility of integrating RDF-star into the existing RDF standards.


This is going to be super interesting!


I added #protocol tag (and #linked-data) as that lists alternative formats related to the discussion of Linked Data: Undersold, Overpromised?


I saw this as well—it looks interesting. Describing the properties of links is definitely a really useful generic tool and I think it’s an interesting addition to the toolset. Definitely helps clean up some of the messiness around e.g. i18n. I’m definitely curious about the implications this has for describing social data. Has the JSON-LD community group discussed this at all? Maybe @msporny knows more about how long it might take until we get to see some of the benefits of this work in ActivityStreams land?

1 Like

I asked about this on the ML:


RDF likely go to 1.2

JSON-LD likely will follow to 1.2

There is an argument that this is a big enough upgrade to be called 2.0, but people are wary of major version upgrades

So what it allows is triples as subjects or objects:


<Bob> <is a> <person>.
<Bob> <is a friend of> <Alice>.
<Bob> <is born on> <the 4th of July 1990>.
<Bob> <is interested in> <the Mona Lisa>.
<the Mona Lisa> <was created by> <Leonardo da Vinci>.
<the video 'La Joconde à Washington'> <is about> <the Mona Lisa>

so what 1.2 will allow is:

<<the video 'La Joconde à Washington'> <is about> <the Mona Lisa>>  
  <created>  <1984>

It’s a whole new complexity. So I wonder how well this will be received by humans and machines. Humans already are finding the complexity of RDF high, but machines might find it relatively easy. I dont know which world we’re moving to, right now.

One major thing is can be used to model is time. However my reservation around this is that there are many ways to model time, and this may not be a first choice. For example there is an element of time in git revision control trees. That’s just one path.

I think it’s significant that it’s being pitched as 1.2 rather than 2.0. That strikes me as saying: “If you want to be linked data compliant, this is your future path”. The AS/AP work will have to figure out which path to take, in the medium term (say 2-4 years).


See also OntoText articles: What is RDF-Star? - Ontotext and RDF-Star: Metadata Complexity Simplified - Ontotext … think it is important to mention that with RDF-Star a gap is bridged with Property Graph models, which are easier to wrap your head around when used in application designs and popularized by Neo4J (and Tinkerpop).

TerminusDB also has a bunch of articles dealing with differences in graph models and why RDF linked data, while the more powerful concept, isn’t the most loved in developer circles, e.g.


The RDF Ruby group has been implementing all RDF standards, including RDF*.

That’s not a good example. RDF-star is about describing triples. Your example doesn’t need RDF-star. Here’s a better example:

<<Melvin> <has skill> <web developement>>  
  <has level>  <expert>
1 Like
  "actor": "https://example.com/user/a",
  "type": "Like",
  "object": {
    "id": {
      "id": "https://example.com/some-post",
      "published": "2023-06-09T04:20:00Z"
  "summary": "a liked that some post was published at 4:20 on 6/9",
  "content": "nice"
@prefix ex: <https://example.com/> .
@prefix as: <https://www.w3.org/ns/activitystreams#> .

ex:user/a as:Like << ex:some-post as:published "2023-06-09" >> ;
  as:summary "a liked that some post was published on 6/9" ;
  as:content "nice" .