5735
5735
sameTerm(2, 2.0)
@@ -5749,7 +5749,7 @@
SameTerm
5749
5749
5750
5750
5751
5751
5752
-
SameValue
5752
+
sameValue
5753
5753
5754
5754
xsd:boolean sameValue (RDF term term1 , RDF term term2 )
5755
5755
@@ -5761,31 +5761,37 @@
SameValue
5761
5761
5762
5762
5763
5763
5764
+
5765
+ Revise for triple terms.
5766
+
5767
+ Consider adding non-literal `=` to operator mapping table.
5768
+
5769
+
5770
+ The result of this function is determined by going through the following steps.
5764
5771
5765
-
If one or both arguments are known to be ill-typed,
5772
+
If term1
and term2
are
5773
+
5774
+ the return TRUE.
5775
+
5776
+
If both arguments are literals,
5777
+
5778
+ and one or both arguments are known to be ill-typed,
5766
5779
then produce a type error.
5767
5780
5768
-
Returns TRUE if term1
and term2
are
5769
-
5781
+
If term1
and term2
both
5782
+
5783
+ and the SPARQL processor can determine the values are equal,
5784
+ then return TRUE.
5770
5785
5771
-
If the SPARQL processor can determine the values of both terms
5772
- and it can determine the values are equal, then return TRUE.
5786
+
If term1
and term2
both
5787
+
5788
+ and the SPARQL processor can determine the values can not be equal,
5789
+ then return FALSE.
5773
5790
5774
-
If the SPARQL processor can determine that the values of the terms
5775
- can not be equal, the return FALSE.
5791
+
Otherwise, return FALSE.
5776
5792
5777
5793
5778
-
5779
-
5780
- If the function is to become callable as
5781
- `sameValue(term1, term2)` , add a rule
5782
- that if there is an
5783
-
5784
- for the arguments, an implementation MUST return the same boolean value
5785
- from `sameValue(term1, term2)` .
5786
-
5787
-
5788
-
5794
+
5789
5795
5790
5796
The treatment of `NaN` can not be consistent with both "same term means same value"
5791
5797
and "`fn:numeric-equal(NaN, NaN)` is false". So it is an arbitrary choice with
@@ -5824,23 +5830,23 @@
SameValue
5824
5830
5825
5831
5826
5832
5827
- if the datatype is one handled by the SPARQL processor and
5828
- the lexical form is not in
5829
-
5833
+ if its datatype is handled by the SPARQL processor and
5834
+ its lexical form is not in the
5835
+
5830
5836
of the datatype.
5831
5837
5832
5838
5833
- The function `sameValue` returns true or false in cases where
5834
- the SPARQL processor can determine that the values of the
5835
- arguments are equal or are not equal. If the SPARQL processor
5836
- can not be sure, it returns `error`.
5839
+ If the two arguments are literals, the function `sameValue`
5840
+ returns `true` or `false` in cases where the SPARQL processor
5841
+ can determine that the values of these literals are equal or are not equal.
5842
+ If the SPARQL processor can not be sure, it returns `error`.
5837
5843
5838
5844
5839
5845
5840
5846
5841
-
5847
+
5842
5848
is the function
5843
-
5849
+
5844
5850
which returns `false` when comparing arguments involving `NaN`.
5845
5851
However, `sameTerm("NaN"^^xsd:double, "NaN"^^xsd:double)` is true;
5846
5852
`sameValue` treats "NaN" as the "same value".
@@ -12257,7 +12263,7 @@
Changes between SPARQL 1.1 Query Language and SPARQL 1.2 Query Language
12257
12263
12258
12264
Editorial changes:
12259
12265
12260
- Give a actual function signature to
12266
+ Give an actual function signature to
12261
12267
Improve wording of blank nodes in
12262
12268
Improve display on mobile
12263
12269
Move `sameValue` (was `RDFterm-equal`) and `sameTerm` to
0 commit comments