Commit graph

264 commits

Author SHA1 Message Date
Marcel Otto cbc525d982 Move BGP query planner and bnode handler to dedicated files 2020-06-07 23:30:34 +02:00
Marcel Otto ef218a3a90 Extract BGP query planner 2020-06-05 11:10:15 +02:00
Marcel Otto 1de3a7fa6f Add BGP matching algorithm behaviour with a simple implementation
This simple implementation was just extracted unchanged from SPARQL.ex
2020-06-04 21:39:13 +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 ffebf86505 Remove redundant tests 2020-05-22 10:21:29 +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 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 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 042ff1c1b8 Drop support for Elixir versions < 1.8 2020-05-11 23:21:20 +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 2b46bb8f23 Restore casting of IRIs to strings 2020-05-07 21:18:05 +02:00
Marcel Otto d324b464b2 Add test for comparison betweens string and langString literals 2020-05-07 21:17:16 +02:00
Marcel Otto faaebb2de2 Add ProtocolEx-based custom datatype registration 2020-05-07 15:37:21 +02:00
Marcel Otto 4fedb2cfc0 Fix test of RDF.Literal.new/1 with plain datatype literals 2020-05-06 22:33:28 +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 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