examen 16nov2012 solution

Upload: babacar-ngom

Post on 15-Oct-2015

37 views

Category:

Documents


3 download

TRANSCRIPT

  • Nom :Prnom :

    M2 Outils de bases de donnes pour lintelligence artificielleExamen 1re session du 16 novembre 2012

    2 heuresCORRIG

    Documents autoriss

    Les tlphones mobiles doivent tre teints et rangs dans les sacs. Le barme sur 20 points (18 questions)na quune valeur indicative.

    1 Bases de donnes XML (8 pts)

    Soit une DTD movies.dtd

    < !ELEMENT movies ( movie , a r t i s t )>< !ELEMENT movie ( t i t l e , year , count ry , genre , summary? , r o l e )>< ! ATTLIST movie d i r e c t o r IDREF >< !ELEMENT a r t i s t ( f i rs t_name , last_name , b i r t h _ d a t e ) >< ! ATTLIST a r t i s t i d ID >< !ELEMENT r o l e #PCDATA >< ! ATTLIST r o l e ac to r #IDREF >< !ELEMENT t i t l e (#PCDATA) >< !ELEMENT count ry (#PCDATA) >< !ELEMENT year (#PCDATA) >< !ELEMENT genre (#PCDATA) >< !ELEMENT summary (#PCDATA) >< !ELEMENT last_name (#PCDATA) >< !ELEMENT f i r s t_name (#PCDATA) >< !ELEMENT b i r t h _ d a t e (#PCDATA) >< !ELEMENT r o l e (#PCDATA) >

    Les attributs director (ralisateur dun film) et actor qui joue un rle (acteur) sont des rfrencesvers des lments artist.

    1.1 Requtes XQuery

    Exprimez les requtes sur un document mymovies.xml valid par la DTD movies.dtd. On indique pourchaque requte la DTD du rsultat.

    Question 1 (1 point)XQ1: Un lment comedy_titles qui contient les titres de comdies (GENRE=COMEDY) avec leurpays tris par titre.

    < !ELEMENT comedy_t i t les ( comedy )>< !ELEMENT comedy ( t i t l e , year ) >< !ELEMENT t i t l e (#PCDATA) >< !ELEMENT year (#PCDATA) >

  • BDIA CORRIG UPMC

    Solution: XQuery avec clause where:

    { f o r $m i n doc ( " mymovies . xml " / / movie

    where $m/ genre = comedy order by $m/ t i t l er e t u r n element comedy { $m/ t i t l e , $m/ year }

    }

    XQuery sans clause where:

    { f o r $m i n doc ( " mymovies . xml " / / movie [ genre = comedy ]

    order by $m/ t i t l er e t u r n element comedy { $m/ t i t l e , $m/ year }

    }

    Barme:

    Question 2 (1 point)XQ2: Un lment allen_titles qui contient tous les titres de films tourns par Woody Allen tris parlanne.

    < !ELEMENT a l l e n _ t i t l e s ( t i t l e )>< !ELEMENT t i t l e (#PCDATA) >

    Solution:

    XQuery avec clause where:

    < a l l e n _ t i t l e s >{ f o r $m i n doc ( " mymovies . xml " / / movie ,

    $a i n doc ( " mymovies . xml " / / a r t i s twhere $a / f i rs t_name = Woody

    and $a / last_name = A l l en and $m/ @director = $a / @id

    order by $m/ yearr e t u r n $m/ t i t l e }

    < a l l e n _ t i t l e s >

    XQuery sans clause where:

    < a l l e n _ t i t l e s >{ f o r $m i n doc ( " mymovies . xml " / movie [ @director = / / a r t i s t [ f i r s t_name = Woody

    and last_name = A l l en ] / @id ]r e t u r n $m/ t i t l e }

    < a l l e n _ t i t l e s >

    Question 3 (2 points)XQ3: Les films avec leur titre et lanne (title and year) comme attribut et pour chaque film les acteursdont le rle apparat dans le rsum du film. Les films sont tris par leur titre.

    Examen 1re session M2 16 novembre 2012 UPMC Master dinformatique page 2 sur 10

  • BDIA CORRIG UPMC

    < !ELEMENT movies ( movie )>< !ELEMENT movie ( ac to r )>< ! ATTLIST movie t i t l e CDATA

    year CDATA >< !ELEMENT ac to r ( f i rs t_name , last_name , b i r th_da te , r o l e ) >< !ELEMENT last_name (#PCDATA) >< !ELEMENT f i r s t_name (#PCDATA) >< !ELEMENT b i r t h _ d a t e (#PCDATA) >< !ELEMENT r o l e (#PCDATA) >

    Solution:

    { f o r $m i n doc ( " mymovies . xml " / / movie

    r e t u r n element movie {a t t r i b u t e t i t l e { $m/ t i t l e } ,a t t r i b u t e year { $m/ year } ,f o r $a i n doc ( " mymovies . xml " / / a r t i s t ,

    $ r i n $m/ r o l ewhere $a / @id=$ r / @actor and $m/ summary conta ins $ rr e t u r n $a }

    order by $m/ t i t l e}

    Question 4 (2 points)Restructuration du document : les films sont regroups par pays et par genre. On ne garde pas lesinformations sur les ralisateurs et les rles.

    Attention:

    chaque pays ne doit apparatre quune seule fois; chaque genre ne doit apparatre quune seule fois pour chaque pays; il faut enlever le pays et le genre dans chaque film (voir DTD).

    < !ELEMENT coun t r i es ( count ry )>< !ELEMENT count ry (name, genre ) >< !ELEMENT genre (name, movie ) >< !ELEMENT movie ( t i t l e , year , summary?)>< !ELEMENT t i t l e (#PCDATA) >< !ELEMENT year (#PCDATA) >< !ELEMENT summary (#PCDATA) >

    Solution:

    < coun t r i es >{ f o r $c i n d i s t i n c t values ( doc ( " mymovies . xml " / / count ry )

    r e t u r n element count ry {element name { $c / count ry } ,f o r $g i n d i s t i n c t values ( doc ( " mymovies . xml " / / genre )r e t u r n element genre {

    element name { $g / genre } ,f o r $m i n doc ( " mymovies . xml " ) / / moviewhere $m/ count ry = $c and $m/ genre = $g

    Examen 1re session M2 16 novembre 2012 UPMC Master dinformatique page 3 sur 10

  • BDIA CORRIG UPMC

    r e t u r n element movie {$m/ t i t l e , $m/ year , $m/ summary }

    }}

    }< / coun t r i es >

    1.2 Stockage relationnel

    On suppose que les documents sont stocks dans une base de donnes relationnelle.

    Question 5 (1 point)Dfinissez un schma relationnel (tables avec les attributs) qui permet de stocker tous le documentsvalids par la DTD. Le schma de stockage nest pas oblig de maintenir lordre des noeuds et lesattributs XML sont directement traduits en attributs dans la table correspondante.

    Solution:

    Movie(id, title, year, genre, summary, director) Country(id, country, mid) Artist(id, first_name, last_name, birth_date) Role(id, parid, role, actor)

    Traduisez la requte suivante en requte SQL sur ce schma.

    Question 6 (1 point)Tous les titres de films tourns par Woody Allen.

    Solution:

    select m. t i t l efrom Movie m, A r t i s t awhere m. d i r e c t o r = a . i dand a . last_name= A l l en and a . f i rs t_name= Woody

    Question bonus (2 point)

    Compltez lordre SQL-XML pour gnrer un extrait XML qui est valid par la DTD movie.dtd partirde la base de donnes relationnelle (utilisez les fonctions xmlagg, xmlelement, xmlattribute,xmlforest).

    Solution:

    select xmlelement ( movies ,( select xmlagg ( xmlelement ( movie ,

    xm l fo res t (m. t i t l e , m. year ) ,( select xmlagg ( xmlelement ( count ry , c . count ry )

    Examen 1re session M2 16 novembre 2012 UPMC Master dinformatique page 4 sur 10

  • BDIA CORRIG UPMC

    from Country cwhere c . pa r id=m. i d ) ,

    xm l fo res t ( m. genre , m. summary ) ,( select xmlagg ( xmlelement ( r o l e , r . role ) ,

    x m l a t t r i b u t ( ac to r , r . ac to r )from Role rwhere r . pa r id=m. i d )

    x m l a t t r i b u t e (m. d i r e c t o r ) ) ) )from Movie m) ,( select xmlagg ( xmlelement ( a r t i s t ,

    xm l fo res t ( a . f i rs t_name , a . last_name , a . b i r t h _ d a t e ) ,x m l a t t r i b u t e ( i d , a . i d ) ) )

    from A r t i s t a )from dual ;

    2 Bases de donnes RDF (12 pts)

    Soit le graphe RDF g1 suivant. Chaque noeud esttiquet par son identifiant ou par une lettre dbutantpar _ sil sagit dun noeud blanc. Les arcs sont ti-quets par les types des proprits.

    _x_v _w

    _ua _z

    b c_y

    r

    r

    s

    r

    r s

    r

    s

    s

    r

    s

    r s

    g1

    Question 7 (1/2 point)Donnez les expressions Turtle qui correspondent ce graphe.

    Solution:

    _v r a ; r _u ._x r a ; r _u ; s _z ._w s _u ; r _z .

    a s _y ; s b ._u r b .

    b r a ; s _z .c s _z .

    Question 8 (1 point)Dessinez le graphe minimal core(g1) du graphe g1. Donnez galement le mapping m pour obtenircore(g1).

    Solution: m : _v _x,_y b:core(g1):

    Examen 1re session M2 16 novembre 2012 UPMC Master dinformatique page 5 sur 10

  • BDIA CORRIG UPMC

    _x _w

    _ua _z

    b c

    rr

    s s

    r

    s

    r

    s

    r s

    Voici un schma RDFS pour des donnes cinmatographiques. Les relations subClassOf sont enpointill et les autres arcs dfinissent des proprits:

    Literal Artiste

    ActeurRealisateur

    Role

    Film

    Drame

    Comedie

    Actionsu

    bClas

    sOf

    subC

    lass

    Of

    subClassOf

    subC

    lassO

    fsubClassOf

    titre

    pays

    nom

    realisateur

    acteu

    r

    film

    Soit le document RDF film.rdf suivant:

    < A r t i s t e r d f : I D = p1 >Ryan Gosl ing< /nom>

    < / A r t i s t e >< / ac teur>< f i l m >

    >< t i t r e >Dr ive< / t i t r e >< r e a l i s a t e u r >

    < A r t i s t e r d f : I D = p2 >Nico las Winding Refn< /nom>

    < / A r t i s t e >

    Examen 1re session M2 16 novembre 2012 UPMC Master dinformatique page 6 sur 10

  • BDIA CORRIG UPMC

    < / r e a l i s a t e u r >USA< / pays>

    < / Act ion>< / f i l m >

    < / Role>

    < f i l m >

    >< t i t r e >Harry dans tous ses ta t s < / t i t r e >< r e a l i s a t e u r >

    < A r t i s t e r d f : I D = p3 >Woody A l len < /nom>

    < / A r t i s t e >< / r e a l i s a t e u r >USA< / pays>

    < / Comedie>< / f i l m >

    < / Role>< / rdf:RDF>

    On suppose que ce document a t charg dans Oracle RDF.

    Question 9 (1 point)Donnez pour chaque ressource f1, f2, p1, p2, p3 leurs types RDFS avant et aprs avoir appliqu toutesles rgles dinfrence RDF et RDFS en utilisant le schma ci-dessus. Donnez les rgles appliquespour linfrence des nouveaux types.

    Solution:

    Avant:

    f1: Action f2: Comedie p1: Artiste p2: Artiste p3: Artiste

    Aprs:

    f1: Action, Film (infrence suclassOf) f2: Comedie, Film (infrence suclassOf) p1: Artiste, Acteur (range de acteur) p2: Artiste, Realisateur (range de realisateur) p3: Artiste, Acteur (range de Role), Realisateur (range de realisateur)

    Donnez les requtes SPARQL qui rpondent aux questions suivantes. Vous ntes pas obligs de spcifierles espaces de nom utiliss ni le graphe interrog.

    Attention: il est possible quune requte ne puisse pas tre exprime en SPARQL 1.0. Indiquez lesquelles. :

    Examen 1re session M2 16 novembre 2012 UPMC Master dinformatique page 7 sur 10

  • BDIA CORRIG UPMC

    Question 10 (1 point)SQ10: Les noms des ralisateurs et des acteurs du film Drive.

    Solution:

    SELECT ?nrWHERE { [ t i t r e ? t ; r e a l i s a t e u r [ nom ?nr ] ] . FILTER (? t = Dr ive ) }UNIONSELECT ?naWHERE { ? r f i l m [ t i t r e ? t ] ;

    ac teur [ nom ?na ]FILTER (? t = Dr ive ) }

    Question 11 (1/2 point)SQ11: Les diffrents genres de films.

    Solution:

    SELECT ?aWHERE { ?a r d f s : subClassOf Fi lm }

    Question 12 (1 point)SQ12: Les noms des acteurs qui ont jou dans des comdies ou des films daction.

    Solution:

    SELECT ?naWHERE { ? r f i l m [ r d f : type ? t ] ; ac teur [ nom ?na ] .

    FILTER (? t = : Comedie or ? t = : Action ) }

    ou

    SELECT ?naWHERE { ? r f i l m [ r d f : type : Comedie ] ; ac teur [ nom ?na ] . }UNIONSELECT ?naWHERE { ? r f i l m [ r d f : type : Action ] ; ac teur [ nom ?na ] . }

    Question 13 (2 points)SQ13: Les noms des acteurs qui nont pas jou dans des comdies.

    Solution:

    SELECT ?nWHERE { ?a r d f : type Acteur ; nom ?na .

    OPTIONAL { ? r f i l m ? f ; ac teur ?a . ? f r d f : type : Comedie . } .FILTER ( ! bound (? f ) ) }

    ou

    SELECT ?nWHERE { ? r f i l m ? f ; ac teur [ nom ?na ] .

    OPTIONAL { ?a . ? f r d f : type : Comedie . } .FILTER ( ! bound (? f ) ) }

    Examen 1re session M2 16 novembre 2012 UPMC Master dinformatique page 8 sur 10

  • BDIA CORRIG UPMC

    Question 14 (1 point)SQ14: Les noms des artistes qui sont acteur et ralisateur.

    Solution:

    SELECT ?nWHERE { ?a r d f : type Acteur ; r d f : type Rea l i sa teu r ; nom ?n . }

    Question 15 (1 point)SQ15: Les noms des personnes qui ont jou dans tous les films de Woody Allen.

    Solution: La requte ne peut pas tre exprime en SPARQL 1.0.

    RDF et SQL

    On suppose que tous les triplets (schma RDFS et graphe RDF) sont stockes dans une table relationnelleRDF(S, P, O). Traduisez les requtes suivantes en SQL.

    Question 16 (1 point)SQ14: Les noms des artistes qui sont acteurs et ralisateurs.

    Solution:

    select A.Ofrom RDF A, RDF B, RDF Cwhere A.P= nom

    and A.S=B.S and B.P= r d f : type and B.O= : Actor and A.S=C.S and C.P= r d f : type and C.O= : D i r e c t o r

    Question 17 (1 point)SQ17: Les noms des acteurs qui nont pas jou dans des comdies.

    Solution:

    select A.Ofrom RDF A, RDF B, RDF Cwhere A.P= nom

    and A.S not in ( select B.Ofrom RDF B, RDF C, RDF F

    where B.P= ac teur and C.P= f i l m and C.S=B.Sand C.O=F .Sand F .P = r d f : type and F .O = Comedie )

    Question 18 (1 point)Compltez la rgle suivante qui indique que tous les films avec Woody Allen (dans un rle) sont descomdies:

    Examen 1re session M2 16 novembre 2012 UPMC Master dinformatique page 9 sur 10

  • BDIA CORRIG UPMC

    Solution:

    INSERT INTO MDSYS.RDFR_MOVIE_RB VALUES( woody_allen_comedies , (? r : ac teur ?a ) ( ? a nom ?n ) ( ? r : f i l m ? f ) ,f i l t e r = n = "Woody A l len " , , (? f r d f : type : Comedie ) SDO_RDF_Aliases ( SDO_RDF_Alias ( , h t t p : / / movies . f r / ) ) ) ;

    Examen 1re session M2 16 novembre 2012 UPMC Master dinformatique page 10 sur 10

  • BDIA CORRIG UPMC

    Question Points Score

    1 1

    2 1

    3 2

    4 2

    5 1

    6 1

    7 1/2

    8 1

    9 1

    10 1

    11 1/2

    12 1

    13 2

    14 1

    15 1

    16 1

    17 1

    18 1

    Total: 20

    Examen 1re session M2 16 novembre 2012 UPMC Master dinformatique page 11 sur 10