Simple tree query visualization
Closed, ResolvedPublic

Description

At the moment there is a tree view which is quite complex but it is neither practical nor useful. Ideally there should be another option to represent queries like a simple tree. See example:
https://tools.wmflabs.org/wikidata-todo/tree.html?q=Q1785783&rp=361&lang=en&method=list&depth=4

Micru created this task.Dec 8 2016, 11:27 AM
Restricted Application added projects: Wikidata, Discovery. · View Herald TranscriptDec 8 2016, 11:27 AM
Restricted Application added a subscriber: Aklapper. · View Herald Transcript
Restricted Application added a subscriber: TerraCodes. · View Herald TranscriptDec 8 2016, 11:50 AM

Have a look at https://www.npmjs.com/package/wikidata-taxonomy for some previous work about creation of hierarchies from Wikidata. The tool includes some additional information such as number of instances and number of sitelinks and additional parents. A tree visualization could also show arbitrary additional information so it would be like the table visualization but with a special first row with the hierarchy. One must also make sure to handle multihierarchies.

Change 354967 had a related patch set uploaded (by Jonas Kress (WMDE); owner: Jonas Kress (WMDE)):
[wikidata/query/gui@master] Simple tree query visualization

https://gerrit.wikimedia.org/r/354967

Jonas moved this task from Proposed to Review on the Wikidata-Former-Sprint-Board board.
Jonas claimed this task.
Micru added a comment.May 23 2017, 5:38 PM

@Jonas I am very pleased to see you working on this, thank you! Here there is an example that I use often for maintenance:
http://tools.wmflabs.org/wikidata-todo/tree.html?q=Q18616576&rp=279&lang=en&method=list&depth=4

And this one too:
http://tools.wmflabs.org/wikidata-todo/tree.html?q=Q1785783&rp=361&lang=en&method=list&depth=4

And the upper tree is very interesting but I cannot run it with this tool, so I am looking forward to your development!

Change 354967 merged by jenkins-bot:
[wikidata/query/gui@master] Simple tree query visualization

https://gerrit.wikimedia.org/r/354967

Jonas closed this task as Resolved.

@Jonas 3 things:

  1. I tried running the example for "Tree" ("Continents, countries, regions and capitals") at https://query.wikidata.org/ but it gives "Unable to display result".
  1. Also, this new feature needs to be documented at https://www.mediawiki.org/wiki/Wikidata_query_service/User_Manual#Default_views
  1. Lastly, I'd suggest adding another "tree" example at the GUI, for the specific example given in the description here. That will probably be a simpler example, for non-technical people to adapt/reuse.

Thanks!

Quiddity reopened this task as Open.Jun 12 2017, 5:18 PM
Jonas added a comment.Jun 12 2017, 7:05 PM

@Jonas 3 things:

  1. I tried running the example for "Tree" ("Continents, countries, regions and capitals") at https://query.wikidata.org/ but it gives "Unable to display result".

Sorry, there went something wrong with the deployment.

  1. Also, this new feature needs to be documented at https://www.mediawiki.org/wiki/Wikidata_query_service/User_Manual#Default_views

It is documented here:
https://www.wikidata.org/wiki/Wikidata:SPARQL_query_service/Wikidata_Query_Help/Result_Views

  1. Lastly, I'd suggest adding another "tree" example at the GUI, for the specific example given in the description here. That will probably be a simpler example, for non-technical people to adapt/reuse.
  2. Specifically http://tools.wmflabs.org/wikidata-todo/tree.html?q=Q1785783&rp=361&lang=en&method=list&depth=4
  3. (I have this similar example bookmarked https://tools.wmflabs.org/wikidata-todo/tree.html?rp=279&method=list&q=8261 and I hope to be able to adapt that, based on the one above once it's converted. :-)

I don't fully understand why you prefer this over the current implementation.
Could you please elaborate on this?

Thanks!

  1. Lastly, I'd suggest adding another "tree" example at the GUI, for the specific example given in the description here. That will probably be a simpler example, for non-technical people to adapt/reuse.
  2. Specifically http://tools.wmflabs.org/wikidata-todo/tree.html?q=Q1785783&rp=361&lang=en&method=list&depth=4
  3. (I have this similar example bookmarked https://tools.wmflabs.org/wikidata-todo/tree.html?rp=279&method=list&q=8261 and I hope to be able to adapt that, based on the one above once it's converted. :-)

I don't fully understand why you prefer this over the current implementation.
Could you please elaborate on this?

Happily! I just mean: the current example (http://tinyurl.com/y9en7f7k) is very complicated (which is great! it shows off the power of WDQS, and provides a complex example for experienced people to adapt).
But for me, as a (representative) newbie to WDQS and databases in general, I'd like to also have a very simple example, that I could adapt more easily, for the simple queries I often want to make.

It's also just a good/useful habit, to use the specific example given in a feature-request, as a demonstration link - either in the documentation, or at least in the closing comment of the phabricator task - e.g. "Your request has been implemented! The example you gave in the description, can now be done on WDQS as <link>." :-)
But in general, it's usually appreciated to have one simple example, and one complex example, for a powerful tool like this.

Sorry, I was not aware of that problem.
If you are interested in classic music I guess @Lucas_Werkmeister_WMDE could provide you with some good examples.
Simple queries you could try out are 'cats' or 'presidents and spouse' from the example page.
You could also request a query.

Here’s a SPARQL version of the example at the top of the page (Chopin):

#defaultView:Tree
SELECT ?i0 ?i0Label ?i1 ?i1Label ?i2 ?i2Label ?i3 ?i3Label ?i4 ?i4Label WHERE {
  BIND(wd:Q1785783 AS ?i0).
  ?i0 ^wdt:P361 ?i1. OPTIONAL {
    ?i1 ^wdt:P361 ?i2. OPTIONAL {
      ?i2 ^wdt:P361 ?i3. OPTIONAL {
        ?i3 ^wdt:P361 ?i4. } } }
  SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en". }
}

But it’s a bit weird because there’s not really any rigid structure there, just “follow P361 for n levels”. So I don’t think that’s a good example query.

Perhaps this one is better? Viennese composers and their compositions by tonality:

# Viennese composers and their compositions by tonality
#defaultView:Tree
SELECT ?composer ?composerLabel ?composerImage ?tonality ?tonalityLabel ?composition ?compositionLabel WHERE {
  ?composer wdt:P31 wd:Q5;
            wdt:P19|wdt:P20|wdt:P551 wd:Q1741.
  OPTIONAL { ?composer wdt:P18 ?composerImage. }
  ?composition wdt:P86 ?composer;
               wdt:P826 ?tonality.
  SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en". }
}
ORDER BY ?composerLabel ?tonalityLabel

Is that query simple enough or still too complicated? I’m afraid I’m not the best person to judge that ;)


Also – @Jonas, tree view seems to be broken on query.wikidata.org again, I get “unable to display result” with a console error that “a(…).jstree is not a function”. not “broken again”, but “still broken” (fix not deployed yet, should happen today).

The Chopin example could be written like this to become a simple example:

SELECT ?parent ?parentLabel ?child ?childLabel WHERE {
  ?parent wdt:P361* wd:Q1785783 .
  ?child wdt:P361 ?parent .
  SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en". } 
}

@nichtich that’s not the same thing – that tree always only has two levels, and nodes will appear multiple times (e. g. Waltzes by Chopin is a toplevel node but also a child node of List of compositions by Frédéric Chopin by genre). If I understand correctly, that query structure only works for a graph view, but not for the tree view.

Lucas_Werkmeister_WMDE closed this task as Resolved.Jun 22 2017, 1:17 PM

I think this task can be closed – the tree view is now correctly deployed, it’s documented, and @WikidataFacts added an example to the examples page.

Perfect, thanks all!