New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Query with varying results #575

Open
karlb opened this Issue Aug 14, 2016 · 15 comments

Comments

Projects
None yet
2 participants
@karlb
Copy link

karlb commented Aug 14, 2016

The following query yields different results every time in run it on Virtuoso version 07.20.3217 on Linux (x86_64-pc-linux-gnu), Single Server Edition:

SELECT ?part_of_speech, count(*)
WHERE {
    ?lexform lemon:writtenRep ?written_rep .
    ?lexentry lemon:canonicalForm ?lexform ;
              dcterms:language lexvo:deu .

    OPTIONAL { ?lexentry lexinfo:partOfSpeech ?part_of_speech }
    OPTIONAL { ?lexform lexinfo:gender ?gender }
}
GROUP BY ?part_of_speech
ORDER BY ?part_of_speech

I've attached two examples. Things which look wrong to me:

  • The counts differ between different executions of the same query. I would expect exactly the same results.
  • There are multiple rows for empty ?part_of_speech values. I would expect only a single count. But maybe there is some difference I can't see?

Comparing with the installation of Virtuoso version 07.10.3211 on Linux (x86_64-unknown-linux-gnu), Single Server Edition at http://kaiko.getalp.org/sparql with a very similar data set, only the second problem occurs.

I can provide access to my virtuoso installation if that helps.

query_results.zip

@HughWilliams

This comment has been minimized.

Copy link
Collaborator

HughWilliams commented Aug 14, 2016

If the query is run from the Virtuoso isql command line tool does the same problem occur ?

@karlb

This comment has been minimized.

Copy link

karlb commented Aug 15, 2016

When run in isql, the results don't change when run again. There are still multiple rows for empty ?part_of_speech values, though.

@HughWilliams

This comment has been minimized.

Copy link
Collaborator

HughWilliams commented Aug 15, 2016

You are probably seeing the effect of the Virtuoso Anytime query feature which returns partial result sets when query against the /sparql endpoint, see:

http://docs.openlinksw.com/virtuoso/anytimequeries.html
http://virtuoso.openlinksw.com/dataspace/doc/dav/wiki/Main/VirtTipsAndTricksAnytimeSPARQLQuery

Thus ensure it is turned off by setting the Execution Time to 0 in the /sparql interface ...

@karlb

This comment has been minimized.

Copy link

karlb commented Aug 15, 2016

Thanks for the quick help! The "Execution timeout" has already been set to 0. However, the MaxQueryExecutionTime in the virtuoso.ini was not. After changing that to zero and restarting virtuoso, the query results stayed stable (still multiple rows for empty ?part_of_speech values, though).

Unfortunately, I don't think this solved the problem, because:

  • Even when setting the old MaxQueryExecutionTime, I don't get the old problem back
  • I never got the additional HTTP-Headers like "X-Exec-DB-Activity"
  • I still have the same problem when running a slightly different query:
SELECT ?part_of_speech, count(*)
WHERE {
    ?lexform lemon:writtenRep ?written_rep .
    ?lexentry lemon:canonicalForm ?lexform ;
              dcterms:language lexvo:deu .

    OPTIONAL { ?lexentry lexinfo:partOfSpeech ?part_of_speech }
    OPTIONAL { ?lexform lexinfo:gender ?gender }
    OPTIONAL {
        SELECT ?lexform, group_concat(?pronun, ' | ') AS ?pronun_list
        WHERE {
            ?lexform lexinfo:pronunciation ?pronun .
        }
    }
}
GROUP BY ?part_of_speech
ORDER BY ?part_of_speech

That query works fine in isql, too. Am I missing something obvious?

@karlb

This comment has been minimized.

Copy link

karlb commented Aug 17, 2016

Some more observations:

  • When I choose a slow query and set a timeout, the timeout is applied properly and I get the expected HTTP-headers indication an interruption by the timeout. So I can confirm that my problem looks different than a timeout
  • When going from count(*) to count(DISTINCT ?written_rep), the results get stable and only a single row is returned for empty ?part_of_speech.

Anything else I can do to locate the problem?

@HughWilliams

This comment has been minimized.

Copy link
Collaborator

HughWilliams commented Aug 20, 2016

You could try using the Virtuoso trace_on() / trace_off() function to write additional information to the Virtuoso log file and see if any differences or internal errors might be occurring, see http://docs.openlinksw.com/virtuoso/fn_trace_on/

Also run the DB.DBA.RDF_AUDIT_METADATA(1, '*'); function to check for any RDF Metadata corruption, see http://docs.openlinksw.com/virtuoso/fn_rdf_audit_metadata/

If the problem still persists I would suggest dumping and reloading the data into an empty Virtuoso database to see if the problem persists ...

@karlb

This comment has been minimized.

Copy link

karlb commented Aug 22, 2016

No errors are logged after calling trace_on('errors') and the problem persists after loading the data into a new, empty db.

@HughWilliams

This comment has been minimized.

Copy link
Collaborator

HughWilliams commented Aug 26, 2016

Are you able to provide a sample dataset to enable this to be setup locally ?

If not if you can provide an export of the database statistics as detailed at http://virtuoso.openlinksw.com/dataspace/doc/dav/wiki/Main/VirtQueryOptDiagnostic we can seek to import locally for analysis of server activity ...

@karlb

This comment has been minimized.

Copy link

karlb commented Sep 7, 2016

I uploaded the dataset I'm using http://download.wikdict.com/ttl/ (all files in that directory). The statistics are at http://download.wikdict.com/debug/stat.dv . I can also provide ssh access to the running instance, just send me a public ssh key.

@HughWilliams

This comment has been minimized.

Copy link
Collaborator

HughWilliams commented Sep 11, 2016

Do u not have a script for downloading all those dataset files from command line as I need to download on a remote Linux server via terminal session to setup test environment ?

@karlb

This comment has been minimized.

Copy link

karlb commented Sep 12, 2016

I usually use a command like wget -r -nd --timestamping --no-parent --accept '*.bz2' --directory-prefix=ttl http://download.wikdict.com/ttl/ to download files from http directory listings.

For this case, I've also created a tar including all files to avoid potential download problems: http://download.wikdict.com/ttl/all_ttls.tar

@HughWilliams

This comment has been minimized.

Copy link
Collaborator

HughWilliams commented Sep 13, 2016

Thanks I have downloaded the datasets and want to load them into a Virtuoso instance. I note in you live instance (http://kaiko.getalp.org/sparql) you have 22 graphs:

http://kaiko.getalp.org/dbnary/bul
http://kaiko.getalp.org/dbnary/deu
http://kaiko.getalp.org/dbnary/ell
http://kaiko.getalp.org/dbnary/eng
http://kaiko.getalp.org/dbnary/spa
http://kaiko.getalp.org/dbnary/fin
http://kaiko.getalp.org/dbnary/fra
http://kaiko.getalp.org/dbnary/ind
http://kaiko.getalp.org/dbnary/ita
http://kaiko.getalp.org/dbnary/jpn
http://kaiko.getalp.org/dbnary/lit
http://kaiko.getalp.org/dbnary/lat
http://kaiko.getalp.org/dbnary/mlg
http://kaiko.getalp.org/dbnary/nld
http://kaiko.getalp.org/dbnary/pol
http://kaiko.getalp.org/dbnary/por
http://kaiko.getalp.org/dbnary/swe
http://kaiko.getalp.org/dbnary/nor
http://kaiko.getalp.org/dbnary/rus
http://kaiko.getalp.org/dbnary/shr
http://kaiko.getalp.org/dbnary/tur
http://kaiko.getalp.org/dilaf/bam

I presume the "lemon" , "morpho" & "disambiguated" datasets names get loaded into the corresponding graph names (where such a dataset exists) i.e.

virtuoso@opllinux6:~/wikdict$ ls -l ttl
total 588828
-rw-r--r-- 1 virtuoso virtuoso   1691124 Jul 15 13:16 bg_dbnary_lemon.ttl.bz2
-rw-r--r-- 1 virtuoso virtuoso       271 Jul 15 13:16 bg_dbnary_morpho.ttl.bz2
-rw-r--r-- 1 virtuoso virtuoso    518025 Apr 11 16:08 bm_dilaf_lemon.ttl.bz2
-rw-r--r-- 1 virtuoso virtuoso    518025 Apr 11 16:08 bm_dilaf_lemon_20160411.ttl.bz2
-rw-r--r-- 1 virtuoso virtuoso      1754 Jul 31 14:01 bul_disambiguated_translations.ttl.bz2
-rw-r--r-- 1 virtuoso virtuoso  29637564 Jul 15 08:19 de_dbnary_lemon.ttl.bz2
-rw-r--r-- 1 virtuoso virtuoso  28705858 Jul 15 08:22 de_dbnary_morpho.ttl.bz2
-rw-r--r-- 1 virtuoso virtuoso   4499443 Jul 31 13:36 deu_disambiguated_translations.ttl.bz2
-rw-r--r-- 1 virtuoso virtuoso  13840844 Jul 15 09:53 el_dbnary_lemon.ttl.bz2
-rw-r--r-- 1 virtuoso virtuoso       271 Jul 15 09:53 el_dbnary_morpho.ttl.bz2
-rw-r--r-- 1 virtuoso virtuoso     44943 Jul 31 13:36 ell_disambiguated_translations.ttl.bz2
-rw-r--r-- 1 virtuoso virtuoso 105626206 Jul 15 07:55 en_dbnary_lemon.ttl.bz2
-rw-r--r-- 1 virtuoso virtuoso  11868881 Jul 15 07:56 en_dbnary_morpho.ttl.bz2
-rw-r--r-- 1 virtuoso virtuoso  15966251 Jul 31 13:36 eng_disambiguated_translations.ttl.bz2
-rw-r--r-- 1 virtuoso virtuoso   9297559 Jul 15 12:31 es_dbnary_lemon.ttl.bz2
-rw-r--r-- 1 virtuoso virtuoso       271 Jul 15 12:31 es_dbnary_morpho.ttl.bz2
-rw-r--r-- 1 virtuoso virtuoso  10093123 Jul 15 08:54 fi_dbnary_lemon.ttl.bz2
-rw-r--r-- 1 virtuoso virtuoso       271 Jul 15 08:54 fi_dbnary_morpho.ttl.bz2
-rw-r--r-- 1 virtuoso virtuoso   1151665 Jul 31 13:36 fin_disambiguated_translations.ttl.bz2
-rw-r--r-- 1 virtuoso virtuoso  71169209 Jul 15 07:29 fr_dbnary_lemon.ttl.bz2
-rw-r--r-- 1 virtuoso virtuoso  44818278 Jul 15 07:34 fr_dbnary_morpho.ttl.bz2
-rw-r--r-- 1 virtuoso virtuoso   1559910 Jul 31 13:36 fra_disambiguated_translations.ttl.bz2
-rw-r--r-- 1 virtuoso virtuoso      2393 Jul 31 13:36 hbs_disambiguated_translations.ttl.bz2
-rw-r--r-- 1 virtuoso virtuoso   5637307 Jul 15 16:05 id_dbnary_lemon.ttl.bz2
-rw-r--r-- 1 virtuoso virtuoso       270 Jul 15 16:05 id_dbnary_morpho.ttl.bz2
-rw-r--r-- 1 virtuoso virtuoso     30936 Jul 31 13:36 ind_disambiguated_translations.ttl.bz2
-rw-r--r-- 1 virtuoso virtuoso   6385030 Jul 15 08:45 it_dbnary_lemon.ttl.bz2
-rw-r--r-- 1 virtuoso virtuoso       270 Jul 15 08:45 it_dbnary_morpho.ttl.bz2
-rw-r--r-- 1 virtuoso virtuoso    181422 Jul 31 13:36 ita_disambiguated_translations.ttl.bz2
-rw-r--r-- 1 virtuoso virtuoso   5308807 Jul 15 09:55 ja_dbnary_lemon.ttl.bz2
-rw-r--r-- 1 virtuoso virtuoso       271 Jul 15 09:55 ja_dbnary_morpho.ttl.bz2
-rw-r--r-- 1 virtuoso virtuoso    161871 Jul 31 13:36 jpn_disambiguated_translations.ttl.bz2
-rw-r--r-- 1 virtuoso virtuoso    183185 Jul 15 16:05 la_dbnary_lemon.ttl.bz2
-rw-r--r-- 1 virtuoso virtuoso       271 Jul 15 16:05 la_dbnary_morpho.ttl.bz2
-rw-r--r-- 1 virtuoso virtuoso       269 Aug  1 16:42 lat_disambiguated_translations.ttl.bz2
-rw-r--r-- 1 virtuoso virtuoso    927761 Jul 31 13:36 lit_disambiguated_translations.ttl.bz2
-rw-r--r-- 1 virtuoso virtuoso  24639115 Jul 15 15:48 lt_dbnary_lemon.ttl.bz2
-rw-r--r-- 1 virtuoso virtuoso       269 Jul 15 15:48 lt_dbnary_morpho.ttl.bz2
-rw-r--r-- 1 virtuoso virtuoso  46693261 Jul 15 16:05 mg_dbnary_lemon.ttl.bz2
-rw-r--r-- 1 virtuoso virtuoso       270 Jul 15 16:05 mg_dbnary_morpho.ttl.bz2
-rw-r--r-- 1 virtuoso virtuoso    673825 Jul 31 13:36 mlg_disambiguated_translations.ttl.bz2
-rw-r--r-- 1 virtuoso virtuoso  17574250 Jul 15 14:56 nl_dbnary_lemon.ttl.bz2
-rw-r--r-- 1 virtuoso virtuoso       271 Jul 15 14:56 nl_dbnary_morpho.ttl.bz2
-rw-r--r-- 1 virtuoso virtuoso   1273726 Jul 31 13:36 nld_disambiguated_translations.ttl.bz2
-rw-r--r-- 1 virtuoso virtuoso   1355417 Jul 15 15:48 no_dbnary_lemon.ttl.bz2
-rw-r--r-- 1 virtuoso virtuoso       272 Jul 15 15:48 no_dbnary_morpho.ttl.bz2
-rw-r--r-- 1 virtuoso virtuoso     17948 Jul 31 13:36 nor_disambiguated_translations.ttl.bz2
-rw-r--r-- 1 virtuoso virtuoso  14483109 Jul 15 14:53 pl_dbnary_lemon.ttl.bz2
-rw-r--r-- 1 virtuoso virtuoso       269 Jul 15 14:53 pl_dbnary_morpho.ttl.bz2
-rw-r--r-- 1 virtuoso virtuoso   3967258 Jul 31 13:36 pol_disambiguated_translations.ttl.bz2
-rw-r--r-- 1 virtuoso virtuoso    383629 Jul 31 13:36 por_disambiguated_translations.ttl.bz2
-rw-r--r-- 1 virtuoso virtuoso  10529483 Jul 15 08:26 pt_dbnary_lemon.ttl.bz2
-rw-r--r-- 1 virtuoso virtuoso       271 Jul 15 08:26 pt_dbnary_morpho.ttl.bz2
-rw-r--r-- 1 virtuoso virtuoso  33069688 Jul 15 09:50 ru_dbnary_lemon.ttl.bz2
-rw-r--r-- 1 virtuoso virtuoso       270 Jul 15 09:50 ru_dbnary_morpho.ttl.bz2
-rw-r--r-- 1 virtuoso virtuoso   1337073 Jul 31 13:36 rus_disambiguated_translations.ttl.bz2
-rw-r--r-- 1 virtuoso virtuoso   8804486 Jul 15 15:35 sh_dbnary_lemon.ttl.bz2
-rw-r--r-- 1 virtuoso virtuoso  49804326 Jul 15 15:40 sh_dbnary_morpho.ttl.bz2
-rw-r--r-- 1 virtuoso virtuoso    549054 Jul 31 13:36 spa_disambiguated_translations.ttl.bz2
-rw-r--r-- 1 virtuoso virtuoso  14727439 Jul 15 15:42 sv_dbnary_lemon.ttl.bz2
-rw-r--r-- 1 virtuoso virtuoso       275 Jul 15 15:42 sv_dbnary_morpho.ttl.bz2
-rw-r--r-- 1 virtuoso virtuoso    884866 Jul 31 14:01 swe_disambiguated_translations.ttl.bz2
-rw-r--r-- 1 virtuoso virtuoso   2122951 Jul 15 09:54 tr_dbnary_lemon.ttl.bz2
-rw-r--r-- 1 virtuoso virtuoso       272 Jul 15 09:54 tr_dbnary_morpho.ttl.bz2
-rw-r--r-- 1 virtuoso virtuoso     75809 Jul 31 14:01 tur_disambiguated_translations.ttl.bz2
virtuoso@opllinux6:~/wikdict$ 

Do you have a ld_dir() script for loading these into Virtuoso with the RDF Bulk Loader with the required graph names ?

@karlb

This comment has been minimized.

Copy link

karlb commented Sep 14, 2016

Ah yes, I didn't think of the namespaces, because they are not used in the query. The following code should do it, assuming the files in the ttl directory.

-- set namespaces using in query
DB.DBA.XML_SET_NS_DECL ('lexinfo', 'http://www.lexinfo.net/ontology/2.0/lexinfo#', 2);
DB.DBA.XML_SET_NS_DECL ('lexvo', 'http://lexvo.org/id/iso639-3/', 2);
DB.DBA.XML_SET_NS_DECL ('dcterms', 'http://purl.org/dc/terms/', 2);
DB.DBA.XML_SET_NS_DECL ('lemon', 'http://lemon-model.net/lemon#', 2);
DB.DBA.XML_SET_NS_DECL ('dbnary', 'http://kaiko.getalp.org/dbnary#', 2);
DB.DBA.XML_SET_NS_DECL ('olia', 'http://purl.org/olia/olia.owl#', 2);

-- add files to load_list
ld_dir('ttl', 'bg_*.ttl.gz', 'http://kaiko.getalp.org/dbnary/bul');
ld_dir('ttl', 'bul_*.ttl.gz', 'http://kaiko.getalp.org/dbnary/bul');
ld_dir('ttl', 'de_*.ttl.gz', 'http://kaiko.getalp.org/dbnary/deu');
ld_dir('ttl', 'deu_*.ttl.gz', 'http://kaiko.getalp.org/dbnary/deu');
ld_dir('ttl', 'el_*.ttl.gz', 'http://kaiko.getalp.org/dbnary/ell');
ld_dir('ttl', 'ell_*.ttl.gz', 'http://kaiko.getalp.org/dbnary/ell');
ld_dir('ttl', 'en_*.ttl.gz', 'http://kaiko.getalp.org/dbnary/eng');
ld_dir('ttl', 'eng_*.ttl.gz', 'http://kaiko.getalp.org/dbnary/eng');
ld_dir('ttl', 'es_*.ttl.gz', 'http://kaiko.getalp.org/dbnary/spa');
ld_dir('ttl', 'spa_*.ttl.gz', 'http://kaiko.getalp.org/dbnary/spa');
ld_dir('ttl', 'fi_*.ttl.gz', 'http://kaiko.getalp.org/dbnary/fin');
ld_dir('ttl', 'fin_*.ttl.gz', 'http://kaiko.getalp.org/dbnary/fin');
ld_dir('ttl', 'fr_*.ttl.gz', 'http://kaiko.getalp.org/dbnary/fra');
ld_dir('ttl', 'fra_*.ttl.gz', 'http://kaiko.getalp.org/dbnary/fra');
ld_dir('ttl', 'id_*.ttl.gz', 'http://kaiko.getalp.org/dbnary/ind');
ld_dir('ttl', 'ind_*.ttl.gz', 'http://kaiko.getalp.org/dbnary/ind');
ld_dir('ttl', 'it_*.ttl.gz', 'http://kaiko.getalp.org/dbnary/ita');
ld_dir('ttl', 'ita_*.ttl.gz', 'http://kaiko.getalp.org/dbnary/ita');
ld_dir('ttl', 'ja_*.ttl.gz', 'http://kaiko.getalp.org/dbnary/jpn');
ld_dir('ttl', 'jpn_*.ttl.gz', 'http://kaiko.getalp.org/dbnary/jpn');
ld_dir('ttl', 'la_*.ttl.gz', 'http://kaiko.getalp.org/dbnary/lat');
ld_dir('ttl', 'lat_*.ttl.gz', 'http://kaiko.getalp.org/dbnary/lat');
ld_dir('ttl', 'lt_*.ttl.gz', 'http://kaiko.getalp.org/dbnary/lit');
ld_dir('ttl', 'lit_*.ttl.gz', 'http://kaiko.getalp.org/dbnary/lit');
ld_dir('ttl', 'mg_*.ttl.gz', 'http://kaiko.getalp.org/dbnary/mlg');
ld_dir('ttl', 'mlg_*.ttl.gz', 'http://kaiko.getalp.org/dbnary/mlg');
ld_dir('ttl', 'nl_*.ttl.gz', 'http://kaiko.getalp.org/dbnary/nld');
ld_dir('ttl', 'nld_*.ttl.gz', 'http://kaiko.getalp.org/dbnary/nld');
ld_dir('ttl', 'no_*.ttl.gz', 'http://kaiko.getalp.org/dbnary/nor');
ld_dir('ttl', 'nor_*.ttl.gz', 'http://kaiko.getalp.org/dbnary/nor');
ld_dir('ttl', 'pl_*.ttl.gz', 'http://kaiko.getalp.org/dbnary/pol');
ld_dir('ttl', 'pol_*.ttl.gz', 'http://kaiko.getalp.org/dbnary/pol');
ld_dir('ttl', 'pt_*.ttl.gz', 'http://kaiko.getalp.org/dbnary/por');
ld_dir('ttl', 'por_*.ttl.gz', 'http://kaiko.getalp.org/dbnary/por');
ld_dir('ttl', 'ru_*.ttl.gz', 'http://kaiko.getalp.org/dbnary/rus');
ld_dir('ttl', 'rus_*.ttl.gz', 'http://kaiko.getalp.org/dbnary/rus');
ld_dir('ttl', 'sh_*.ttl.gz', 'http://kaiko.getalp.org/dbnary/hbs');
ld_dir('ttl', 'hbs_*.ttl.gz', 'http://kaiko.getalp.org/dbnary/hbs');
ld_dir('ttl', 'sv_*.ttl.gz', 'http://kaiko.getalp.org/dbnary/swe');
ld_dir('ttl', 'swe_*.ttl.gz', 'http://kaiko.getalp.org/dbnary/swe');
ld_dir('ttl', 'tr_*.ttl.gz', 'http://kaiko.getalp.org/dbnary/tur');
ld_dir('ttl', 'tur_*.ttl.gz', 'http://kaiko.getalp.org/dbnary/tur');
ld_dir('ttl', 'ja_*.ttl.gz', 'http://kaiko.getalp.org/dbnary/jpn');
ld_dir('ttl', 'jpn_*.ttl.gz', 'http://kaiko.getalp.org/dbnary/jpn');

rdf_loader_run();
@HughWilliams

This comment has been minimized.

Copy link
Collaborator

HughWilliams commented Sep 17, 2016

I have loaded the datasets and have been able to recreate occurrences of intermittent results being returned even when executing via isql, where the first run of the query then returns 55 rows:

SQL> SPARQL SELECT ?part_of_speech, count(*) WHERE {     ?lexform lemon:writtenRep ?written_rep .     ?lexentry lemon:canonicalForm ?lexform ;               dcterms:language lexvo:deu .      OPTIONAL { ?lexentry lexinfo:partOfSpeech ?part_of_speech }     OPTIONAL { ?lexform lexinfo:gender ?gender }     OPTIONAL {         SELECT ?lexform, group_concat(?pronun, ' | ') AS ?pronun_list         WHERE {             ?lexform lexinfo:pronunciation ?pronun .         }     } } GROUP BY ?part_of_speech ORDER BY ?part_of_speech;
.
.
.
http://www.lexinfo.net/ontology/2.0/lexinfo#postposition                          12
http://www.lexinfo.net/ontology/2.0/lexinfo#prefix                                353
http://www.lexinfo.net/ontology/2.0/lexinfo#preposition                           266
http://www.lexinfo.net/ontology/2.0/lexinfo#pronominalAdverb                      53
http://www.lexinfo.net/ontology/2.0/lexinfo#properNoun                            3398
http://www.lexinfo.net/ontology/2.0/lexinfo#suffix                                211
http://www.lexinfo.net/ontology/2.0/lexinfo#symbol                                2
http://www.lexinfo.net/ontology/2.0/lexinfo#verb                                  11072

55 Rows. -- 3854 msec.
SQL>

and then subsequent runs return 41 rows consistently again:

SQL> SPARQL SELECT ?part_of_speech, count(*) WHERE {     ?lexform lemon:writtenRep ?written_rep .     ?lexentry lemon:canonicalForm ?lexform ;               dcterms:language lexvo:deu .      OPTIONAL { ?lexentry lexinfo:partOfSpeech ?part_of_speech }     OPTIONAL { ?lexform lexinfo:gender ?gender }     OPTIONAL {         SELECT ?lexform, group_concat(?pronun, ' | ') AS ?pronun_list         WHERE {             ?lexform lexinfo:pronunciation ?pronun .         }     } } GROUP BY ?part_of_speech ORDER BY ?part_of_speech;
part_of_speech                                                                    callret-1
LONG VARCHAR                                                                      LONG VARCHAR
_______________________________________________________________________________

NULL                                                                              25
NULL                                                                              1155
NULL                                                                              34
NULL                                                                              654
.
.
.
http://www.lexinfo.net/ontology/2.0/lexinfo#postposition                          12
http://www.lexinfo.net/ontology/2.0/lexinfo#prefix                                355
http://www.lexinfo.net/ontology/2.0/lexinfo#preposition                           267
http://www.lexinfo.net/ontology/2.0/lexinfo#pronominalAdverb                      53
http://www.lexinfo.net/ontology/2.0/lexinfo#properNoun                            3417
http://www.lexinfo.net/ontology/2.0/lexinfo#suffix                                211
http://www.lexinfo.net/ontology/2.0/lexinfo#symbol                                2
http://www.lexinfo.net/ontology/2.0/lexinfo#verb                                  11123

41 Rows. -- 78 msec.
SQL>

I have reported to development to look into ...

@karlb

This comment has been minimized.

Copy link

karlb commented Dec 27, 2016

Is any progress on this likely, or should I plan to work with workarounds in the long term? Is there anything else I can do to help here?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment