SlideShare a Scribd company logo
1 of 90
Download to read offline
<?xml version=“1.0” ?>
Semantic Web                                          <curs desc=“…” />




                         Web semantic

                   Dr. Sabin­Corneliu Buraga
                     Facultatea de Informatica
               Universitatea “A.I.Cuza” – Iasi, Romania


              http://www.infoiasi.ro/~busaco/

Dr. Sabin Buraga   http://www.purl.org/net/busaco
<?xml version=“1.0” ?>
Semantic Web                                        <curs desc=“…” />




             Managementul datelor RDF
Dr. Sabin Buraga   http://www.purl.org/net/busaco
<?xml version=“1.0” ?>
Semantic Web                                        <curs desc=“…” />




                       “Trebuie sa adunam fapte 
                          pentru a avea idei.”

                      Georges­Louis de Buffon




Dr. Sabin Buraga   http://www.purl.org/net/busaco
<?xml version=“1.0” ?>
Semantic Web                                        <curs desc=“…” />




                                   intrebari


               Ce instrumente de procesare
             a declaratiilor RDF putem folosi?




Dr. Sabin Buraga   http://www.purl.org/net/busaco
<?xml version=“1.0” ?>
Semantic Web                                        <curs desc=“…” />




                                                                     Conform (Bailer & Hausenblas, 2007)
Dr. Sabin Buraga   http://www.purl.org/net/busaco
<?xml version=“1.0” ?>
Semantic Web                                        <curs desc=“…” />




                                  necesitati

                       Procesor (parser) RDF

           preluarea datelor in diverse formate si 
              reprezentarea lor ca triple RDF




Dr. Sabin Buraga   http://www.purl.org/net/busaco
<?xml version=“1.0” ?>
Semantic Web                                        <curs desc=“…” />




                                  necesitati

                   Serializator (serializer) RDF

            exprimarea modelului intern RDF
      in diverse formate standard: RDF/XML, N3,...




Dr. Sabin Buraga   http://www.purl.org/net/busaco
<?xml version=“1.0” ?>
Semantic Web                                         <curs desc=“…” />




                                instrumente
                         API‐uri RDF – exemple:
                         ActiveRDF (Ruby)
                   CARA – CArmen RDF API (Perl)
                          Drive.NET (C#)
                Jena Semantic Web Toolkit (Java)
                       RAP – RDF API for PHP 
                         RDFLib (Python)
              Redland (C/C++; bindings in alte limbaje)
                           SemWeb (C#)
                           Wilbur (Lisp)
Dr. Sabin Buraga   http://www.purl.org/net/busaco
<?xml version=“1.0” ?>
Semantic Web                                           <curs desc=“…” />




                                   necesitati

                               Convertor RDF

                   preluarea datelor din alte modele
                      si transformarea lor in RDF

        extragerea directa din documentele HTML
                 via scrapers/harvesters


Dr. Sabin Buraga    http://www.purl.org/net/busaco
<?xml version=“1.0” ?>
Semantic Web                                        <curs desc=“…” />




                                instrumente

         Extractoare/convertoare RDF – exemple:
                         Aperture (Java)
                          Babel (Java)
                        Greengrass (C#)
                        LinqToRDF (C#)
            Piggy Bank (JavaScript – extensie Firefox)
                           Raptor (C)
                         RDF123 (Java)
                         sommer (Java)
          Semantic Radar (JavaScript – extensie Firefox)
Dr. Sabin Buraga   http://www.purl.org/net/busaco
<?xml version=“1.0” ?>
Semantic Web                                        <curs desc=“…” />




                                instrumente

                             Initiativa Triplify:




                                    triplify.org
Dr. Sabin Buraga   http://www.purl.org/net/busaco
<?xml version=“1.0” ?>
Semantic Web                                        <curs desc=“…” />




                                  necesitati

                          Motoare de cautare

                  cauta documente RDF,
      eventual extrag cunostinte – e.g., meta‐date –
           din alte documente (HTML, RSS,...)

               pot beneficia de servicii de pinging
                         pingthesemanticweb.com

Dr. Sabin Buraga   http://www.purl.org/net/busaco
<?xml version=“1.0” ?>
Semantic Web                                        <curs desc=“…” />




                                instrumente

               Motoare de cautare – exemple:

                         Sindice
                         Swoogle
             SWSE – Semantic Web Search Engine
                         Watson



Dr. Sabin Buraga   http://www.purl.org/net/busaco
<?xml version=“1.0” ?>
Semantic Web                                        <curs desc=“…” />




                                  necesitati

       O modalitate standardizata de “convertire”
         a constructiilor semantice incapsulate
           in documentele Web in triple RDF




Dr. Sabin Buraga   http://www.purl.org/net/busaco
<?xml version=“1.0” ?>
Semantic Web                                                 <curs desc=“…” />




                                       grddl

         GRDDL – Gleaning Resource Descriptions
             from Dialects of Languages
glean
 verb [ trans. ]
 extract (information) from various sources:
 the information is gleaned from press clippings.
  • collect gradually and bit by bit: 
    objects gleaned from local markets.
  • historical gather (leftover grain or other produce) after a harvest:   
    [as n. ] (gleaning)
    the conditions of farm workers in the ‘30s made gleaning essential.
Dr. Sabin Buraga   http://www.purl.org/net/busaco
<?xml version=“1.0” ?>
Semantic Web                                        <curs desc=“…” />




                                       grddl

Permite asocierea de transformari din formate structurate 
    (e.g., microformate, RDFa, XML) in declaratii RDF,
            fara pierderea semanticii (meaning)

                         www.w3.org/TR/grddl/

                   www.w3.org/TR/grddl­primer/




Dr. Sabin Buraga   http://www.purl.org/net/busaco
<?xml version=“1.0” ?>
Semantic Web                                               <curs desc=“…” />




                                        grddl

  Exista o multitudine de documente recurgind la anumite 
     dialecte XML – e.g., ODF, RSS/Atom, XHTML etc. –,
    incapsulind informatii care ar putea fi redate in RDF 

     se doreste o asociere faithful – se pastreaza intelesul

                   se va specifica o transformare GRDDL 
                          uzual, se foloseste XSLT



Dr. Sabin Buraga    http://www.purl.org/net/busaco
<?xml version=“1.0” ?>
Semantic Web                                        <curs desc=“…” />




                                       grddl




    Berners‐Lee, 2007: www.w3.org/2007/Talks/1211-whit-tbl/
Dr. Sabin Buraga   http://www.purl.org/net/busaco
<?xml version=“1.0” ?>
Semantic Web                                                 <curs desc=“…” />




                             grddl: exemplu
   Un document XHTML ce include microformatul hCard:
<html xmlns=http://www.w3.org/1999/xhtml>
<head profile=http://www.w3.org/2003/g/data-view>
<link rel=transformation href=mHTML2RDF.xsl />
<title>...</title></head>                               Transformare
<body>                                                     GRDDL
   <div class=vcard>
       <p class=fn n><span class=given-name>Sabin</span>
        <span class=family-name>Buraga</span></p>
   </div>
   ...
</body>
</html>
Dr. Sabin Buraga   http://www.purl.org/net/busaco
<?xml version=“1.0” ?>
Semantic Web                                                 <curs desc=“…” />




                             grddl: exemplu
          In urma transformarii XSLT, ar putea rezulta:
<rdf:RDF xmlns:rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns#
           xmlns:v=http://www.w3.org/2006/vcard/ns#>
   <rdf:Description rdf:nodeID=EsAVHkUx6>
     <rdf:type rdf:resource=http://www.w3.org/2006/vcard/ns#VCard/>
     <v:fn>Sabin Buraga</v:fn>
   </rdf:Description>
   <rdf:Description rdf:nodeID=EsAVHkUx8>
     <rdf:type rdf:resource=http://www.w3.org/2006/vcard/ns#Name/>
     <v:given-name>Sabin</v:given-name>
     <v:family-name>Buraga</v:family-name>
   </rdf:Description>
</rdf:RDF>
Dr. Sabin Buraga   http://www.purl.org/net/busaco
<?xml version=“1.0” ?>
Semantic Web                                        <curs desc=“…” />




                                  necesitati

   Un sistem de stocare/interogare a triplelor RDF




Dr. Sabin Buraga   http://www.purl.org/net/busaco
<?xml version=“1.0” ?>
Semantic Web                                             <curs desc=“…” />




                      sisteme de stocare rdf

Datele RDF sunt memorate in cadrul unui RDF store

                             aspecte de interes:
                                 performanta
                           capacitatea de stocare
                      facilitatile privind interogarea
                            API‐urile disponibile



Dr. Sabin Buraga   http://www.purl.org/net/busaco
<?xml version=“1.0” ?>
Semantic Web                                        <curs desc=“…” />




                      sisteme de stocare rdf

        Se ofera posibilitatea fuzionarii (merging)
                  a seturilor de date RDF

       date 2 seturi de triple RDF, in urma fuzionarii 
 va rezulta un set de triple RDF incluzind toate triplele din 
ambele seturi de intrare in care resursele avind acelasi URI 
                sunt considerate echivalente



Dr. Sabin Buraga   http://www.purl.org/net/busaco
<?xml version=“1.0” ?>
Semantic Web                                           <curs desc=“…” />




                      sisteme de stocare rdf

          Intern, un RDF store poate stoca triplele
                intr‐o varietate de formate:
                           baze de date relationale
                          structuri de date speciale

  asigurarea interoperabilitatii este facilitata de formatele 
      de serializare standardizate – precum RDF/XML



Dr. Sabin Buraga   http://www.purl.org/net/busaco
<?xml version=“1.0” ?>
Semantic Web                                          <curs desc=“…” />




                      sisteme de stocare rdf

                                     Exemple:
                                BOCA (Java)
                              Brahms (C/C++)
                             D2R Server (Java)
                                Joseki (Java)
                          Kowari & Mulgara (Java)
                         Oracle Spatial 10g (C/C++)
                                Oyster (Java)
                             RDFStore (C, Perl)
                               Sesame (Java)
Dr. Sabin Buraga   http://www.purl.org/net/busaco
<?xml version=“1.0” ?>
Semantic Web                                        <curs desc=“…” />




                                  necesitati

   Un limbaj de interogare a seturilor de triple RDF




Dr. Sabin Buraga   http://www.purl.org/net/busaco
<?xml version=“1.0” ?>
Semantic Web                                        <curs desc=“…” />




                                      sparql

       SPARQL Protocol and RDF Query Language

          limbaj descriptiv standardizat
pentru realizarea de interogări pe baza potrivirilor
       de şabloane referitoare la triple RDF

     inspirat din RDQL – oferit de Jena, RAP, Redland etc.



Dr. Sabin Buraga   http://www.purl.org/net/busaco
<?xml version=“1.0” ?>
Semantic Web                                        <curs desc=“…” />




                                      sparql

     Ofera suport pentru manipularea constructiilor RDF

        Pune la dispozitie operatii asupra grafurilor RDF

           Independent de platforma software utilizata



    Limbaj de interogare + protocol de acces la triple RDF

Dr. Sabin Buraga   http://www.purl.org/net/busaco
<?xml version=“1.0” ?>
Semantic Web                                        <curs desc=“…” />




                                      sparql

                                   Precursori:
      limbaje inspirate de SQL: RDQL, SeRQL, RQL,...
        limbaje inspirate de XPath: Versa, RDFPath
  limbaje bazate pe reguli: N3QL, Triple, DQL, OWL‐QL,…
suportul de interogare oferit de XML: XSLT, XPath, XQuery




Dr. Sabin Buraga   http://www.purl.org/net/busaco
<?xml version=“1.0” ?>
Semantic Web                                                    <curs desc=“…” />




         sparql: xml vs. rdf (Beckett, 2006)
   Concept                         XML                       RDF
    Model            document/arbore /infoset       set de triple = graf RDF
                                                    triple, URI‐uri, noduri
    Atomi              elemente, atribute, text
                                                      blanc, literali (text)
               Nume de elemente/atribute
                                                            URI‐uri
                Nume calificate (qnames)
Identificatori
                 identificatori (ID‐uri)                   (IRI‐uri)
                    expresii XPath
  Structura             DTD‐uri, scheme XML,             Scheme RDF 
  (schema)                  RELAX NG,...                (RDF Schema)

Dr. Sabin Buraga   http://www.purl.org/net/busaco
<?xml version=“1.0” ?>
Semantic Web                                         <curs desc=“…” />




                   sparql: limbaj de interogare

        Ofera acces – via interogari – la datele RDF
            doar pentru consultare (read­only)

              modelul de interogare e fundamentat de
              sabloane de grafuri RDF – graph patterns

constantele dintr‐un graf RDF sunt substituite de variabile

          nu se bazeaza pe cai (paths) sau reguli (rules)

Dr. Sabin Buraga    http://www.purl.org/net/busaco
<?xml version=“1.0” ?>
Semantic Web                                         <curs desc=“…” />




                   sparql: limbaj de interogare

            Recomandare a Consortiului Web

           www.w3.org/TR/rdf­sparql­query/




Dr. Sabin Buraga    http://www.purl.org/net/busaco
<?xml version=“1.0” ?>
Semantic Web                                            <curs desc=“…” />




                   sparql: limbaj de interogare

                  Termeni RDF (RDF‐T): 
      reuniunea multimilor IRI, noduri blanc, literali RDF

                        Variabile de interogare (V): 
                         simboluri prefixate de “?”

         Sabloane (triple patterns): membru al multimii
             (RDF‐T ∪ V) × (IRI ∪ V) × (RDF‐T ∪ V) 

            Sabloane de tip graf: multime de sabloane
Dr. Sabin Buraga    http://www.purl.org/net/busaco
<?xml version=“1.0” ?>
Semantic Web                                                <curs desc=“…” />




                   sparql: limbaj de interogare

              Conventii sintactice bazate pe Turtle/N3

                       Triplele RDF sunt generalizate
                      ca fiind tablouri de termeni RDF

                   termen RDF = IRI | nod blanc | literal

            pattern de triple = tablou de termeni RDF
              sau nume de variabile (termeni liberi)

Dr. Sabin Buraga    http://www.purl.org/net/busaco
<?xml version=“1.0” ?>
Semantic Web                                          <curs desc=“…” />




                   sparql: limbaj de interogare

       URI – sau, mai general, IRI – delimitati de “<” si “>”
                    <http://www.info.uaic.ro/>

     se poate folosi constructia @prefix pentru a specifica
          spatii de nume ale vocabularelor utilizate

           nodurile blanc se specifica prin _:nume
  sau delimitate de “[” si “]” daca se folosesc o singura data



Dr. Sabin Buraga    http://www.purl.org/net/busaco
<?xml version=“1.0” ?>
Semantic Web                                          <curs desc=“…” />




                   sparql: limbaj de interogare

                            Literali RDF
             (siruri de caractere cu atribute optionale)

        Web
        Web@ro            <!-- se indica limba -->
        Web^^xsd:string <!-- se specifica tipul de date -->
        true^^xsd:boolean




Dr. Sabin Buraga    http://www.purl.org/net/busaco
<?xml version=“1.0” ?>
Semantic Web                                                <curs desc=“…” />




                   sparql: limbaj de interogare

                                   Abrevieri
                               referitoare la triple

        :s          :p      :o1 ,                      :s   :p          :o1 .
                            :o2 . echivalent cu        :s   :p          :o2 .

        :s          :p1      :o1 ,                     :s   :p1         :o1 .
                             :o2 . echivalent cu 
                    :p2                                :s   :p2         :o2 .



Dr. Sabin Buraga    http://www.purl.org/net/busaco
<?xml version=“1.0” ?>
Semantic Web                                                 <curs desc=“…” />




                   sparql: limbaj de interogare

                                  Abrevieri
                         privitoare la nodurile blanc

          :s :p [ :p' :o ] echivalent cu :s :p _:x . _:x :p' :o .




Dr. Sabin Buraga    http://www.purl.org/net/busaco
<?xml version=“1.0” ?>
Semantic Web                                           <curs desc=“…” />




                   sparql: limbaj de interogare

      Un şablon (pattern) permite specificarea
 de variabile indicând informații ce vor fi returnate 
            în urma realizării interogării

                        ?subiect ?predicat ?obiect .




Dr. Sabin Buraga    http://www.purl.org/net/busaco
<?xml version=“1.0” ?>
Semantic Web                                         <curs desc=“…” />




                   sparql: limbaj de interogare

                                      Exemplu

              lista persoanelor inter‐conectate
          via predicatul (proprietatea) foaf:knows:

             ?persoana foaf:knows ?alta_persoana .




Dr. Sabin Buraga    http://www.purl.org/net/busaco
<?xml version=“1.0” ?>
Semantic Web                                         <curs desc=“…” />




                   sparql: limbaj de interogare

       Sabloanele pot fi combinate pentru a forma 
                şabloane mai complexe

               şabloane de tip graf (graph patterns)

              componente ale unei interogari SPARQL




Dr. Sabin Buraga    http://www.purl.org/net/busaco
<?xml version=“1.0” ?>
Semantic Web                                                       <curs desc=“…” />




                   sparql: limbaj de interogare

      SELECT ?contrib
      WHERE {
        <http://en.wikipedia.org/>
        <http://purl.org/dc/elements/1.1/contributor>
        ?contrib .
      }                                 Selectarea celor
                                                     ce au contribuit la 
                                                         o resursa

                    { … } desemneaza un graph pattern
Dr. Sabin Buraga    http://www.purl.org/net/busaco
<?xml version=“1.0” ?>
Semantic Web                                           <curs desc=“…” />




                   sparql: limbaj de interogare

                    Rezultatul interogarii poate fi:

  un tabel de valori corespunzatoare variabilelor utilizate, 
                 rezultat precizat prin SELECT

         o valoare booleana intoarsa de constructia ASK

        un graf RDF creat via CONSTRUCT sau DESCRIBE



Dr. Sabin Buraga    http://www.purl.org/net/busaco
<?xml version=“1.0” ?>
Semantic Web                                         <curs desc=“…” />




                   sparql: limbaj de interogare

  SELECT: rezultatul interogarii reprezinta un tabel
            secventa de rinduri compuse
     din valorile variabilelor (variable bindings)

            oferirea de valori distincte via DISTINCT
             ordonarea rezultatelor prin ORDER BY
         returnarea de sub‐secvente cu LIMIT si OFFSET
       precizarea constructiilor optionale prin OPTIONAL



Dr. Sabin Buraga    http://www.purl.org/net/busaco
<?xml version=“1.0” ?>
Semantic Web                                          <curs desc=“…” />




                   sparql: limbaj de interogare

              Informatiile interogate pot fi filtrate
                      via clauza FILTER
                   expresiile de filtrare includ:
                             variabile
                    operatori aritmetici/logici
        functii (predefinite sau specificate de utilizator)
             tipuri de date definite de XML Schema



Dr. Sabin Buraga    http://www.purl.org/net/busaco
<?xml version=“1.0” ?>
Semantic Web                                                 <curs desc=“…” />




                   sparql: limbaj de interogare


                                 FILTER (?anul = 2)

  FILTER (?dataComanda < 2008-12-31T22:00:00Z^^xsd:date)

                   FILTER regex (?titluCarte, ^Semantic)




Dr. Sabin Buraga    http://www.purl.org/net/busaco
<?xml version=“1.0” ?>
Semantic Web                                         <curs desc=“…” />




                   sparql: limbaj de interogare

          Interogare: ce aplicatii utilizeaza Sabin?
                s:Sabin s:utilizeaza ?aplicatie .

                        Rezultatul interogarii:
                        ?aplicatie = soft:Firefox
                        ?aplicatie = soft:iTunes
                     ?aplicatie = soft:ZynAddSubFX
                                    …

Dr. Sabin Buraga    http://www.purl.org/net/busaco
<?xml version=“1.0” ?>
Semantic Web                                              <curs desc=“…” />




                   sparql: limbaj de interogare
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
PREFIX s: <http://www.infoiasi.ro/SW#>
SELECT ?nume ?adresa ?ani
WHERE {
                                                      Informații
  ?pers foaf:name ?nume .
                                                        despre 
  ?pers s:ani ?ani .
                                                     primele 10 
  FILTER (?ani < 33) .
                                                     persoane cu
  OPTIONAL { ?pers foaf:mbox ?adresa . }             vârsta < 33
}
ORDER BY ?ani DESC (?nume)
LIMIT 10
Dr. Sabin Buraga    http://www.purl.org/net/busaco
<?xml version=“1.0” ?>
Semantic Web                                                  <curs desc=“…” />




                   sparql: limbaj de interogare

    Graful RDF de intrare poate fi specificat via URI

                   FROM <http://planetrdf.com/bloggers.rdf>




Dr. Sabin Buraga    http://www.purl.org/net/busaco
<?xml version=“1.0” ?>
Semantic Web                                         <curs desc=“…” />




                   sparql: limbaj de interogare

      Nodurile blanc intr‐o interogare joaca rol de 
                  variabile anonime




Dr. Sabin Buraga    http://www.purl.org/net/busaco
<?xml version=“1.0” ?>
Semantic Web                                                         <curs desc=“…” />




                   sparql: limbaj de interogare

  Crearea unui graf RDF se poate realiza prin CONSTRUCT

    CONSTRUCT (?s ?p ?o)
    WHERE {                                              Determinarea
      ?prop rdf:subject ?s .                         tuturor declaratiilor
      ?prop rdf:predicate ?p .                        reificate exprimate
                                                         de Wikipedia
      ?prop rdf:object ?o .
      web:Wikipedia s:afirma ?prop .
    }

Dr. Sabin Buraga    http://www.purl.org/net/busaco
<?xml version=“1.0” ?>
Semantic Web                                         <curs desc=“…” />




                   sparql: limbaj de interogare

         Obtinerea de sabloane de graf alternative
                 se face via clauza UNION




Dr. Sabin Buraga    http://www.purl.org/net/busaco
<?xml version=“1.0” ?>
Semantic Web                                        <curs desc=“…” />




                            sparql: protocol

     Pune la dispozitie mecanismul de realizare
   de interogari SPARQL prin invocarea de servicii
        aflate la distanta (SPARQL end­points)

     serviciile SPARQL pot fi descrise si invocate via 
tehnologiile serviciilor Web clasice (SOAP, WSDL, REST,…)

               exemplu: http://dbpedia.org/sparql/


Dr. Sabin Buraga   http://www.purl.org/net/busaco
<?xml version=“1.0” ?>
Semantic Web                                        <curs desc=“…” />




                            sparql: protocol

            Recomandare a Consortiului Web

         www.w3.org/TR/rdf­sparql­protocol/




Dr. Sabin Buraga   http://www.purl.org/net/busaco
<?xml version=“1.0” ?>
Semantic Web                                         <curs desc=“…” />




                            sparql: protocol

   Exemplu de invocare a unei interogari SPARQL:

    GET /sparql/?query=interogare&graph-uri=
      http://www.retea-sociala.info/document-foaf.rdf HTTP/1.1
    Host: www.undeva.org
    User-agent: sparql-client/0.1
    Accept: text/turtle, application/rdf+xml




Dr. Sabin Buraga   http://www.purl.org/net/busaco
<?xml version=“1.0” ?>
Semantic Web                                         <curs desc=“…” />




                            sparql: protocol

         Un posibil raspuns din partea serviciului:

    HTTP/1.1 200 OK Date: Mon, 04 Nov 2008 14:33:00 GMT
    Server: Apache/1.3.29 (Unix)
    Connection: close
    Content-Type: text/turtle

    @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>.
    @prefix foaf: <http://xmlns.com/foaf/0.1/>.
    …
Dr. Sabin Buraga   http://www.purl.org/net/busaco
<?xml version=“1.0” ?>
Semantic Web                                         <curs desc=“…” />




                            sparql: protocol

         Maniera de serializare XML a rezultatelor
         interogarilor SPARQL este standardizata

                   SPARQL Query Results XML Format

              www.w3.org/TR/rdf­sparql­XMLres/




Dr. Sabin Buraga   http://www.purl.org/net/busaco
<?xml version=“1.0” ?>
Semantic Web                                          <curs desc=“…” />




               sparql: protocol – mash‐ups

    Studiu de caz – adaptare dupa (Todd Williams, 2007):

 dorim sa obtinem imagini care contin obiective de interes
    aflate in vecinatatea unui punct (locatie geografica)

         filtrarea se va putea realiza pe alte calculatoare

  calculul distantei dintre doua puncte geografice poate fi
  realizat de servere multiple via implementari JavaScript 
    specificate prin RDF: numele functiei + URI‐ul sursei
Dr. Sabin Buraga   http://www.purl.org/net/busaco
<?xml version=“1.0” ?>
Semantic Web                                                   <curs desc=“…” />




               sparql: protocol – mash‐ups

PREFIX f: <http://undeva.org/functii.rdf#>
SELECT ?locatie ?imagine
                                                    Care‐s imaginile
WHERE {
                                                       localizate in 
  ?imagine dcterms:spatial [                          proximitatea
     a geo:Point ;                                          mea?
     foaf:name ?locatie ;
     geo:lat ?lat ; geo:long ?long
  ].
  FILTER ( f:distanta ( ?lat, ?long, 38.9, -76.9 ) < 15 ) .
}                     Poate fi calculata pe masini diferite
Dr. Sabin Buraga   http://www.purl.org/net/busaco
<?xml version=“1.0” ?>
Semantic Web                                             <curs desc=“…” />




               sparql: protocol – mash‐ups

                               Interogare SPARQL
                                trimisa via HTTP
                                                     Serviciu
            Client
                                                     SPARQL
       (aplicatie Web)
                                                    (end­point)




Dr. Sabin Buraga   http://www.purl.org/net/busaco
<?xml version=“1.0” ?>
Semantic Web                                                          <curs desc=“…” />




               sparql: protocol – mash‐ups
                                                    GET functii.rdf         Server 
                                                                             Web

                                               Serviciu
         Client
                                               SPARQL
    (aplicatie Web)
                                                (end­
                                                point)




Dr. Sabin Buraga   http://www.purl.org/net/busaco
<?xml version=“1.0” ?>
Semantic Web                                                               <curs desc=“…” />




               sparql: protocol – mash‐ups

                                                                                 Server 
                                                                                  Web

                                               Serviciu
         Client
                                               SPARQL
    (aplicatie Web)
                                                (end­             raspuns RDF
                                                point)




                                                    :distanta a f:Function;
                                                       f:sursa <http://sit.ro/dist.js>;
                                                       f:functie calculDistanta .
Dr. Sabin Buraga   http://www.purl.org/net/busaco
<?xml version=“1.0” ?>
Semantic Web                                                <curs desc=“…” />




               sparql: protocol – mash‐ups

                                                                  Server 
                                                                   Web

                                               Serviciu
         Client
                                               SPARQL
    (aplicatie Web)
                                                (end­
                                                          GET dist.js
                                                point)


                                                            Server 
                                                             Web




Dr. Sabin Buraga   http://www.purl.org/net/busaco
<?xml version=“1.0” ?>
Semantic Web                                                                <curs desc=“…” />




               sparql: protocol – mash‐ups

                                                                                  Server 
                                                                                   Web

                                               Serviciu
         Client
                                               SPARQL
    (aplicatie Web)
                                                (end­
                                                point)

                                                                               Server 
                                                                                Web

                                       function calculDistanta
                                         (lat1, lon1, lat2, lon2) { ... }

Dr. Sabin Buraga   http://www.purl.org/net/busaco
<?xml version=“1.0” ?>
Semantic Web                                              <curs desc=“…” />




               sparql: protocol – mash‐ups

                                                                Server 
                                                                 Web

                                               Serviciu
         Client
                                               SPARQL
    (aplicatie Web)
                                                (end­
                                                point)

                                                           Server 
                      raspuns                               Web
   ?locatie                 ?imagine
 Universitate http://flickr.com/20/fdsdw3.jpg
 Teatru       http://places.org/img/t.jpg
Dr. Sabin Buraga   http://www.purl.org/net/busaco
<?xml version=“1.0” ?>
Semantic Web                                        <curs desc=“…” />




                        sparql: instrumente

                          AllegroGraph (Java)
                               ARC (PHP)
                        OpenRDF Sesame (Java)
                              Rasqual (C)
                           RDF::Query (Perl)
                         SPARQL library (Java)
                           Virtuoso (C/C++)


Dr. Sabin Buraga   http://www.purl.org/net/busaco
<?xml version=“1.0” ?>
Semantic Web                                        <curs desc=“…” />




                        sparql: instrumente




Dr. Sabin Buraga   http://www.purl.org/net/busaco
<?xml version=“1.0” ?>
Semantic Web                                        <curs desc=“…” />




                                     sparql+

               Propunere de extindere a SPARQL
    pentru a suporta operatii de actualizare a datelor RDF

http://esw.w3.org/topic/SPARQL/Extensions/Update




Dr. Sabin Buraga   http://www.purl.org/net/busaco
<?xml version=“1.0” ?>
Semantic Web                                           <curs desc=“…” />




                                 aplicatii rdf

                   Tipuri majore de aplicatii RDF

         integrare de resurse: bookmark‐uri, calendare, 
            informatii cartografice (map integration)

                      adnotare avansata a resurselor

              management “inteligent” al continutului


Dr. Sabin Buraga   http://www.purl.org/net/busaco
<?xml version=“1.0” ?>
Semantic Web                                                <curs desc=“…” />




                                  aplicatii rdf
                   Arhitectura aplicatiilor bazate pe RDF
                        (Allemang & Hendler, 2008)




Dr. Sabin Buraga    http://www.purl.org/net/busaco
<?xml version=“1.0” ?>
Semantic Web                                            <curs desc=“…” />




                   aplicatii rdf: exemplificari

       Managementul “inteligent” al codului‐sursa
  Baetle: Bug And Enhancement Tracking LanguagE (Sun)

   ofera o vedere coerenta a dependentelor dintre diverse 
      proiecte software, permitand filtrarea bug‐urilor

                   modelare prin RDF, DOAP, SIOC etc.
                        interogari via SPARQL

 vezi si blog‐ul Babel Fish: http://blogs.sun.com/bblfish
Dr. Sabin Buraga   http://www.purl.org/net/busaco
<?xml version=“1.0” ?>
Semantic Web                                              <curs desc=“…” />




                   aplicatii rdf: exemplificari

       Managementul “inteligent” al codului‐sursa
  Baetle: Bug And Enhancement Tracking LanguagE (Sun)

    PREFIX : <http://baetle.googlecode.com/svn/ns/#>
    SELECT *
    WHERE {
      ?jar :contains ?c .
      FILTER REGEX ( str (?c), 'OffsetIterator.class$')
    }
    LIMIT 20
Dr. Sabin Buraga   http://www.purl.org/net/busaco
<?xml version=“1.0” ?>
Semantic Web                                         <curs desc=“…” />




                   aplicatii rdf: exemplificari

            Managementul informatiilor medicale
                            Cleveland Clinic, 2007

  constituirea unui depozit de cunostinte privind pacientii
               >54 milioane de asertiuni RDF
                     interogari SPARQL
                integrarea unui sistem expert




Dr. Sabin Buraga   http://www.purl.org/net/busaco
<?xml version=“1.0” ?>
Semantic Web                                        <curs desc=“…” />




                   aplicatii rdf: exemplificari




Dr. Sabin Buraga   http://www.purl.org/net/busaco
<?xml version=“1.0” ?>
Semantic Web                                        <curs desc=“…” />




                   aplicatii rdf: exemplificari

 Managementul informatiilor personale in KDE 4.0
          proiectul NEPOMUK Semantic desktop (2008)

           servicii de cautare & adnotare a resurselor
      la nivel de desktop pe baza instrumentului Soprano

       meta‐datele asociate fisierelor sunt stocate in RDF

www.w3.org/2001/sw/sweo/public/UseCases/Nepomuk/Nepomuk.pdf

Dr. Sabin Buraga   http://www.purl.org/net/busaco
<?xml version=“1.0” ?>
Semantic Web                                        <curs desc=“…” />




                   aplicatii rdf: exemplificari

Componente logice ale unui semantic desktop:
    sisteme de stocare: hard­disk‐uri, stick‐uri USB etc.
    un robot (crawler) – extrage meta‐date din fiecare fisier
    un depozit RDF (triple store)
    un serviciu de interogare SPARQL (end­point)
    aplicatii ce solicita (cauta, agrega,…) date, 
        invocind serviciul SPARQL


             a se vizita si www.semanticdesktop.org
Dr. Sabin Buraga   http://www.purl.org/net/busaco
<?xml version=“1.0” ?>
Semantic Web                                                <curs desc=“…” />




                   aplicatii rdf: exemplificari

          Componente logice ale unui semantic desktop:




           N. Spivak et al., “Developing Web 3.0”, JavaOne, 2007
Dr. Sabin Buraga   http://www.purl.org/net/busaco
<?xml version=“1.0” ?>
Semantic Web                                         <curs desc=“…” />




                   aplicatii rdf: exemplificari

    Agregarea informatiilor privind angajatii NASA
   sistemul POPS de management inteligent al angajatilor: 
    date personale, competente, implicari in proiecte etc.

          interogari vizuale ale datelor RDF prin jSpace

          arhitectura bazata pe servicii Web in stil REST

   www.w3.org/2001/sw/sweo/public/UseCases/Nasa/Nasa.pdf

Dr. Sabin Buraga   http://www.purl.org/net/busaco
<?xml version=“1.0” ?>
Semantic Web                                        <curs desc=“…” />




                   aplicatii rdf: exemplificari




Dr. Sabin Buraga   http://www.purl.org/net/busaco
<?xml version=“1.0” ?>
Semantic Web                                         <curs desc=“…” />




                   aplicatii rdf: exemplificari

    Managementul resurselor bibliotecilor digitale

                                    JeromeDL
                                  jeromedl.org

                               BRICKS
                       www.brickscommunity.org

Detalii in Kruk et al., “Tutorial – Semantic Digital Libraries”, 
                   WWW Conference, 2007
Dr. Sabin Buraga   http://www.purl.org/net/busaco
<?xml version=“1.0” ?>
Semantic Web                                           <curs desc=“…” />




                   aplicatii rdf: exemplificari

  Solutii colaborative de management al resurselor
           multimedia in medii de productie
               Interactive Media Manager (Microsoft)

        recurge la un cadru de lucru bazat pe meta‐date
          modelate in RDF si interogate prin SPARQL

   tipurile de resurse sunt specificate via ontologii (OWL)

     se ofera si un SDK specializat disponibil pentru .NET
Dr. Sabin Buraga   http://www.purl.org/net/busaco
<?xml version=“1.0” ?>
Semantic Web                                        <curs desc=“…” />




                   aplicatii rdf: exemplificari

          Management colaborativ al continutului
            modelat semantic (semantic wikis)
                             Semantic MediaWiki

              extensie a sistemului MediaWiki:
    permite adnotarea semantica a continutului unui wiki

            facilitati: specificarea proprietatilor,
   realizarea de interogari, exportarea datelor in RDF etc.

Dr. Sabin Buraga   http://www.purl.org/net/busaco
<?xml version=“1.0” ?>
Semantic Web                                                        <curs desc=“…” />




                    aplicatii rdf: exemplificari

                              Semantic MediaWiki

                                marcaje semantice:
                   Title: '''[[Has Title::Mythical Man-Month]]'''
                         ISBN: [[Has ISBN::0201835959]]

                           “triple” RDF:
             (Man-Month, Has Title, Mythical Man-Month)
                (Man-Month, Has ISBN, 0201835959)

Dr. Sabin Buraga    http://www.purl.org/net/busaco
<?xml version=“1.0” ?>
Semantic Web                                         <curs desc=“…” />




                   aplicatii rdf: exemplificari

            Cautarea “avansata” a resurselor Web
                          Search Monkey (Yahoo!)

ofera maniere de rafinare a rezultatelor cautarilor pe Web

se bazeaza pe meta‐date scufundate in documentele HTML 
                 (microformate, RDFa)

             se poate recurge la o extragere “manuala”
            a datelor de interes dintr‐o pagina via XSLT
Dr. Sabin Buraga   http://www.purl.org/net/busaco
<?xml version=“1.0” ?>
Semantic Web                                        <curs desc=“…” />




                   aplicatii rdf: exemplificari

                        Search Monkey (Yahoo!)

   utilizatorul (consumatorul) trebuie “sa puna la treaba”
                  o “maimuta” de cautare via 
           http://developer.search.yahoo.com/

       pentru vocabulare si microformate consacrate,
pot fi realizate automat extractii de date – eventual, filtrate

         maniera de vizualizare poate fi ajustata via PHP
Dr. Sabin Buraga   http://www.purl.org/net/busaco
<?xml version=“1.0” ?>
Semantic Web                                        <curs desc=“…” />




                   aplicatii rdf: exemplificari




Dr. Sabin Buraga   http://www.purl.org/net/busaco
<?xml version=“1.0” ?>
Semantic Web                                        <curs desc=“…” />




                   aplicatii rdf: exemplificari

       Alte studii de caz pe situl Consortiului Web:
        www.w3.org/2001/sw/sweo/public/UseCases/



    A se consulta si David Provost, “On The Cusp: A Global
   Review of the Semantic Web Industry”, septembrie 2008



Dr. Sabin Buraga   http://www.purl.org/net/busaco
<?xml version=“1.0” ?>
Semantic Web                                         <curs desc=“…” />




                                    concluzii

      Avind la dispozitie date modelate in RDF,
 se ofera premisele cautarii, descoperirii, achizitiei, 
           colectarii, analizei si procesarii
          informatiilor disponibile pe Web

                   management avansat al cunostintelor




Dr. Sabin Buraga   http://www.purl.org/net/busaco
<?xml version=“1.0” ?>
Semantic Web                                        <curs desc=“…” />




                                   Rezumat




       Obtinerea, transformarea si interogarea
              datelor modelate in RDF

Dr. Sabin Buraga   http://www.purl.org/net/busaco
<?xml version=“1.0” ?>
Semantic Web                                        <curs desc=“…” />




                                         ?

Dr. Sabin Buraga   http://www.purl.org/net/busaco

More Related Content

Viewers also liked

Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea da...
Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea da...Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea da...
Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea da...Sabin Buraga
 
Pacientul digital - Keep Healthy Application
Pacientul digital - Keep Healthy ApplicationPacientul digital - Keep Healthy Application
Pacientul digital - Keep Healthy ApplicationLigia Alexandra Gaspar
 
Procesarea Rdf in .NET
Procesarea Rdf in .NETProcesarea Rdf in .NET
Procesarea Rdf in .NETancaantochi
 
Grozi alexandru analizacluster
Grozi alexandru analizaclusterGrozi alexandru analizacluster
Grozi alexandru analizaclusteralexgr89
 
Anderson, poul william pazitorii timpului
Anderson, poul william   pazitorii timpuluiAnderson, poul william   pazitorii timpului
Anderson, poul william pazitorii timpuluiliviuciubara
 
Concepte privind dezvoltarea jocurilor electronice
Concepte privind dezvoltarea jocurilor electroniceConcepte privind dezvoltarea jocurilor electronice
Concepte privind dezvoltarea jocurilor electroniceAlexandru Angelescu
 
C# Sharp Mapa Conceptual
C# Sharp Mapa ConceptualC# Sharp Mapa Conceptual
C# Sharp Mapa ConceptualFidias Alfredo
 
Rute cu ASP.NET MVC
Rute cu ASP.NET MVCRute cu ASP.NET MVC
Rute cu ASP.NET MVCEnea Gabriel
 
Cum sa vinzi software online
Cum sa vinzi software onlineCum sa vinzi software online
Cum sa vinzi software onlineGECAD ePayment
 
Introducere în ASP.NET MVC prin exemple
Introducere în ASP.NET MVC prin exempleIntroducere în ASP.NET MVC prin exemple
Introducere în ASP.NET MVC prin exempleEnea Gabriel
 
Ce înseamnă să fii dezvoltator Web
Ce înseamnă să fii dezvoltator WebCe înseamnă să fii dezvoltator Web
Ce înseamnă să fii dezvoltator WebSabin Buraga
 
Instrumente optice luneta ( fizica )
Instrumente optice   luneta ( fizica )Instrumente optice   luneta ( fizica )
Instrumente optice luneta ( fizica )LUNGUFLORIN
 
Adn vindecare-si-iluminare
Adn vindecare-si-iluminareAdn vindecare-si-iluminare
Adn vindecare-si-iluminareFrimu Cristian
 
Autoaparare psihica
Autoaparare psihicaAutoaparare psihica
Autoaparare psihicaNicu Barbi
 

Viewers also liked (20)

Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea da...
Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea da...Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea da...
Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea da...
 
Pacientul digital - Keep Healthy Application
Pacientul digital - Keep Healthy ApplicationPacientul digital - Keep Healthy Application
Pacientul digital - Keep Healthy Application
 
Procesarea Rdf in .NET
Procesarea Rdf in .NETProcesarea Rdf in .NET
Procesarea Rdf in .NET
 
V16
V16V16
V16
 
tarea de c#
tarea de c#tarea de c#
tarea de c#
 
Skerp
SkerpSkerp
Skerp
 
Grozi alexandru analizacluster
Grozi alexandru analizaclusterGrozi alexandru analizacluster
Grozi alexandru analizacluster
 
Anderson, poul william pazitorii timpului
Anderson, poul william   pazitorii timpuluiAnderson, poul william   pazitorii timpului
Anderson, poul william pazitorii timpului
 
Concepte privind dezvoltarea jocurilor electronice
Concepte privind dezvoltarea jocurilor electroniceConcepte privind dezvoltarea jocurilor electronice
Concepte privind dezvoltarea jocurilor electronice
 
C# Sharp Mapa Conceptual
C# Sharp Mapa ConceptualC# Sharp Mapa Conceptual
C# Sharp Mapa Conceptual
 
Rute cu ASP.NET MVC
Rute cu ASP.NET MVCRute cu ASP.NET MVC
Rute cu ASP.NET MVC
 
Cum sa vinzi software online
Cum sa vinzi software onlineCum sa vinzi software online
Cum sa vinzi software online
 
Curs c#
Curs c#Curs c#
Curs c#
 
Introducere în ASP.NET MVC prin exemple
Introducere în ASP.NET MVC prin exempleIntroducere în ASP.NET MVC prin exemple
Introducere în ASP.NET MVC prin exemple
 
Ce înseamnă să fii dezvoltator Web
Ce înseamnă să fii dezvoltator WebCe înseamnă să fii dezvoltator Web
Ce înseamnă să fii dezvoltator Web
 
Curs2-POO
Curs2-POOCurs2-POO
Curs2-POO
 
Instrumente optice luneta ( fizica )
Instrumente optice   luneta ( fizica )Instrumente optice   luneta ( fizica )
Instrumente optice luneta ( fizica )
 
Carte
CarteCarte
Carte
 
Adn vindecare-si-iluminare
Adn vindecare-si-iluminareAdn vindecare-si-iluminare
Adn vindecare-si-iluminare
 
Autoaparare psihica
Autoaparare psihicaAutoaparare psihica
Autoaparare psihica
 

More from Sabin Buraga

Web 2020 01/12: World Wide Web – aspecte arhitecturale
Web 2020 01/12: World Wide Web – aspecte arhitecturaleWeb 2020 01/12: World Wide Web – aspecte arhitecturale
Web 2020 01/12: World Wide Web – aspecte arhitecturaleSabin Buraga
 
Web 2020 02/12: Programare Web – HTTP. Cookie-uri. Sesiuni Web
Web 2020 02/12: Programare Web – HTTP. Cookie-uri. Sesiuni WebWeb 2020 02/12: Programare Web – HTTP. Cookie-uri. Sesiuni Web
Web 2020 02/12: Programare Web – HTTP. Cookie-uri. Sesiuni WebSabin Buraga
 
Web 2020 03/12: Programare Web – Arhitectura aplicaţiilor Web. Inginerie Web
Web 2020 03/12: Programare Web – Arhitectura aplicaţiilor Web. Inginerie WebWeb 2020 03/12: Programare Web – Arhitectura aplicaţiilor Web. Inginerie Web
Web 2020 03/12: Programare Web – Arhitectura aplicaţiilor Web. Inginerie WebSabin Buraga
 
Web 2020 04/12: Programare Web – Dezvoltarea aplicaţiilor Web în PHP
Web 2020 04/12: Programare Web – Dezvoltarea aplicaţiilor Web în PHP Web 2020 04/12: Programare Web – Dezvoltarea aplicaţiilor Web în PHP
Web 2020 04/12: Programare Web – Dezvoltarea aplicaţiilor Web în PHP Sabin Buraga
 
Web 2020 05/12: Modelarea datelor. Familia XML. Extragerea datelor cu XPath. ...
Web 2020 05/12: Modelarea datelor. Familia XML. Extragerea datelor cu XPath. ...Web 2020 05/12: Modelarea datelor. Familia XML. Extragerea datelor cu XPath. ...
Web 2020 05/12: Modelarea datelor. Familia XML. Extragerea datelor cu XPath. ...Sabin Buraga
 
Web 2020 06/12: Procesarea datelor XML & HTML. Document Object Model
Web 2020 06/12: Procesarea datelor XML & HTML. Document Object ModelWeb 2020 06/12: Procesarea datelor XML & HTML. Document Object Model
Web 2020 06/12: Procesarea datelor XML & HTML. Document Object ModelSabin Buraga
 
Web 2020 07/12: Procesarea datelor XML & HTML – Simple API for XML. Procesări...
Web 2020 07/12: Procesarea datelor XML & HTML – Simple API for XML. Procesări...Web 2020 07/12: Procesarea datelor XML & HTML – Simple API for XML. Procesări...
Web 2020 07/12: Procesarea datelor XML & HTML – Simple API for XML. Procesări...Sabin Buraga
 
Web 2020 08/12: Servicii Web. De la arhitecturi orientate spre servicii la SO...
Web 2020 08/12: Servicii Web. De la arhitecturi orientate spre servicii la SO...Web 2020 08/12: Servicii Web. De la arhitecturi orientate spre servicii la SO...
Web 2020 08/12: Servicii Web. De la arhitecturi orientate spre servicii la SO...Sabin Buraga
 
Web 2020 09/12: Servicii Web. Paradigma REST
Web 2020 09/12: Servicii Web. Paradigma RESTWeb 2020 09/12: Servicii Web. Paradigma REST
Web 2020 09/12: Servicii Web. Paradigma RESTSabin Buraga
 
Web 2020 10/12: Servicii Web. Micro-servicii. Serverless. Specificarea API-ur...
Web 2020 10/12: Servicii Web. Micro-servicii. Serverless. Specificarea API-ur...Web 2020 10/12: Servicii Web. Micro-servicii. Serverless. Specificarea API-ur...
Web 2020 10/12: Servicii Web. Micro-servicii. Serverless. Specificarea API-ur...Sabin Buraga
 
Web 2020 11/12: Interacţiune Web asincronă. Aplicaţii Web de tip mash-up. JAM...
Web 2020 11/12: Interacţiune Web asincronă. Aplicaţii Web de tip mash-up. JAM...Web 2020 11/12: Interacţiune Web asincronă. Aplicaţii Web de tip mash-up. JAM...
Web 2020 11/12: Interacţiune Web asincronă. Aplicaţii Web de tip mash-up. JAM...Sabin Buraga
 
Web 2020 12/12: Securitatea aplicaţiilor Web. Aspecte esenţiale
Web 2020 12/12: Securitatea aplicaţiilor Web. Aspecte esenţialeWeb 2020 12/12: Securitatea aplicaţiilor Web. Aspecte esenţiale
Web 2020 12/12: Securitatea aplicaţiilor Web. Aspecte esenţialeSabin Buraga
 
STAW 01/12: Arhitectura aplicaţiilor Web
STAW 01/12: Arhitectura aplicaţiilor WebSTAW 01/12: Arhitectura aplicaţiilor Web
STAW 01/12: Arhitectura aplicaţiilor WebSabin Buraga
 
STAW 02/12: Programare Web: Limbajul JavaScript. Aspecte esenţiale
STAW 02/12: Programare Web: Limbajul JavaScript. Aspecte esenţialeSTAW 02/12: Programare Web: Limbajul JavaScript. Aspecte esenţiale
STAW 02/12: Programare Web: Limbajul JavaScript. Aspecte esenţialeSabin Buraga
 
STAW 03/12: Programare Web: Limbajul JavaScript. Aspecte moderne: ES6 et al.
STAW 03/12: Programare Web: Limbajul JavaScript. Aspecte moderne: ES6 et al.STAW 03/12: Programare Web: Limbajul JavaScript. Aspecte moderne: ES6 et al.
STAW 03/12: Programare Web: Limbajul JavaScript. Aspecte moderne: ES6 et al.Sabin Buraga
 
STAW 04/12: Programare Web: Node.js
STAW 04/12: Programare Web: Node.jsSTAW 04/12: Programare Web: Node.js
STAW 04/12: Programare Web: Node.jsSabin Buraga
 
STAW 05/12: Arhitectura navigatorului Web
STAW 05/12: Arhitectura navigatorului WebSTAW 05/12: Arhitectura navigatorului Web
STAW 05/12: Arhitectura navigatorului WebSabin Buraga
 
STAW 06/12: JavaScript în navigatorul Web. De la DOM la Ajax şi mash-up-uri
STAW 06/12: JavaScript în navigatorul Web. De la DOM la Ajax şi mash-up-uriSTAW 06/12: JavaScript în navigatorul Web. De la DOM la Ajax şi mash-up-uri
STAW 06/12: JavaScript în navigatorul Web. De la DOM la Ajax şi mash-up-uriSabin Buraga
 
STAW 07/12: Ingineria dezvoltării aplicaţiilor JavaScript
STAW 07/12: Ingineria dezvoltării aplicaţiilor JavaScriptSTAW 07/12: Ingineria dezvoltării aplicaţiilor JavaScript
STAW 07/12: Ingineria dezvoltării aplicaţiilor JavaScriptSabin Buraga
 
STAW 08/12: Programare Web. Suita de tehnologii HTML5
STAW 08/12: Programare Web. Suita de tehnologii HTML5STAW 08/12: Programare Web. Suita de tehnologii HTML5
STAW 08/12: Programare Web. Suita de tehnologii HTML5Sabin Buraga
 

More from Sabin Buraga (20)

Web 2020 01/12: World Wide Web – aspecte arhitecturale
Web 2020 01/12: World Wide Web – aspecte arhitecturaleWeb 2020 01/12: World Wide Web – aspecte arhitecturale
Web 2020 01/12: World Wide Web – aspecte arhitecturale
 
Web 2020 02/12: Programare Web – HTTP. Cookie-uri. Sesiuni Web
Web 2020 02/12: Programare Web – HTTP. Cookie-uri. Sesiuni WebWeb 2020 02/12: Programare Web – HTTP. Cookie-uri. Sesiuni Web
Web 2020 02/12: Programare Web – HTTP. Cookie-uri. Sesiuni Web
 
Web 2020 03/12: Programare Web – Arhitectura aplicaţiilor Web. Inginerie Web
Web 2020 03/12: Programare Web – Arhitectura aplicaţiilor Web. Inginerie WebWeb 2020 03/12: Programare Web – Arhitectura aplicaţiilor Web. Inginerie Web
Web 2020 03/12: Programare Web – Arhitectura aplicaţiilor Web. Inginerie Web
 
Web 2020 04/12: Programare Web – Dezvoltarea aplicaţiilor Web în PHP
Web 2020 04/12: Programare Web – Dezvoltarea aplicaţiilor Web în PHP Web 2020 04/12: Programare Web – Dezvoltarea aplicaţiilor Web în PHP
Web 2020 04/12: Programare Web – Dezvoltarea aplicaţiilor Web în PHP
 
Web 2020 05/12: Modelarea datelor. Familia XML. Extragerea datelor cu XPath. ...
Web 2020 05/12: Modelarea datelor. Familia XML. Extragerea datelor cu XPath. ...Web 2020 05/12: Modelarea datelor. Familia XML. Extragerea datelor cu XPath. ...
Web 2020 05/12: Modelarea datelor. Familia XML. Extragerea datelor cu XPath. ...
 
Web 2020 06/12: Procesarea datelor XML & HTML. Document Object Model
Web 2020 06/12: Procesarea datelor XML & HTML. Document Object ModelWeb 2020 06/12: Procesarea datelor XML & HTML. Document Object Model
Web 2020 06/12: Procesarea datelor XML & HTML. Document Object Model
 
Web 2020 07/12: Procesarea datelor XML & HTML – Simple API for XML. Procesări...
Web 2020 07/12: Procesarea datelor XML & HTML – Simple API for XML. Procesări...Web 2020 07/12: Procesarea datelor XML & HTML – Simple API for XML. Procesări...
Web 2020 07/12: Procesarea datelor XML & HTML – Simple API for XML. Procesări...
 
Web 2020 08/12: Servicii Web. De la arhitecturi orientate spre servicii la SO...
Web 2020 08/12: Servicii Web. De la arhitecturi orientate spre servicii la SO...Web 2020 08/12: Servicii Web. De la arhitecturi orientate spre servicii la SO...
Web 2020 08/12: Servicii Web. De la arhitecturi orientate spre servicii la SO...
 
Web 2020 09/12: Servicii Web. Paradigma REST
Web 2020 09/12: Servicii Web. Paradigma RESTWeb 2020 09/12: Servicii Web. Paradigma REST
Web 2020 09/12: Servicii Web. Paradigma REST
 
Web 2020 10/12: Servicii Web. Micro-servicii. Serverless. Specificarea API-ur...
Web 2020 10/12: Servicii Web. Micro-servicii. Serverless. Specificarea API-ur...Web 2020 10/12: Servicii Web. Micro-servicii. Serverless. Specificarea API-ur...
Web 2020 10/12: Servicii Web. Micro-servicii. Serverless. Specificarea API-ur...
 
Web 2020 11/12: Interacţiune Web asincronă. Aplicaţii Web de tip mash-up. JAM...
Web 2020 11/12: Interacţiune Web asincronă. Aplicaţii Web de tip mash-up. JAM...Web 2020 11/12: Interacţiune Web asincronă. Aplicaţii Web de tip mash-up. JAM...
Web 2020 11/12: Interacţiune Web asincronă. Aplicaţii Web de tip mash-up. JAM...
 
Web 2020 12/12: Securitatea aplicaţiilor Web. Aspecte esenţiale
Web 2020 12/12: Securitatea aplicaţiilor Web. Aspecte esenţialeWeb 2020 12/12: Securitatea aplicaţiilor Web. Aspecte esenţiale
Web 2020 12/12: Securitatea aplicaţiilor Web. Aspecte esenţiale
 
STAW 01/12: Arhitectura aplicaţiilor Web
STAW 01/12: Arhitectura aplicaţiilor WebSTAW 01/12: Arhitectura aplicaţiilor Web
STAW 01/12: Arhitectura aplicaţiilor Web
 
STAW 02/12: Programare Web: Limbajul JavaScript. Aspecte esenţiale
STAW 02/12: Programare Web: Limbajul JavaScript. Aspecte esenţialeSTAW 02/12: Programare Web: Limbajul JavaScript. Aspecte esenţiale
STAW 02/12: Programare Web: Limbajul JavaScript. Aspecte esenţiale
 
STAW 03/12: Programare Web: Limbajul JavaScript. Aspecte moderne: ES6 et al.
STAW 03/12: Programare Web: Limbajul JavaScript. Aspecte moderne: ES6 et al.STAW 03/12: Programare Web: Limbajul JavaScript. Aspecte moderne: ES6 et al.
STAW 03/12: Programare Web: Limbajul JavaScript. Aspecte moderne: ES6 et al.
 
STAW 04/12: Programare Web: Node.js
STAW 04/12: Programare Web: Node.jsSTAW 04/12: Programare Web: Node.js
STAW 04/12: Programare Web: Node.js
 
STAW 05/12: Arhitectura navigatorului Web
STAW 05/12: Arhitectura navigatorului WebSTAW 05/12: Arhitectura navigatorului Web
STAW 05/12: Arhitectura navigatorului Web
 
STAW 06/12: JavaScript în navigatorul Web. De la DOM la Ajax şi mash-up-uri
STAW 06/12: JavaScript în navigatorul Web. De la DOM la Ajax şi mash-up-uriSTAW 06/12: JavaScript în navigatorul Web. De la DOM la Ajax şi mash-up-uri
STAW 06/12: JavaScript în navigatorul Web. De la DOM la Ajax şi mash-up-uri
 
STAW 07/12: Ingineria dezvoltării aplicaţiilor JavaScript
STAW 07/12: Ingineria dezvoltării aplicaţiilor JavaScriptSTAW 07/12: Ingineria dezvoltării aplicaţiilor JavaScript
STAW 07/12: Ingineria dezvoltării aplicaţiilor JavaScript
 
STAW 08/12: Programare Web. Suita de tehnologii HTML5
STAW 08/12: Programare Web. Suita de tehnologii HTML5STAW 08/12: Programare Web. Suita de tehnologii HTML5
STAW 08/12: Programare Web. Suita de tehnologii HTML5
 

Web04 Semantic Web: Managementul datelor RDF

  • 1. <?xml version=“1.0” ?> Semantic Web <curs desc=“…” /> Web semantic Dr. Sabin­Corneliu Buraga Facultatea de Informatica Universitatea “A.I.Cuza” – Iasi, Romania http://www.infoiasi.ro/~busaco/ Dr. Sabin Buraga http://www.purl.org/net/busaco
  • 2. <?xml version=“1.0” ?> Semantic Web <curs desc=“…” /> Managementul datelor RDF Dr. Sabin Buraga http://www.purl.org/net/busaco
  • 3. <?xml version=“1.0” ?> Semantic Web <curs desc=“…” /> “Trebuie sa adunam fapte  pentru a avea idei.” Georges­Louis de Buffon Dr. Sabin Buraga http://www.purl.org/net/busaco
  • 4. <?xml version=“1.0” ?> Semantic Web <curs desc=“…” /> intrebari Ce instrumente de procesare a declaratiilor RDF putem folosi? Dr. Sabin Buraga http://www.purl.org/net/busaco
  • 5. <?xml version=“1.0” ?> Semantic Web <curs desc=“…” /> Conform (Bailer & Hausenblas, 2007) Dr. Sabin Buraga http://www.purl.org/net/busaco
  • 6. <?xml version=“1.0” ?> Semantic Web <curs desc=“…” /> necesitati Procesor (parser) RDF preluarea datelor in diverse formate si  reprezentarea lor ca triple RDF Dr. Sabin Buraga http://www.purl.org/net/busaco
  • 7. <?xml version=“1.0” ?> Semantic Web <curs desc=“…” /> necesitati Serializator (serializer) RDF exprimarea modelului intern RDF in diverse formate standard: RDF/XML, N3,... Dr. Sabin Buraga http://www.purl.org/net/busaco
  • 8. <?xml version=“1.0” ?> Semantic Web <curs desc=“…” /> instrumente API‐uri RDF – exemple: ActiveRDF (Ruby) CARA – CArmen RDF API (Perl) Drive.NET (C#) Jena Semantic Web Toolkit (Java) RAP – RDF API for PHP  RDFLib (Python) Redland (C/C++; bindings in alte limbaje) SemWeb (C#) Wilbur (Lisp) Dr. Sabin Buraga http://www.purl.org/net/busaco
  • 9. <?xml version=“1.0” ?> Semantic Web <curs desc=“…” /> necesitati Convertor RDF preluarea datelor din alte modele si transformarea lor in RDF extragerea directa din documentele HTML via scrapers/harvesters Dr. Sabin Buraga http://www.purl.org/net/busaco
  • 10. <?xml version=“1.0” ?> Semantic Web <curs desc=“…” /> instrumente Extractoare/convertoare RDF – exemple: Aperture (Java) Babel (Java) Greengrass (C#) LinqToRDF (C#) Piggy Bank (JavaScript – extensie Firefox) Raptor (C) RDF123 (Java) sommer (Java) Semantic Radar (JavaScript – extensie Firefox) Dr. Sabin Buraga http://www.purl.org/net/busaco
  • 11. <?xml version=“1.0” ?> Semantic Web <curs desc=“…” /> instrumente Initiativa Triplify: triplify.org Dr. Sabin Buraga http://www.purl.org/net/busaco
  • 12. <?xml version=“1.0” ?> Semantic Web <curs desc=“…” /> necesitati Motoare de cautare cauta documente RDF, eventual extrag cunostinte – e.g., meta‐date – din alte documente (HTML, RSS,...) pot beneficia de servicii de pinging pingthesemanticweb.com Dr. Sabin Buraga http://www.purl.org/net/busaco
  • 13. <?xml version=“1.0” ?> Semantic Web <curs desc=“…” /> instrumente Motoare de cautare – exemple: Sindice Swoogle SWSE – Semantic Web Search Engine Watson Dr. Sabin Buraga http://www.purl.org/net/busaco
  • 14. <?xml version=“1.0” ?> Semantic Web <curs desc=“…” /> necesitati O modalitate standardizata de “convertire” a constructiilor semantice incapsulate in documentele Web in triple RDF Dr. Sabin Buraga http://www.purl.org/net/busaco
  • 15. <?xml version=“1.0” ?> Semantic Web <curs desc=“…” /> grddl GRDDL – Gleaning Resource Descriptions from Dialects of Languages glean verb [ trans. ] extract (information) from various sources: the information is gleaned from press clippings. • collect gradually and bit by bit:  objects gleaned from local markets. • historical gather (leftover grain or other produce) after a harvest:    [as n. ] (gleaning) the conditions of farm workers in the ‘30s made gleaning essential. Dr. Sabin Buraga http://www.purl.org/net/busaco
  • 16. <?xml version=“1.0” ?> Semantic Web <curs desc=“…” /> grddl Permite asocierea de transformari din formate structurate  (e.g., microformate, RDFa, XML) in declaratii RDF, fara pierderea semanticii (meaning) www.w3.org/TR/grddl/ www.w3.org/TR/grddl­primer/ Dr. Sabin Buraga http://www.purl.org/net/busaco
  • 17. <?xml version=“1.0” ?> Semantic Web <curs desc=“…” /> grddl Exista o multitudine de documente recurgind la anumite  dialecte XML – e.g., ODF, RSS/Atom, XHTML etc. –, incapsulind informatii care ar putea fi redate in RDF  se doreste o asociere faithful – se pastreaza intelesul se va specifica o transformare GRDDL  uzual, se foloseste XSLT Dr. Sabin Buraga http://www.purl.org/net/busaco
  • 18. <?xml version=“1.0” ?> Semantic Web <curs desc=“…” /> grddl Berners‐Lee, 2007: www.w3.org/2007/Talks/1211-whit-tbl/ Dr. Sabin Buraga http://www.purl.org/net/busaco
  • 19. <?xml version=“1.0” ?> Semantic Web <curs desc=“…” /> grddl: exemplu Un document XHTML ce include microformatul hCard: <html xmlns=http://www.w3.org/1999/xhtml> <head profile=http://www.w3.org/2003/g/data-view> <link rel=transformation href=mHTML2RDF.xsl /> <title>...</title></head> Transformare <body> GRDDL <div class=vcard> <p class=fn n><span class=given-name>Sabin</span> <span class=family-name>Buraga</span></p> </div> ... </body> </html> Dr. Sabin Buraga http://www.purl.org/net/busaco
  • 20. <?xml version=“1.0” ?> Semantic Web <curs desc=“…” /> grddl: exemplu In urma transformarii XSLT, ar putea rezulta: <rdf:RDF xmlns:rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# xmlns:v=http://www.w3.org/2006/vcard/ns#> <rdf:Description rdf:nodeID=EsAVHkUx6> <rdf:type rdf:resource=http://www.w3.org/2006/vcard/ns#VCard/> <v:fn>Sabin Buraga</v:fn> </rdf:Description> <rdf:Description rdf:nodeID=EsAVHkUx8> <rdf:type rdf:resource=http://www.w3.org/2006/vcard/ns#Name/> <v:given-name>Sabin</v:given-name> <v:family-name>Buraga</v:family-name> </rdf:Description> </rdf:RDF> Dr. Sabin Buraga http://www.purl.org/net/busaco
  • 21. <?xml version=“1.0” ?> Semantic Web <curs desc=“…” /> necesitati Un sistem de stocare/interogare a triplelor RDF Dr. Sabin Buraga http://www.purl.org/net/busaco
  • 22. <?xml version=“1.0” ?> Semantic Web <curs desc=“…” /> sisteme de stocare rdf Datele RDF sunt memorate in cadrul unui RDF store aspecte de interes: performanta capacitatea de stocare facilitatile privind interogarea API‐urile disponibile Dr. Sabin Buraga http://www.purl.org/net/busaco
  • 23. <?xml version=“1.0” ?> Semantic Web <curs desc=“…” /> sisteme de stocare rdf Se ofera posibilitatea fuzionarii (merging) a seturilor de date RDF date 2 seturi de triple RDF, in urma fuzionarii  va rezulta un set de triple RDF incluzind toate triplele din  ambele seturi de intrare in care resursele avind acelasi URI  sunt considerate echivalente Dr. Sabin Buraga http://www.purl.org/net/busaco
  • 24. <?xml version=“1.0” ?> Semantic Web <curs desc=“…” /> sisteme de stocare rdf Intern, un RDF store poate stoca triplele intr‐o varietate de formate: baze de date relationale structuri de date speciale asigurarea interoperabilitatii este facilitata de formatele  de serializare standardizate – precum RDF/XML Dr. Sabin Buraga http://www.purl.org/net/busaco
  • 25. <?xml version=“1.0” ?> Semantic Web <curs desc=“…” /> sisteme de stocare rdf Exemple: BOCA (Java) Brahms (C/C++) D2R Server (Java) Joseki (Java) Kowari & Mulgara (Java) Oracle Spatial 10g (C/C++) Oyster (Java) RDFStore (C, Perl) Sesame (Java) Dr. Sabin Buraga http://www.purl.org/net/busaco
  • 26. <?xml version=“1.0” ?> Semantic Web <curs desc=“…” /> necesitati Un limbaj de interogare a seturilor de triple RDF Dr. Sabin Buraga http://www.purl.org/net/busaco
  • 27. <?xml version=“1.0” ?> Semantic Web <curs desc=“…” /> sparql SPARQL Protocol and RDF Query Language limbaj descriptiv standardizat pentru realizarea de interogări pe baza potrivirilor de şabloane referitoare la triple RDF inspirat din RDQL – oferit de Jena, RAP, Redland etc. Dr. Sabin Buraga http://www.purl.org/net/busaco
  • 28. <?xml version=“1.0” ?> Semantic Web <curs desc=“…” /> sparql Ofera suport pentru manipularea constructiilor RDF Pune la dispozitie operatii asupra grafurilor RDF Independent de platforma software utilizata Limbaj de interogare + protocol de acces la triple RDF Dr. Sabin Buraga http://www.purl.org/net/busaco
  • 29. <?xml version=“1.0” ?> Semantic Web <curs desc=“…” /> sparql Precursori: limbaje inspirate de SQL: RDQL, SeRQL, RQL,... limbaje inspirate de XPath: Versa, RDFPath limbaje bazate pe reguli: N3QL, Triple, DQL, OWL‐QL,… suportul de interogare oferit de XML: XSLT, XPath, XQuery Dr. Sabin Buraga http://www.purl.org/net/busaco
  • 30. <?xml version=“1.0” ?> Semantic Web <curs desc=“…” /> sparql: xml vs. rdf (Beckett, 2006) Concept XML RDF Model document/arbore /infoset set de triple = graf RDF triple, URI‐uri, noduri Atomi elemente, atribute, text blanc, literali (text) Nume de elemente/atribute URI‐uri Nume calificate (qnames) Identificatori identificatori (ID‐uri) (IRI‐uri) expresii XPath Structura DTD‐uri, scheme XML,  Scheme RDF  (schema) RELAX NG,... (RDF Schema) Dr. Sabin Buraga http://www.purl.org/net/busaco
  • 31. <?xml version=“1.0” ?> Semantic Web <curs desc=“…” /> sparql: limbaj de interogare Ofera acces – via interogari – la datele RDF doar pentru consultare (read­only) modelul de interogare e fundamentat de sabloane de grafuri RDF – graph patterns constantele dintr‐un graf RDF sunt substituite de variabile nu se bazeaza pe cai (paths) sau reguli (rules) Dr. Sabin Buraga http://www.purl.org/net/busaco
  • 32. <?xml version=“1.0” ?> Semantic Web <curs desc=“…” /> sparql: limbaj de interogare Recomandare a Consortiului Web www.w3.org/TR/rdf­sparql­query/ Dr. Sabin Buraga http://www.purl.org/net/busaco
  • 33. <?xml version=“1.0” ?> Semantic Web <curs desc=“…” /> sparql: limbaj de interogare Termeni RDF (RDF‐T):  reuniunea multimilor IRI, noduri blanc, literali RDF Variabile de interogare (V):  simboluri prefixate de “?” Sabloane (triple patterns): membru al multimii (RDF‐T ∪ V) × (IRI ∪ V) × (RDF‐T ∪ V)  Sabloane de tip graf: multime de sabloane Dr. Sabin Buraga http://www.purl.org/net/busaco
  • 34. <?xml version=“1.0” ?> Semantic Web <curs desc=“…” /> sparql: limbaj de interogare Conventii sintactice bazate pe Turtle/N3 Triplele RDF sunt generalizate ca fiind tablouri de termeni RDF termen RDF = IRI | nod blanc | literal pattern de triple = tablou de termeni RDF sau nume de variabile (termeni liberi) Dr. Sabin Buraga http://www.purl.org/net/busaco
  • 35. <?xml version=“1.0” ?> Semantic Web <curs desc=“…” /> sparql: limbaj de interogare URI – sau, mai general, IRI – delimitati de “<” si “>” <http://www.info.uaic.ro/> se poate folosi constructia @prefix pentru a specifica spatii de nume ale vocabularelor utilizate nodurile blanc se specifica prin _:nume sau delimitate de “[” si “]” daca se folosesc o singura data Dr. Sabin Buraga http://www.purl.org/net/busaco
  • 36. <?xml version=“1.0” ?> Semantic Web <curs desc=“…” /> sparql: limbaj de interogare Literali RDF (siruri de caractere cu atribute optionale) Web Web@ro <!-- se indica limba --> Web^^xsd:string <!-- se specifica tipul de date --> true^^xsd:boolean Dr. Sabin Buraga http://www.purl.org/net/busaco
  • 37. <?xml version=“1.0” ?> Semantic Web <curs desc=“…” /> sparql: limbaj de interogare Abrevieri referitoare la triple :s :p :o1 , :s :p :o1 . :o2 . echivalent cu  :s :p :o2 . :s :p1 :o1 , :s :p1 :o1 . :o2 . echivalent cu  :p2 :s :p2 :o2 . Dr. Sabin Buraga http://www.purl.org/net/busaco
  • 38. <?xml version=“1.0” ?> Semantic Web <curs desc=“…” /> sparql: limbaj de interogare Abrevieri privitoare la nodurile blanc :s :p [ :p' :o ] echivalent cu :s :p _:x . _:x :p' :o . Dr. Sabin Buraga http://www.purl.org/net/busaco
  • 39. <?xml version=“1.0” ?> Semantic Web <curs desc=“…” /> sparql: limbaj de interogare Un şablon (pattern) permite specificarea de variabile indicând informații ce vor fi returnate  în urma realizării interogării ?subiect ?predicat ?obiect . Dr. Sabin Buraga http://www.purl.org/net/busaco
  • 40. <?xml version=“1.0” ?> Semantic Web <curs desc=“…” /> sparql: limbaj de interogare Exemplu lista persoanelor inter‐conectate via predicatul (proprietatea) foaf:knows: ?persoana foaf:knows ?alta_persoana . Dr. Sabin Buraga http://www.purl.org/net/busaco
  • 41. <?xml version=“1.0” ?> Semantic Web <curs desc=“…” /> sparql: limbaj de interogare Sabloanele pot fi combinate pentru a forma  şabloane mai complexe şabloane de tip graf (graph patterns) componente ale unei interogari SPARQL Dr. Sabin Buraga http://www.purl.org/net/busaco
  • 42. <?xml version=“1.0” ?> Semantic Web <curs desc=“…” /> sparql: limbaj de interogare SELECT ?contrib WHERE { <http://en.wikipedia.org/> <http://purl.org/dc/elements/1.1/contributor> ?contrib . } Selectarea celor ce au contribuit la  o resursa { … } desemneaza un graph pattern Dr. Sabin Buraga http://www.purl.org/net/busaco
  • 43. <?xml version=“1.0” ?> Semantic Web <curs desc=“…” /> sparql: limbaj de interogare Rezultatul interogarii poate fi: un tabel de valori corespunzatoare variabilelor utilizate,  rezultat precizat prin SELECT o valoare booleana intoarsa de constructia ASK un graf RDF creat via CONSTRUCT sau DESCRIBE Dr. Sabin Buraga http://www.purl.org/net/busaco
  • 44. <?xml version=“1.0” ?> Semantic Web <curs desc=“…” /> sparql: limbaj de interogare SELECT: rezultatul interogarii reprezinta un tabel secventa de rinduri compuse din valorile variabilelor (variable bindings) oferirea de valori distincte via DISTINCT ordonarea rezultatelor prin ORDER BY returnarea de sub‐secvente cu LIMIT si OFFSET precizarea constructiilor optionale prin OPTIONAL Dr. Sabin Buraga http://www.purl.org/net/busaco
  • 45. <?xml version=“1.0” ?> Semantic Web <curs desc=“…” /> sparql: limbaj de interogare Informatiile interogate pot fi filtrate via clauza FILTER expresiile de filtrare includ: variabile operatori aritmetici/logici functii (predefinite sau specificate de utilizator) tipuri de date definite de XML Schema Dr. Sabin Buraga http://www.purl.org/net/busaco
  • 46. <?xml version=“1.0” ?> Semantic Web <curs desc=“…” /> sparql: limbaj de interogare FILTER (?anul = 2) FILTER (?dataComanda < 2008-12-31T22:00:00Z^^xsd:date) FILTER regex (?titluCarte, ^Semantic) Dr. Sabin Buraga http://www.purl.org/net/busaco
  • 47. <?xml version=“1.0” ?> Semantic Web <curs desc=“…” /> sparql: limbaj de interogare Interogare: ce aplicatii utilizeaza Sabin? s:Sabin s:utilizeaza ?aplicatie . Rezultatul interogarii: ?aplicatie = soft:Firefox ?aplicatie = soft:iTunes ?aplicatie = soft:ZynAddSubFX … Dr. Sabin Buraga http://www.purl.org/net/busaco
  • 48. <?xml version=“1.0” ?> Semantic Web <curs desc=“…” /> sparql: limbaj de interogare PREFIX foaf: <http://xmlns.com/foaf/0.1/> PREFIX s: <http://www.infoiasi.ro/SW#> SELECT ?nume ?adresa ?ani WHERE { Informații ?pers foaf:name ?nume . despre  ?pers s:ani ?ani . primele 10  FILTER (?ani < 33) . persoane cu OPTIONAL { ?pers foaf:mbox ?adresa . } vârsta < 33 } ORDER BY ?ani DESC (?nume) LIMIT 10 Dr. Sabin Buraga http://www.purl.org/net/busaco
  • 49. <?xml version=“1.0” ?> Semantic Web <curs desc=“…” /> sparql: limbaj de interogare Graful RDF de intrare poate fi specificat via URI FROM <http://planetrdf.com/bloggers.rdf> Dr. Sabin Buraga http://www.purl.org/net/busaco
  • 50. <?xml version=“1.0” ?> Semantic Web <curs desc=“…” /> sparql: limbaj de interogare Nodurile blanc intr‐o interogare joaca rol de  variabile anonime Dr. Sabin Buraga http://www.purl.org/net/busaco
  • 51. <?xml version=“1.0” ?> Semantic Web <curs desc=“…” /> sparql: limbaj de interogare Crearea unui graf RDF se poate realiza prin CONSTRUCT CONSTRUCT (?s ?p ?o) WHERE { Determinarea ?prop rdf:subject ?s . tuturor declaratiilor ?prop rdf:predicate ?p . reificate exprimate de Wikipedia ?prop rdf:object ?o . web:Wikipedia s:afirma ?prop . } Dr. Sabin Buraga http://www.purl.org/net/busaco
  • 52. <?xml version=“1.0” ?> Semantic Web <curs desc=“…” /> sparql: limbaj de interogare Obtinerea de sabloane de graf alternative se face via clauza UNION Dr. Sabin Buraga http://www.purl.org/net/busaco
  • 53. <?xml version=“1.0” ?> Semantic Web <curs desc=“…” /> sparql: protocol Pune la dispozitie mecanismul de realizare de interogari SPARQL prin invocarea de servicii aflate la distanta (SPARQL end­points) serviciile SPARQL pot fi descrise si invocate via  tehnologiile serviciilor Web clasice (SOAP, WSDL, REST,…) exemplu: http://dbpedia.org/sparql/ Dr. Sabin Buraga http://www.purl.org/net/busaco
  • 54. <?xml version=“1.0” ?> Semantic Web <curs desc=“…” /> sparql: protocol Recomandare a Consortiului Web www.w3.org/TR/rdf­sparql­protocol/ Dr. Sabin Buraga http://www.purl.org/net/busaco
  • 55. <?xml version=“1.0” ?> Semantic Web <curs desc=“…” /> sparql: protocol Exemplu de invocare a unei interogari SPARQL: GET /sparql/?query=interogare&graph-uri= http://www.retea-sociala.info/document-foaf.rdf HTTP/1.1 Host: www.undeva.org User-agent: sparql-client/0.1 Accept: text/turtle, application/rdf+xml Dr. Sabin Buraga http://www.purl.org/net/busaco
  • 56. <?xml version=“1.0” ?> Semantic Web <curs desc=“…” /> sparql: protocol Un posibil raspuns din partea serviciului: HTTP/1.1 200 OK Date: Mon, 04 Nov 2008 14:33:00 GMT Server: Apache/1.3.29 (Unix) Connection: close Content-Type: text/turtle @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>. @prefix foaf: <http://xmlns.com/foaf/0.1/>. … Dr. Sabin Buraga http://www.purl.org/net/busaco
  • 57. <?xml version=“1.0” ?> Semantic Web <curs desc=“…” /> sparql: protocol Maniera de serializare XML a rezultatelor interogarilor SPARQL este standardizata SPARQL Query Results XML Format www.w3.org/TR/rdf­sparql­XMLres/ Dr. Sabin Buraga http://www.purl.org/net/busaco
  • 58. <?xml version=“1.0” ?> Semantic Web <curs desc=“…” /> sparql: protocol – mash‐ups Studiu de caz – adaptare dupa (Todd Williams, 2007): dorim sa obtinem imagini care contin obiective de interes aflate in vecinatatea unui punct (locatie geografica) filtrarea se va putea realiza pe alte calculatoare calculul distantei dintre doua puncte geografice poate fi realizat de servere multiple via implementari JavaScript  specificate prin RDF: numele functiei + URI‐ul sursei Dr. Sabin Buraga http://www.purl.org/net/busaco
  • 59. <?xml version=“1.0” ?> Semantic Web <curs desc=“…” /> sparql: protocol – mash‐ups PREFIX f: <http://undeva.org/functii.rdf#> SELECT ?locatie ?imagine Care‐s imaginile WHERE { localizate in  ?imagine dcterms:spatial [ proximitatea a geo:Point ; mea? foaf:name ?locatie ; geo:lat ?lat ; geo:long ?long ]. FILTER ( f:distanta ( ?lat, ?long, 38.9, -76.9 ) < 15 ) . } Poate fi calculata pe masini diferite Dr. Sabin Buraga http://www.purl.org/net/busaco
  • 60. <?xml version=“1.0” ?> Semantic Web <curs desc=“…” /> sparql: protocol – mash‐ups Interogare SPARQL trimisa via HTTP Serviciu Client SPARQL (aplicatie Web) (end­point) Dr. Sabin Buraga http://www.purl.org/net/busaco
  • 61. <?xml version=“1.0” ?> Semantic Web <curs desc=“…” /> sparql: protocol – mash‐ups GET functii.rdf Server  Web Serviciu Client SPARQL (aplicatie Web) (end­ point) Dr. Sabin Buraga http://www.purl.org/net/busaco
  • 62. <?xml version=“1.0” ?> Semantic Web <curs desc=“…” /> sparql: protocol – mash‐ups Server  Web Serviciu Client SPARQL (aplicatie Web) (end­ raspuns RDF point) :distanta a f:Function; f:sursa <http://sit.ro/dist.js>; f:functie calculDistanta . Dr. Sabin Buraga http://www.purl.org/net/busaco
  • 63. <?xml version=“1.0” ?> Semantic Web <curs desc=“…” /> sparql: protocol – mash‐ups Server  Web Serviciu Client SPARQL (aplicatie Web) (end­ GET dist.js point) Server  Web Dr. Sabin Buraga http://www.purl.org/net/busaco
  • 64. <?xml version=“1.0” ?> Semantic Web <curs desc=“…” /> sparql: protocol – mash‐ups Server  Web Serviciu Client SPARQL (aplicatie Web) (end­ point) Server  Web function calculDistanta (lat1, lon1, lat2, lon2) { ... } Dr. Sabin Buraga http://www.purl.org/net/busaco
  • 65. <?xml version=“1.0” ?> Semantic Web <curs desc=“…” /> sparql: protocol – mash‐ups Server  Web Serviciu Client SPARQL (aplicatie Web) (end­ point) Server  raspuns Web ?locatie ?imagine Universitate http://flickr.com/20/fdsdw3.jpg Teatru http://places.org/img/t.jpg Dr. Sabin Buraga http://www.purl.org/net/busaco
  • 66. <?xml version=“1.0” ?> Semantic Web <curs desc=“…” /> sparql: instrumente AllegroGraph (Java) ARC (PHP) OpenRDF Sesame (Java) Rasqual (C) RDF::Query (Perl) SPARQL library (Java) Virtuoso (C/C++) Dr. Sabin Buraga http://www.purl.org/net/busaco
  • 67. <?xml version=“1.0” ?> Semantic Web <curs desc=“…” /> sparql: instrumente Dr. Sabin Buraga http://www.purl.org/net/busaco
  • 68. <?xml version=“1.0” ?> Semantic Web <curs desc=“…” /> sparql+ Propunere de extindere a SPARQL pentru a suporta operatii de actualizare a datelor RDF http://esw.w3.org/topic/SPARQL/Extensions/Update Dr. Sabin Buraga http://www.purl.org/net/busaco
  • 69. <?xml version=“1.0” ?> Semantic Web <curs desc=“…” /> aplicatii rdf Tipuri majore de aplicatii RDF integrare de resurse: bookmark‐uri, calendare,  informatii cartografice (map integration) adnotare avansata a resurselor management “inteligent” al continutului Dr. Sabin Buraga http://www.purl.org/net/busaco
  • 70. <?xml version=“1.0” ?> Semantic Web <curs desc=“…” /> aplicatii rdf Arhitectura aplicatiilor bazate pe RDF (Allemang & Hendler, 2008) Dr. Sabin Buraga http://www.purl.org/net/busaco
  • 71. <?xml version=“1.0” ?> Semantic Web <curs desc=“…” /> aplicatii rdf: exemplificari Managementul “inteligent” al codului‐sursa Baetle: Bug And Enhancement Tracking LanguagE (Sun) ofera o vedere coerenta a dependentelor dintre diverse  proiecte software, permitand filtrarea bug‐urilor modelare prin RDF, DOAP, SIOC etc. interogari via SPARQL vezi si blog‐ul Babel Fish: http://blogs.sun.com/bblfish Dr. Sabin Buraga http://www.purl.org/net/busaco
  • 72. <?xml version=“1.0” ?> Semantic Web <curs desc=“…” /> aplicatii rdf: exemplificari Managementul “inteligent” al codului‐sursa Baetle: Bug And Enhancement Tracking LanguagE (Sun) PREFIX : <http://baetle.googlecode.com/svn/ns/#> SELECT * WHERE { ?jar :contains ?c . FILTER REGEX ( str (?c), 'OffsetIterator.class$') } LIMIT 20 Dr. Sabin Buraga http://www.purl.org/net/busaco
  • 73. <?xml version=“1.0” ?> Semantic Web <curs desc=“…” /> aplicatii rdf: exemplificari Managementul informatiilor medicale Cleveland Clinic, 2007 constituirea unui depozit de cunostinte privind pacientii >54 milioane de asertiuni RDF interogari SPARQL integrarea unui sistem expert Dr. Sabin Buraga http://www.purl.org/net/busaco
  • 74. <?xml version=“1.0” ?> Semantic Web <curs desc=“…” /> aplicatii rdf: exemplificari Dr. Sabin Buraga http://www.purl.org/net/busaco
  • 75. <?xml version=“1.0” ?> Semantic Web <curs desc=“…” /> aplicatii rdf: exemplificari Managementul informatiilor personale in KDE 4.0 proiectul NEPOMUK Semantic desktop (2008) servicii de cautare & adnotare a resurselor la nivel de desktop pe baza instrumentului Soprano meta‐datele asociate fisierelor sunt stocate in RDF www.w3.org/2001/sw/sweo/public/UseCases/Nepomuk/Nepomuk.pdf Dr. Sabin Buraga http://www.purl.org/net/busaco
  • 76. <?xml version=“1.0” ?> Semantic Web <curs desc=“…” /> aplicatii rdf: exemplificari Componente logice ale unui semantic desktop: sisteme de stocare: hard­disk‐uri, stick‐uri USB etc. un robot (crawler) – extrage meta‐date din fiecare fisier un depozit RDF (triple store) un serviciu de interogare SPARQL (end­point) aplicatii ce solicita (cauta, agrega,…) date,  invocind serviciul SPARQL a se vizita si www.semanticdesktop.org Dr. Sabin Buraga http://www.purl.org/net/busaco
  • 77. <?xml version=“1.0” ?> Semantic Web <curs desc=“…” /> aplicatii rdf: exemplificari Componente logice ale unui semantic desktop: N. Spivak et al., “Developing Web 3.0”, JavaOne, 2007 Dr. Sabin Buraga http://www.purl.org/net/busaco
  • 78. <?xml version=“1.0” ?> Semantic Web <curs desc=“…” /> aplicatii rdf: exemplificari Agregarea informatiilor privind angajatii NASA sistemul POPS de management inteligent al angajatilor:  date personale, competente, implicari in proiecte etc. interogari vizuale ale datelor RDF prin jSpace arhitectura bazata pe servicii Web in stil REST www.w3.org/2001/sw/sweo/public/UseCases/Nasa/Nasa.pdf Dr. Sabin Buraga http://www.purl.org/net/busaco
  • 79. <?xml version=“1.0” ?> Semantic Web <curs desc=“…” /> aplicatii rdf: exemplificari Dr. Sabin Buraga http://www.purl.org/net/busaco
  • 80. <?xml version=“1.0” ?> Semantic Web <curs desc=“…” /> aplicatii rdf: exemplificari Managementul resurselor bibliotecilor digitale JeromeDL jeromedl.org BRICKS www.brickscommunity.org Detalii in Kruk et al., “Tutorial – Semantic Digital Libraries”,  WWW Conference, 2007 Dr. Sabin Buraga http://www.purl.org/net/busaco
  • 81. <?xml version=“1.0” ?> Semantic Web <curs desc=“…” /> aplicatii rdf: exemplificari Solutii colaborative de management al resurselor multimedia in medii de productie Interactive Media Manager (Microsoft) recurge la un cadru de lucru bazat pe meta‐date modelate in RDF si interogate prin SPARQL tipurile de resurse sunt specificate via ontologii (OWL) se ofera si un SDK specializat disponibil pentru .NET Dr. Sabin Buraga http://www.purl.org/net/busaco
  • 82. <?xml version=“1.0” ?> Semantic Web <curs desc=“…” /> aplicatii rdf: exemplificari Management colaborativ al continutului modelat semantic (semantic wikis) Semantic MediaWiki extensie a sistemului MediaWiki: permite adnotarea semantica a continutului unui wiki facilitati: specificarea proprietatilor, realizarea de interogari, exportarea datelor in RDF etc. Dr. Sabin Buraga http://www.purl.org/net/busaco
  • 83. <?xml version=“1.0” ?> Semantic Web <curs desc=“…” /> aplicatii rdf: exemplificari Semantic MediaWiki marcaje semantice: Title: '''[[Has Title::Mythical Man-Month]]''' ISBN: [[Has ISBN::0201835959]] “triple” RDF: (Man-Month, Has Title, Mythical Man-Month) (Man-Month, Has ISBN, 0201835959) Dr. Sabin Buraga http://www.purl.org/net/busaco
  • 84. <?xml version=“1.0” ?> Semantic Web <curs desc=“…” /> aplicatii rdf: exemplificari Cautarea “avansata” a resurselor Web Search Monkey (Yahoo!) ofera maniere de rafinare a rezultatelor cautarilor pe Web se bazeaza pe meta‐date scufundate in documentele HTML  (microformate, RDFa) se poate recurge la o extragere “manuala” a datelor de interes dintr‐o pagina via XSLT Dr. Sabin Buraga http://www.purl.org/net/busaco
  • 85. <?xml version=“1.0” ?> Semantic Web <curs desc=“…” /> aplicatii rdf: exemplificari Search Monkey (Yahoo!) utilizatorul (consumatorul) trebuie “sa puna la treaba” o “maimuta” de cautare via  http://developer.search.yahoo.com/ pentru vocabulare si microformate consacrate, pot fi realizate automat extractii de date – eventual, filtrate maniera de vizualizare poate fi ajustata via PHP Dr. Sabin Buraga http://www.purl.org/net/busaco
  • 86. <?xml version=“1.0” ?> Semantic Web <curs desc=“…” /> aplicatii rdf: exemplificari Dr. Sabin Buraga http://www.purl.org/net/busaco
  • 87. <?xml version=“1.0” ?> Semantic Web <curs desc=“…” /> aplicatii rdf: exemplificari Alte studii de caz pe situl Consortiului Web: www.w3.org/2001/sw/sweo/public/UseCases/ A se consulta si David Provost, “On The Cusp: A Global Review of the Semantic Web Industry”, septembrie 2008 Dr. Sabin Buraga http://www.purl.org/net/busaco
  • 88. <?xml version=“1.0” ?> Semantic Web <curs desc=“…” /> concluzii Avind la dispozitie date modelate in RDF, se ofera premisele cautarii, descoperirii, achizitiei,  colectarii, analizei si procesarii informatiilor disponibile pe Web management avansat al cunostintelor Dr. Sabin Buraga http://www.purl.org/net/busaco
  • 89. <?xml version=“1.0” ?> Semantic Web <curs desc=“…” /> Rezumat Obtinerea, transformarea si interogarea datelor modelate in RDF Dr. Sabin Buraga http://www.purl.org/net/busaco
  • 90. <?xml version=“1.0” ?> Semantic Web <curs desc=“…” /> ? Dr. Sabin Buraga http://www.purl.org/net/busaco