Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/
Service Oriented Architectures
aplicații Web aliniate problematicilor Web-ului semantic
♕
de la interschimb de date
la modelarea cunoștințelor la nivel de Web
Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/
„Toate erau laolaltă – după aceea, a venit mintea și le-a pus în ordine.”
Anaxagoras
Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/
remarci
Constituirea unor „pânze” (web-uri) – grupări, rețele, grafuri –
de date/informații/cunoștințe disponibile liber, evoluând conform intereselor unei comunităţi
(e.g., utilizatori, organizație, industrie,…)
Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/
Cum pot fi descrise la nivelul mașinii
aceste web-uri?
Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/
necesităţi
o manieră de a atașa meta-date
date privitoare la date
„mai mult decât datele”
Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/
necesităţi
o manieră de a atașa meta-date
vocabulare de termeni descriind „ceva”
(proprietăți, domenii, persoane, produse, lumi,...)
Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/
necesităţi
un mod de specificare de relații între resurse
structuri de organizare a datelor în cadrul unui sau mai multor web-uri
(i.e. grafuri de cunoștințe – knowledge graphs)
Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/
necesităţi
modelarea și procesarea cunoștințelor despre „lucruri”
(knowledge about things)
Mike Bergman, The Rationale for Semantic Technologies (2012) http://www.mkbergman.com/1015/the-rationale-for-semantic-technologies/
Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/
necesităţi
modelarea & procesarea cunoștințelor
realizate sistematic, formalizat
ontologii
descrise riguros
Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/
necesităţi
modelarea & procesarea cunoștințelor
create ad-hoc, manual, de către utilizatorii obișnuiți
folksonomii
Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/
necesităţi
modelarea & procesarea cunoștințelor
create ad-hoc, manual, de către utilizatorii obișnuiți
folksonomii uzual, tagging
Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/
necesităţi
Modelarea datelor trebuie să facă implicitul explicit
„java” limbajul, insula ori sortimentul de cafea?
java
Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/
necesităţi
„Java este un limbaj de programare.”
„XWiki este o aplicație Web scrisă în limbajul Java.”
„Programarea Java poate fi mai ușoară decât cea în C++.”
Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/
necesităţi
„Java este un limbaj de programare.”
„XWiki este o aplicație Web scrisă în limbajul Java.”
„Programarea Java poate fi mai ușoară decât cea în C++.”
ușor de înțeles de (unii) oameni
Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/
necesităţi
„Java este un limbaj de programare.”
„XWiki este o aplicație Web scrisă în limbajul Java.”
„Programarea Java poate fi mai ușoară decât cea în C++.”
…dar pot fi oare înțelese de către calculatoare?
ușor de înțeles de (unii) oameni
Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/
rdf
RDF (Resource Description Framework)
folosit la asocierea de meta-date resurselor Web și la specificarea relațiilor dintre resurse
Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/
Titlu: Rattle That Lock Artist: David Gilmour Anul apariției: 2015
Formate: [ CD, Blu-ray, Vinil ] Audio: [ LPCM 2.0, LPCM 5.1,
DTS-HD Master Audio 5.1 ] Tip: album (LP)
Subtitrare: N/A
Detalii: www.davidgilmour.com
engleză
http://www.blu-ray.com/movies/David-Gilmour-Rattle-That-Lock-Blu-ray/136767/
Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/
Titlu: Rattle That Lock Artist: David Gilmour Anul apariției: 2015
Formate: [ CD, Blu-ray, Vinil ] Audio: [ LPCM 2.0, LPCM 5.1,
DTS-HD Master Audio 5.1 ] Tip: album (LP)
Subtitrare: N/A
Detalii: www.davidgilmour.com
http://www.blu-ray.com/movies/David-Gilmour-Rattle-That-Lock-Blu-ray/136767/
subiect
obiect
predicat
Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/
Anca
Bogdan
relația knows
owns
proprie- tatea givenName
album photo
twitter.com/pinkfloyd
tag clasa persoanelor
follows
owns
sameComposer
clasa albumelor
muzicale
Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/
rdf
RDF (Resource Description Framework)
oferă suport pentru (re)considerarea Web-ului ca fiind o bază de date distribuită
Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/
exemplu
ID Nume Producător Statut
1 Office Microsoft Commercial
2 Visual Studio Code Microsoft Open-source
3 Photoshop Adobe Commercial
4 IrfanView Irfan Freeware
5 iTunes Apple Freeware
6 Thunderbird Mozilla Open-source
7 Firefox Mozilla Open-source
8 Sublime Text Sublime HQ Pty Freeware uzual, datele sunt reprezentate în formă tabelară
(conform modelului relațional)
Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/
rdf
Via RDF, fiecare gazdă realizează managementul unui număr de celule dintr-un tabel
Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/
Nume Rând 3 Office
Nume Rând 9 Node.js
Statut
Rând 3 Comercial
Statut
Rând 5 Open-source
Producător Rând 3 Microsoft
Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/
Nume Rând 3 Office
Nume Rând 9 Node.js
Statut
Rând 3 Comercial
Statut
Rând 5 Open-source
Producător Rând 3 Microsoft web-ul specific unei corporații responsabil cu software-ul
privitor la termenii de utilizare
Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/
rdf
Via RDF, fiecare gazdă realizează managementul unui număr de celule dintr-un tabel
fiecare celulă trebuie referită de 3 valori unice:
o referință globală ce desemnează un rând + o referință globală care specifică o coloană + o referință globală reprezentând valoarea celulei
ca referințe globale vom utiliza URI-uri
Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/
rdf
Oferă un model de specificare a triplelor (rând, coloană, valoare de celulă)
via identificatori uniformi de resurse – URI
proprietate (predicat) resursă
(subiect)
valoare (obiect)
URI
URI URI
Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/
Subiect Predicat Obiect Apache produce Hadoop Mozilla produce Firefox
Firefox areStatut Deschis Windows areStatut Freeware
Amazon este Companie
Jena este Software
Jena este Oraș
Java este Limbaj
Sabin localizatÎn România Sabin localizatÎn Iași Sabin utilizează Firefox Adria cunoaștePe Sabin
un vocabular de termeni folosit în triplele RDF
Anyone can say Anything about Any topic (AAA)
Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/
rdf: model
Subiect Mozilla
Predicat este
Obiect Organizație
Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/
rdf: model
Subiect Sabin
Predicat utilizează
Obiect Firefox
Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/
rdf: model
Mai multe triple pot referi aceeași resursă
le putem reprezenta sub forma de grafuri
triplu ≡ muchie între subiect și obiect
predicat ≡ eticheta asociată muchiei digrafului
Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/
rdf: model – exemplu
Firebug extinde Firefox
Mozilla
produsDe
produce
Deschis
areStatut
areStatut
Hadoop Organizație
este Apache
produce este
Sabin
utilizează
Persoană
este
graful unui model conceptual referitor la un web:
Jena
Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/
rdf: model – exemplu
de consultat și http://webofthings.org/category/research/
un alt exemplu: graful acțiunilor HTTP în contextul modelului Web of Things
Dominique Guinard, Vlad Trifa, Using the Web to Build the IoT (2016) www.manning.com/books/using-the-web-to-build-the-iot http://webofthings.org/book/
Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/
În ce context ar putea fi utilizat practic
modelul RDF?
Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/
rdf: utilizări
Uzual, aserțiunile RDF specifică meta-date privitoare la aspecte ce privesc caracteristicile
„externe” ale unei resurse
de exemplu:
autor, copyright, tag-uri asociate, data publicării, format,…
Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/
rdf: utilizări
RDF poate fi util pentru:
descrierea resurselor „opace”
(cu reprezentări în formate binare)
e.g., arhive, executabile, multimedia – fișiere audio, video,…
Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/
rdf: utilizări
RDF poate fi folosit pentru a descrie resurse intangibile, abstracte
e.g., persoane, organizații, evenimente,
artefacte umane: opere de artă, software, specificații,…
Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/
atașarea de meta-date unei colecții de date (dataset)
detalii la http://www.lsv.ens-cachan.fr/Publis/PAPERS/PDF/RG-bda15.pdf
Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/
subiect
obiect(e):
URL-uri sau literali
predicat(e)
Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/
Arhitectura aplicațiilor bazate pe RDF (Allemang & Hendler, 2011)
Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/
Ce instrumente de procesare
a declarațiilor RDF putem folosi?
Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/
necesităţi
Procesor (parser) RDF
preluarea datelor disponibile în diverse formate
și reprezentarea lor ca triple RDF
Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/
api-uri & biblioteci rdf – exemple
Apache Jena (Java) – https://jena.apache.org/
Commons RDF (Java) – commonsrdf.incubator.apache.org/
ARC2, EasyRDF (PHP)
dotNetRDF (C#) – dotnetrdf.org
node-rdf, rdfQuery.js, rdfstore-js (JavaScript) RDF.rb (Ruby)
rdf4h (Haskell) – https://robstewart57.github.io/rdf4h/
RDFLib (Python) – https://github.com/RDFLib/rdflib Redland (C; portări în multe limbaje) – http://librdf.org/
...
detalii la http://www.w3.org/2001/sw/wiki/Tools
Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/
necesităţi
Serializator (serializer) RDF
exprimarea modelului intern RDF în diverse formate
N-Triples, RDF/XML, Turtle (N3), TriX, RDFa, JSON-LD,...
Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/
necesităţi
Convertor RDF
preluarea datelor din alte modele și transformarea lor în RDF
extragerea directă din documentele HTML via scrapers/harvesters
Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/
instrumente
Extractoare/convertoare RDF – exemple:
Apache Any23, Babel, RDF123, RDFSlice (Java) EasyRDF (PHP) – http://www.easyrdf.org/converter
Greengrass, LinqToRDF (C#) Raptor (C) – http://librdf.org/raptor/
RDF Translator (Python) – http://rdf-translator.appspot.com Tarql (CSV to RDF using SPARQL) – http://tarql.github.io/
URIBurner – serviciu Web: http://linkeddata.uriburner.com
Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/
necesităţi
Navigatoare RDF (hyperdata browsers)
redau utilizatorului (uman) o reprezentare
„frumoasă” a triplelor RDF, permitând
interacțiunea cu datele: vizualizare, filtrare,...
Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/
instrumente
Navigatoare RDF (hyperdata browsers)
exemple:
brwsr – https://github.com/Data2Semantics/brwsr OpenLink Data Explorer – http://ode.openlinksw.com/
Q&D RDF Browser – http://graphite.ecs.soton.ac.uk/browser/
Tabulator – http://www.w3.org/2005/ajar/tab
uzual, disponibile ca extensii pentru browser-ul Web
Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/
necesităţi
Date stocate în sisteme de baze de date relaționale
date modelate cu RDF
asocieri directe – mappings (via schema bazei de date)
Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/
baze de date relaționale gestionate via SQL
CREATE TABLE "Software" (
"ID" INT, PRIMARY KEY("ID"), "nume" CHAR(69), "desc" CHAR(256) ) CREATE TABLE "Utiliz" (
"ID" INT, PRIMARY KEY("ID"), "identit" CHAR(101),
"soft" INT, FOREIGN KEY("soft") REFERENCES "Software"("ID")
) INSERT INTO "Software" ("ID", "nume", "desc") VALUES (13, 'Marmotta', '…') INSERT INTO "Utiliz" ("ID", "identit", "soft") VALUES (7, 'Alexandru', 13)
INSERT INTO "Utiliz" ("ID", "identit", "soft") VALUES (8, 'Laura', NULL)
Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/
baze de date relaționale gestionate via SQL
CREATE TABLE "Software" (
"ID" INT, PRIMARY KEY("ID"), "nume" CHAR(69), "desc" CHAR(256) ) CREATE TABLE "Utiliz" (
"ID" INT, PRIMARY KEY("ID"), "identit" CHAR(101),
"soft" INT, FOREIGN KEY("soft") REFERENCES "Software"("ID")
) INSERT INTO "Software" ("ID", "nume", "desc") VALUES (13, 'Marmotta', '…') INSERT INTO "Utiliz" ("ID", "identit", "soft") VALUES (7, 'Alexandru', 13)
INSERT INTO "Utiliz" ("ID", "identit", "soft") VALUES (8, 'Laura', NULL)
date RDF
<Utiliz/ID=7> rdf:type <Utiliz> .
<Utiliz/ID=7> <Utiliz#ID> 7 .
<Utiliz/ID=7> <Utiliz#identit> "Alexandru" .
<Utiliz/ID=7> <Utiliz#soft> 13 .
<Utiliz/ID=7> <Utiliz#ref-software> <Software/ID=13> .
…<Software/ID=13> rdf:type <Software> .
<Software/ID=13> <Software#ID> 13 .
<Software/ID=13> <Software#nume> "Marmotta" .
<Software/ID=13> <Software#desc> "An Open Platform for Linked Data – by Apache" .
asocieri directe
recomandare W3C (M. Arenas et al., 2012)
www.w3.org/TR/
rdb-direct-mapping/
Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/
Nu există posibilitatea de a utiliza un sistem
de stocare/interogare a triplelor RDF?
Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/
sisteme de stocare rdf
Datele RDF sunt menținute persistent
în cadrul unui RDF store
Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/
sisteme de stocare rdf
Intern, un RDF store poate stoca triplele într-o varietate de formate
baze de date (non-)relaționale versus
structuri de date speciale – eventual, în memorie
inclusiv, la nivel de cloud
Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/
sisteme de stocare rdf
Intern, un RDF store poate stoca triplele într-o varietate de formate
dataset ≡ colecție de grafuri RDF
triple RDF + context desemnat de un URI
format standardizat: N-Quads (2014) https://www.w3.org/TR/n-quads/
Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/
sisteme de stocare rdf
Aspecte de interes:
performanța – e.g., scalabilitatea, timpul de răspuns,...
capacitatea de stocare
facilitățile privind interogarea datelor (inclusiv tranzacții) API-urile disponibile
fiabilitatea securitatea
efectuarea de raționamente automate
Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/
sisteme de stocare rdf
Exemple de implementări curente
(unele disponibile în regim open source) stocare în structuri de date native:
AllegroGraph – http://franz.com/agraph/allegrograph/
Apache Jena TDB – http://jena.apache.org/
BigData – http://bigdata.com/
Oracle Spatial & Graph – http://tinyurl.com/oracle-rdf RDF4J – http://rdf4j.org/
Stardog – http://stardog.com/
Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/
sisteme de stocare rdf
Exemple de implementări curente
(unele disponibile în regim open source) folosind sisteme tradiționale de baze de date:
IBM DB2 (Java), OpenLink Virtuoso (C, C#, Java, JS, PHP, Perl, Ruby, XQuery,…),
Ontotext Graph DB (Java), StrixDB (Lua) www.w3.org/wiki/LargeTripleStores
http://www.dataversity.net/introduction-to-triplestores/
Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/
sisteme de stocare rdf
Exemple de implementări curente
(unele disponibile în regim open source ori freeware) bazate pe sisteme NoSQL:
BrightstarDB (C#), CumulusRDF (utilizează Cassandra), RDF Graph for Oracle NoSQL DB, SparkleDB (C++)
recurgând la baze de date native XML: MarkLogic (interogări XQuery, SQL, SPARQL + API-uri diverse) http://developer.marklogic.com/learn/semantics-exercises
Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/
sisteme de stocare rdf: utilizări
Ontotext Graph DB folosit de BBC, FactForge și LinkedLifeData;
inclus în GATE (General Architecture for Text Engineering) Best Buy, inQuest și NASA recurg la Stardog
OpenLink Virtuoso utilizat de DBpedia și Linked Open Data Cloud
data.gov.uk se bazează pe Apache Jena TDB
Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/
Există un limbaj de interogare
a seturilor de triple RDF?
Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/
rdf
Interogarea datelor RDF
se poate realiza via limbajul SPARQL
serviciile SPARQL (puncte terminale – endpoints) pot fi descrise și invocate
via tehnologiile serviciilor Web clasice – e.g., REST
exemple de puncte terminale:
DBpedia – http://dbpedia.org/sparql/
Bathing Water Quality – http://environment.data.gov.uk/bwq/sparql.html
Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/
sparql: protocol
exemplu: instrumentul YASGUI (Yet Another SPARQL GUI) – http://yasgui.org/ – pentru a accesa un serviciu SPARQL
aici, unul privitor la resurse cinematografice http://data.linkedmdb.org/
Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/
Procesor SPARQL
HTML
bază de date relaționalăRDB↔RDF
de datebază (e.g., NoSQL)
punctterminal SPARQL
triple store punct
terminal SPARQL
Aplicație
tehnici NLP
text nestructurat
XML/XHTML graf RDF
SPARQL – privire de ansamblu (Ivan Herman, 2012)
Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/
La ce poate fi utilizat modelul RDF?
Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/
aplicaţii rdf: dbpedia
De la conținut colaborativ la adnotare semantică
(Christian Bizer et al.)
constituie o bază de cunoștințe via Wikipedia:
seturi de date (datasets) + model conceptual versiunea în limba engleză:
descrieri RDF a peste 4,5 milioane de „lucruri” (things) conținut disponibil în 125 limbi – 38 milioane de „things”
Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/
aplicaţii rdf: dbpedia
De la conținut colaborativ la adnotare semantică
(Christian Bizer et al.)
recurge la diverse modele conceptuale (ontologii) vizând mai multe domenii
Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/
aplicaţii rdf: dbpedia
De la conținut colaborativ la adnotare semantică
(Christian Bizer et al.)
acces via SPARQL: http://wiki.dbpedia.org/OnlineAccess versiune pentru download (aprilie 2016)
http://wiki.dbpedia.org/Downloads
disponibilitate în cloud (în stil PAGO – Pay As You Go) https://aws.amazon.com/marketplace/pp/B012DSCFEK/
http://ontology2.com/the-book/dbpedia-2016-04.html
Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/
Lista filmelor vorbite în limba japoneză, regizate și – totodată – scrise de persoane născute după anul 1960
PREFIX dbo: <http://dbpedia.org/ontology/>
PREFIX dbprop: <http://dbpedia.org/property/>
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
SELECT ?film ?nume ?regizor ?dataNastere WHERE {
?film a dbo:Film ;
dbo:language <http://dbpedia.org/resource/Japanese_language> ; dbprop:director ?regizor ;
dbprop:writer ?scenarist ; foaf:name ?nume .
?regizor dbprop:dateOfBirth ?dataNastere .
FILTER ((?dataNastere >= 1960) && ?regizor = ?scenarist) . }
ORDER BY ?nume LIMIT 7
Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/
graful asociat interogării
rezultatele obținute
Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/
aplicatii rdf: exemplificari
OAI-PMH (Open Archives Initiative Protocol for Metadata Harvesting)
Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/
aplicaţii rdf: wikidata
Inițiativă a fundației Wikimedia, oferind o bază de date structurate multilingve în regim deschis și colaborativ, pe baza proiectelor Wikipedia, Wikimedia Commons,…
www.wikidata.org
Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/
aplicaţii rdf: wikidata
Surprinde și contextul specificării unor date de interes (e.g., proveniența – cine, când, cum, de ce)
utilizează seturile de date/cunoștințe
oferite de DBpedia și Freebase (ex-proiect Google) API propriu: https://www.mediawiki.org/wiki/Wikibase/API
Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/
Pot fi organizate (structurate) datele
într-o manieră riguroasă?
Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/
rdf: utilizări
Pe baza RDF, se oferă suport pentru modelarea cunoștințelor în termeni „înțeleși” de software
taxonomii
clasificare sistematică – realizată de experți –
în termeni de clase, superclase și subclase de resurse RDF Schema
Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/
taxonomii: exemplu
exemplu:
bioinformatică UniProt Taxonomy
www.uniprot.org
Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/
rdf: utilizări
Pe baza RDF, se oferă suport pentru modelarea cunoștințelor în termeni „înțeleși” de software
lexicoane (tezaure)
thesaurus: a controlled vocabulary arranged in a known order and structured so that equivalence, homographic, hierarchical, and associative relationships among terms
are displayed clearly & identified by standardized relationship indicators
Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/
rdf: utilizări
Pe baza RDF, se oferă suport pentru modelarea cunoștințelor în termeni „înțeleși” de software
lexicoane (tezaure)
exprimate la nivel de Web prin
SKOS (Simple Knowledge Organizational System)
Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/
tezaure: skos
explorarea diverselor modele conceptuale (taxonomii, lexicoane) din cadrul Wikidata
– aici, regnul vegetal – via instrumentul Web Reasonator https://tools.wmflabs.org/reasonator/
Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/
rdf: skos
Diverse alte lexicoane exprimate via SKOS:
Cadastre and Land Administration Thesaurus Drug Administration Forms
International Virtual Observatory Alliance astronomy voc.
STW Thesaurus for Economics Thesaurus for the Social Sciences USA Library of Congress’ vocabularies
Wikipedia Article categories
www.w3.org/2001/sw/wiki/SKOS/Datasets
Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/
rdf: utilizări
Pe baza RDF, se oferă suport pentru modelarea cunoștințelor în termeni „înțeleși” de software
modele conceptuale complexe – ontologii (clase, proprietăți, relații, axiome)
OWL (Web Ontology Language)
Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/
foaf:Person a owl:Class .
db:MusicalArtist rdfs:subClassOf foaf:Person . plays a owl:ObjectProperty ;
rdfs:domain db:MusicalArtist ; rdfs:range mo:Song .
RogerWaters plays If , ThreeWishes .
DavidGilmour plays Beauty , HighHopes , Today .
modelare conceptuală – via diverse specificații – despre resursele muzicale:
clasa muzicienilor provine din cea a persoanelor
relația plays între clasa muzicienilor și clasa cântecelor +
fapte privitoare la acestea
e.g., Roger Waters interpretează „Three Wishes”
Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/
foaf:Person a owl:Class .
db:MusicalArtist rdfs:subClassOf foaf:Person . plays a owl:ObjectProperty ;
rdfs:domain db:MusicalArtist ; rdfs:range mo:Song .
RogerWaters plays If , ThreeWishes .
DavidGilmour plays Beauty , HighHopes , Today .
se oferă premisele efectuării de raționamente automate (deducții logice exprimate formal), pe baza unui reasoner
trebuie să aparțină clasei muzicienilor
trebuie să aparțină clasei cântecelor trebuie să aparțină
clasei persoanelor
detalii la disciplina Web Application Development (FII) http://profs.info.uaic.ro/~busaco/teach/courses/wade/
Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/
inferenţe
Achiziționarea unui aparat foto digital
Aplicație Web recomandând
cumpărături online
„Trimite-mi catalogul de produse” (via un API)
<NikonD7200> a :DSLR ;
:sensorMp "24"^^xsd:byte ;
:focalDist [ :min "18"^^units:mm ; :max "1400"^^units:mm ] ; :hasPrice …
Can I take a photo with this?
„Iată catalogul...”
(date RDF)
inspirat de (Costello et al., 2003)
1
2 3
situl Web al magazinului
Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/
inferenţe
Achiziționarea unui aparat foto digital
aplicația Web consultă o ontologie privitoare la camere digitale de unde se poate determina că DSLR este subclasă
a clasei Camera asociată echipamentelor foto
:Camera rdfs:subClassOf schema:Product . :DSLR a owl:Class ;
rdfs:subClassOf :DigitalCamera . :takes rdfs:domain :DigitalCamera ;
rdfs:range :Photo .
<NikonD7200> a :DSLR .
DigitalCamera
DSLR Point-and-Shot Mirrorless Product
Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/
inferenţe
Achiziționarea unui aparat foto digital
ontologiile exprimate în OWL pot conduce la descoperirea dinamică a relațiilor dintre resurse
pe baza unui sistem de deducție automată, pot fi extrase, comparate și recomandate ofertele disponibile pe diverse situri Web
Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/
Cum se asigură interoperabilitatea,
consistența și refolosirea web-urilor?
Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/
linked data
Inițiativă privind publicarea și reutilizarea datelor structurate disponibile liber pe Web
interconectare a resurselor descrise la nivel de Web http://linkeddata.org/
Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/
http://lod-cloud.net/
martie 2009
Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ sept. 2011
Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ august 2014
Linking Open Data cloud diagram 2014
(M. Schmachtenberg, C. Bizer, A. Jentzsch, R. Cyganiak)
Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/
Câteva exemplificări concrete?
Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/
augmentarea căutării (via microdate HTML5 și RDFa) Google Structured Data – developers.google.com/structured-data/
Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/
adnotări explicite ale codului HTML5 bazate pe concepte specificate de schema.org – aici, WebPage și Person
testare cu Structured Data Testing Tool
https://developers.google.com/structured-data/testing-tool/
Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/
Wikidata
vizualizarea datelor interogate cu SPARQL
query.wikidata.org
Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/
exemplu: midi2rdf (MIDI ↔ RDF)
A. Meroño-Peñuela, R. Hoekstra, “The Song Remains the Same:
Lossless Conversion and Streaming of MIDI to RDF and Back”, ESWC 2016 – https://www.albertmeronyo.org/publications/
de la model conceptual la fluxuri de activități acces la date RDF procesabile de către software
Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/
recomandări personalizate via baze publice de cunoștințe
exemplificare: seevl.fm – http://semanticweb.com/tag/seevl
Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/
modelarea cunoștințelor cu aplicabilitate
în mass-media exemplu: BBC
www.bbc.co.uk/ontologies
Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/
utilizarea tehnologiilor Web-ului semantic pentru monitorizarea poluării – e.g., proiectul OpenSense2
J.-P. Calbimonte et al., „Semantic Data Layers in Air Quality Monitoring for Smarter Cities”, ISWC 2015 – http://jeanpi.org/wp/publications/
Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/
„Epilog”:
următorii (zeci de) ani…
Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/
„concluzii”
constituirea unui Web of Data
„Web 3.0”?
„semanticWeb”?
Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/
„concluzii”
constituirea unui Web of Data
acces pe baza protocolului HTTP
Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/
„concluzii”
constituirea unui Web of Data
descriere de resurse și a relațiilor dintre ele via RDF