Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

As you can see, the model consists of only atomic parts with nothing inside them. We can say that conceptually it is the resource <https://finland.fi/> that contains the number of lakes or its type, but on the level of data structures, there is no containment. This is in stark contrast to typical data modeling paradigms, where entities are specified as templates or containers with mandatory or optional components. As an example, UML classes are static in the sense that they cannot be expanded to cover facets that were not part of the original design. On the other hand, we can expand the resource  <https://finland.fi/> to have an unlimited amount of facts, even conflicting ones if our intention is to compare or harmonize data between datasets. We could for example have two differing values for the number of lakes with additional information on the counting method, time and responsible party in order to analyze the discrepancy.

Linked Data Can Refer The Non-Atomic

You might have already guessed that this kind of graph data structure becomes cumbersome when it is used for example to store lists or arrays. Both are possible in RDF, but the flexibility of linked data allows us to leverage the fact that the same URI can offer us a large dataset e.g. in JSON format with the proper content accept type, while using the same URI as the identifier for the dataset and offer relevant RDF description of it. Additionally, e.g. REST endpoint URLs that point to individual records or fragments of a dataset can also be used to allow us to talk about individual dataset records in RDF while simultaneously keeping the original data structure and access methods intact. The URL based ecosystem does not have to be aware of the semantic layer that is added on top or parallel to it, so implementing linked data based semantics to your information management systems and flows is not by default disruptive.

Everything Has an Identity

...

A small exception to the naming rule is that the literal integer value of 187888 does not have an identity (nor do any other literal values). From the diagram it is evident that both individuals ("instances") and classes are named the same way and can coexist in the same graph. This is not a problem, as they are distinguished by their relationships (Additionally, in linked data it is possible to utilize the concept of punning which means that the same resource acts simultaneously as an individual and a class, but this is an advanced topic and not covered here).

All Resources Are First-Class Citizens

In traditional UML modeling classes are the primary entities with other elements being subservient to them. In RDF this is not the case. Referring to the diagram above, Another key takeaway here is that e.g. <httpsthe resource <https://datamodel/has>has> is not bound to be only an association, even though here it is used as such. As it has been named with a URI, we can use it as the subject of additional triples that describe it. We could - for example - add triples that describe its meaning or metadata about its specification.

...

. So, when reading the diagrams you should always keep in mind that the reason some resources are represented as edges is due to the fact that they appear in the stated triples in the predicate position.

Relationships 

Third key takeaway is that all relationships are binary. This means that these kind of structures (n-ary relationships) are not possible:

...

Stating this would always require two triples with each one using the same "has child" as its predicate, meaning the association is used twice. This means that treating them as one requires an additional grouping structure, for example in the case where all of the child associations would share some feature that we do not want to replicate for each individual association. Also, you might You might have already guessed that this kind of graph data structure becomes cumbersome when it is used for example to store lists or arrays. Both are possible in RDF, but  the flexibility of linked data 



Another 

The literal numeric value 187888 is also a resource (node), but it does not have an identity 

...