Commit graph

276 commits

Author SHA1 Message Date
Marcel Otto
00a6103e56 Interop between RDF.IRI and XSD.AnyURI in terms of cast and equal_value? 2020-05-06 16:48:31 +02:00
Marcel Otto
6057749d2a Move XSD.Datatype.canonical_lexical/1 up to RDF.Literal.Datatype 2020-05-06 15:19:32 +02:00
Marcel Otto
6e557a8bee Remove some higher-level functions from the datatypes
Higher-level datatype functions should be implemented on RDF.Literal only
2020-05-06 15:17:43 +02:00
Marcel Otto
5819eec0cf Re-integrate XSD.ex
It turned out that the costs of separating the XSD datatypes are too high
and probably not worth the effort, since with its limited scope
probably nobody would want to use XSD.ex outside of the RDF.ex context
anyway.
2020-05-05 23:58:44 +02:00
Marcel Otto
adb1c12634 Restore equality tests 2020-04-18 21:38:21 +02:00
Marcel Otto
aed10650d8 Finish back to previous equal_value?/2 behaviour 2020-04-18 21:31:42 +02:00
Marcel Otto
733f01e6a9 Revert "Add comparable?/2 functions to RDF.Literal and RDF.Literal.Datatypes"
This reverts commit 287839740c.
2020-04-18 16:39:43 +02:00
Marcel Otto
287839740c Add comparable?/2 functions to RDF.Literal and RDF.Literal.Datatypes 2020-04-18 00:31:03 +02:00
Marcel Otto
9e3fbde380 Add missing validity check to cast/1 functions 2020-04-17 00:50:06 +02:00
Marcel Otto
44a3ecb57a Don't support cast/1 on RDF.Literal.Generic 2020-04-16 23:42:55 +02:00
Marcel Otto
060fac4675 Add update/2 functions to RDF.Literal and the datatypes 2020-04-16 20:57:10 +02:00
Marcel Otto
238c9310be Add some XSD datatype specific delegation functions 2020-04-16 20:55:30 +02:00
Marcel Otto
2be689b2a1 Various datatype fixes 2020-04-12 23:55:34 +02:00
Marcel Otto
fa4bfdff1a Change constructor interface of RDF.LangString and RDF.Generic 2020-04-12 04:34:04 +02:00
Marcel Otto
f6146c51b0 Revision of the literal system with extracted XSD datatypes 2020-04-10 23:56:35 +02:00
Marcel Otto
c4791af2ad Get rid of remaining compiler warnings during test 2020-04-05 01:33:42 +02:00
Marcel Otto
319940b442 Ignore some compiler warnings during test 2020-04-05 00:53:54 +02:00
Marcel Otto
a77fe7c56e Add RDF.Diff.empty?/1 2019-11-20 01:56:43 +01:00
Marcel Otto
a1cbbd24b6 Add RDF.Diff.apply/2 2019-11-20 01:45:34 +01:00
Marcel Otto
4e38080774 Add RDF.Diff 2019-11-19 22:49:00 +01:00
Marcel Otto
30bde1acc2 Add RDF.Graph.clear/1 2019-11-02 01:35:09 +01:00
Marcel Otto
02131efc15 Add RDF.Graph.update/4 2019-10-24 22:03:05 +02:00
Marcel Otto
623577b35e Add RDF.Description.update/4 2019-10-23 17:31:21 +02:00
Marcel Otto
2cfa89125f Add RDF.Graph.take/3 2019-10-15 17:29:46 +02:00
Marcel Otto
cf568dd06e Add RDF.Description.take/2 2019-10-14 09:13:56 +02:00
Marcel Otto
9e81f69636 Remove RDF.IRI.empty_fragment_shim/2
This is no longer needed, since we don't support Elixir versions < 1.6
anymore.
2019-09-24 00:50:34 +02:00
Marcel Otto
3f1afa190f Use new RDF.IRI.coerce_base/1 for RDF.Graph.set_base_iri/2 2019-08-08 22:32:21 +02:00
Marcel Otto
fe49c0e431 Move base IRI coercion from PrefixMap into new RDF.IRI.coerce_base/1
- and extend it to also support terms from vocabulary namespaces
2019-08-08 22:26:07 +02:00
Marcel Otto
58d21a3405 Add alias base_iri for the base option of the RDF.Turtle.Encoder 2019-08-03 01:33:47 +02:00
Marcel Otto
14b1dc5825 Let RDF.Turtle.Encoder use base IRI from the graph when none provided 2019-08-03 01:02:32 +02:00
Marcel Otto
19e12909ca Change RDF.Turtle.Decoder to save the base IRI in the graph 2019-08-03 00:41:06 +02:00
Marcel Otto
b28e5e4744 Add RDF.Graph.base_iri field and functions to handle it 2019-08-03 00:36:25 +02:00
Marcel Otto
1f07377cae Fix unicode escaping issue in RDF.Literal.matches 2019-07-06 01:59:03 +02:00
Marcel Otto
49a897d79b Fix UTF-16 character handling in regex patterns 2019-06-23 15:47:18 +02:00
Marcel Otto
dc2b070e05 Fix RDF.Double to not accept +INF as a valid value 2019-06-23 15:45:23 +02:00
Marcel Otto
874b0d5eea Include test support files via elixirc_paths 2019-06-09 21:48:03 +02:00
Marcel Otto
34eaacdf37 true and false with capital letters are no longer valid RDF.Booleans 2019-06-08 22:56:22 +02:00
Marcel Otto
5b10ccd58b Fix RDF.Literal.new/1 to handle decimals correctly 2019-05-04 14:59:33 +02:00
Marcel Otto
f89b34ed4b Add RDF.IRI.to_string/1 2019-05-01 03:06:35 +02:00
Marcel Otto
568190e327 Add digit_count and fraction_digit_count to RDF.Decimal 2019-04-22 11:17:16 +02:00
Marcel Otto
489e964c6d Add RDF.Literal.matches?/3 2019-04-20 23:33:09 +02:00
Marcel Otto
95d5d01217 Fix RDF.Dataset.equal?/2 to ignore prefixes 2019-04-04 21:19:33 +02:00
Marcel Otto
731b168ef4 Add RDF.Data.equal?/2 2019-04-04 01:55:34 +02:00
Marcel Otto
158decc16b Add equal?/2 on RDF.Description, RDF.Graph and RDF.Dataset 2019-04-03 00:15:25 +02:00
Marcel Otto
2e49f8b73a Let RDF.Turtle.Encoder use other prefixes when none provided 2019-04-02 00:34:19 +02:00
Marcel Otto
eb71b26f08 Remove unnecessary whitespace 2019-04-01 02:04:51 +02:00
Marcel Otto
74490c96c9 Change RDF.Turtle.Decoder to save the prefixes in the graph 2019-03-31 05:07:34 +02:00
Marcel Otto
195b967b93 Add prefix management to RDF.Graph 2019-03-31 01:15:56 +01:00
Marcel Otto
c2e6ffdebb Optimize RDF.PrefixMap.new/1 creation from another PrefixMap 2019-03-30 22:11:04 +01:00
Marcel Otto
6c9f580cab Add RDF.PrefixMap.drop/2 2019-03-30 20:29:48 +01:00
Marcel Otto
ec33614880 Fix RDF.PrefixMap.merge/3 when the merged prefixes are not a PrefixMap 2019-03-30 20:12:39 +01:00
Marcel Otto
15961b8fef Fix detection of vocabulary namespaces 2019-03-30 02:01:30 +01:00
Marcel Otto
bee98f3e75 Add RDF.PrefixMap.merge/3 and RDF.PrefixMap.merge!/3 2019-03-30 00:01:46 +01:00
Marcel Otto
b75024baf5 Let RDF.PrefixMap.merge/2 return the list conflicts in the error case 2019-03-29 21:05:46 +01:00
Marcel Otto
1801ad186c Change RDF.Dataset.new to take the dataset name as an option 2019-03-29 01:57:49 +01:00
Marcel Otto
1793c842bb Change RDF.Graph.new to take the graph name as an option 2019-03-29 01:26:50 +01:00
Marcel Otto
6bd42a9c39 Add configurable RDF.default_prefixes 2019-03-28 00:12:14 +01:00
Marcel Otto
4da3a12011 Add RDF.PrefixMap.merge!/2 2019-03-26 23:00:00 +01:00
Marcel Otto
14f7bb5693 Allow namespaces to be given as RDF.Vocabulary.Namespaces in PrefixMaps 2019-03-26 22:31:05 +01:00
Marcel Otto
4f71d14377 Add RDF.PrefixMap 2019-03-26 00:31:43 +01:00
Marcel Otto
3086374a0d Fix deprecation warning with Decimal 1.6
warning: passing float to Decimal.new/1 is deprecated, use Decimal.from_float/1 instead
2019-02-15 02:30:41 +01:00
Marcel Otto
486c15631c Remove unused module attribute 2019-01-17 18:07:53 +01:00
Marcel Otto
036de6e66c Add valid?/1 on RDF.Triple, RDF.Quad and RDF.Statement 2018-11-11 13:14:48 +01:00
Marcel Otto
4336602dcc Add a values/2 variant with a custom mapping function 2018-11-04 22:27:25 +01:00
Marcel Otto
535e5b3713 Allow value equality comparisons between XSD dates and datetimes
This is required to make date-2 of the SPARQL 1.0 open-world test pass.
Strangely enough, ordering comparisons are nevertheless disallowed
according to date-3 of the same test suite. An implementation which
would allow order comparison is included but uncommented.
2018-11-04 17:27:45 +01:00
Marcel Otto
b7291c7d93 Proper handling of comparisons between date literals 2018-11-04 15:54:49 +01:00
Marcel Otto
10dc249531 Accept "-00:00" as a valid timezone offset on RDF.DateTime literals 2018-11-04 04:02:36 +01:00
Marcel Otto
1907e22c62 Add literal comparison functions 2018-11-02 22:00:48 +01:00
Marcel Otto
52933b5297 Add RDF.Data.values/1 2018-10-28 03:50:48 +01:00
Marcel Otto
defd1857e5 Add values/1 on RDF.Description, RDF.Graph and RDF.Dataset 2018-10-27 16:30:19 +02:00
Marcel Otto
9e06cea7ca Fix RDF.Date.equal_value?/2 to handle timezones correctly 2018-10-26 01:08:21 +02:00
Marcel Otto
1276f252c5 Add values/1 on RDF.Triple, RDF.Quad and RDF.Statement 2018-10-22 00:52:22 +02:00
Marcel Otto
7766a4a820 Add RDF.Term.value/1 2018-10-05 01:15:36 +02:00
Marcel Otto
f4877bbc65 Fix some issues with RDF.Term coercion in various contexts 2018-09-16 22:21:53 +02:00
Marcel Otto
1cd3a0c342 Support RDF.Term coercion on all arithmetic operations in RDF.Numeric 2018-09-16 15:11:51 +02:00
Marcel Otto
d72c5ebd1f Add Decimal implementation of RDF.Term protocol 2018-09-16 15:07:41 +02:00
Marcel Otto
edfdb186d0 Add RDF.Term.coerce/1 2018-09-16 04:02:53 +02:00
Marcel Otto
fa7e214985 Fix RDF.Time to store microseconds 2018-09-14 23:08:36 +02:00
Marcel Otto
c746706a10 Fix equality comparison of invalid literals 2018-09-14 21:31:16 +02:00
Marcel Otto
6d4c0b2a37 Add tests of equality comparison of literals with unknown datatypes 2018-09-14 21:30:48 +02:00
Marcel Otto
7847c76fc9 Change RDF.Datatype.cast implementations to return nil when not castable 2018-09-14 18:00:43 +02:00
Marcel Otto
a2cd1adeeb Fix broken test 2018-09-14 17:07:37 +02:00
Marcel Otto
a51e2a0dec Fix RDF.Datatype.cast/1 implementations when casting from strings 2018-09-14 17:02:04 +02:00
Marcel Otto
97b1cec4aa Various fixes of RDF.Datatype.cast/1 implementations 2018-09-13 00:57:57 +02:00
Marcel Otto
e0635b42ad Add implementation of RDF.Datatype.cast/1 on all time-related datatypes 2018-09-12 01:10:50 +02:00
Marcel Otto
65a08c7754 Add Elixir version conditional for test with negative year 2018-09-11 03:21:51 +02:00
Marcel Otto
45866fe30b Add implementation of RDF.Datatype.cast/1 on RDF.String 2018-09-11 03:12:58 +02:00
Marcel Otto
de25b5399b Add various utility functions on RDF.Time and RDF.DateTime 2018-09-11 03:12:15 +02:00
Marcel Otto
56c153198f Add implementation of RDF.Datatype.cast/1 on numeric datatypes 2018-09-09 15:28:35 +02:00
Marcel Otto
1e94842bc0 Add implementation of RDF.Datatype.cast/1 on RDF.Boolean 2018-09-09 15:27:27 +02:00
Marcel Otto
9c78ebeba7 Minor refactorings 2018-08-31 01:51:31 +02:00
Marcel Otto
598fd731e6 RDF.BlankNode.Generate can generate blank nodes for every value
- not just strings
2018-08-29 21:26:13 +02:00
Marcel Otto
adc1d953dc Add RDF.BlankNode.Generator 2018-08-28 01:14:44 +02:00
Marcel Otto
3549a67a12 Fix new and new! on RDF.Literal and RDF.String when language nil given 2018-08-26 05:46:18 +02:00
Marcel Otto
fbbd52d1b0 Add version-dependent tests for negative years in Dates and DateTimes 2018-08-25 00:53:37 +02:00
Marcel Otto
6bafb41cf9 Change RDF.IRI.absolute/2 to return nil if the base is not absolute 2018-08-24 01:32:54 +02:00
Marcel Otto
1c7cad39be Fix datatype and lexical form of result of various numeric functions
- to match SPARQL semantics
2018-08-21 03:27:48 +02:00
Marcel Otto
ec55b3758f Add RDF.DateTime.tz/1 2018-08-10 23:51:04 +02:00
Marcel Otto
a51e518c26 Fix RDF.DateTime to store microseconds 2018-07-20 01:49:59 +02:00
Marcel Otto
974b2c8360 Add RDF.Numeric.ceil/1 and RDF.Numeric.floor/1 2018-07-14 01:18:13 +02:00