Thursday, November 5, 2015

RDF Containers vs. Collections - an interesting question

Example of an RDF collection
In the (parallel) OpenHPI course 'Knowledge Engineering With Semantic Web Technologies 2015' an interesting question came up yesterday, concerning the difference of containers and collections in RDF [1]. It addressed the notion of 'open' vs. 'closed' lists, and why there should really be a (technical) difference. In principle, of course, you are able to take both constructs and simply add additional RDF triples with new items. But, ...

The key difference of the two constructs is that in a container, you can simply continue to add new list items only by asserting new RDF triples. In difference, for a collection you first have to remove a statement before you can add new list items.

This is an important difference in particular for reasoning, esp. because reasoning in the Semantic Web employs the so-called Open World Assumption (OWA), which, put simply, states that just because a certain fact is not known that does not mean we can assume that fact to be untrue. We will talk about the OWA in subsequent lectures.

Now, you apply the OWA principle to an ('open') container, and you ask "how many items does the container have", the answer must always be "I don't know", simply because there is no way to determine how many unknown items (potentially) might be in the container. However, if we consider a collection, we have an explicit pointer for the last item in the list. Thus, we can with certainty say how many items the collection contains. There can be no unknown additional items.

[1] 1.8 RDF and Turtle Serialization, at OpenHPI 'Knowledge Engineering with Semantic Web Technologies 2015'
[2] 4.1 RDF Containers, in RDF Primer, Turtle Version, W3C, 2007.

No comments:

Post a Comment