Commit graph

525 commits

Author SHA1 Message Date
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
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
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
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
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
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
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
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
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
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
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
b3365d2f55 Clean up the top-level RDF module and some other files 2017-06-17 00:51:42 +02:00
Marcel Otto
ad1acfffc1 Change header level of examples 2017-06-17 00:27:05 +02:00
Marcel Otto
da24657a07 Move RDF.Dataset.reduce into Enumerable implementation 2017-06-17 00:17:34 +02:00
Marcel Otto
28e84b1432 Add and revise documentation of RDF.Graph 2017-06-16 23:42:32 +02:00
Marcel Otto
5805cfe34f Add and revise documentation of RDF.Description 2017-06-16 23:03:44 +02:00
Marcel Otto
a1e08bc831 Revise some module docs 2017-06-16 23:01:08 +02:00
Marcel Otto
b489b2de0f Add module documentation for RDF.Sigils 2017-06-16 18:45:52 +02:00
Marcel Otto
93a8a2c40b Exclude NTriples and NQuads decoders and encoders from documentation 2017-06-16 18:45:30 +02:00
Marcel Otto
f3168e1682 Add RDF.Writer and corresponding write functions on RDF.Serialization 2017-06-16 18:32:41 +02:00
Marcel Otto
1fdb64c646 Add documentation to RDF.Serialization, RDF.Reader, RDF.Decoder and RDF.Encoder 2017-06-16 18:13:53 +02:00
Marcel Otto
31851d3630 Remove general read and read! functions from RDF.Serializations 2017-06-16 17:31:52 +02:00
Marcel Otto
de0e656458 Rename RDF.Serialization.Reader to RDF.Reader 2017-06-16 14:21:12 +02:00
Marcel Otto
5600f8c1ce Add documentation to RDF.BlankNode 2017-06-16 13:13:56 +02:00
Marcel Otto
f62316d833 RDF.Description.new can handle a property-value tuple when subject is given separately 2017-06-15 17:51:55 +02:00
Marcel Otto
f475f910d4 Print a message before the compilation of bigger vocabulary namespaces 2017-06-14 05:19:18 +02:00
Marcel Otto
a9c039dea7 core: remove module docs for internal RDF.Utils.ResourceClassifier 2017-06-11 14:24:29 +02:00
Marcel Otto
8bc4963e39 core: remove URI precompiling workaround 2017-06-11 14:23:17 +02:00
Marcel Otto
d83a0c508d core: terms from the RDF.NS.RDF namespace are directly accessible from the top-level RDF module 2017-06-10 23:08:49 +02:00
Marcel Otto
f3d0ce35f5 core: add documentation for RDF.Namespace and RDF.Vocabulary.Namespace 2017-06-10 22:23:39 +02:00
Marcel Otto
7b794e77fd core: remove unused exception 2017-06-10 21:50:49 +02:00
Marcel Otto
7904476321 core: RDF.Vocabulary.Namespaces can be constructed from NQuad files 2017-06-10 18:02:51 +02:00
Marcel Otto
fd45a9ed6c core: add error handling for RDF.Namespace term resolution 2017-06-10 04:26:11 +02:00
Marcel Otto
2a8cf08c8e core: add documentation for RDF.Literal and RDF.Datatypes 2017-06-10 00:18:39 +02:00
Marcel Otto
f5593aeef7 core: add RDF.Data.merge/2 2017-06-08 22:18:14 +02:00
Marcel Otto
06fb5a4044 core: fix Inspect implementation of RDF.Dataset 2017-06-08 21:11:56 +02:00
Marcel Otto
38ee0ca44b core: fix and improve behaviour of overwriting the default contexts with add, put and delete of RDF.Dataset 2017-06-07 00:48:08 +02:00
Marcel Otto
cd5636528f core: RDF.Dataset.add, .put and .new support another dataset as input 2017-06-06 23:40:48 +02:00
Marcel Otto
232e2ac765 core: add, put and delete of Description and Graph can handle quads
by just ignoring the graph context
2017-06-05 15:50:31 +02:00
Marcel Otto
e1e8769fb2 core: add RDF.Statement.convert/1 2017-06-05 03:01:23 +02:00
Marcel Otto
b72bf17d9c core: a RDF.Vocabulary.Namespace can be built from any RDF.Data structure 2017-06-05 02:58:49 +02:00
Marcel Otto
96447ec258 core: add RDF.Data.description/2 2017-06-05 02:48:39 +02:00
Marcel Otto
9a128858b6 core: RDF.Dataset.graphs returns a list of graphs
instead of the map from graph names to graphs
2017-06-05 02:41:44 +02:00
Marcel Otto
0271181bca core: RDF.Data protocol implementation for RDF.Dataset 2017-06-04 22:19:21 +02:00
Marcel Otto
371020360f core: RDF.Data protocol implementation for RDF.Graph 2017-06-04 04:51:06 +02:00
Marcel Otto
70e78ee326 core: move RDF.Data implementation 2017-06-04 04:20:08 +02:00
Marcel Otto
25a2d963f6 core: add RDF.Dataset.delete 2017-06-04 04:06:22 +02:00
Marcel Otto
3f403d6f64 core: add RDF.Dataset.delete_graph/2 and RDF.Dataset.delete_default_graph/1 2017-06-03 13:00:58 +02:00
Marcel Otto
7b7c4af243 core: add RDF.Graph.delete_subjects/2 2017-06-02 18:22:58 +02:00
Marcel Otto
6fe4867e18 core: add RDF.Description.delete_predicates/2 2017-06-02 18:06:22 +02:00
Marcel Otto
460d4eef17 core: remove add and put from RDF.Data protocol
We will introduce RDF.Data.merge instead, which can be implemented more consistently
over all structures.
2017-06-02 17:35:34 +02:00