@@ -56,13 +56,18 @@ QueryBuilder = {
5656 QueryBuilder . hide_searched_query_results ( ) ;
5757 QueryBuilder . properties . reset ( ) ;
5858 } ,
59- show_equivalent_sparql_query : function ( ) {
59+ generate_equivalent_sparql_query : function ( ) {
6060 var query = "" ;
6161 query += SPARQL . prefix . rdf ;
6262 query += SPARQL . prefix . rdfs ;
6363 query += "SELECT ?concept ?label WHERE \n{ ?concept rdf:type <" + $ ( "#hdn_qb_class" ) . val ( ) + ">.\n ?concept rdfs:label ?label.\n" ;
64+ query += QueryBuilder . properties . get_subclasses_triples ( ) ;
6465 query += "FILTER(langMatches(lang(?label), \"EN\"))}\n LIMIT 200" ;
6566 $ ( "#txt_sparql_query" ) . val ( query ) ;
67+ }
68+ ,
69+ show_equivalent_sparql_query : function ( ) {
70+ QueryBuilder . generate_equivalent_sparql_query ( ) ;
6671 $ ( ".qb-equivalent-query-main" ) . show ( "fast" ) ;
6772 } ,
6873 hide_equivalent_sparql_query : function ( ) {
@@ -163,7 +168,36 @@ QueryBuilder = {
163168 get_subclasses_for_selected_class : function ( ) {
164169 QueryBuilder . properties . get_subclasses ( QueryBuilder . classes . get_selected_class ( ) ) ;
165170 } ,
171+ get_subclasses_triples : function ( ) {
172+ var result = "" ;
173+ var all = false ;
174+ $ ( ".property-subclass-group" ) . each ( function ( index ) {
175+ if ( $ ( this ) . attr ( "clicked" ) == "true" )
176+ all = true ;
177+ } ) ;
178+ if ( ! all ) {
179+ var subclasses = [ ] ;
180+ $ ( ".property-subclass-individual" ) . each ( function ( index ) {
181+ if ( $ ( this ) . attr ( "clicked" ) == "true" ) {
182+ all = false ;
183+ subclasses . push ( "<" + $ ( this ) . attr ( "uri" ) + ">" ) ;
184+ }
185+
186+ } ) ;
187+ if ( ! all ) {
188+ for ( var i = 0 ; i < subclasses . length ; i ++ ) {
189+ if ( result != "" )
190+ result += "UNION \n"
191+ result += "{?concept rdf:type " + subclasses [ i ] + "} " ;
192+ }
193+ result += " .\n"
194+ }
195+ }
196+
197+ return result ;
198+ } ,
166199 select_subclass : function ( uri ) {
200+
167201 $ ( "#property_main_subclasses_group" ) . find ( ".list-group-item" ) . each ( function ( index ) {
168202 var html = "" ;
169203 if ( $ ( this ) . attr ( "uri" ) == uri ) {
@@ -192,6 +226,7 @@ QueryBuilder = {
192226 $ ( this ) . html ( html ) ;
193227 }
194228 } ) ;
229+ QueryBuilder . generate_equivalent_sparql_query ( ) ;
195230 }
196231 }
197232
0 commit comments