Skip to content

Conversation

@no-reply
Copy link
Member

This allows Enumerables to decline to preserve term-inequality for literals that are value-equal.

For example: "01"^^xsd:integer and "1"^^xsd:integer have equal values, but are not equal per RDF term-equality. An enumerable supporting :literal_equality must preserve this distinction across reads; one that does not may canonicalize the lexical representation of
its literals at its own discretion.

Note that an Enumerable need not be Mutable to perform this canonicalization. For example, a data store may have an "optimize" operation which performs the canonicalization independent of RDF.rb's interactions.

The related specs are in ruby-rdf/rdf-spec#60.

@no-reply
Copy link
Member Author

Closes #242.

This allows Enumerables to decline to preserve term-inequality for
literals that are value-equal.

For example: `"01"^^xsd:integer` and `"1"^^xsd:integer` have equal
values, but are not equal per RDF term-equality. An enumerable
supporting `:literal_equality` must preserve this distinction across
reads; one that does not may canonicalize the lexical representation of
its literals at its own discretion.

Note that an `Enumerable` need not be `Mutable` to perform this
canonicalization. For example, a data store may have an "optimize"
operation which performs the canonicalization independent of RDF.rb's
interactions.
@no-reply no-reply force-pushed the feature/literal-equality branch from ec88d47 to 525f580 Compare February 21, 2016 01:17
no-reply pushed a commit that referenced this pull request Feb 21, 2016
Add support for `:literal_equality`
@no-reply no-reply merged commit daac23c into develop Feb 21, 2016
@no-reply no-reply deleted the feature/literal-equality branch February 21, 2016 02:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants