Hi, I'm sorry if this was covered earlier, but I haven't seen it in a Google search.
First, are there any support plans for scaling outwards? I know MarkLogic has splits clusters into multiple enodes and dnodes. But the idea is that there isn't one central bottleneck for requests.
Second, I read about Jsoniq and was intrigued by it. It seemed like it supported JSON without requiring an XML intermediary. Having good JSON support would really help with frameworks like Angular or React.
I really love Basex overall though and think it's underrated for what it can do.
Regards, Ben
On 12/22/18 8:26 PM, Ben Pracht wrote:
Second, I read about Jsoniq and was intrigued by it. It seemed like it supported JSON without requiring an XML intermediary. Having good JSON support would really help with frameworks like Angular or React.
Funny, I was thinking about posting the same thing last week, but at the end I didn't. I'm working with some huge amounts of JSON data lately and I'm using BaseX to parse the data, understand it, then export it to HTML for others to see. XQuery 3.1 has support for JSON via the parse-json function, but it converts it to maps so if you want to read a specific "node" you need to know the exact path for it, and it can be hard to request that. The alternative is to use the basex JSON module which converts it to XML, then use XPATH to read what you need. I'm not really sure what's the best solution is for something like this, but there are some xquery engines / databases who use jsoniq. e.g
1) VXQuery -> https://cwiki.apache.org/confluence/display/VXQUERY/JSONiq
2) Zorba -> http://try.zorba.io/
3) Sparksoniq -> http://sparksoniq.org/
I really love Basex overall though and think it's underrated for what it can do.
I agree! It's a tool that is useful for many things and I recommend it every time.
Merry Christmas to everyone !
Regards, George.
Hi Ben,
First, are there any support plans for scaling outwards? I know MarkLogic has splits clusters into multiple enodes and dnodes. But the idea is that there isn't one central bottleneck for requests.
BaseX as open source project provides no built-in features for horizontal scaling. We have built individual solutions for our commercial customers; feel free to write to info@basexgmbh.de if you are interested.
Second, I read about Jsoniq and was intrigued by it. It seemed like it supported JSON without requiring an XML intermediary. Having good JSON support would really help with frameworks like Angular or React.
Yes, Jsoniq is cool. We had some thoughts on implementing some years ago. In the end, we decided not to, because it would have introduced incompatibilities with features of the official XQuery 3.1 recommendation.
Nowadays, you have two choices in BaseX:
• If you are processing JSON documents in main-memory, you can use the standard XQuery functions to convert JSON strings to XQuery data structures [1]. Maps and arrays in XQuery are very efficient, and often a better choice than XML if you have to repeatedly process the same data. • If you want to store your data in a database, and benefit from indexing, updates, etc., you can convert JSON to an XML structure that suits you best [2]. You will notice that the time required for converting JSON to XML and backwards is hardly noticeable. In practice, it is frequently used to store and query millions of JSON documents in a database.
Hope this helps, Christian
[1] http://docs.basex.org/wiki/XQuery_3.1#JSON_Functions [2] http://docs.basex.org/wiki/Json_Module
As an author of both JSONiq and XQuery 3.1, I generally think of XQuery 3.1 as the standard that implemented what JSONiq did. Some authors of JSONiq see this very differently, preferring the JSONiq way of doing things.
Is there anything JSONiq can do that XQuery 3.1 can't?
Jonathan
On Wed, Jan 2, 2019 at 10:47 AM Christian Grün christian.gruen@gmail.com wrote:
Hi Ben,
First, are there any support plans for scaling outwards? I know
MarkLogic has splits clusters into multiple enodes and dnodes. But the idea is that there isn't one central bottleneck for requests.
BaseX as open source project provides no built-in features for horizontal scaling. We have built individual solutions for our commercial customers; feel free to write to info@basexgmbh.de if you are interested.
Second, I read about Jsoniq and was intrigued by it. It seemed like it
supported JSON without requiring an XML intermediary. Having good JSON support would really help with frameworks like Angular or React.
Yes, Jsoniq is cool. We had some thoughts on implementing some years ago. In the end, we decided not to, because it would have introduced incompatibilities with features of the official XQuery 3.1 recommendation.
Nowadays, you have two choices in BaseX:
• If you are processing JSON documents in main-memory, you can use the standard XQuery functions to convert JSON strings to XQuery data structures [1]. Maps and arrays in XQuery are very efficient, and often a better choice than XML if you have to repeatedly process the same data. • If you want to store your data in a database, and benefit from indexing, updates, etc., you can convert JSON to an XML structure that suits you best [2]. You will notice that the time required for converting JSON to XML and backwards is hardly noticeable. In practice, it is frequently used to store and query millions of JSON documents in a database.
Hope this helps, Christian
[1] http://docs.basex.org/wiki/XQuery_3.1#JSON_Functions [2] http://docs.basex.org/wiki/Json_Module
basex-talk@mailman.uni-konstanz.de