Marcel Otto
909e2bde18
Rename the :id field of RDF.BlankNode to :value for consistency reasons
2020-07-08 22:02:58 +02:00
pukkamustard
2d68a352ed
Fix non-empty RDF.Graph when adding empty RDF.Description ( #8 )
2020-07-03 23:49:06 +02:00
Marcel Otto
0e81f4c02c
Apply mix formatter
2020-06-29 10:37:42 +02:00
Marcel Otto
c880026224
Remove references to current module names by using __MODULE__
2020-06-28 23:40:03 +02:00
Marcel Otto
520a6ba58d
Add API documentation for BGP querying and some fixes for the API
2020-06-16 12:05:44 +02:00
Marcel Otto
7d3473abd0
RDF graph query API
2020-06-13 16:16:52 +02:00
Marcel Otto
8d68e925ad
Add path query builder
2020-06-12 02:53:29 +02:00
Marcel Otto
b6aafccc7d
Move query builder into own module
2020-06-12 00:19:31 +02:00
Marcel Otto
1aa2f22b92
Add RDF.Query.BGP builder
2020-06-10 01:13:01 +02:00
Marcel Otto
f9e451f006
Change BGP matching query results to return variable keys as atoms
2020-06-08 21:56:50 +02:00
Marcel Otto
9cd4478574
Add RDF.Query.BGP struct
2020-06-08 11:36:22 +02:00
Marcel Otto
2fca23209b
Rename BGP matcher algorithm behaviour
2020-06-08 10:16:22 +02:00
Marcel Otto
1ca082cbb2
Add and improve existing typespecs on BGP behaviour
2020-06-08 10:08:09 +02:00
Marcel Otto
49bcb27bb0
Add streaming version of the BGP matching algorithm
2020-06-08 00:58:39 +02:00
Marcel Otto
cbc525d982
Move BGP query planner and bnode handler to dedicated files
2020-06-07 23:30:34 +02:00
Marcel Otto
335d4cc66d
Make simple BGP more comprehensible
2020-06-07 22:50:24 +02:00
Marcel Otto
ed1b9c80a1
Extract BGP bnode handling
2020-06-06 02:46:03 +02:00
Marcel Otto
f4bda2ef00
Only traverse the solution set to remove blank nodes when necessary
...
Also add an option remove_bnode_query_variables to skip the removal
generally.
2020-06-05 12:33:04 +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
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