Project:SPARQL/examples

From Qichwabase
Jump to navigation Jump to search

Here you find some SPARQL queries that you can use, and also modify or combine. To start a query from scratch, you may use this:

PREFIX qwb: <https://qichwa.wikibase.cloud/entity/>
PREFIX qdp: <https://qichwa.wikibase.cloud/prop/direct/>
PREFIX qp: <https://qichwa.wikibase.cloud/prop/>
PREFIX qps: <https://qichwa.wikibase.cloud/prop/statement/>
PREFIX qpq: <https://qichwa.wikibase.cloud/prop/qualifier/>
PREFIX qpr: <https://qichwa.wikibase.cloud/prop/reference/>
PREFIX qno: <https://qichwa.wikibase.cloud/prop/novalue/>

SELECT * WHERE {}

Try it!

Lexical Entries

Puno Quechua Lexical entries

#Puno Quechua Lexical entries
#This is a list of Puno Quechua Lexical entries 
PREFIX qwb: <https://qichwa.wikibase.cloud/entity/>
PREFIX qdp: <https://qichwa.wikibase.cloud/prop/direct/>
PREFIX qp: <https://qichwa.wikibase.cloud/prop/>
PREFIX qps: <https://qichwa.wikibase.cloud/prop/statement/>
PREFIX qpq: <https://qichwa.wikibase.cloud/prop/qualifier/>
PREFIX qpr: <https://qichwa.wikibase.cloud/prop/reference/>
PREFIX qno: <https://qichwa.wikibase.cloud/prop/novalue/>

SELECT ?entry ?lemma ?language ?lex_cat_wikidata ?des_by_source_P1343 
?form_representation ?spelling_variant 
?sense_gloss_de ?sense_gloss_en ?sense_gloss_es ?sense_gloss_it
WHERE {
BIND("Q5218" AS ?language) #assigning Q5218 = Quechua Wikidata as the language
BIND("qu-x-Q7260479" AS ?spelling_variant) #Assigning the language-code for the form
BIND("Q24905" AS ?lex_cat_wikidata) #Assignning Q24905 = Verb Wikidata as the lexical category
BIND("Q125537856" AS ?des_by_source_P1343) #Assigning Q125537856 = Runasimi Vocabulary as the source
# Wikidata property: described by source = P1343
?entry a ontolex:LexicalEntry; 
       wikibase:lemma ?lemma;
       wikibase:lexicalCategory qwb:Q99 ; #Category Q99 = V.tr Qichwabase
       wikibase:lexicalCategory [rdfs:label ?lexical_category] ;      
       qp:P16 [qps:P16 ?form_representation;
               qpq:P17 qwb:Q116; #Q116 = Cusco-Collao (aiu) Qichwabase
             ]. 
OPTIONAL {
  ?entry ontolex:lexicalForm ?form1 .
  ?form1 ontolex:representation ?wform1;
         wikibase:grammaticalFeature [rdfs:label ?wf1_gram_feature_label] .
         FILTER(LANG(?featureLabel)="es")
}
OPTIONAL {
  ?entry ontolex:sense ?sense_de .
  ?sense_de skos:definition ?sense_gloss_de.
  FILTER(LANG(?sense_gloss_de)="de")
}
OPTIONAL {
  ?entry ontolex:sense ?sense_en .
  ?sense_en skos:definition ?sense_gloss_en.
  FILTER(LANG(?sense_gloss_en)="en")
}
#OPTIONAL {      # at least contains spanish gloss
  ?entry ontolex:sense ?sense_es .
  ?sense_es skos:definition ?sense_gloss_es.
  FILTER(LANG(?sense_gloss_es)="es")
#}
OPTIONAL {
  ?entry ontolex:sense ?sense_it .
  ?sense_it skos:definition ?sense_gloss_it.
  FILTER(LANG(?sense_gloss_it)="it")
}
}
LIMIT 10

Try it!


Lexical entries with lemma and pos

# this lists all lexcial entries, with lemma and pos, ordered alphabetically by lemma
select ?entry ?lemma ?posLabel 
where {?entry a ontolex:LexicalEntry; 
                wikibase:lemma ?lemma;
                wikibase:lexicalCategory [rdfs:label ?posLabel]. 
                  filter(lang(?posLabel)="en")}
order by lcase(?lemma)

Try it!


Problematic lexical entries

# this lists all lexical entries with bracket, semicolon, or comma in the lemma sign
select ?entry ?lemma ?posLabel 
where {?entry a ontolex:LexicalEntry; 
                wikibase:lemma ?lemma;
                wikibase:lexicalCategory [rdfs:label ?posLabel]. 
                  filter(lang(?posLabel)="en")
                  filter(regex(?lemma,'[();,]'))}
order by lcase(?lemma)

Try it!


Senses and sense descriptions

#this lists entries that have senses and sense descriptions
select ?entry ?lemma ?posLabel (group_concat(concat(str(?sensegloss)," (",lang(?sensegloss),")");SEPARATOR="; ") as ?sense_descriptions)
where {

?entry a ontolex:LexicalEntry; 
       wikibase:lemma ?lemma;
       wikibase:lexicalCategory [rdfs:label ?posLabel] . filter(lang(?posLabel)="en")
?entry ontolex:sense [skos:definition ?sensegloss].

} group by ?entry ?lemma ?posLabel ?sense_descriptions
limit 100 # remove the limit and get all entries that have sense descriptions

Try it!


Dialectal lemma variants

#defaultView:BarChart
#This shows the distribution of dialectal lemma variants
PREFIX qp: <https://qichwa.wikibase.cloud/prop/>
PREFIX qps: <https://qichwa.wikibase.cloud/prop/statement/>
PREFIX qpq: <https://qichwa.wikibase.cloud/prop/qualifier/>

SELECT ?dialect ?dialectLabel (count (?variant) as ?variants)
WHERE { ?lemma qp:P16 [ qps:P16 ?variant ; qpq:P17 ?dialect ] .
        SERVICE wikibase:label { bd:serviceParam wikibase:language "en". }
      }
GROUP BY ?dialect ?dialectLabel ?variants ORDER BY DESC(?variants)

Try it!


Part of speech (lexical category)

Course-grained (lexical category superclasses)

#defaultView:BarChart
PREFIX qdp: <https://qichwa.wikibase.cloud/prop/direct/>

select ?pos ?posLabel (count(?entry) as ?count)
where {
?entry a ontolex:LexicalEntry; 
       wikibase:lemma ?lemma;
       wikibase:lexicalCategory ?pos_finegrained.
       ?pos_finegrained qdp:P4 ?pos. ?pos rdfs:label ?posLabel . filter(lang(?posLabel)="en")
} group by ?pos ?posLabel ?count
order by desc(?count)

Try it!

Fine-grained (lexical categories as in Runasimi Dictionary)

#defaultView:BarChart
#this shows pos distribution (fine-grained categories as in Runasimi dictionary)
select ?pos ?posLabel (count(?entry) as ?count)
where {
?entry a ontolex:LexicalEntry; 
       wikibase:lemma ?lemma;
       wikibase:lexicalCategory ?pos. ?pos rdfs:label ?posLabel . filter(lang(?posLabel)="en")
} group by ?pos ?posLabel ?count
order by desc(?count)

Try it!