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

PREDMET. Osnove Java Programiranja. Čas JAVADOC

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

Vežbe - XII nedelja PHP Doc

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

Računarske osnove Interneta (SI3ROI, IR4ROI)

VHDLPrimeri Poglavlje5.doc

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

Uvod u relacione baze podataka

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

Jezik Baze Podataka SQL. Jennifer Widom

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

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

Building Blocks of Linked Data

Programiranje III razred

Uputstvo za korišćenje logrotate funkcije

Vidljivost TipPovratneVrednosti ImeFunkcije (NizParametara) { TeloFunkcije }

PRINCIPI SOFTVERSKOG INŽENJERSTVA TIM NAZIV_TIMA

VDSL modem Zyxel VMG1312-B10A/B30A

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

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

Programiranje Internet aplikacija

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

KLASIFIKACIJA JELENA JOVANOVIĆ. Web:

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

INFORMACIONE TEHNOLOGIJE U MEDICINI 2012/13 LEKCIJA 6

HTML, CSS i JavaScript

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

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

decenija objektne orijentacije

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

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

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

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

Aspektno programiranje u Javi. AOP + AspectJ

Integritet u relacionim bazama podataka

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

Cascading Style Sheets (CSS)

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

PARALELNO PROGRAMIRANJE

FOUNDATIONS OF SEMANTIC WEB TECHNOLOGIES

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

PITANJA ZA II KOLOKVIJUM KLASE I OBJEKTI

FOUNDATIONS OF SEMANTIC WEB TECHNOLOGIES

Nizovi. Programiranje 1

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

Cjenovnik usluga informacionog društva

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

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

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.

PROGRAMIRANJE. Objekt-orjentirano programiranje (OOP)

UPUTSTVO ZA KORIŠĆENJE NOVOG SPINTER WEBMAIL-a

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

LECTURE 09 RDF: SCHEMA - AN INTRODUCTION

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

2. RDF Semantic Web Basics Semantic Web

RDF AND SPARQL. Part III: Semantics of RDF(S) Dresden, August Sebastian Rudolph ICCL Summer School

Variable Neighborhood Descent - VND (Metoda promenljivog spusta)

TEHNIKA I INFORMATIKA U OBRAZOVANJU

2. XML jezik za označavanje

Ovde će se raditi na funkcijama konverzija: konverzija tipa datuma u znak tip i obrnuto, konverzija broja u karakter tip i obrnuto

Objektno-relacioni model

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

Internet programiranje

Oracle Proprietary Joins Za upite nad više od jedne tabele korišćenjem Oracle proprietary sintakse koristiti join uslov u WHERE izrazu:

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

JavaScript i HTML DOM

Izrada VI laboratorijske vježbe

Univerzitet u Beogradu Matematički fakultet. Master rad Alati za objektno relaciono preslikavanje Entity Framework i Hibernate i njihovo poređenje

Informacioni sistemi i baze podataka

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

Osnovne strukture podataka

Logic and Reasoning in the Semantic Web (part I RDF/RDFS)

PITANJA ZA II KOLOKVIJUM NASLJEĐIVANJE, VIRTUELNE FUNKCIJE I POLIMORFIZAM

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

Računarske mreže treći razred

Objektno orijentisano programiranje. Aleksandra Klašnja-Milićević Marko Marković

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

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

x y = z Zadaci - procedure

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

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

UNIVERZITET U BEOGRADU ELEKTROTEHNIČKI FAKULTET

[] znači opciono; znači ili. Strana 3 od 5

24/03/2018. Deklaracija promenljivih. Inicijalizacija promenljivih. Deklaracija i inicijalizacija promenljivih

Uputstvo za podešavanje mail klijenta

Infrastruktura za elektronsko poslovanje (SI3IEP) Nemanja Kojić XML. extensible Markup Language. Copyright (C) 2010 by Nemanja Kojić

OSVRT NA NOSQL BAZE PODATAKA ČETIRI OSNOVNE TEHNOLOGIJE REVIEW OF NOSQL DATABASES FOUR BASIC TECHNOLOGIES

Baze podataka. Ovaj fajl je skinut sa sajta Uvod u SQL (Structured Query Language)

C++ minitutorial. Osnovni elementi i koncepti programskog jezika C++ uz primere

Moja naslovnica / Sveučilište u Zagrebu / Fakultet prometnih znanosti / Baze podataka / Opći dio / Izvanredni studenti - test za potpis

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

KREDITI ZA POLJOPRIVREDNIKE

KNOWLEDGE GRAPHS. Lecture 3: Modelling in RDF/Introduction to SPARQL. TU Dresden, 30th Oct Markus Krötzsch Knowledge-Based Systems

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 URI Uniform Resource Identifier IRI International Resource Identifier lokacija identifikator identifikator

Grafovi mogu imati imenovane resurse http://schema.org/name Jason Smith http://example.co m/person1 http://schema.org/ occupation programmer http://schema.org/affiliation http://schema.org/birthdate 1980-12-12 http://exampl e.com/compa ny1 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 Company model rdf:type name Jason Smith 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

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, producer : [ { name : Joel Silver }, { name : Lucas Foster } ], release_year : 1999

JSON-LD sintaksa JavaScript Object Notation for Linked Data 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", "url": "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": "http://schema.org/image", url": "http://schema.org/url", "name" : "Jason Smith", url : { }, @id : "http://jason.smith.org/" image : { } @id : http://jason.smith.org/images/jason.png 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 je 'homepage' skraćenica za 'http://schema.org/url'

Korišćenje @context elementa { } "@context": { "name": "http://schema.org/name", "image": { "@id": "http://schema.org/image", "@type": "@id" }, url": { "@id": "http://schema.org/url", "@type": "@id" } } "name" : "Jason Smith", url : "http://jason.smith.org/", image : http://jason.smith.org/images/jason.png Označava da string vrednostpropertija'image' treba da se interpretirakaoidentifikatorkoji je IRI Označava da string vrednostpropertija homepage' treba da se interpretirakaoidentifikatorkoji je IRI

Korišćenje @context elementa u dokumentu { } "@context : http://schema.org/ "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.

Definisanje tipa (klase) Tip (klasa) nekog čvora se definiše korišćenjem ključne reči @type. Tipovi se jedinstveno identifikuju preko IRI. { } "@context : http://schema.org/ @type : Person, "name": Jason Smith", "homepage": "http://jason.smith.org/", "image": "http://jason.smith.org/images/jason.png"

Definisanje tipa (klase) Čvor (resurs) može imati više klasa, što se definiše korišćenjem niza: { } "@vocab : http://schema.org/ @type : [ Person, Patient ], "name": Jason Smith", "homepage": "http://jason.smith.org/", "image": "http://jason.smith.org/images/jason.png"

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 rdf:type 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"

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

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