Marcel Otto
fab63e6a0d
Update API documentation
2020-06-01 15:43:38 +02:00
Marcel Otto
8106f89ca0
Optimize canonical_lexical/1 implementation on RDF.XSD.Datatypes
2020-05-29 01:33:40 +02:00
Marcel Otto
df9a928802
Fix dialyzer warnings
2020-05-28 02:00:01 +02:00
Marcel Otto
3743b0e406
Add RDF.Literal.is_a?/2
2020-05-27 23:55:43 +02:00
Marcel Otto
98adbaf878
Handle derived datatypes on RDF.Literal.Datatype.compare/2 properly
2020-05-27 00:56:44 +02:00
Marcel Otto
162e82ed47
Handle derived datatypes on RDF.Literal.Datatype.equal_value?/2 properly
2020-05-25 23:10:50 +02:00
Marcel Otto
d247e1bf4f
Support derived datatypes on RDF.Literal.Datatype.value/1 and valid?/2
2020-05-24 21:13:04 +02:00
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
Marcel Otto
195b967b93
Add prefix management to RDF.Graph
2019-03-31 01:15:56 +01:00
Marcel Otto
8bffff7c76
Rename the conflict resolver function for RDF.PrefixMap merges
2019-03-30 22:18:10 +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
2644570521
Fix some typos
2019-03-27 23:47:23 +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
86ca2a866c
Fix RDF.PrefixMap.normalize/1
2019-03-26 21:53:57 +01:00
Marcel Otto
4f71d14377
Add RDF.PrefixMap
2019-03-26 00:31:43 +01:00
Marcel Otto
a68cf0dc6a
Fix deprecation warning with Elixir 1.8
...
warning: Inspect.Algebra.surround/3 is deprecated. Use a combination of concat/2 and nest/2 instead
2019-02-15 02:30:59 +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
8979cfd001
Fix Kernel function conflict under Elixir 1.8
2019-01-17 18:08:07 +01:00
Marcel Otto
c5c43caceb
Fix wrong signatures of RDF.write_file and RDF.write_file! delegators
2018-11-18 21:19:11 +01:00
Marcel Otto
77f9ad491a
Fix typos
2018-11-17 02:51:14 +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
d1532d7022
Fix typo in docs
2018-11-11 02:28:38 +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
04f6420962
Remove references to RDF.Vocab package temporarily
...
In its current form it is not recommended to use this package since it
brings a huge baggage as a dependency into your application. A major
rewrite is planned.
2018-09-27 00:46:34 +02:00
Marcel Otto
3268d2d08e
Hide some internal functions
2018-09-17 02:08:42 +02:00
Marcel Otto
9c6beeac13
Add @impl annotations
2018-09-17 02:08:16 +02:00
Marcel Otto
dfb88ac65e
Fix RDF.resource?/1 to not fail when called with unresolvable atoms
2018-09-16 22:28:46 +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
7e7f6e7189
Add RDF.term?/1
2018-09-16 03:52:07 +02:00
Marcel Otto
b6db74e686
Add top-level aliases for some ambiguous cases
2018-09-15 00:34:09 +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
7847c76fc9
Change RDF.Datatype.cast implementations to return nil when not castable
2018-09-14 18:00:43 +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
584d87a49c
Add dayTimeDuration and yearMonthDuration to RDF.Datatype.NS
2018-09-14 14:12:12 +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
60281a0379
Add is_xsd_date/1 and is_xsd_time/1 guards
2018-09-11 03:16:10 +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
1fa369197e
Add RDF.DateTime.tz/1 optimization for naive datetimes
2018-09-11 00:04:39 +02:00
Marcel Otto
b0bfd7fe62
Specify enforced keys for structs
2018-09-10 00:27:40 +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
b0e4e5327e
Add RDF.Datatype.cast/1
2018-09-09 15:26:32 +02:00
Marcel Otto
f4b9b0f434
Add RDF.DateTime.now/0
2018-09-08 21:50:42 +02:00
Marcel Otto
93b932620c
Add RDF.Literal.Guards
2018-09-07 21:42:38 +02:00
Marcel Otto
e393bff9ef
Add RDF.Term.t type
2018-09-02 05:25:20 +02:00
Marcel Otto
be390adaea
Add missing defoverridable for Reader.encode!/1
2018-08-31 01:14:11 +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
315828a1d6
Fix warning
2018-08-27 00:31:02 +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
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
81cfcff5d7
Add default_base_iri configuration and use it for serialization readers
2018-08-17 01:31:08 +02:00
Marcel Otto
87b34f8464
Fix warnings raised on Elixir 1.7
2018-08-16 23:46:05 +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
d00fa6e914
Fix typos
2018-07-18 00:08:37 +02:00
Marcel Otto
974b2c8360
Add RDF.Numeric.ceil/1 and RDF.Numeric.floor/1
2018-07-14 01:18:13 +02:00
Marcel Otto
cb9585d87a
Add RDF.Numeric.round/1 and RDF.Numeric.round/2
2018-07-13 23:14:20 +02:00
Marcel Otto
ae54a8bfe2
Add RDF.Numeric.abs/1
2018-07-13 01:34:12 +02:00
Marcel Otto
34898cd696
Add RDF.LangString.match_language?/2
2018-07-10 00:18:16 +02:00
Marcel Otto
4cea91e52f
Change RDF.String.new/2 to produce language strings when language given
2018-07-09 23:04:25 +02:00
Marcel Otto
978ed89164
Fix RDF.LangString to produce invalid literals when invalid languages given
2018-07-09 21:49:25 +02:00
Marcel Otto
708e46384a
Fix RDF.Double on OTP 21
2018-06-30 12:14:30 +02:00
Marcel Otto
7ad3c0acc1
Add arithmetic operations on RDF.Numeric
2018-06-22 22:03:23 +02:00
Marcel Otto
ca3c4a0104
Fix RDF.Decimal
...
- the canonical representation of given Decimals was not always correct,
we now store always the canonical decimal as the Literal.value
2018-06-17 23:40:07 +02:00
Marcel Otto
2313e001fd
Support value equality checks on RDF.Decimals
2018-06-16 01:48:10 +02:00
Marcel Otto
6a357229b2
Enable support for decimal literals in Turtle encoder
2018-06-15 21:35:29 +02:00
Marcel Otto
f5684262e7
Add RDF.Decimal datatype
2018-06-15 21:19:22 +02:00
Marcel Otto
9193dd916f
Small refactoring
2018-06-15 20:56:40 +02:00
Marcel Otto
d838424478
Add RDF.Term.equal?/2 and RDF.Term.equal_value?/2
2018-06-08 12:26:52 +02:00
Marcel Otto
cae8e183e0
Fix RDF.DateTime to support 24:00:00 as valid time
2018-06-03 23:21:14 +02:00
Marcel Otto
71dc3d5acc
Add functions for the basic logical operations to RDF.Boolean
2018-05-29 22:40:11 +02:00
Marcel Otto
f3cc9ccf7e
Add Effective Boolean Value (EBV) algorithm and RDF.Numeric
2018-05-27 22:19:08 +02:00
Marcel Otto
3e5db97ce4
Add top-level functions for the two boolean RDF.Literal values
2018-05-26 02:51:28 +02:00
Marcel Otto
b4c3dc8d98
Use function body rescue where possible
2018-05-16 01:59:46 +02:00
Marcel Otto
df05445733
Add top-level alias functions for constructors of the basic datatypes
2018-04-07 22:59:03 +02:00
Marcel Otto
0e913fce81
Fix some typos in the documentation
2018-03-19 01:50:05 +01:00
Marcel Otto
733ee44749
Add RDF.Literal.new!/2
2018-03-14 11:46:11 +01:00
Marcel Otto
e80488d601
Don't fail when creating a rdf:langString literal without a language tag
2018-03-14 10:42:41 +01:00
Marcel Otto
c179185cfd
Fix some warnings
2018-03-09 23:57:20 +01:00
Marcel Otto
56436f85af
Provide fallback implementations for Enumerable.slice/1
2018-03-09 23:18:08 +01:00
Marcel Otto
5aaf15bbcd
Use RDF.read_file/1 in RDF.Vocabulary.Namespace
2018-03-09 21:26:15 +01:00
Marcel Otto
24aabc389b
Add general RDF.Serialization.read_* and write_* functions
2018-03-09 21:15:43 +01:00
Marcel Otto
54d9eff014
Move RDF.Reader and RDF.Writer into RDF.Serialization module
2018-03-08 17:33:20 +01:00
Marcel Otto
eb6ede55b9
Rename RDF.Serialization.Format.content_type/0 to media_type/0
2018-03-08 02:14:49 +01:00
Marcel Otto
4f5b06c830
Add RDF.Serialization with functions to access available formats
2018-03-08 01:57:38 +01:00
Marcel Otto
7314f2d643
Rename RDF.Serialization behaviour to RDF.Serialization.Format
2018-03-07 10:33:09 +01:00
Marcel Otto
7753d0d6f7
Add name to RDF.Serialization formats
2018-03-07 10:16:00 +01:00
Marcel Otto
6832176904
Fix some warnings
2018-03-02 01:14:50 +01:00
Marcel Otto
bb0f8e12aa
Fix typos and RDF.Serialization.Decoder callback spec
2018-03-01 13:31:06 +01:00
Marcel Otto
57d59d9783
Make RDF.Turtle.Decoder.tokenize public
2018-02-28 01:20:18 +01:00
Adam Keys
e9cd2bf711
Fix unescape_map in parse_helper for elixir 1.6
2018-01-19 10:24:20 -06:00
Marcel Otto
b445f2e31c
Add Collectable implementations for all RDF data structures
2017-10-30 12:15:16 +01:00
Marcel Otto
102db58c3b
Show always the compilation message of vocabulary namespaces
2017-08-22 00:43:31 +02:00
Marcel Otto
d098fee62a
Cover more term resolving cases in the RDF.IRI functions
2017-08-21 21:09:35 +02:00
Marcel Otto
19457d61b9
Handle resolving of terms from undefined modules consistently
2017-08-21 21:06:57 +02:00
Marcel Otto
5c7efe4cbd
Add RDF.IRI, use it instead of URI and use the term IRI consistently
...
Closes #1
2017-08-20 22:35:14 +02:00
Marcel Otto
89d75270aa
Rename RDF.Statement.convert* functions to RDF.Statement.coerce*
2017-08-11 22:22:27 +02:00
Marcel Otto
75b84254f4
Add ordering of descriptions to Turtle encoder
2017-08-11 18:34:26 +02:00
Marcel Otto
eeffceb16d
Fix some warnings
2017-08-11 18:33:12 +02:00
Marcel Otto
6d00346dcd
Add RDF.__base_uri__/0 delegator function
2017-08-11 15:43:40 +02:00
Marcel Otto
1445ea58ef
Add ordering of predications to Turtle encoder
2017-08-11 15:23:54 +02:00
Marcel Otto
0410c3ac0a
Use Turtle files for the predefined vocabulary namespaces
2017-08-10 23:45:28 +02:00
Marcel Otto
2017718000
Enable Turtle as an input format for vocabulary namespaces
2017-08-10 23:41:31 +02:00
Marcel Otto
de4b526e9a
Remove use Agent
from RDF.Turtle.Encoder.State
...
it's a Elixir 1.5 feature, which we actually don't require
2017-08-09 23:35:12 +02:00
Marcel Otto
1e802befca
Add Turtle encoder
2017-08-09 23:24:37 +02:00
Marcel Otto
bb138f7e90
Another fix of URI.parse not preserving empty fragments
2017-08-01 01:38:54 +02:00
Marcel Otto
2f6fa6fe34
Revise RDF.List
2017-07-31 23:21:09 +02:00
Marcel Otto
be36ae085d
RDF.List module with functions for working with RDF lists
2017-07-27 21:49:35 +02:00
Marcel Otto
dc7dce7dbc
Add describes?/1 to RDF.Data protocol and all RDF data structures
2017-07-24 03:14:31 +02:00
Marcel Otto
a6db9723ca
Add RDF.bnode?/1
2017-07-22 00:21:28 +02:00
Marcel Otto
df766972c2
Add RDF.Description.objects/2 with custom filter function
2017-07-22 00:18:22 +02:00
Marcel Otto
44b527038d
RDF.uri/1 preserves empty fragments
2017-07-16 23:59:28 +02:00
Marcel Otto
529714ec1c
Use base URI in URIs of @prefix and @base directives
2017-07-10 01:41:36 +02:00
Marcel Otto
d1ef0d1fb3
Proper implementation of N-Triples, N-Quads and Turtle escaping rules
2017-07-09 22:22:35 +02:00
Marcel Otto
7f5012dc0e
Various fixes of the Turtle decoder
2017-07-09 19:27:21 +02:00
Marcel Otto
b27db58856
Add RDF.Description.first/2
2017-07-08 20:55:34 +02:00
Marcel Otto
49842af90f
Add RDF.Data.descriptions/1
2017-07-07 19:03:01 +02:00
Marcel Otto
cbc2b0f122
Add base URI handling to Turtle decoder
2017-07-07 18:00:09 +02:00
Marcel Otto
06dbddaf3f
Add Turtle decoder
2017-07-05 23:27:55 +02:00
Marcel Otto
306b2013d5
Recognize booleans as convertible literals on object position
2017-07-02 19:48:38 +02:00
Marcel Otto
206bc1cbd9
Prevent vocabulary terms conflicting with Elixir semantics
2017-06-23 17:25:27 +02:00
Marcel Otto
8ab2ab1e15
Fix handling of vocabulary terms starting with an underscore
2017-06-23 17:23:14 +02:00
Marcel Otto
02202b49a7
terms in a vocabulary namespace can be ignored
2017-06-21 23:29:24 +02:00
Marcel Otto
1ce89e7ad4
Add documentation for the top-level RDF module
2017-06-18 23:04:58 +02:00
Marcel Otto
b3365d2f55
Clean up the top-level RDF module and some other files
2017-06-17 00:51:42 +02:00