- From: Sandro Hawke <sandro@w3.org>
- Date: Mon, 21 Jul 2014 14:16:54 -0400
- To: Kendall Clark <kendall@clarkparsia.com>
- CC: "Peter F. Patel-Schneider" <pfpschneider@gmail.com>, "Dam, Jesse van" <jesse.vandam@wur.nl>, "public-rdf-shapes@w3.org" <public-rdf-shapes@w3.org>
- Message-ID: <53CD5916.3000007@w3.org>
On 07/21/2014 01:54 PM, Kendall Clark wrote: > n Mon, Jul 21, 2014 at 1:49 PM, Sandro Hawke <sandro@w3.org > <mailto:sandro@w3.org>> wrote: > > On 07/21/2014 08:09 AM, Peter F. Patel-Schneider wrote: > > I could be that the Regular Expression derivatives > algorithm, although much less expressive then OWL, is > outperforming the OWL reasoners. Only some research and > testing will give an useful answer, but certainly > something nice to consider and test. > > > Yes, this could be tested. I expect that StarDog ICV will > perform very well, as it works by translation into SPARQL > queries. > > > It looks to me like ShEx could validate a graph serialization in > linear time (with the size of the serialization), with no need for > storing the graph. That's appealing to me when we're talking > > about validating messages that are being sent between systems. > > No need to store the graph unless its size exceed available memory, > right? That does happen from time to time. > When I said "store", I meant in RAM. :) I was thinking it would be nice to have validation as part of a streaming serializer and streaming parser. It's nice to have those things not buffer the whole input/output before moving it on. > SPARQL based solutions require storing and searching the graph, > which is exponential (and likely slow unless properly indexed), > but that's probably fine if you're just validating data that you > need to keep in a SPARQL system anyway. > > > Actually Stardog ICV does both; either transactionally for data under > storage or in-memory for message passing and middleware contexts. > > Also, the complexity of SPARQL query answering is well understood and > it's not EXP. > Interesting, this is what I get for stretching myself too thin across too many technologies. I would have thought executing a query with a graph pattern like { <s> <p1> ?v1. ?v1 <p2> ?v2. ... ?v(n-1) <pn> ?vn } would take time proportional to k^n. With sufficient indexing, k might be very close to 1, but without indexing, I'd think k would be the mean cardinality of p1...pn. And of course indexing takes time. -- Sandro > Cheers, > Kendall
Received on Monday, 21 July 2014 18:17:04 UTC