RDF, RDFS i JSON-LD. NIKOLA MILIKIĆ URL: nikola.milikic.info

Similar documents
RDF, RDFS i JSON-LD. NIKOLA MILIKIĆ URL: nikola.milikic.info

VRIJEDNOSTI ATRIBUTA

Osnove programskog jezika C# Čas 5. Delegati, događaji i interfejsi

CSS CSS. selector { property: value; } 3/20/2018. CSS: Cascading Style Sheets

Svi Java tipovi imaju ekvivalentan tip u jeziku Scala Većina Scala koda se direktno preslikava u odgovarajući Java konstrukt

Building Blocks of Linked Data

PREDMET. Osnove Java Programiranja. Čas JAVADOC

Osnove programskog jezika C# Čas 4. Nasledjivanje 2. deo

Vežbe - XII nedelja PHP Doc

Uvod u relacione baze podataka

Računarske osnove Interneta (SI3ROI, IR4ROI)

VHDLPrimeri Poglavlje5.doc

JSON-LD 1.0. A JSON-based Serialization for Linked Data. W3C Recommendation 16 January Abstract. Status of This Document. 1.

Mašinska vizija. Dr Nenad Jovičić tnt.etf.rs/~mv

PROGRAMIRANJE. Amir Hajdar

pojedinačnom elementu niza se pristupa imeniza[indeks] indeks od 0 do n-1

Z1. Dati RDF graf predstavljen u JSON-LD sintaksi potrebno je grafički predstaviti u skladu sa RDF notacijom. (5 poena)

Formalising the Semantic Web. (These slides have been written by Axel Polleres, WU Vienna)

Prirodno-matematički fakultet u Nišu Departman za fiziku. dr Dejan S. Aleksić Programiranje u fizici

Jezik Baze Podataka SQL. Jennifer Widom

Programiranje III razred

VDSL modem Zyxel VMG1312-B10A/B30A

Web Science & Technologies University of Koblenz Landau, Germany. RDF Schema. Steffen Staab. Semantic Web

BAZE PODATAKA. SQL Opis podataka. Neđeljko Lekić Irena Orović

Uputstva za instaliranje čitača Datalogic Skorpio u operativnom sistemu Windows 7 i višim POM-NA-XX-46, V3.0

Semantic Web In Depth: Resource Description Framework. Dr Nicholas Gibbins 32/4037

Uputstvo za korišćenje logrotate funkcije

PRINCIPI SOFTVERSKOG INŽENJERSTVA TIM NAZIV_TIMA

Programiranje Programski jezik C. Sadržaj. Datoteke. prof.dr.sc. Ivo Ipšić 2009/2010

HTML, CSS i JavaScript

GUI - događaji (Events) i izuzeci. Bojan Tomić

Multi-agent Semantic Web Systems: RDF Models

Vidljivost TipPovratneVrednosti ImeFunkcije (NizParametara) { TeloFunkcije }

Uputa: Zabranjeno je koristiti bilo kakva pomagala. Rje²enja pi²ete desno od zadatka. Predajete samo ovaj list.

KLASIFIKACIJA JELENA JOVANOVIĆ. Web:

Resource Description Framework (RDF)

namespace spojneice { public partial class Form1 : Form { public Form1() { InitializeComponent(); }

Uvod u programiranje - vežbe. Kontrola toka izvršavanja programa

Day 2. RISIS Linked Data Course

Java. Ugnježdeni tipovi IMI PMF KG OOP 09 AKM. najveći deo teksta je preuzet sa slajdova Prof. Dragana Milićeva (ETF Bg) namenjenih pedmetu OOP2

INFORMACIONE TEHNOLOGIJE U MEDICINI 2012/13 LEKCIJA 6

Programiranje Internet aplikacija

Contents. G52IWS: The Semantic Web. The Semantic Web. Semantic web elements. Semantic Web technologies. Semantic Web Services

MODEL PODATAKA. POREðENJE - KRITERIJUM: PROJEKTOVANJE I/ILI SUBP

Unit 2 RDF Formal Semantics in Detail

Linguaggi Logiche e Tecnologie per la Gestione Semantica dei testi

Ime ograničenja je clients_client_num_pk. Ono inforsira biznis pravila po kojem client_number je PK u clients tabeli Naming Constraints

1/42 SQL DDL. CREATE ALTER DROP Schema Table Tablespace Index View Domain Constraint... DECLARE TABLE (DB2)

Binarne hrpe. Strukture podataka i algoritmi VJEŽBE 26. siječnja / 133

TEHNIKA I INFORMATIKA U OBRAZOVANJU

SPARQL. Fausto Giunchiglia and Mattia Fumagallli. University of Trento

Cascading Style Sheets (CSS)

Ciljevi. Poslije kompletiranja ove lekcije trebalo bi se biti u mogućnosti: Opisati ograničenja Generisati i održavati ograničenja u bazi

JavaScript i HTML DOM

Deo J. VBA Objects, Properties, Methods, Events,... PROJEKTOVANJE KLASNIH MODULA... Objekti Svojstva. Metode. Dogadjaji KLASE.

decenija objektne orijentacije

Querying Semantic Web Data

Sadržaj. Verzija 03/2017 Primjenjuje se od 20. novembra godine

public static void main(string []args) { System.out.println("Hello World"); /* prints Hello World */

Windows Server 2012, VDI Licenciranje najprodavanijeg servera, što je novo, VDI licenciranje. Office 2013 / Office 365

2. XML jezik za označavanje

Nizovi. Programiranje 1

Sveučilište u Zagrebu PMF Matematički odsjek. Mreže računala. Vježbe 08. Zvonimir Bujanović Slaven Kožić Vinko Petričević

Organizing Existing Metadata Terms and Structural Constraints to Support Metadata Schema Creation

Cjenovnik usluga informacionog društva

UPUTSTVO ZA KORIŠĆENJE NOVOG SPINTER WEBMAIL-a

Uputstvo za podešavanje mail klijenta

Računarske mreže treći razred

Outline RDF. RDF Schema (RDFS) RDF Storing. Semantic Web and Metadata What is RDF and what is not? Why use RDF? RDF Elements

PARALELNO PROGRAMIRANJE

Tema 8: Koncepti i teorije relevantne za donošenje odluka (VEŽBE)

From the Web to the Semantic Web: RDF and RDF Schema

The Semantic Web. What is the Semantic Web?

UNIVERZITET U BEOGRADU ELEKTROTEHNIČKI FAKULTET

Informatika Uvod u C#,.NET Framework i Visual Studio... nastavak...

Sveučilište u Zagrebu Fakultet strojarstva i brodogradnje. WEB programiranje HTML & CSS

MICROSOFT LINQ. INFOTEH-JAHORINA Vol. 9, Ref. F-9, p , March Ognjen Borovina, Elektrotehnički fakultet, Istočno Sarajevo

Usage of Linked Data Introduction and Application Scenarios. Presented by: Barry Norton

ONTLOLOGY LANGUAGE :+RDFS+ SCHEMA

Sberbank Business Online na Mozilla FireFox

Integritet u relacionim bazama podataka

b) program deljiv3; uses wincrt; var i:integer; begin i:=3; while i<100 do begin write(i:5); i:=i+3; end; end.

PITANJA ZA II KOLOKVIJUM KLASE I OBJEKTI

Informacioni sistemi i baze podataka

Izrada VI laboratorijske vježbe

var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); begin ListBox1.Items.LoadFromFile('d:\brojevi.

Objektno-relacioni model

Aspektno programiranje u Javi. AOP + AspectJ

NIZOVI.

Mustafa Jarrar: Lecture Notes on RDF Schema Birzeit University, Version 3. RDFS RDF Schema. Mustafa Jarrar. Birzeit University

Semantic Web. MPRI : Web Data Management. Antoine Amarilli Friday, January 11th 1/29

SPARQL. Dr Nicholas Gibbins

Internet programiranje

The Local Amsterdam Cultural Heritage Linked Open Data Network

Introducing Linked Data

OSM Lecture (14:45-16:15) Takahira Yamaguchi. OSM Exercise (16:30-18:00) Susumu Tamagawa

PROGRAMIRANJE. Objekt-orjentirano programiranje (OOP)

Semantic Web Technologies Linked Open Data & Semantic Web Programming. Heiko Paulheim

Događaj koji se javlja u toku izvršenja programa i kvari normalno izvršenje. Kada se desi izuzetak, sistem pokušava da pronađe način da ga obradi.

OBJEKTNO ORIJENTISANO PROGRAMIRANJE

Transcription:

RDF, RDFS i JSON-LD NIKOLA MILIKIĆ EMAIL: nikola.milikic@fon.bg.ac.rs URL: nikola.milikic.info

Linked Data Linked Data predstavlja mrežu podataka koji su opisani na način da ih mogu razumeti mašine (koristeći Web standarde), a nalaze se na različitim lokacijama na Web-u. Omogućava programu da na osnovu podatka na jednoj lokaciji, prati veze ka drugim podacima koji se nalaze na drugim lokacijama širom Web-a. Preuzeto sa: http://www.w3.org/tr/json-ld/

Šta je RDF? Resource Description Framework W3C standard za opis podataka na Web-u Jedna od tri osnovne tehnologije Semantičkog veba (pored SPARQL i OWL)

Šta je RDF? Služi kao model podataka Semantičkog Veba Jednostavan model, zasnovan na grafu Opisuje relacije između stvari (resource)

Primer RDF grafa subject predicate object person name Jason Smith

RDF je graf RDF je baziran na tripletima (subjekat predikat objekat) Elementi grafa Čvor (predstavljanje subjekta i objekta) Resursi (predstavljaju se elipsom) Literali (predstavljaju se pravougaonikom) Veza (predstavljanje predikata)

Više propertija name Jason Smith person1 occupation programmer affiliation birthdate 1980-12-12 company1 name Digital Bazaar

Koristimo infrastrukturu Web-a U bazi podataka na Web-u moramo da identifikujemo stvari globalno i jedinstveno URI Imenovati podatke preko URI-ja, pretežno preko http:// - OVO JE KLJUČNO ZA LINKED DATA URL Uniform Resource Locator lokacija URI Uniform Resource Identifier identifikator IRI International Resource Identifier identifikator

Grafovi mogu imati imenovane resurse http://schema.org/name Jason Smith http:// example.com/ person1 http://schema.org/ occupation programmer http://schema.org/affiliation http://schema.org/birthdate 1980-12-12 http:// example.com/ company1 http://schema.org/ name Digital Bazaar

Koristimo vokabulare "@vocab": "http://schema.org/ name Jason Smith person1 occupation programmer affiliation birthdate 1980-12-12 company1 name Digital Bazaar

Zapis u formi tripleta person1 name Jason Smith. person1 occupation programmer. person1 birthdate 1980-12-12. company1 name Digital Bazaar. person1 affiliation company1.

Jednostavna pravila URI identifikuju stvari koje opisujemo Ako se na dva različita mesta kreiraju podaci koristeći isti URI, to znači da se govori o istom resursu Ovo omogućava lako povezivanje podataka sa različitih izvora

RDFS NIKOLA MILIKIĆ EMAIL: nikola.milikic@fon.bg.ac.rs URL: nikola.milikic.info

RDFS RDFS - RDF Schema Dodavanje semantike u RDF Kreiranje šeme podataka vokabulara Vokabular se definiše na isti način kao i podaci

Definisanje klasa i hijerarhija Person rdf:type name Company Jason Smith model podaci person1 occupation programmer affiliation birthdate rdf:type 1980-12-12 company1 name Digital Bazaar Person rdf:type rdfs:class. person1 rdf:type Person.

Definisanje relacija između resursa Person affiliation Company model podaci rdf:type name Jason Smith person1 occupation programmer affiliation birthdate rdf:type 1980-12-12 company1 name Digital Bazaar

Definisanje relacija između resursa domain property range Person affiliation Company affiliation rdf:type rdf:property. affiliation rdfs:domain Person. affiliation rdfs:range Company.

Definisanje relacija između resursa Domen pokazuje na klasu (ili skup klasa) na koje se relacija može primeniti Opseg predstavlja klasu (ili skup klasa) koje mogu predstavjati vrednost relacije I domen i opseg su opcioni. Ukoliko domen nije definisan, relacija se može primeniti na bilo koju klasu. Ukoliko opeg nije definisan, vrednost relacije može biti bilo koja klasa.

Nije isto kao OO programiranje Relacije mogu postojati nezavisno od klase, oni su građani prvog reda (first class citizens) Propertiji mogu imati svoju hijerarhiju Ne mogu se overwrite-ovati na nižem nivou hijerarhije

Schema.org Schema.org predstavlja inicijativu da se kreira zajednički vokabular za opisivanje entiteta na Web-u. Inicijativu su započele i podržavaju kompanije Google, Microsoft, Yahoo i Yandex. Vokabular opisuje entitete, veze izmedju entiteta i akcije. Može se lako proširiti.

Schema.org Neki od entiteta koje opisuje: Creative works: CreativeWork, Book, Movie, MusicRecording, Recipe, TVSeries Netekstualni objekti: AudioObject, ImageObject, VideoObject Event Organization Person Place, LocalBusiness, Restaurant Product, Offer, AggregateOffer Review, AggregateRating Action

Schema.org Neka od poznatih proširenja: auto.schema.org bib.schema.org

RDF(S) vocabulary Spojeni RDF i RDFS rečnici Prefiksi: rdf i rdfs Klase (neke) rdfs:class rdfs:property rdfs:literal Property (neki) rdf:type (resurs je instanca neke klase) rdfs:subclassof (klasa je podklasa neke klase) rdfs:subpropertyof (podproperty) rdfs:seealso (referenca na neki opisni resurs) rdfs:domain (domen property-a je neka klasa) rdfs:range (opseg propertya je neka klasa)

JSON JavaScript Object Notation Laki (lightweight) format za razmenu podataka Jednostavan Za ljude koji ga pišu Za mašine koje ga procesiraju JSON je tekstualni format Nezavisan od programskog jezika

JSON objekat Predstavlja neuređenu kolekciju parova naziv/vrednost JSON objekat počinje sa otvorenom zagradom ( { ), a završava sa zatvorenom zagradom ( } ) Naziv i vrednost su razdvojeni dvotačkom ( : ), a parovi naziv/ vrednost su razdvojeni zapetom (, )

Primer JSON objekta { } title : The Matrix, producer : Joel Silver, release_year : 1999

JSON niz JSON niz predstavlja uređenu sekvencu JSON objekata Počinje simbolom [, a završava simbolom ] Objekti su razdvojeni zapetom

Primer JSON niza [ ] { }, { } title : The Matrix, producer : Joel Silver, release_year : 1999 title : Equilibrium, producers : [ { name : Joel Silver }, { name : Lucas Foster } ], release_year : 1999

JSON-LD sintaksa Sintaksa za serijalizaciju RDF podataka u JSON format JSON-LD je namenjen korišćenju u Web aplikacijama, za kreiranje interoperabilnih Web servisa, kao i za čuvanje RDF podataka u baze podataka zasnovane na JSON-u (MongoDB, ElasticSearch, etc.) Može se kombinovati sa drugim tehnologijama Semantičkog Web-a (npr. SPARQL)

JSON-LD Pored standardnih prednosti koje donosi JSON, JSON-LD uvodi: Korišćenje jedinstvenog identifikatora za JSON objekte koriščenjem IRI-ja Način jednoznačnog označavanja naziva atributa u različitim JSON dokumentima time što ih mapira u odgovarajući IRI (definiše se u @context delu) Mehanizam putem kojeg vrednost JSON objekta se može odnositi na JSON objekte koji se nalaze na drugoj lokaciji na Web-u Označavanje jezika u kojem je napisana string vrednost atributa

Ključne reči @id Jedinstveno identifikuje resurse koji se opisuju u dokumentu koristeći IRI ili identifikatore praznih čvorova @type Definiše tip čvora (resursa) @context Definiše skraćenice koje se koriste u JSON-LD dokumentu. Ove skraćenice se nazivaju termini. @language Definiše jezik u kojem je napisana string vrednost

Primer JSON dokumenta { } "name": Jason Smith", homepage": "http://jason.smith.org/", "image": "http://jason.smith.org/images/jason.png

Primer JSON-LD dokumenta { } "http://schema.org/name": Jason Smith", "http://schema.org/url": { }, "@id": "http://jason.smith.org/ "http://schema.org/image": { } "@id": "http://jason.smith.org/images/jason.png '@id' označava da je ova vrednost identifikator koji je IRI Svaki properti je jedinstveno definisan putem IRI-ja (kao što su name, url i image). Programeri, ali i mašine, mogu putem ovih adresa doći do opisa datih propertija. Ovaj proces se naziva dereferenciranje IRI-ja.

Korišćenje @context elementa @context se koristi da mapira termine u IRI-je { } "@context": { } "name": "http://schema.org/name", "image": { }, "@id": "http://schema.org/image", "@type": "@id" "homepage": { } "@id": "http://schema.org/url", "@type": "@id" Označava da string vrednost propertija homepage' treba da se interpretira kao identifikator koji je IRI Označava da je 'name' skraćenica za 'http://schema.org/name' Označava da je 'image' skraćenica za 'http://schema.org/image' Označava da string vrednost propertija 'image' treba da se interpretira kao identifikator koji je IRI Označava da je 'homepage' skraćenica za 'http://schema.org/url'

Korišćenje @context elementa u dokumentu { } "@context": { "name": "http://schema.org/name", "image": { "@id": "http://schema.org/image", "@type": "@id" }, "homepage": { "@id": "http://schema.org/url", "@type": "@id" } }, "name": Jason Smith", "homepage": "http://jason.smith.org/", "image": "http://jason.smith.org/images/jason.png"

Korišćenje @context eksterno { } "@context": "http://json-ld.org/contexts/person.jsonld", "name": Jason Smith", "homepage": "http://jason.smith.org/", "image": "http://jason.smith.org/images/jason.png" Definisanje konteksta u eksternom dokumentu omogućava da se više puta koristi ista šema dokumenta i ista mapiranja termina ka IRIjima.

Referenciranje @context elementa preko HTTP Link atributa JSON-LD kontekst (@context) može biti definisan u HTTP zaglavlju, u atributu Link. GET /jason-smith.json HTTP/1.1 Host: example.com Accept: application/ld+json,application/json,*/*;q=0.1 ==================================== HTTP/1.1 200 OK Content-Type: application/json Link: <http://json-ld.org/contexts/person.jsonld>; rel="http://www.w3.org/ ns/json-ld#context"; type="application/ld+json" { } "name": Jason Smith", "homepage": "http://jason.smith.org/", "image": "http://jason.smith.org/images/jason.png"

Definisanje tipa (klase) Tip (klasa) nekog čvora se definiše korišćenjem ključne reči @type. Tipovi se jedinstveno identifikuju preko IRI. { }... "@id": "http://example.org/places#breweats", "@type": "http://schema.org/restaurant",...

Definisanje tipa (klase) Čvor (resurs) može imati više klasa, što se definiše korišćenjem niza: { }... "@id": "http://example.org/places#breweats", "@type": [ "http://schema.org/restaurant", "http://schema.org/brewery ],...

Definisanje tipa (klase) Vrednost ključne reči @type takođe može biti termin koji je definisan u kontekstu: { } "@context": {... "Restaurant": "http://schema.org/restaurant", "Brewery": "http://schema.org/brewery" }, "@id": "http://example.org/places#breweats", "@type": [ "Restaurant", "Brewery ],...

Definisanje vokabulara Ukoliko svi propertiji i tipovi dolaze iz istog vokabulara, ključna reč @vocab definiše zajednički prefiks za sve termine. { } "@context": { "@vocab": "http://schema.org/" }, "@id": "http://example.org/places#breweats", "@type": "Restaurant", "name": "Brew Eats"...

Kompaktni IRI Kompaktni IRI je način referenciranja na IRI korišćenjem prefiksa. Npr. koliko želimo da koristimo FOAF vokabular (http://xmlns.com/foaf/0.1/), možemo uvesti prefiks foaf. { } "@context": { "foaf": "http://xmlns.com/foaf/0.1/"... }, "@type": "foaf:person, "foaf:name": "Dave Longley,... foaf:name se ekspanduje u IRI http://xmlns.com/foaf/0.1/name foaf:person se ekspanduje u http://xmlns.com/foaf/0.1/person

Primer 1 Postoji klasa Person koja predstavlja osobe. Osoba može imati atribut name koji predstavlja ime osobe. Postoji klasa Movie koja predstavlja film. Film ima atribut title koji predstavlja naslov filma, kao i atribut director koji predstavlja osobu koja je režirala film. Postoji film koji se zove Interstellar. Film je režirala osoba koja se zove Christopher Nolan.

Primer 1 - Graf ex:movie ex:director ex:person rdf:type ex:title ex:name xsd:string xsd:string model ex:movie1 ex:director ex:person1 podaci ex:title Interstellar ex:name Christopher Nolan

Primer 1 JSON-LD { } "@context:": { "@vocab": "http://example.com/" }, "@id": http//example.com/moveie1", "@type": Movie", title": "Interstellar", director": { "@type": Person", "@id": http://example.com/person1", "name": "Christopher Nolan"

DC - Dublin Core DC - Dublin Core (Metadata Initiative) Ideja - opisivanje dokumenata uz pomoć skupa RDF elemenata Gotov rečnik Omogućava označavanje podataka kao što su: koautor, naslov, tema, datum nastanka... autor, Slobodan pristup ovim metapodacima i njihovo povezivanje van granica pojedinačnih sajtova

DC - Dublin Core Prefiks: dc Nema klase već samo property-e Property (neki) dc:creator (autor) dc:contributor (neko ko je doprineo stvaranju ali nije autor) dc:date (datum) dc:description (opis) dc:language (jezik) dc:publisher (izdavač) dc:subject (tema) dc:title (naslov)

FOAF FOAF - Friend Of A Friend Ideja: Opisati osnovne podatke o ljudima (ime, prezime, email adresa, homepage...) Povezati ljude koji se poznaju (knows) Nema granice kao socijalne mreže

FOAF Prefiks: foaf Klase (neke) foaf:person foaf:onlineaccount Property (neki) foaf:name foaf:firstname foaf:lastname foaf:nick (nadimak) foaf:mbox (mailbox) foaf:knows foaf:homepage foaf:workplacehomepage foaf:account foaf:accountname foaf:accountservicehomepa ge foaf:depiction (slika ali te konkretne instance)

Pitanja? NIKOLA MILIKIC EMAIL: nikola.milikic@fon.bg.ac.rs URL: nikola.milikic.info