jenkins-bot has submitted this change and it was merged. ( 
https://gerrit.wikimedia.org/r/364283 )

Change subject: Query Helper suggestions for empty queries
......................................................................


Query Helper suggestions for empty queries

Use generic suggestions if current query is empty.

Change-Id: Ida18670c948ee84d0d415789ec9950f9103344ca
---
M wikibase/queryService/ui/queryHelper/QueryHelper.js
M wikibase/queryService/ui/queryHelper/SelectorBox.js
2 files changed, 40 insertions(+), 4 deletions(-)

Approvals:
  Smalyshev: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/wikibase/queryService/ui/queryHelper/QueryHelper.js 
b/wikibase/queryService/ui/queryHelper/QueryHelper.js
index d2fbb0a..7f8cb1f 100644
--- a/wikibase/queryService/ui/queryHelper/QueryHelper.js
+++ b/wikibase/queryService/ui/queryHelper/QueryHelper.js
@@ -343,10 +343,7 @@
                this._selectorBox.add( $button, null, function( id, name ) {
                        var prop = 'http://www.wikidata.org/prop/direct/' + 
id;// FIXME technical debt
 
-                       var subject = self._query.getBoundVariables().shift();
-                       if ( !subject ) {
-                               return;
-                       }
+                       var subject = self._query.getBoundVariables().shift() 
|| '?item';
                        var variable2 = '?' + name.replace( /( |[^a-z0-9])/gi, 
'_' );// FIXME technical debt
 
                        var triple = self._query.addTriple( subject, prop, 
variable2, true );
diff --git a/wikibase/queryService/ui/queryHelper/SelectorBox.js 
b/wikibase/queryService/ui/queryHelper/SelectorBox.js
index 4c82bb6..e66f3e6 100644
--- a/wikibase/queryService/ui/queryHelper/SelectorBox.js
+++ b/wikibase/queryService/ui/queryHelper/SelectorBox.js
@@ -26,6 +26,23 @@
                                        }\
                                        LIMIT 100',
                                genericSuggest: function() { // Find items that 
are most often used with the first selected item of the current query
+                                       var instanceOfTemplate =// Find items 
that are used with property 'instance of'
+                                               'SELECT ?id ?label ?description 
WHERE {\
+                                               hint:Query hint:optimizer 
"None".\
+                                                       {\
+                                                               SELECT DISTINCT 
?id WHERE { ?i wdt:P31 ?id. }\
+                                                               LIMIT 100\
+                                                       }\
+                                                       ?id rdfs:label ?label.\
+                                                       ?id schema:description 
?description.\
+                                                       FILTER((LANG(?label)) = 
"{LANGUAGE}")\
+                                                       
FILTER((LANG(?description)) = "{LANGUAGE}")\
+                                               }\
+                                               LIMIT 100';
+                                       if ( this._query.getTriples().length 
=== 0 ) {
+                                               return instanceOfTemplate;
+                                       }
+
                                        var template = '{PREFIXES}\n\
                                                SELECT ?id ?label ?description 
?property WITH {\n\
                                                        {QUERY}\n\
@@ -112,6 +129,28 @@
                                }\
                                LIMIT 100',
                        genericSuggest: function() { // Find properties that 
are most often used with the first selected item of the current query
+
+                               var genericTemplate = // Find properties that 
are most often used with all items
+                               'SELECT ?id ?label ?description WITH {\
+                                       SELECT ?pred (COUNT(?value) AS ?count) 
WHERE\
+                                       {\
+                                       ?subj ?pred ?value .\
+                                       } GROUP BY ?pred ORDER BY DESC(?count) 
LIMIT 1000\
+                                       } AS %inner\
+                               WHERE {\
+                                       INCLUDE %inner\
+                                       ?id wikibase:claim ?pred.\
+                                       ?id rdfs:label ?label.\
+                                       ?id schema:description ?description.\
+                                       FILTER((LANG(?label)) = "en")\
+                                       FILTER((LANG(?description)) = "en")\
+                               } ORDER BY DESC(?count)\
+                               LIMIT 100';
+
+                               if ( this._query.getTriples().length === 0 ) {
+                                       return genericTemplate;
+                               }
+
                                var template = '{PREFIXES}\n\
                                        SELECT ?id ?label ?description WITH {\n\
                                                {QUERY}\n\

-- 
To view, visit https://gerrit.wikimedia.org/r/364283
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: Ida18670c948ee84d0d415789ec9950f9103344ca
Gerrit-PatchSet: 4
Gerrit-Project: wikidata/query/gui
Gerrit-Branch: master
Gerrit-Owner: Jonas Kress (WMDE) <jonas.kr...@wikimedia.de>
Gerrit-Reviewer: Jonas Kress (WMDE) <jonas.kr...@wikimedia.de>
Gerrit-Reviewer: Smalyshev <smalys...@wikimedia.org>
Gerrit-Reviewer: jenkins-bot <>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to