A lecture delivered for "Web Application Development" discipline (MSc studies at Faculty of Computer Science, 'Alexandru Ioan Cuza' University of Iasi, Romania): https://profs.info.uaic.ro/~busaco/teach/courses/wade/web-film.html
4. Dr.SabinBuragaprofs.info.uaic.ro/~busaco
Datele trebuie accesate independent de:
locație – fișier, sistem de management al bazelor de date
maniera de reprezentare
formatul de serializare
protocol de transmisie
sistemul de operare
aplicațiile ce „consumă” acele date
14. Dr.SabinBuragaprofs.info.uaic.ro/~busaco
factualfapte
set of examples
set of traces
set of statements
conceptualconcepte
taxonomies & typologies
component systems
hybrid conceptual systems
proceduralacțiuni
series procedures
parallel procedures
interactive procedures
prescriptiverestricții
definitions, norms & constraints
laws & theories
decision trees
control rules
processes & methodspractici
processes
methods
collaborative systems
o clasificare a
modelelor de cunoștințe
(knowledge models)
adaptare după G. Paquette, 2010
22. Dr.SabinBuragaprofs.info.uaic.ro/~busaco
model
Modelele pot reprezenta generalizări convenabile
ale universului pe care-l modelează
exemple:
modelul utilizatorului în interacțiunea om-calculator
modelul relațional al bazelor de date
modelul de comunicare în rețele de calculatoare
modelul computațional al unui sistem software
…
23. Dr.SabinBuragaprofs.info.uaic.ro/~busaco
modelele facilitează structurarea unor „lucruri”
de interes dintr-un domeniu (web) complex
ce intervine în dezvoltarea unei aplicații
complexitate(privindstructura)
gradul de generalitate a modelării cunoștințelor domeniului
ontologie
lexicon
taxonomie
(clasificare)
vocabular
(nomenclatură)
folksonomie
după(KatrinWeller,2010)
24. Dr.SabinBuragaprofs.info.uaic.ro/~busacodupă(KatrinWeller,2010)
sisteme tradiționale
de organizare
a cunoștințelor
Web
social
Web
semantic
modelele facilitează structurarea unor „lucruri”
de interes dintr-un domeniu (web) complex
ce intervine în dezvoltarea unei aplicații
complexitate(privindstructura)
gradul de generalitate a modelării cunoștințelor domeniului
ontologie
lexicon
taxonomie
(clasificare)
vocabular
(nomenclatură)
folksonomie
27. Dr.SabinBuragaprofs.info.uaic.ro/~busaco
model
Semantica = atașarea un formalism
– ce explică „semnificația” unui concept –
la o construcție sintactică
în cazul limbajului natural, se referă la modalitatea de a
înțelege o apariție a unei construcții (litere și/sau sunete)
39. Dr.SabinBuragaprofs.info.uaic.ro/~busaco
model: entitate
Descrierea unei entități e mijlocită de relații
(entity relationships) reprezentate într-o formă
reutilizabilă prin intermediul conținutului unui document
reprezentările relațiilor dintre entități
se bazează pe notații asociate unui limbaj specific
exemple: diagrame ER (Entity-Relation), tabele,
microdate HTML5, triple RDF
40. Dr.SabinBuragaprofs.info.uaic.ro/~busaco
model: entitate
Specificarea descrierii unei entități date se realizează
prin intermediul unor propoziții (sentences)
și a unor afirmații (statements)
acestea sunt stocate – fizic și/sau electronic
(fișiere, pagini Web,…) – și transmise via formate de date
(textuale și/sau binare), de dorit deschise
44. Dr.SabinBuragaprofs.info.uaic.ro/~busaco
model
Modelele comune folosite de oameni
au – în general – un caracter informal
semnificația termenilor utilizați nu poate fi unic definită
exemplu: „explicarea” unor resurse recurgând exclusiv
la termeni de conținut (tag-uri) stabiliți de utilizator
51. Dr.SabinBuragaprofs.info.uaic.ro/~busaco
model: tagging – definiții
Aplicație de bookmarking
aplicație Web facilitând descoperirea de
conținuturi și persoane – resurse – de interes
pe baza tag-urilor partajate + bookmark-urilor existente
S. Braun, Social Semantic Bookmarking (2008)
www.slideshare.net/vzach/social-semantic-bookmarking-pakm-presentation
53. Dr.SabinBuragaprofs.info.uaic.ro/~busaco
model: tagging
Uzual, tagging-ul are loc într-un mediu social
legat de procesele cognitive
relevă echivalentul digital al „cărărilor dezirabile”
– desire lines (Merholz, 2004)
landscaping concept used on campus
for creating walk ways through the grass
www.cs.colorado.edu/~kena/classes/7818/f06/lectures/folksonomy.pdf
65. Dr.SabinBuragaprofs.info.uaic.ro/~busaco
model: tagging
Problema lipsei preciziei – după (Happel et al., 2008)
jargon
plural – “inițiativă” versus “inițiative” [RO]
abrevieri – “SAX” versus “saxofon”
cuvinte compuse – “opensource” versus “open-source”
erori de redactare – “elephant” versus “elefant” [EN]
68. Dr.SabinBuragaprofs.info.uaic.ro/~busaco
model: tagging
Problema lipsei preciziei – după (Happel et al., 2008)
multilingvism
tag-uri cu semnificații diferite, în funcție de limbă
exemple:
„paste” – substantiv [RO] vs. “paste” – verb [EN]
“the” – articol hotărât [EN], “the” (« thé ») – substantiv [FR]
„bulgari” vs. „bulgari” („bulgări”) vs. „Bulgari” [RO]
70. Dr.SabinBuragaprofs.info.uaic.ro/~busaco
model: tagging
Problema lipsei preciziei – după (Happel et al., 2008)
nepotriviri la nivel abstract
lipsa relațiilor (semantice) dintre tag-uri
la diverse niveluri de abstractizare
datorată intențiilor sau expertizei utilizatorilor
exemplificări:
„băutură” vs. „vin” vs. „Merlot” vs. „Merlot de Murfatlar”
„scriere” vs. „literatură” vs. „beletristică” vs. „nuvelă”
73. Dr.SabinBuragaprofs.info.uaic.ro/~busaco
model: tagging
Sistemele bazate pe tagging oferă suport pentru
organizarea informală a unui volum semnificativ
de informații eterogene existente pe Web
organizarea este informală,
deoarece interpretarea tag-urilor necesită
aportul utilizatorilor într-un context dat
76. Dr.SabinBuragaprofs.info.uaic.ro/~busaco
model: tagging
Problema privind tag spam-ul
rezolvări actuale:
manuale (bazate pe factorul uman), algoritmice, mixte
detalii în articolul N. Spirin, J. Han, “Survey on Web Spam Detection:
Principles and Algorithms”, SIGKDD Explorations 13 (2), 2011
http://kdd.org/exploration_files/V13-02-08-Spirin.pdf
77. Dr.SabinBuragaprofs.info.uaic.ro/~busaco
model: tagging
Problema privind tag spam-ul
detection-based methods
prevention-based methods
demotion-based methods
de studiat și P. Heymann, G. Koutrika, H. Garcia-Molina,
“Fighting Spam on Social Websites: A Survey of Approaches
and Future Challenges”, IEEE Internet Computing, 11 (6), 2007
http://ilpubs.stanford.edu:8090/818/
78. Dr.SabinBuragaprofs.info.uaic.ro/~busaco
model: tagging
Interacțiuni într-un sistem de social tagging:
salvare + asociere de tag-uri (tagging)
re-detectare (refinding)
clicking, pivoting, exploring
căutare – a propriilor tag-uri ori a altora
(în cadrul grupului de interes sau în general)
descoperire – eventual, întâmplătoare
interacțiune în cadrul grupului social
85. Dr.SabinBuragaprofs.info.uaic.ro/~busaco
model: tagging
Problema vizualizării tag-urilor
adoptarea diverselor tehnici de vizualizare
e.g., tag clouds, clustering, semantic zoom
O. Kaser, D. Lemire, “Tag-Cloud Drawing: Algorithms for Cloud
Visualization”, WWW2007 Workshop on Tagging and Metadata
for Social Information Organization, 2007 – http://slidesha.re/cpkPLi
93. Dr.SabinBuragaprofs.info.uaic.ro/~busaco
model: tagging – exemple de utilizare
social bookmarking: Evernote, Pocket
(micro-)blogging: Medium, Tumblr, Twitter, WordPress
multimedia: 500px, Flickr, Last.fm, Scribd, Vimeo
știri: Digg, Feedly, Reddit
e-business: Amazon, Lulu
știință: CiteULike, Connotea, myExperiment
sisteme de operare (fișiere): macOS, Windows
94. Dr.SabinBuragaprofs.info.uaic.ro/~busaco
model: tagging
Remarci:
“In essence tag systems mirror the PageRank structure of
Google’s system, but make the internal structures
browsable and viewable directly.”
Lee Iverson
FolkRank (A. Hotho et al., 2006)
www.kde.cs.uni-kassel.de/stumme/papers/2006/hotho2006folkrank.pdf
97. Dr.SabinBuragaprofs.info.uaic.ro/~busaco
studiu de caz:
determinarea și prezicerea
stării de spirit via tag-uri
asociate resurselor
muzicale (aici: Last.fm)
P. Saari, T. Eerola, “Semantic
Computing of Moods Based on Tags
in Social Media of Music”, IEEE
Transactions on Knowledge and Data,
2014 – arxiv.org/pdf/1308.1817.pdf
104. Dr.SabinBuragaprofs.info.uaic.ro/~busaco
model: formalizare
Formalismele – uzual, exprimate matematic –
oferă suport pentru realizarea predicțiilor
exemplu (în cazul unui joc electronic):
explicarea – și prezicerea – traiectoriei unui obiect
via un model formal implicând concepte
ca forță, gravitație, viteză, masă descrise matematic
107. Dr.SabinBuragaprofs.info.uaic.ro/~busaco
model: exemple
Modelul diagramelor entitate-relație
Entity-Relation Model – E/R (Chen, 1976)
Semantic Object Modeling – SOM (Kroenke, 1995)
Unified Modeling Language – UML (OMG, 1997)
Higher Order Entity Relationship Model (Thalheim, 2000)
Asset-Oriented Model – AOM (Daum & Merten, 2003)
utilizare tipică: specificarea schemelor de baze de date
108. Dr.SabinBuragaprofs.info.uaic.ro/~busaco
model: exemple
Posibile modele de date facilitate de un cadru conceptual:
Data (What) Activities (How)
Objectives/Scope
(Planner’s View)
List of things
important
to the enterprise
List of functions
the enterprise
performs
Enterprise Model
(Leadership’s View)
Language,
divergent
data model
Business process
model
Model of Fundamental
Concepts (Architect’s View)
Convergent
E/R model
Essential data
flow diagram
Technology Model
(Data Designer’s View)
Database
design
System design,
program structure
Detailed Representation
(Builder’s View)
Physical storage
design
Detailed program
design
David C. Hay, Data Model Patterns, Morgan Kaufmann, 2006
110. Dr.SabinBuragaprofs.info.uaic.ro/~busaco
model de acces la date: yql
Permite – pe baza unui limbaj similar SQL –
interogarea, filtrarea, combinarea datelor la nivel de Web
(suport pentru realizarea de mash-up-uri)
facilitează atașarea la aplicația Web dezvoltată
a surselor de date de interes:
fluxuri de știri, informații cartografice,
resurse multimedia etc.
111. Dr.SabinBuragaprofs.info.uaic.ro/~busaco
model de acces la date: yql
Adoptă o sintaxă SQL
show, desc, select, use, insert, update, delete
surse de date publice Yahoo! (built-in tables)
sau oferite de terți (community tables) – e.g., Amazon,
Apple, arXiv, Deviant Art, Europarliament, GitHub,
Last.fm, PayPal, Spotify, Steam, Tumblr, Yelp,…
răspunsul la o interogare ≡ rânduri (rows) de date
115. Dr.SabinBuragaprofs.info.uaic.ro/~busaco
model de acces la date: graphql
Graph Query Language
sunt permise interogări (queries) – operații de citire –
și actualizări (mutations) – operații de alterare a datelor
se oferă suport pentru a anticipa ce date
vor fi întoarse + structura acestora
116. Dr.SabinBuragaprofs.info.uaic.ro/~busaco
model de acces la date: graphql
Graph Query Language
răspunsul oferit include doar datele ce au fost solicitate
îmbunătățirea performanței la nivel de client
rezolvarea problemelor vizând over/under fetching
(preluare a mai multor sau prea puține date)
philsturgeon.uk/api/2017/01/24/graphql-vs-rest-overview/
nordicapis.com/is-graphql-the-end-of-rest-style-apis/
117. Dr.SabinBuragaprofs.info.uaic.ro/~busaco
model de acces la date: graphql
GraphQL ca alternativă la dezvoltarea de servicii via paradigma REST
GraphQL REST
entitate resursă resursă
format JSON
orice Media Type (MIME)
frecvent: JSON
protocol
HTTP – uzual, adoptă convenții
proprii
independent de protocol
(uzual, HTTP)
cine decide ce date
vor fi întoarse
clientul serverul
puncte terminale
(endpoints)
un singur punct terminal pentru
a oferi date conexe, dacă au fost
specificate relații între ele
puncte terminale multiple
(independente)
tipuri de date strong (tipuri declarate explicit)
weak (verificarea tipurilor
de date nu e obligatorie)
relație client-server fat client—fat server thin client—fat server
documentare autodescriptiv (self-describing)
necesită terțe soluții (e.g.,
OpenAPI Specification)
viziune
limbaj de interogare, specificație,
colecție de instrumente
stil arhitectural
118. Dr.SabinBuragaprofs.info.uaic.ro/~busaco
model de acces la date: graphql
Aspecte de considerat de către implementatori:
probleme de securitate
– e.g., autentificare, autorizare, refuz al serviciilor
suportul pentru caching trebuie oferit explicit
managementul versiunilor
blog.pusher.com/rest-versus-graphql/
119. Dr.SabinBuragaprofs.info.uaic.ro/~busaco
model de acces la date: graphql
Instrumente pentru dezvoltatori:
implementare de referință pentru server (Node.js)
GraphQL.js – graphql.org/graphql-js/
biblioteci disponibile pentru C, Go, Java, .NET,
PHP, Python, Ruby, Swift, Typescript,… – graphql.org/code/
resurse de interes: github.com/chentsulin/awesome-graphql
120. Dr.SabinBuragaprofs.info.uaic.ro/~busaco
model de acces la date: graphql
Instrumente pentru dezvoltatori:
de experimentat și Apollo – www.apollodata.com
suport la nivel de client (e.g., React, Vue) + server
pentru aplicații bazate pe React,
a se folosi Relay (Modern) – facebook.github.io/relay/
122. Dr.SabinBuragaprofs.info.uaic.ro/~busaco
model de acces la date: graphql
exemple de interogări via GraphQL ale unor API-uri publice
(e.g., Giphy, Hacker News, Reddit): www.graphqlhub.com
în acest caz, Twitter
# primele 33 de mesaje (+meta-date vizând utilizatorii care le-au expus)
{
twitter {
search(q: "Web application development", count: 33, result_type: mixed)
{
user {
screen_name
name
followers_count
}
text
created_at
}
}
}
123. Dr.SabinBuragaprofs.info.uaic.ro/~busaco
model de acces la date: graphql
testarea interactivă a API-ul GitHub
implementat via GraphQL
developer.github.com/v4/
conceptul Repository
(depozit de cod-sursă)
și proprietățile aferente
124. Dr.SabinBuragaprofs.info.uaic.ro/~busaco
model de
acces la dateServicii Web
model de calcul
Ofertant
de servicii de
telefonie mobilă
mash-up-uri la nivel
de dispozitiv mobil
model de implementare
model de interacțiune
model de acces la date – scenariu
adaptare după Tom Croucher
model de comunicare
model
al fluxului
de date
⚙
⚙
⚙
⚙
GraphQL
YQL
125. Dr.SabinBuragaprofs.info.uaic.ro/~busaco
model: puncte de vedere
Web-ul având un caracter multidisciplinar,
modelele utilizate pot fi diferite
reprezentarea unei varietăți de opinii
(posibil, contradictorii)
care nu pot fi reconciliate la nivel global
129. Dr.SabinBuragaprofs.info.uaic.ro/~busaco
model: expresivitate
Modele cu niveluri de expresivitate și sintaxe diferite
rețea semantică (semantic network)
asociere de subiecte (topic map)
diagramă UML – Unified Modeling Language
graf conceptual (conceptual graph/structure)
graf RDF – Resource Description Framework
logica de ordin I (FOL – first-order logic)
adaptare după Sean Bechhofer
137. Dr.SabinBuragaprofs.info.uaic.ro/~busaco
„noul” Web
În contextul Web-ului, scopul principal este
modelarea unei arii (domeniu) de cunoaștere
concepte primare – entități ori „lucruri” ale domeniului
relații între concepte
atribute/proprietăți (nume + valori) ale conceptelor
reguli de asociere privind concepte, relații, atribute
141. Dr.SabinBuragaprofs.info.uaic.ro/~busaco
„noul” Web
Faze privind evoluția:
2. formularea necesităților
de promovare + implementare
identificarea grupurilor de lucru relevante
atragerea comunităților de interes
(științe ale vieții, GIS – Geographical Information Systems,
ofertanți de bunuri digitale, guverne etc.)
+ intersecția Web-ului semantic cu alte tehnologii
144. Dr.SabinBuragaprofs.info.uaic.ro/~busaco
„noul” Web
Constituirea unei științe a Web-ului
(Science of the Web) – Berners-Lee et al., 2006
Web science = combinație între științe analitice
(e.g., biologia) și cele sintetice (computer science)
caracter inerent inter-disciplinar
www.webscience.org
145. Dr.SabinBuragaprofs.info.uaic.ro/~busaco
„noul” Web
“Web science is about more than modeling
the current Web. It is about engineering
new infrastructure protocols and
understanding the society that uses them,
and it is about the creation of
beneficial new systems.”
Tim Berners-Lee et al., Science, 313, august 2006
www.webscience.org/2016/08/26/creating-a-science-of-the-web-10th-anniversary/
146. Dr.SabinBuragaprofs.info.uaic.ro/~busaco
„concluzii”
“Creating an online digital ecosystem in which
knowledge, logic and presentation can all evolve
in a globe-spanning, self-organizing, peer to peer
system of Web servers which is also
the software substrate for
an emergent global collective intelligence.”
Shawn Murphy