From 690944d52c422f2bc7628a650d7b01205fd235f0 Mon Sep 17 00:00:00 2001 From: "Peter F. Patel-Schneider" Date: Thu, 6 Mar 2025 08:11:32 -0500 Subject: [PATCH] remove informative appendix on reification, etc. --- spec/index.html | 283 ------------------------------------------------ 1 file changed, 283 deletions(-) diff --git a/spec/index.html b/spec/index.html index 132a5a3..33bce87 100644 --- a/spec/index.html +++ b/spec/index.html @@ -1895,289 +1895,6 @@

Proofs of some results (Informative)

-
-

RDF reification, containers and collections (Informative)

- -

The RDF semantic conditions do not place formal constraints on the meaning - of much of the RDF vocabulary which is intended for use in describing containers and bounded collections, - or the reification vocabulary intended to enable an RDF graph to describe RDF triples. - This appendix briefly reviews the intended meanings of this vocabulary.

- -

The omission of these conditions from the formal semantics is a design decision - to accommodate variations in existing RDF usage and to make it easier to implement - processes to check formal RDF entailment. For example, implementations may decide - to use special procedural techniques to implement the RDF collection vocabulary.

- -
-

Reification

- -
- - - - - - - - - -
RDF reification vocabulary
rdf:Statement rdf:subject rdf:predicate - rdf:object
-
- -

The intended meaning of this vocabulary is to allow an RDF graph to act as metadata describing other RDF triples.

- -

Consider an example graph containing a single triple:

- -

ex:a ex:b ex:c .

- -

and suppose that IRI ex:graph1 is used to identify this graph. - Exactly how this identification is achieved is external to the RDF model, - but it might be by the IRI resolving to a concrete syntax document describing the graph, - or by the IRI being the associated name of a named graph in a dataset. - Assuming that the IRI can be used to denote the triple, - then the reification vocabulary allows us to describe the first graph in another graph:

- -

ex:graph1 rdf:type rdf:Statement .
- ex:graph1 rdf:subject ex:a .
- ex:graph1 rdf:predicate ex:b .
- ex:graph1 rdf:object ex:c .

- -

The second graph is called a reification of the triple in the first graph.

- -

Reification is not a form of quotation. Rather, the reification describes the - relationship between a token of a triple and the resources that the triple denotes. - The value of the rdf:subject property is not the - subject IRI itself but the thing it denotes, and similarly for rdf:predicate and rdf:object. - For example, if the referent of ex:a is Mount Everest, - then the subject of the reified triple is also the mountain, not the IRI which denotes it.

- -

Reifications can be written with a blank node as subject, - or with an IRI subject which does not identify any concrete realization of a triple, - in both of which cases they simply assert the existence of the described triple.

- -

The subject of a reification is intended to denote a concrete realization of an RDF triple, such as a document in a surface syntax, rather than a triple considered as an abstract object. This supports use cases where properties such as dates of - composition or provenance information are applied to the - reified triple, which are meaningful only when thought of as - denoting a particular instance or token of a triple.

- -

A reification of a triple does not entail the triple, and is not entailed by it. - The reification only says that the triple token exists and what it is about, - not that it is true, so it does not entail the triple. - On the other hand, asserting a triple does not automatically imply that any - triple tokens exist in the universe being described by the triple. - For example, the triple might be part of an ontology describing - animals, which could be satisfied by an interpretation in which the - universe contained only animals, and in which a reification of it was therefore - false.

- -

Since the relation between triples and reifications of triples - in any RDF graph or graphs need not be one-to-one, asserting a - property about some entity described by a reification need not - entail that the same property holds of another such entity, even if - it has the same components. For example,

- -

_:xxx rdf:type rdf:Statement .
- _:xxx rdf:subject ex:subject .
- _:xxx rdf:predicate ex:predicate .
- _:xxx rdf:object ex:object .
- _:yyy rdf:type rdf:Statement .
- _:yyy rdf:subject ex:subject .
- _:yyy rdf:predicate ex:predicate .
- _:yyy rdf:object ex:object .
- _:xxx ex:property ex:foo .

- -

does not entail

- -

_:yyy ex:property ex:foo .

- -
- -
-

RDF containers

- - - - - - - - - - -
RDF(S) Container Vocabulary
rdf:Seq rdf:Bag rdf:Alt rdf:_1 rdf:_2 - ... rdfs:member rdfs:Container rdfs:ContainerMembershipProperty
- -

RDF provides vocabularies for describing three classes of - containers. Containers have a type, and their members can - be enumerated by using a fixed set of container membership - properties. These properties are indexed by integers to - provide a way to distinguish the members from each other, but these - indices should not necessarily be thought of as defining an - ordering of the container itself; some containers are considered to be unordered.

- -

The RDFS vocabulary adds a generic membership - property which holds regardless of position, and classes containing - all the containers and all the membership properties.

- -

One should understand this vocabulary as describing - containers, rather than as a tool for constructing them, as - would typically be supplied by a programming language. The actual containers are entities in the semantic universe, - and RDF graphs which use the vocabulary simply provide very basic - information about these entities, enabling an RDF graph to - characterize the container type and give partial information about - the members of a container. Since the RDF container vocabulary is - so limited, many natural assumptions concerning RDF containers - cannot be formally sanctioned by the RDF formal semantics. This should not be taken as - meaning that these assumptions are false, but only that RDF does - not formally entail that they must be true.

- -

There are no special semantic conditions on the container - vocabulary: the only structure which RDF presumes its containers - to have is what can be inferred from the use of this vocabulary and - the general RDF semantic conditions. This amounts to knowing the type of a container, and having a partial - enumeration - of the items in the container. The intended mode of use is that things - of type rdf:Bag - are considered to be unordered but to allow duplicates; things of - type rdf:Seq are considered to be ordered, and things - of type rdf:Alt are considered to represent a - collection of alternatives, possibly with a preference ordering. - If the container is of an ordered type, then the ordering of items in the container is intended to be - indicated by the numerical ordering of the container membership - properties, which are assumed to be single-valued. - However, these informal conditions are not reflected in any formal RDF - entailments.

- - -

The RDF semantics does not support any entailments which could arise from enumerating - the elements of an unordered rdf:Bag in a different order. For example,

- -

_:xxx rdf:type rdf:Bag .
- _:xxx rdf:_1 ex:a .
- _:xxx rdf:_2 ex:b .

- -

does not entail

- -

_:xxx rdf:_1 ex:b .
- _:xxx rdf:_2 ex:a .

- -

(If this conclusion were valid, then the result of - adding it to the original graph would be entailed by the graph, and this would assert that both elements were in both - positions. This is a consequence of the fact that RDF is a purely - assertional language.)

- -

There is no assumption that a property of a container applies to - any of the elements of the container, or vice versa.

- -

There is no formal requirement that - the three container classes are disjoint, so that for example - it is consistent to assert that something is both an rdf:Bag and an rdf:Seq. - There is no assumption that containers are gap-free, so that for example

- -

_:xxx rdf:type rdf:Seq.
- _:xxx rdf:_1 ex:a .
- _:xxx rdf:_3 ex:c .

- -

does not entail

- -

_:xxx rdf:_2 _:yyy .

- -

There is no way in RDF to assert - that a container contains only a fixed number of members. This is a - reflection of the fact that it is always consistent to add a triple - to a graph asserting a membership property of any container. And - finally, there is no built-in assumption that an RDF container has - only finitely many members.

-
- -
- -

RDF collections

- - - - - - - - - - -
RDF Collection Vocabulary
rdf:List rdf:first rdf:rest rdf:nil
- -

RDF provides a vocabulary for describing collections, i.e.'list - structures', in terms of head-tail links. Collections differ from - containers in allowing branching structure and in having an - explicit terminator, allowing applications to determine the exact - set of items in the collection.

- - -

As with containers, no special semantic conditions are imposed on this vocabulary - other than the type of rdf:nil being rdf:List. It - is intended for use typically in a context where a container is described using - blank nodes to connect a 'well-formed' sequence of items, each described by - two triples of the form -
-
- _:c1 rdf:first aaa .
- _:c1 rdf:rest _:c2 .

- -

where the final item is indicated by the use of rdf:nil as the - value of the property rdf:rest. In a familiar convention, rdf:nil - can be thought of as the empty collection. Any such graph amounts to an assertion - that the collection exists, and since the members of the collection can be determined - by inspection, this is often sufficient to enable applications to determine - what is meant. The semantics does not require any collections - to exist other than those mentioned explicitly in a graph (and the empty collection). - For example, the existence of a collection containing two items does not automatically - guarantee that the similar collection with the items permuted also exists: - -

- _:c1 rdf:first ex:aaa .
- _:c1 rdf:rest _:c2 .
- _:c2 rdf:first ex:bbb .
- _:c2 rdf:rest rdf:nil .

- -

does not entail

- -

_:c3 rdf:first ex:bbb .
- _:c3 rdf:rest _:c4 .
- _:c4 rdf:first ex:aaa .
- _:c4 rdf:rest rdf:nil . -

- -

Also, RDF imposes no 'well-formedness' conditions on the use of this - vocabulary, so that it is possible to write RDF graphs which assert - the existence of highly peculiar objects such as lists with forked - or non-list tails, or multiple heads:

- -

_:666 rdf:first ex:aaa .
- _:666 rdf:first ex:bbb .
- _:666 rdf:rest ex:ccc .
- _:666 rdf:rest rdf:nil .

- -

It is also possible to write a set of triples which under-specify a collection - by failing to specify its rdf:rest property value.

- -

Semantic extensions may - place extra syntactic well-formedness restrictions on the use of this vocabulary - in order to rule out such graphs. They may - exclude interpretations of the collection vocabulary which violate the convention - that the subject of a 'linked' collection of two-triple items of the form described - above, ending with an item ending with rdf:nil, denotes a totally - ordered sequence whose members are the referents of the rdf:first - values of the items, in the order got by tracing the rdf:rest properties - from the subject to rdf:nil. This permits sequences which contain - other sequences.

- -

The RDFS semantic conditions require that any - subject of the rdf:first property, and any subject or object of - the rdf:rest property, be of rdf:type rdf:List.

-
- -
-

Privacy Considerations (Informative)