Commit graph

412 commits

Author SHA1 Message Date
Marcel Otto
7daf494fb9 Restore ability to cast RDF.IRIs to XSD.Strings and XSD.AnyURIs
This is needed for SPARQL.
2020-05-23 00:31:15 +02:00
Marcel Otto
e755c1d0ff Fix dialyzer warning 2020-05-22 01:07:28 +02:00
Marcel Otto
6c102c7ec8 Add explicitTimezone XSD datatype facet 2020-05-22 01:01:08 +02:00
Marcel Otto
486a64b4d7 Add totalDigits and fractionDigits XSD datatype facets 2020-05-21 22:57:03 +02:00
Marcel Otto
0a27c3a928 More strict type for length XSD datatype facets
as defined in the XSD spec
2020-05-21 22:24:44 +02:00
Marcel Otto
c2a28b3eb4 Add pattern XSD datatype facet 2020-05-21 17:54:38 +02:00
Marcel Otto
80b1382fa9 Add length facets to XSD.AnyURI 2020-05-21 17:50:53 +02:00
Marcel Otto
dbaac77dbb Handle derived types in RDF.Literal.Datatype.cast/1 implementations 2020-05-21 15:42:02 +02:00
Marcel Otto
c1a61c58e8 Remove coercion on RDF.Literal.Datatype.cast/1
It's not worth the effort and more explicit to do the coercion step

manually.
2020-05-21 01:58:07 +02:00
Marcel Otto
accf66d75f Fix failing of numeric operations with invalid literals 2020-05-20 00:32:20 +02:00
Marcel Otto
fa130bf14e Fix type promotion on numeric operations with derived datatypes 2020-05-19 03:09:29 +02:00
Marcel Otto
22c2aaa1af Add length, minLength and maxLength XSD datatype facets 2020-05-17 22:54:07 +02:00
Marcel Otto
2c4b5f604a Add minExclusive and maxExclusive XSD datatype facets 2020-05-17 21:51:03 +02:00
Marcel Otto
09dceb0e35 Add proper handling for derived datatypes on numeric operations
with type promotion
2020-05-17 21:49:07 +02:00
Marcel Otto
bf932be26d Add min- and max-inclusive facet implementations to decimal and double 2020-05-17 20:21:00 +02:00
Marcel Otto
5daf32446d Fix regression in RDF.LangString.match_language?/2 2020-05-17 02:47:48 +02:00
Marcel Otto
47a19c0a67 Add proper handling of vocabulary terms at various places
- in the coerce and value functions of the RDF.Term protocol for atoms
- allow them as XSD.AnyURI values
- RDF.Literal.coerce produces XSD.AnyURI literals from them
- allow them in equal_value comparisons with RDF.IRIs and XSD.AnyURIs
2020-05-17 00:53:36 +02:00
Marcel Otto
76b6f69613 Fix raised BEAM error warning when namespace resolving top-level modules 2020-05-17 00:01:18 +02:00
Marcel Otto
4d3d60a5f4 Fix regression in handling of vocabulary terms as generic datatypes 2020-05-16 14:42:12 +02:00
Marcel Otto
6873ba4da1 Fix dialyzer warnings 2020-05-16 03:51:54 +02:00
Marcel Otto
0509e4cb2f Store datatype in a RDF.Literal.Generic internally as string
Besides being a bit more memory efficient this allows for
pattern matching on the datatype of generic literals.
2020-05-16 00:06:45 +02:00
Marcel Otto
25a0f7443c Rename RDF.Literal.datatype/1 and similar functions to datatype_id/1 2020-05-15 22:59:05 +02:00
Marcel Otto
fa35b65d9f Redesign datatype reflection API 2020-05-15 17:13:31 +02:00
Marcel Otto
b53d09d4f5 Add RDF.Literal.Datatype.Registry.xsd_datatype/1 2020-05-10 01:37:01 +02:00
Marcel Otto
d18c7ed475 Refactor datatype registry 2020-05-10 01:35:07 +02:00
Marcel Otto
afc6f28cf4 Always resolve datatype IRIs through the registration protocol
It's actually faster (although just slightly) than the map access!
2020-05-09 00:54:35 +02:00
Marcel Otto
c22bab6c74 Change Namespace.resolve_term to return ok tuples and add resolve_term! 2020-05-09 00:26:29 +02:00
Marcel Otto
d112561fa9 Fix filename of the datatype registration protocol 2020-05-08 12:27:12 +02:00
Marcel Otto
2b46bb8f23 Restore casting of IRIs to strings 2020-05-07 21:18:05 +02:00
Marcel Otto
faaebb2de2 Add ProtocolEx-based custom datatype registration 2020-05-07 15:37:21 +02:00
Marcel Otto
24051c6153 Add RDF.Guards.maybe_ns_term/1 2020-05-06 18:04:19 +02:00
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
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
66cc9292c9 Remove canonical/1 calls in RDF.Literal.Generic.compare/2
since generic literals don't have a canonical form
2020-04-17 23:03:13 +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
2907d817ee Optimize critical RDF.Literal.Datatype.Registry.rdf_datatype/1 function 2020-04-14 02:39:09 +02:00
Marcel Otto
2be689b2a1 Various datatype fixes 2020-04-12 23:55:34 +02:00
Marcel Otto
6049798b37 Add and fix some Dialyzer typespecs 2020-04-12 21:52:25 +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
611ada00a2 Don't print "Compiling vocabulary namespace" message during tests 2020-04-05 01:29:24 +02:00
Marcel Otto
7858ff77c4 Minor changes on RDF.Boolean specs 2020-03-11 00:39:18 +01:00
rustra
8115554847 Minor changes in specs 2020-03-10 22:44:54 +01:00
rustra
91dc078763 Improve specs for serialization 2020-03-10 01:37:53 +01:00
rustra
bd52920e7c Improve specs for datatypes 2020-03-10 01:37:14 +01:00
Marcel Otto
2244c36b78 Fix warning 2020-03-04 01:31:48 +01:00
Marcel Otto
a047697f70 Fix deprecation warning for Code.ensure_compiled?/1 on Elixir 1.10 2020-03-04 01:30:19 +01:00
rustra
08b4a44b13 Add value type specs for RDF.Datatype 2020-03-03 22:36:11 +01:00
rustra
3da72f9e6a Specs improvements and fixes 2020-03-03 22:02:35 +01:00
rustra
8345e101d3 Add function signatures 2020-03-02 18:23:34 +01:00
rustra
83f62335b3 Fix type specs for structs 2020-02-28 18:51:48 +01:00
Marcel Otto
ef55979f31 Fix incorrect handling of 24h overflows with an offset on RDF.XSD.Time 2020-02-14 08:56:14 +01:00
Marcel Otto
0f42c462ab Add RDF.Diff to module overview 2019-11-27 09:10:57 +01:00
Marcel Otto
092a9c60d1 Change write_file functions to no longer use :utf8 file mode option 2019-11-21 22:06:09 +01: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
b6438b1c41 Add RDF.diff/2 alias 2019-11-20 01:45:18 +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
18ae910bd7 Fix vocabulary namespace detection 2019-09-06 15:05:40 +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
65374303d4 Fix docs 2019-08-05 02:23:29 +02:00
Marcel Otto
5f855de58c Use RDF.default_base_iri in Turtle encoder and decoder 2019-08-04 00:13:13 +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
22ec671da7 Improve error messages of Turtle, N-Triples and N-Quads decoder 2019-07-06 02:32:31 +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
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
9587b1fd08 Fix warning 2019-04-29 20:45:06 +02:00
Marcel Otto
a1e4049cba Fix missing unescaping of language literals during Turtle parsing 2019-04-28 00:35:23 +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
3de7d700d3 Make RDF.Literal.xpath_pattern/2 public 2019-04-21 03:59:38 +02:00
Marcel Otto
489e964c6d Add RDF.Literal.matches?/3 2019-04-20 23:33:09 +02:00
Marcel Otto
68c91b6894 Add links to website 2019-04-06 02:24:22 +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