Hi!
Unlike, most sites we do have our own custom frontend
in front of
virtuoso. We did this to allow more styling, as well as being flexible
and change implementations at our whim. e.g. we double parse the SPARQL
queries and even rewrite some to be friendlier. I suggest you do the
same no matter which DB you use in the end, and we would be willing to
open source ours (it is in Java, and uses RDF4J and some ugly JSPX but
it works, if not to use at least as an inspiration). We did this to
avoid being locked into endpoint specific features.
It would be interesting to know more about this, if this is open source.
Is there any more information about it online?
Pragmatically, while WDS is a Graph database, the
queries are actually
very relational. And none of the standard graph algorithms are used. To
If you mean algorithms like A* or PageRank, then yes, they are not used
too much (likely also because SPARQL has no standard support for any of
these, too), though Blazegraph implements some of them as custom services.
be honest RDF is actually a relational system which
means that
relational techniques are very good at answering them. The sole issue is
recursive queries (e.g. rdfs:subClassOf+) in which the virtuoso
implementation is adequate but not great.
Yes, path queries are pretty popular on WDQS too, especially given as
many relationships like administrative/territorial placement or
ownership are hierarchical and transitive, which often requires path
queries.
This is why recovering physical schemata from RDF data
is such a
powerful optimization technique [1]. i.e. you tend to do joins not
traversals. This is not always true but I strongly suspect it will hold
for the vast majority of the Wikidata Query Service case.
Would be interesting to see if we can apply anything from the article.
Thanks for the link!
--
Stas Malyshev
smalyshev(a)wikimedia.org