@@ -1946,289 +1946,6 @@ <h2>Proofs of some results</h2>
1946
1946
1947
1947
</ section >
1948
1948
1949
- < section id ="whatnot " class ="informative appendix ">
1950
- < h2 id ="non_semantics "> RDF reification, containers and collections</ h2 >
1951
-
1952
- < p > The RDF semantic conditions do not place formal constraints on the meaning
1953
- of much of the RDF vocabulary which is intended for use in describing containers and bounded collections,
1954
- or the reification vocabulary intended to enable an RDF graph to describe RDF triples.
1955
- This appendix briefly reviews the intended meanings of this vocabulary. </ p >
1956
-
1957
- < p > The omission of these conditions from the formal semantics is a design decision
1958
- to accommodate variations in existing RDF usage and to make it easier to implement
1959
- processes to check formal RDF entailment. For example, implementations may decide
1960
- to use special procedural techniques to implement the RDF collection vocabulary.</ p >
1961
-
1962
- < section id ="Reif ">
1963
- < h3 > Reification</ h3 >
1964
-
1965
- < div class ="c1 ">
1966
- < table >
1967
- < tbody >
1968
- < tr >
1969
- < td class ="othertable "> < strong > RDF reification vocabulary</ strong > </ td >
1970
- </ tr >
1971
- < tr >
1972
- < td class ="othertable "> < code > rdf:Statement rdf:subject rdf:predicate
1973
- rdf:object</ code > </ td >
1974
- </ tr >
1975
- </ tbody >
1976
- </ table >
1977
- </ div >
1978
-
1979
- < p > The intended meaning of this vocabulary is to allow an RDF graph to act as metadata describing other RDF triples. </ p >
1980
-
1981
- < p > Consider an example graph containing a single triple:</ p >
1982
-
1983
- < p > < code > ex:a ex:b ex:c .</ code > </ p >
1984
-
1985
- < p > and suppose that IRI < code > ex:graph1</ code > is used to < a > identify</ a > this graph.
1986
- Exactly how this identification is achieved is external to the RDF model,
1987
- but it might be by the IRI resolving to a concrete syntax document describing the graph,
1988
- or by the IRI being the associated < a > name</ a > of a named graph in a dataset.
1989
- Assuming that the IRI can be used to denote the triple,
1990
- then the reification vocabulary allows us to describe the first graph in another graph:</ p >
1991
-
1992
- < p > < code > ex:graph1 rdf:type rdf:Statement .< br />
1993
- ex:graph1 rdf:subject ex:a .< br />
1994
- ex:graph1 rdf:predicate ex:b .< br />
1995
- ex:graph1 rdf:object ex:c .</ code > </ p >
1996
-
1997
- < p > The second graph is called a < dfn > reification</ dfn > of the triple in the first graph.</ p >
1998
-
1999
- < p > Reification is not a form of quotation. Rather, the reification describes the
2000
- relationship between a token of a triple and the resources that the triple denotes.
2001
- The value of the < code > rdf:subject</ code > property is not the
2002
- subject IRI itself but the thing it < a > denotes</ a > , and similarly for < code > rdf:predicate</ code > and < code > rdf:object</ code > .
2003
- For example, if the referent of < code > ex:a</ code > is Mount Everest,
2004
- then the subject of the reified triple is also the mountain, not the IRI which denotes it.</ p >
2005
-
2006
- < p > < a > Reification</ a > s can be written with a blank node as subject,
2007
- or with an IRI subject which does not < a > identify</ a > any concrete realization of a triple,
2008
- in both of which cases they simply assert the existence of the described triple. </ p >
2009
-
2010
- < p > The subject of a < a > reification</ a > 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
2011
- composition or provenance information are applied to the
2012
- reified triple, which are meaningful only when thought of as
2013
- denoting a particular instance or token of a triple. </ p >
2014
-
2015
- < p > A < a > reification</ a > of a triple does not entail the triple, and is not entailed by it.
2016
- The < a > reification</ a > only says that the triple token exists and what it is about,
2017
- not that it is true, so it does not entail the triple.
2018
- On the other hand, asserting a triple does not automatically imply that any
2019
- triple tokens exist in the universe being described by the triple.
2020
- For example, the triple might be part of an ontology describing
2021
- animals, which could be satisfied by an interpretation in which the
2022
- universe contained only animals, and in which a < a > reification</ a > of it was therefore
2023
- false.</ p >
2024
-
2025
- < p > Since the relation between triples and < a > reification</ a > s of triples
2026
- in any RDF graph or graphs need not be one-to-one, asserting a
2027
- property about some entity described by a < a > reification</ a > need not
2028
- entail that the same property holds of another such entity, even if
2029
- it has the same components. For example,</ p >
2030
-
2031
- < p > < code > _:xxx rdf:type rdf:Statement .< br />
2032
- _:xxx rdf:subject ex:subject .< br />
2033
- _:xxx rdf:predicate ex:predicate .< br />
2034
- _:xxx rdf:object ex:object .< br />
2035
- _:yyy rdf:type rdf:Statement .< br />
2036
- _:yyy rdf:subject ex:subject .< br />
2037
- _:yyy rdf:predicate ex:predicate .< br />
2038
- _:yyy rdf:object ex:object .< br />
2039
- _:xxx ex:property ex:foo .</ code > </ p >
2040
-
2041
- < p > does not entail</ p >
2042
-
2043
- < p > < code > _:yyy ex:property ex:foo .</ code > </ p >
2044
-
2045
- </ section >
2046
-
2047
- < section id ="containers ">
2048
- < h4 > RDF containers</ h4 >
2049
-
2050
- < table >
2051
- < tbody >
2052
- < tr >
2053
- < td class ="othertable "> < strong > RDF(S) Container Vocabulary</ strong > </ td >
2054
- </ tr >
2055
- < tr >
2056
- < td class ="othertable "> < code > rdf:Seq rdf:Bag rdf:Alt rdf:_1 rdf:_2
2057
- ... rdfs:member rdfs:Container rdfs:ContainerMembershipProperty</ code > </ td >
2058
- </ tr >
2059
- </ tbody >
2060
- </ table >
2061
-
2062
- < p > RDF provides vocabularies for describing three classes of
2063
- containers. Containers have a type, and their members can
2064
- be enumerated by using a fixed set of < em > container membership
2065
- properties</ em > . These properties are indexed by integers to
2066
- provide a way to distinguish the members from each other, but these
2067
- indices should not necessarily be thought of as defining an
2068
- ordering of the container itself; some containers are considered to be unordered.</ p >
2069
-
2070
- < p > The < a > RDFS vocabulary</ a > adds a generic membership
2071
- property which holds regardless of position, and classes containing
2072
- all the containers and all the membership properties.</ p >
2073
-
2074
- < p > One should understand this vocabulary as < em > describing</ em >
2075
- containers, rather than as a tool for constructing them, as
2076
- would typically be supplied by a programming language. The actual containers are entities in the semantic universe,
2077
- and RDF graphs which use the vocabulary simply provide very basic
2078
- information about these entities, enabling an RDF graph to
2079
- characterize the container type and give partial information about
2080
- the members of a container. Since the RDF container vocabulary is
2081
- so limited, many natural assumptions concerning RDF containers
2082
- cannot be formally sanctioned by the RDF formal semantics. This should not be taken as
2083
- meaning that these assumptions are false, but only that RDF does
2084
- not formally entail that they must be true.</ p >
2085
-
2086
- < p > There are no special semantic conditions on the container
2087
- vocabulary: the only structure which RDF presumes its containers
2088
- to have is what can be inferred from the use of this vocabulary and
2089
- the general RDF semantic conditions. This amounts to knowing the type of a container, and having a partial
2090
- enumeration
2091
- of the items in the container. The intended mode of use is that things
2092
- of type < code > rdf:Bag</ code >
2093
- are considered to be unordered but to allow duplicates; things of
2094
- type < code > rdf:Seq</ code > are considered to be ordered, and things
2095
- of type < code > rdf:Alt</ code > are considered to represent a
2096
- collection of alternatives, possibly with a preference ordering.
2097
- If the container is of an ordered type, then the ordering of items in the container is intended to be
2098
- indicated by the numerical ordering of the container membership
2099
- properties, which are assumed to be single-valued.
2100
- However, these informal conditions are not reflected in any formal RDF
2101
- entailments.</ p >
2102
-
2103
-
2104
- < p > The RDF semantics does not support any entailments which could arise from enumerating
2105
- the elements of an unordered < code > rdf:Bag</ code > in a different order. For example,</ p >
2106
-
2107
- < p > < code > _:xxx rdf:type rdf:Bag .< br />
2108
- _:xxx rdf:_1 ex:a .< br />
2109
- _:xxx rdf:_2 ex:b .</ code > </ p >
2110
-
2111
- < p > does not entail</ p >
2112
-
2113
- < p > < code > _:xxx rdf:_1 ex:b .< br />
2114
- _:xxx rdf:_2 ex:a .</ code > </ p >
2115
-
2116
- < p > (If this conclusion were < a > valid</ a > , then the result of
2117
- adding it to the original graph would be < a > entail</ a > ed by the graph, and this would assert that both elements were in both
2118
- positions. This is a consequence of the fact that RDF is a purely
2119
- assertional language.)</ p >
2120
-
2121
- < p > There is no assumption that a property of a container applies to
2122
- any of the elements of the container, or vice versa. </ p >
2123
-
2124
- < p > There is no formal requirement that
2125
- the three container classes are disjoint, so that for example
2126
- it is consistent to assert that something is both an < code > rdf:Bag</ code > and an < code > rdf:Seq</ code > .
2127
- There is no assumption that containers are gap-free, so that for example</ p >
2128
-
2129
- < p > < code > _:xxx rdf:type rdf:Seq.< br />
2130
- _:xxx rdf:_1 ex:a .< br />
2131
- _:xxx rdf:_3 ex:c .</ code > </ p >
2132
-
2133
- < p > does not entail</ p >
2134
-
2135
- < p > < code > _:xxx rdf:_2 _:yyy .</ code > </ p >
2136
-
2137
- < p > There is no way in RDF to assert
2138
- that a container contains only a fixed number of members. This is a
2139
- reflection of the fact that it is always consistent to add a triple
2140
- to a graph asserting a membership property of any container. And
2141
- finally, there is no built-in assumption that an RDF container has
2142
- only finitely many members.</ p >
2143
- </ section >
2144
-
2145
- < section id ="collections ">
2146
- < span id ="rdf-collections "> <!-- Alternative identifier --> </ span >
2147
- < h4 > RDF collections</ h4 >
2148
-
2149
- < table >
2150
- < tbody >
2151
- < tr >
2152
- < td class ="othertable "> < strong > RDF Collection Vocabulary</ strong > </ td >
2153
- </ tr >
2154
- < tr >
2155
- < td class ="othertable "> < code > rdf:List rdf:first rdf:rest rdf:nil</ code > </ td >
2156
- </ tr >
2157
- </ tbody >
2158
- </ table >
2159
-
2160
- < p > RDF provides a vocabulary for describing collections, i.e.'list
2161
- structures', in terms of head-tail links. Collections differ from
2162
- containers in allowing branching structure and in having an
2163
- explicit terminator, allowing applications to determine the exact
2164
- set of items in the collection.</ p >
2165
-
2166
-
2167
- < p > As with containers, no special semantic conditions are imposed on this vocabulary
2168
- other than the type of < code > rdf:nil</ code > being < code > rdf:List</ code > . It
2169
- is intended for use typically in a context where a container is described using
2170
- blank nodes to connect a 'well-formed' sequence of items, each described by
2171
- two triples of the form
2172
- < code > < br />
2173
- < br />
2174
- _:c1 rdf:first aaa .< br />
2175
- _:c1 rdf:rest _:c2 .</ code > </ p >
2176
-
2177
- < p > where the final item is indicated by the use of < code > rdf:nil</ code > as the
2178
- value of the property < code > rdf:rest</ code > . In a familiar convention, < code > rdf:nil</ code >
2179
- can be thought of as the empty collection. Any such graph amounts to an assertion
2180
- that the collection exists, and since the members of the collection can be determined
2181
- by inspection, this is often sufficient to enable applications to determine
2182
- what is meant. The semantics does not require any collections
2183
- to exist other than those mentioned explicitly in a graph (and the empty collection).
2184
- For example, the existence of a collection containing two items does not automatically
2185
- guarantee that the similar collection with the items permuted also exists:
2186
- < code >
2187
- < br /> < br />
2188
- _:c1 rdf:first ex:aaa .< br />
2189
- _:c1 rdf:rest _:c2 .< br />
2190
- _:c2 rdf:first ex:bbb .< br />
2191
- _:c2 rdf:rest rdf:nil . </ code > </ p >
2192
-
2193
- < p > does not entail</ p >
2194
-
2195
- < p > < code > _:c3 rdf:first ex:bbb .< br />
2196
- _:c3 rdf:rest _:c4 .< br />
2197
- < span > _:c4 rdf:first</ span > ex:aaa .< br />
2198
- _:c4 rdf:rest rdf:nil .
2199
- </ code > </ p >
2200
-
2201
- < p > Also, RDF imposes no 'well-formedness' conditions on the use of this
2202
- vocabulary, so that it is possible to write RDF graphs which assert
2203
- the existence of highly peculiar objects such as lists with forked
2204
- or non-list tails, or multiple heads:</ p >
2205
-
2206
- < p > < code > _:666 rdf:first ex:aaa .< br />
2207
- _:666 rdf:first ex:bbb .< br />
2208
- _:666 rdf:rest ex:ccc .< br />
2209
- _:666 rdf:rest rdf:nil . </ code > </ p >
2210
-
2211
- < p > It is also possible to write a set of triples which under-specify a collection
2212
- by failing to specify its < code > rdf:rest</ code > property value.</ p >
2213
-
2214
- < p > < a > Semantic extension</ a > s may
2215
- place extra syntactic well-formedness restrictions on the use of this vocabulary
2216
- in order to rule out such graphs. They may
2217
- exclude interpretations of the collection vocabulary which violate the convention
2218
- that the subject of a 'linked' collection of two-triple items of the form described
2219
- above, ending with an item ending with < code > rdf:nil</ code > , < a > denotes</ a > a totally
2220
- ordered sequence whose members are the referents of the < code > rdf:first</ code >
2221
- values of the items, in the order got by tracing the < code > rdf:rest</ code > properties
2222
- from the subject to < code > rdf:nil</ code > . This permits sequences which contain
2223
- other sequences.</ p >
2224
-
2225
- < p > The RDFS semantic conditions require that any
2226
- subject of the < code > rdf:first</ code > property, and any subject or object of
2227
- the < code > rdf:rest</ code > property, be of < code > rdf:type rdf:List</ code > . </ p >
2228
- </ section >
2229
-
2230
- </ section >
2231
-
2232
1949
< section id ="privacy " class ="informative appendix ">
2233
1950
< h2 > Privacy Considerations</ h2 >
2234
1951
< p >
@@ -2360,6 +2077,12 @@ <h2>Substantive changes since RDF 1.1</h2>
2360
2077
It is recommended that < code > rdf:PlainLiteral</ code > not be used in RDF.
2361
2078
</ li >
2362
2079
2080
+ < li > < span id ="whatnot "> </ span > < span id ="non_semantics "> </ span > < span id ="Reif "> </ span > < span id ="containers "> </ span > < span id ="collections "> </ span > < span id ="rdf-collections "> </ span >
2081
+ The appendix on RDF reification, containers, and collections has been removed because it had no semantic content.
2082
+ The vocabulary involved is still described in
2083
+ < a href ="https://www.w3.org/TR/rdf12-schema/#ch_othervocab "> the Other Vocabulary section of RDF Schema</ a > .
2084
+ </ li >
2085
+
2363
2086
</ ul >
2364
2087
2365
2088
0 commit comments