28.11.2016, 17:44, Katerina Gkirtzou wrote:
> Dear SKOSMOS developers,
> I am interesting in using SKOSMOS along with Virtuoso RDF store. I was
> able to correctly set SKOSMOS with Jena Fuseki locally, and everything
> works well. But when I move to a SPARQL endpoint provided by a Virtuoso
> RDF store (as it supports SPARQL 1.1) , SKOSMOS seems that is not able
> to retrieve the concepts. Do I have to set anything in Virtuoso for
> example? Does SKOSMOS work with Virtuoso's SPARQL Endpoint in general?
Dear Katerina,
Thank you for trying out Skosmos!
While Skosmos should work with any SPARQL 1.1 compliant triple store, in
practice we only use it with Fuseki. So I'm unfortunately not able to
say whether it works with Virtuoso or not.
One thing we definitely don't have is support for the Virtuoso text
index, so you must set the SPARQL dialect to "Generic". Have you done
that? You can either do it per vocabulary in vocabularies.ttl, or set
the default dialect in config.inc.
If that doesn't help, can you describe a bit more what the problem is?
Are you getting any vocabulary data from the SPARQL endpoint? For
example, do you get information on the vocabulary front page (metadata,
concept and label statistics)? Does the alphabetical index show any
concepts?
We originally chose Fuseki with jena-text as the main backend for
Skosmos. We also considered Blazegraph (then called Bigdata). I also
looked at Virtuoso, but at least at the time (around 2012-2013), its
text index didn't seem suitable for Skosmos since it required four
leading characters to be specified in queries. The alphabetical index in
Skosmos uses one-character prefix queries (e.g. every concept whose
label starts with "A"). This can apparently be changed only by
recompiling Virtuoso, and I'm unsure about the side effects. Looking at
the documentation no, I see no indication that this has changed. So it
doesn't seem very likely that Virtuoso could be used as an efficient
backend for large vocabularies where Skosmos in practice needs a text
index to work with reasonable performance. It could be used for small
SKOS vocabularies (up to a few thousand concepts perhaps) using the
Generic SPARQL 1.1 dialect, but there may be compatibility problems
since we haven't really tested it together with Virtuoso.
-Osma
29.11.2016, 12:07, Katerina Gkirtzou kirjoitti:
> Yes, I have set the SPARQL dialect to "Generic" in config.inc, but it
> doesn't seem to work.
Okay. So the problem is more general than that.
> When I select a vocabulary which is available via a SPARQL endpoint of a
> virtuoso
> store, SKOSMOS provides me the initial information, given by the
> vocabulary.ttl, but it fails
> to show any statistics (eg Term counts by language, Resource counts by
> type) and to
> create the alphabetical and hierarchical indices. Instead, it shows an
> indication of
> "Loading more items" by it fails to do so.
It sounds like no SPARQL queries are succeeding then. Can you tell from
the Virtuoso or Apache logs whether there are any errors? Does Virtuoso
see any incoming SPARQL queries?
> You mentioned that SKOSMOS requires a good text index in order to work
> efficiently, especially for big vocabularies. Do you believe that Lucene
> can help in that direction? Have you tried that?
Jena-text is based on Lucene, built into Fuseki. So we are already using
it that way.
From the Skosmos perspective, the text index should be part of the
SPARQL endpoint, not a separate system. Many RDF triple stores have text
index functionality (not just Fuseki and Virtuoso, but also Blazegraph,
AllegroGraph, 4store and probably others too), but unfortunately there
is no standardization so all of them have different SPARQL query syntax
and thus require specialized support.
Thus far we have implemented only support for jena-text. There used to
be support also for the Blazegraph/Bigdata text index, but it bitrotted
and was dropped from the Skosmos codebase already some time ago.
Which version of Virtuoso are you using?
Debugging this would require having an easily repeatable test case. For
example, the problematic SPARQL query that Skosmos uses could be
extracted and run from within the Virtuoso UI. If it doesn't work there,
there is either a problem in the query or in Virtuoso.
May I ask why you want to use Skosmos with Virtuoso? Is it important for
your use case that the triple store has to be Virtuoso?
> I mainly asked if skosmos support lucence, as I has thinking if it is
> possible to set
> lucene or solr above virtuoso, in order to have another type of text
> index. As an idea
> to solve the problem. Though, I am not sure if that's easy to do.
That would require a process for keeping the text index synchronized
with the RDF data, which in principle can change any time. Additionally,
with a separate text index, queries from the application (eg Skosmos)
would have to be targeted separately to the text index and the triple
store. This could also cause performance problems.
It makes more sense to do text indexing from within the triple store,
which is why many triple stores support it. Then changes in the RDF
triples can be immediately reflected to the text index (at least
jena-text does this, but other text index implementations may not work
that way) and the text index functions are usable from within SPARQL,
which makes it easy for the application (ie Skosmos) to perform queries
that combine text index functionality with regular SPARQL.