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 @@
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.
- -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(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 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
.