prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> prefix xs: <http://www.w3.org/2001/XMLSchema#> prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> prefix classe: <http://docs.oracle.com/javase/7/docs/api/> prefix methode: <http://fr.wikipedia.org/wiki/Java_(langage)/methode#> prefix constructeur: <http://fr.wikipedia.org/wiki/Java_(langage)/constructeur#> prefix attribut: <http://fr.wikipedia.org/wiki/Java_(langage)/attribut#> prefix parametre: <http://fr.wikipedia.org/wiki/Java_(langage)/parametre#> prefix exception: <http://fr.wikipedia.org/wiki/Java_(langage)/exception#> prefix interface: <http://fr.wikipedia.org/wiki/Java_(langage)/interface#> ########################################################## #R1: Afficher tous les triplets # SELECT * WHERE {?subject ?predicate ?object} ########################################################## #R2: Afficher les classes du package java.util selon l'ordre alphabétique des identifiants # # select ?id_classe where { # ?classe classe:a_identifier ?id_classe; # classe:a_package ?package. # FILTER (?package="java.lang") # } ORDER BY ?id_classe ########################################################## #R3: Afficher les attributs de la classe java.lang.Boolean ainsi que leurs types # # select ?type ?nom where { # ?classe classe:a_identifier ?id_classe; # classe:a_package ?package; # classe:a_fields ?a. # ?a ?b ?c. # ?c attribut:type ?type; # attribut:identifiant ?nom. # FILTER (?package="java.lang" && ?id_classe="Boolean") #} ########################################################## #R4: chercher les méthodes qui ne lancent pas d'exceptions # # select ?m1 # where{ # ?classe classe:a_methodes ?bagMeth. # ?bagMeth ?c1 ?m1. # ?m1 ?a ?type. # OPTIONAL{ # ?m1 methode:a_exceptions ?excBag. #} # FILTER (!bound(?excBag) ) #} ######################################################### #R5: compter le plus grand nombre de méthodes qu'une classe contient # # select (max(?count) as ?max) # where{ # select ?classe (count(?methode) as ?count) # where { # # ?classe classe:a_methodes ?bagMeth. # # ?bagMeth ?bagMethO ?methode. # ?methode methode:identifiant ?idM. # # }group by ?classe #} ######################################################### #R6: chercher les classes qui ont plus de 15 méthodes # # select ?classe (count(?methode) as ?count) # where{ # ?classe classe:a_methodes ?bagMeth. # ?bagMeth ?bagMethO ?methode. #} # group by ?classe # HAVING (count(?methode) >= 15) ######################################################### #R7: chercher les méthodes qui sont définis depuis jdk 1.7 # # select ?methode ?since # where{ # ?methode methode:since ?since. # FILTER (?since = "1.7") #} ########################################################## #R8: chercher les attributs hérités des classes à partir de leur superClasse directe # # select ?classe ?id_superClass ?m ?type_field ?id_field where { # ?classe classe:a_identifier ?id_classe; # classe:a_package ?packSub; # classe:a_superClass ?id_superClass. # # ?id_superClass classe:a_fields ?a; # classe:a_package ?packSup. # ?a ?g ?h. # ?h attribut:type ?type_field; # attribut:identifiant ?id_field; # attribut:a_modifiers ?modifiers. # ?modifiers ?y ?m. # FILTER (?m="protected" || ?m="public" || (?m="default" && ?packSub=?packSup) ) #} ########################################################## #R9: chercher pour chaque méthode, les méthodes qu'elle redéfinit de la superClasse #les contraintes sont: une méthode m1 redéfinit une méthode m2 si # classe de m1 est sous classe de celle de m2 # signature m1 est une sous signature de m2 # package de m1 =package de m2 # m2 pas private // On n'a pas à traiter ce cas car il n'y a pas de méthodes private # # select ?classe ?mOverrides ?super ?mOverriden # where #{ # ?classe classe:a_package ?pack_sub; # classe:a_identifier ?sub; # classe:a_methodes ?bagMethSub. # ?bagMethSub ?cSub ?mOverrides. # ?mOverrides methode:signature ?signSub. # # ?classe classe:a_superClass ?super. # ?super classe:a_package ?pack_super; # classe:a_methodes ?bagMethSuper. # ?bagMethSuper ?cSup ?mOverriden. # ?mOverriden methode:signature ?signSup. # FILTER ( ?signSub=?signSup && ?pack_sub=?pack_super) #} ################################################################# #R10: chercher les relations de overload (surcharge) entre méthodes déclarées d'une même classe #les contraintes: les méthodes doivent avoir le même nom # # select ?m1 ?m2 # where{ # ?classe classe:a_methodes ?bagMethSub. # ?bagMethSub ?c1 ?m1. # ?m1 methode:identifiant ?m1Id. # # ?classe classe:a_methodes ?bagMethSup. # ?bagMethSup ?c2 ?m2. # ?m2 methode:identifiant ?m2Id. # FILTER(?m1Id=?m2Id && ?m1!=?m2) #} #################################################################