baza podataka za sioc (semantically interlinked on-line … · 2011-10-11 · u kontekstu baza...
TRANSCRIPT
SVEUČILIŠTE U ZAGREBUFAKULTET ORGANIZACIJE I INFORMATIKE
V A R A Ž D I N
Juraj Rasonja
Baza podataka za SIOC (semantically interlinked on-line communities)
i FOAF (friend of a friend)
ZAVRŠNI RAD
Varaždin, 2011.
SVEUČILIŠTE U ZAGREBUFAKULTET ORGANIZACIJE I INFORMATIKE
V A R A Ž D I N
Juraj Rasonja
Redoviti student
Broj indeksa: 35923/07-R
Smjer: Informacijski sustavi
Preddiplomski studij
Baza podataka za SIOC (semantically interlinked on-line communities)
i FOAF (friend of a friend)
ZAVRŠNI RAD
Mentor:
Dr. sc. Markus Schatten, viši asistent
Varaždin, lipanj 2011.
Sadržaj
1.UVOD .......................................................................................................................................................................... 1
2.EXTENSIBLE MARKUP LANGUAGE (XML) .................................................................................................... 2
2.1.PRIMJER XML DOKUMENTA ................................................................................................................................ 3
3.RESOURCE DESCRIPTION FRAMEWORK (RDF) .......................................................................................... 4
3.1.PRIMJER RDF DOKUMENTA ................................................................................................................................. 5
4.ONTOLOGIJA .......................................................................................................................................................... 6
5.SEMANTIČKI WEB ................................................................................................................................................. 7
6.FRIEND OF A FRIEND (FOAF) ........................................................................................................................... 10
6.1.KLASE I SVOJSTVA UNUTAR FOAF ONTOLOGIJE ............................................................................................... 10 Klase ................................................................................................................................................................... 10 Svojstva ............................................................................................................................................................... 12 Odnos klasa i svojstva ......................................................................................................................................... 15
7.SEMANTICALLY-INTERLINKED ONLINE COMMUNITIES (SIOC) ........................................................ 17
7.1.KLASE I SVOJSTVA UNUTAR SIOC ONTOLOGIJE ................................................................................................ 17 Klase ................................................................................................................................................................... 18 Svojstva ............................................................................................................................................................... 19 Odnos klasa i svojstva ......................................................................................................................................... 22
8.IMPLEMENTACIJA SIOC I FOAF ONTOLOGIJE ......................................................................................... 24
9.ZAKLJUČAK .......................................................................................................................................................... 27
10.LITERATURA ....................................................................................................................................................... 28
11.PRILOG 1 – SQL SKRIPTA ZA KREIRANJE BAZE PODATAKA ............................................................. 29
12.PRILOG 2 – SQL SKRIPTA ZA BRISANJE BAZE PODATAKA ................................................................. 38
I
1. Uvod
Prilikom traženja teme za završni rad, želio sam izabrati temu koja će obuhvatiti gradivo koje
sam prošao na preddiplomskom studiju. Također sam želio da ta tema bude u području u kojem
želim nastaviti svoje obrazovanje. Tako sam izabrao temu koja pokriva baze podataka i
semantički web.
Kako se tema završnog rada bazira na Semantically-Interlinked Online Communities i Friend of
a Friend ontologijama, prvo treba krenuti sa objašnjavanjem tehnologija koje su korištene za
definiranje ontologija. Na samom početku se nalazi Unicode što predstavlja set znakova koji se
koriste, te Uniform Resource Identifier pomoću kojeg se identificiraju objekti. Potom slijedi
EXtensible Markup Language i Resource Description Framework koji služe za opisivanje stvari
i objekata na Internetu. Na višoj razini se nalazi ontologija. Uz navedene tehnologije, postoje još
neke tehnologije koje čine semantički web.
Rad u sebi sadrži praktični dio koji će omogućiti pohranjivanje podataka vezanih uz ontologiju u
bazu podataka. Kao skladište podataka će se koristiti PostgreSQL sustav za upravljanje bazom
podataka. Dok će se za parsiranje datoteka koristiti skriptni jezik Python.
1
2. Extensible Markup Language (XML)
Extensible Markup Language, odnosno XML, definira niz pravila kako se kreira XML dokument
i koje elemente sadrži. Za neku se tekstualnu datoteku kaže da je XML datoteka ako dobro
oblikovana prema standardu i poštuje određena pravila koja su također navedena u standardu1
XML je format zapisa koji je prikladan računalu, a ujedno čovjeku omogućava čitanje
dokumenta tako da razumije sadržaj koji se u istom nalazi.
Slika 2.1. XML logo2
XML dokument u sebi sadrži Unicode znakove koji grupiranjem dobivaju značenje. Tako u
XML dokumentu postoje3:
− Unicode4 znak – predstavlja bilo koji znak koji se nalazi u Unicode standardizaciji
− sintaksna oznaka – svaki niz znakova koji počinu sa znakom ”<” i završavaju sa
znakom ”>”
− sadržaj – suprotno od sintakse oznake, odnosno sve što nije sintaksna oznaka
− oznaka – sintaksa oznaka sa značenjem, tako postoji početna oznaka ( npr. <pjesma>),
završna oznaka (npr. </pjesma>), te prazna oznaka (npr. <prazni_tag/>)
− element – logička cjelina u dokumentu koja ima početnu oznaku i odgovarajuću završnu
oznaku ili može biti samo prazna oznaka. Znakovi koji se nalaze između početne i
završne oznake se naziva sadržaj oznake. U sadržaju oznake se može nalaziti običan tekst
ili druge oznake koje se nazivaju djecom oznake.
− atribut – nalazi se unutar početne oznake ili prazne oznake. Svaki atribut ima svoj naziv
i vrijednost. Primjer oznake koje ima u sebi definirane atribute <sjedalo red="2"
stupac="3">
1The World Wide Web Consortium (W3C) : Extensible Markup Language (XML) 1.1 (Second Edition), on-line <http://www.w3.org/TR/2006/REC-xml11-20060816/>. učitano: 12.9.2011.2 Izvor slike:http://www.w3.org/Icons/XML/xml-horz-w3c.svg3 wikipedia.org: XML, on-line <http://www.wikipedia.org/wiki/XML>, učitano 12.9.2011.4 Unicode je standard za prikaz slova neovisno o jeziku, računalnom programu ili računalnoj platformi
2
Extensible Markup Language
− XML deklaracija – nalazi se na početku dokumenta i definira neke informacije o
dokumentu
XML je napravljen s ciljem da olakša programima, odnosno programeru, čitanje datoteka koje
su napravljene od strane drugih programa, tj. stvaranje na neki način univerzalnog formata za
pohranu podataka. Kako se u XML datoteci mogu se pohraniti bilo kakvi objekti, odnosno
podaci, moguće je definirati proizvoljne oznake koje će na adekvatan način opisati te objekte.
Tako korisnik može prema nazivu oznake koje se nalaze u datoteci odrediti zapravo o kojem se
objektu ili podatku radi.
Što se tiče XML i HTML5, može se reći da su slični. Ta dva standarda imaju sličnu struktura
zapisa unutar datoteke. Kao što XML ima proizvoljne oznake tako ih HTML nema. U tome se
XML razlikuje do HTML. Nasuprot XML, HTML ima strogo definirane oznake, čemu oni služe
i način njihova korištenja. No oni se razlikuju i po tome što HTML u sebi sadrži informaciju
kako podatke koje sadrži vizualno prikazati korisniku, dok XML opisuje strukturu dokumenta i
njegovo značenje.
2.1. Primjer XML dokumenta
1 <?xml version="1.0" encoding="UTF8"> 2 <pjesma> 3 <naziv>Muko moja, moj živote</naziv> 4 <autor_teksta>Miroslav Škoro</autor_teksta> 5 <skladatelj>Miroslav Škoro</skladatelj> 6 <izvodac>Stjepan Jeržek Štef</izvodac> 7 <trajanje_pjesme>3:31</trajanje_pjesme> 8 </pjesma>
Primjer 2.1. Primjer XML dokumenta
Primjer 2.1. pokazuje kako bi mogao izgledati XML dokument koji u sebi sadrži podatke o
pjesmi. U prvom redu dokumenta se nalazi deklaracija koja govori da se radi XML dokumentu
verzije 1.0 i da je tekst pisan UTF-8 standardom. Potom dolazi oznaka <pjesma> koja označava
početak opisa pjesme, a kraj označava oznaka </pjesma>. Između početne i završne oznake
nalazi se opis instance klase pjesma. Oznake <naziv>, <autor_teksta>, <skladatelj>, <izvodac> i
<trajanje_pjesme> nazivaju se djecom oznake <pjesma>. Pojedini navedena oznaka može kao
djecu imati neku drugu oznaku ili kao što je u ovom slučaju običan tekst.
5HTML (eng. HyperText Markup Language)3
3. Resource Description Framework (RDF)
RDF je napravljen kako bi potpomogao razvoju semantičkog weba i također postavio standard za
serijalizaciju podataka o ontologiji koja se opisuje. RDF je model temeljen na grafovima koji
opisuje resurse na Internetu (kao što su web stranice i e-mail poruke) i odnos između tih resursa.6
Slika 3.1. RDF logo7
Za definiranje RDF dokumenta, koriste se dvije različite sintakse. Jedna je XML, dok je druga
N38 sintaksa.
Slika 3.2. Graf za RDF/XML primjer
RDF prikazuje semantičke veze između resursa, osnovni elementi unutar RDF koji definiraju
izjavu u obliku uređene trojke su:
− Subjekt
− Predikat
− Objekt.
6 Developers Mozilla: RDF in Fifty Words or Less, on-line <https://developer.mozilla.org/en/RDF_in_Fifty_Words_or_Less>, učitano 12.9.2011.7 Izvor slike: http://www.w3.org/RDF/icons/rdf_w3c_icon.1288 Notation 3 (N3) koristi se za zapisivanje RDF modela i koristi se ukoliko je potrebno jednostavnije čitanje zapisa.
4
Veza je unutar uređene trojke je sljedeća:
Slika 3.3. Subjekt je povezan s objektom preko
predikata, svaki član uređene trojke je RDF resurs
3.1. Primjer RDF dokumenta
1 <rdf:RDF 2 xmlns:rdf="http://www.w3.org/1999/02/22rdfsyntaxns#" 3 xmlns:dc="http://purl.org/dc/elements/1.1/"> 4 <rdf:Description
rdf:about="http://en.wikipedia.org/wiki/Resource_Description_Framework"> 5 <dc:title>Resource Description Framework</dc:title> 6 <dc:publisher>Wikipedia</dc:publisher> 7 </rdf:Description> 8 </rdf:RDF>
Primjer 3.1. RDF dokument
Primjer 3.1. prikazuje sadržaj dokumenta u kojem opisuje resurs
"http://en.wikipedia.org/wiki/Resource_Description_Framework" i definira naslov resursa koji
glasi "Resource Description Framework", te naziv izdavača "Wikipedia".
5
4. Ontologija
Ontologija definira skup primitiva pomoću kojih se modelira domena znanja. Primitivi koji se
tipično koriste u ontologiji su:
− Klase (skupovi)
− Atributi (svojstva)
− Veze (relacije između klasa)
Definicija primitiva sadrži informacije o njegovom značenju i logičnoj primjeni samih primitiva.
U kontekstu baza podataka, ontologije se mogu promatrati kao razina apstrakcije podatkovnog
modela analogno hijerarhijskom i relacijskom modelu. Ali u pogledu modeliranja znanja o
individualcima, njihovim atributima i samim vezama između individualaca.9
U informacijskim znanostima ontologija predstavlja obrasce koji nadalje definira koncepte
unutar neke domene i odnose između tih koncepata. A cijeli postupak se provodi kako bi što
lakše razumjeli objekte i njihovu interakciju unutar predefinirane domene.
Ontologije u informacijskim znanostima se ponajviše koriste u:
− Semantičkom webu
− Umjetnoj inteligenciji
− Programskom inženjerstvu
Ali ontologije možemo promatrati kao najkorisnije u opisivanju podataka i veza koje opisu među
podacima, tako recimo u domeni pretraživača weba možemo koristiti ontologije za postavljanje
prije nezamislivih upita. Recima nad dobro definiranom ontologijom možemo bez problema
pretražiti proizvod po želi, primjer. Želimo naći crni mp3 player koji ima 4GB prostora i upada u
cjenovni razred od 100-200 kuna. Ovakav upit u klasičnim tražilicama bi zahtijevao puno truda i
vremena, dok takav upit nad dobro definiranom ontologijom u domeni pretraživača weba je
trivijalan. U semantičkom webu se ponajviše koristi OWL i RDF za definiranje ontologija. OWL
na raspolaganju ima sve gore navede preduvjete tj. sadržava sve potrebne primitive.
9Tom Gruber, Encyclopedia of Database Systems,Springer,2009.6
5. Semantički web
Semantički Web donosi strukturu u značajan sadržaj Web stranica, pri čemu stvara okruženje
gdje će programski agenti moći obrađivati Web stranice u svrhu izvršavanja složenih zadataka.
Semantički Web nije zaseban Web već je dodatak na već postojeći u kojem je informacijama
dodijeljeno dobro definirano značenje što omogućava bolju suradnju između računala i ljudi. 10
Principi semantičkog weba su primijenjeni kroz Web tehnologije i standarde koje možemo
vidjeti na Slici 5.2. Svaki sloj i element na slici predstavlja sastavni dio semantičkog weba, bez
ijednog od njih semantički web kao cjelina ne bi postojao.
Slika 5.1. Semantic Web logo11
URI (eng. Uniform Resource Identifier ): predstavlja niz znakova koji se koriste kako bi se
identificirao neki sadržaj koji se nalazi na Internetu, kao takav on se stavlja u temelj semantičkog
Weba jer se na temelju njega vrši sva kasnija identifikacija objekata.
Unicode: predstavlja skup znakova koji se koriste kao temelj semantičkom Webu, unicode je
izabran jer se trenutno u najviše koristi u industriji ako se želi zadržati dosljedan enkoding kroz
sve segmente. Jedan od najvažnijih razloga njegove raširene upotrebe jer podržava veliki spektar
znakova i tako je pogodan za širu upotrebu.
XML(Extended markup language): definira strukturu za serijalizaciju informacija o
semantičkom webu, detaljnije o XML u poglavlju koji se detaljno bavi XML-om i njegovom
upotrebom u semantičkom webu.
RDF(Resource Description Framework) :RDF je osnovni jezik za izražavanje na semantičkom
webu, detaljnije o RDF-u u poglavlju koje se detaljno bavi RDF-om i njegovom upotrebom u
semantičkom webu.
10Berners-Lee, T., Hendler, J. and Lassila, O. (2001).The Semantic Web. Scientific American.11 Izvor slike: http://www.w3.org/Icons/SW/sw-horz-w3c.png
7
Slika 5.2. Prikaz semantičkog weba u slojevima12
OWL(Web Ontology Language): OWL se temelji na deskriptivnoj logici, unutar OWL se
mogu detaljnije specificirati svi resursi koji su definirani unutar RDF-a i RDF Scheme. Resursi
dobiveni na taj način se unutar OWL-a predstavljaju koristeći jezične konstrukte koji se nalaze
unutar njega. Neki od najvažnijih konstrukta koji se nalaze u OWL-u su unija i presjek klasa,
kardinalnost klase ( broj dozvoljenih instanci klase) i naposljetku logički kvantifikatori.
Prilikom korištenja OWL-a ponuđene su tri mogućnosti korištenja zavisno o potrebi:
− OWL Full
− OWL DL
− OWL Lite
SPARQL (SPARQL Protocol and RDF Query Language): je jezik za postavljanje upita nad
RDF datotekama (slično kao što se SQL koristi u relacijskim bazama podataka). Ali za razliku
SQL u relacijskim bazama SPARQL podržava samo postavljanje upita nad podacima a ne
kreiranje ili izmjenjivanje podataka. SPARQL je specifično izrađen za upotrebu izvršavanja
upita nad podacima koji se nalaze na semantičkom webu i stoga sadržava razvijene algoritme za
što brže i efikasnije pretraživanje podataka, za koje SQL ne bi bio sposoban.
RIF (Rule Interchange Format): Kako bi se povećala ekspresivnost podataka prilikom
korištenja semantičkog weba uvedena su pravila. Definiranjem pravila unutar semantičkog weba
12 Izvor slike: http://www.w3.org/2006/Talks/1023-sb-W3CTechSemWeb/SemWebStack-tbl-2006a.pngs8
korisnici su u mogućnosti postaviti pravila koja rezultiraju predstavljanjem znanja koje se može
izvući pomoću tih pravila. Znanje proizlazi iz činjenice ako se ne ispuni postavljeno pravilo
zaključi ovo a u suprotnom zaključi ono što proizlazi iz istinitosti tog pravila. RIF pokušava
riješiti taj problem na način da sa svojom ekspresivnošću može predstaviti većinu formata
pravila i time uvodi standardizaciju u definiranje pravila na semantičkom webu.
Unifying logic i Proof: Zajednička logika (eng. Unifying logic) i dokaz (eng. Proof)
predstavljaju sloj koji bi trebao unificirati pravila definirana pomoću RIF-a i ontologije koja je
nastala kao posljedica korištenja OWL-a. Jer te dvije tehnologije zasebno ne daju nikakve
informacije, nego treba izvršiti rezoniranje nad ontologijom koristeći definirana pravila da bi se
dobilo potrebno znanje iz tih podataka.
Crypto: Crypto predstavlja praksu korištenja digitalnog potpisa kao mehanizam sigurnosti u
semantičkom web-u.
Trust: Povjerenje (eng. Trust) se bavi problemom točnosti podataka koje se nalaze na
semantičkom webu. Ti podaci se mog provjeriti preko digitalnog potpisa ili preko mreže
prijatelja ili FOAF-a koji je detaljnije opisan u ostatku rada.
9
6. Friend of a Friend (FOAF)
FOAF predstavlja projekt koji je namijenjen povezivanje ljudi i informacija koristeći Web
tehnologije. Unutar FOAF standardizacije se nalaze koncepti koji omogućuje povezivanje ljudi
sa dokumentima kojima su oni autori, sa korisničkih računima na online servisima, itd. Također
standardizacija služi za opisivanje dokumenata, grupa i ljudi.
Slika 7.1. FOAF logo13
FOAF povezuje tri tipa mreža:
− društvene mreže
− reprezentacijske mreže
− informacijske mreže
6.1. Klase i svojstva unutar FOAF ontologije
Klase
− foaf:Agent – predstavlja generalizaciju Person, Organization i Group klasa. Klasa Agent
se koristi ukoliko, npr. klasa Person je previše specifična. Također se koristi ukoliko
treba opisati bota14.
− foaf:Group – klasa Group predstavlja kolekciju individualnih Agenata. Group može biti
skupina bilo kojih individua koje dijele zajedničke interese ili imaju zajedničke
karakteristike. Klasa Group je podklasa klasi foaf:Agent.
− foaf:Organization – klasa predstavlja društvene institucije kao što su kompanije,
zajednice, organizacije. Klasa Organization je podklasa klasi foaf:Agent.
13 Izvor slike: http://upload.wikimedia.org/wikipedia/commons/b/b1/FoafLogo.svg14 Bot – program koji služi za automatsko odgovaranje na primljene poruke na nekom servisu za razgovor
10
− foaf:Person – klasa Person predstavlja osobu. Za klasu nije bitno da li je osoba živa,
stvarna ili izmišljena. Klasa Agent je nadklasa klasi Person.
− foaf:Document – klasa predstavlja dokumente koji mogu biti elektronični ili u
papirnatom obliku.
− foaf:Image – klasa predstavlja slike. Digitalne slike su jedan primjer slika. Klasa Image
je podklasa klasi foaf:Agent.
− foaf:OnlineAccount – klasa predstavlja korisnički računa na nekom internetskom
servisu.
− foaf:PersonalProfileDocument – klasa sadrži dokument koji predstavlja osobu. U tom
dokumentu je opisana samo jedna osoba. Klasa PersonalProfileDocument j podklasa klasi
foaf:Document.
− foaf:Project – predstavlja objekte, odnosno stvari koje su projekti. To mogu biti formalni
ili neformalni, zajednički ili pojedinačni projekti.
− foaf:LabelProperty – predstavlja bilo koje RDF svojstvo koje sadrži tekst koji ima
svrhu naziva objekta.
− foaf:OnlineChatAccount – klasa predstavlja korisnički račun koji se nalazi na nekom
Internet servisu za dopisivanje. Klasa OnlineChatAccount je podklasa klasi
foaf:OnlineAccount.
− foaf:OnlineEcommerceAccount – klasa predstavlja korisnički račun za Internet
trgovinu. To je OnlineAccount namijenjen za kupovinu, odnosno prodaju dobara. Klasa
OnlineEcommerceAccount je podklasa klasi foaf:OnlineAccount
− foaf:OnlineGamingAccount – korisnički račun za Internetske igre. Klasa
OnlineGamingAccount je podklasa klasi foaf:OnlineAccount
11
Svojstva
U FOAF standardizaciji postoji četiri stanja svojstva što se tiče njihove prihvaćenosti, odnosno
standardiziranosti. Dakle postoji stanje "stable" što označava da je svojstvo u potpunosti
prihvaćeno u standardizaciji i da u skoroj budućnosti neće mijenjati. Potom stanje "testing" koje
označava da je svojstvo većim dijelom standardizirano i da su moguće promjene ovisno o
daljnjem razvoju standardizacije. Zatim stanje "unstable" označava svojstva koja postoje ali nisu
standardizirana. Za ta su svojstva potrebna dodatna specifikacija. Također postoji i stanje
"archaic" što označava da se svojstvo ne koristi, ali postoji mogućnost da se to svojstvo ponovno
uvede u standardizaciju. Svojstva koja imaju stanje "archaic" nisu navedena u daljnjem tekstu.
− foaf:homepage (stable) – svojstvo predstavlja početnu stranice nekog objekta.
− foaf:isPrimaryTopicOf (stable) – predstavlja dokument koji označava temu nekog
objekta. Svojstvo isPrimaryTopicOf je inverzno svojstvo od foaf:primaryTopic.
− foaf:knows (stable) – označava vezu između osoba koje se poznaju.
− foaf:maker (inv. foaf:made) (stable) – svojstvo označava Agenta koji je napravio
objekt.
− foaf:mbox (stable) – predstavlja osobni poštanski sandučić, odnosno internetski
poštanski sandučić koji je povezan sa točno jednim vlasnikom.
− foaf:member (stable) – označava da je Agent pripadnik određene grupe.
− foaf:primaryTopic (stable) – definira glavnu temu neke stranice ili dokumenta.
− foaf:account (testing) – predstavlja korisnički račun koji je povezan sa Agentom.
− foaf:accountName (testing) – definira ime (identifikator) korisničkog računa.
− foaf:accountServiceHomepage (testing) – predstavlja početnu stranicu servisu na
kojem se nalazi korisnički račun.
− foaf:aimChatID (testing) – identifikator za AIM15 korisnički račun
− foaf:currentProject (testing) – svojstvo predstavlja projekt na kojem osoba trenutno
radi.
15AIM – servis za komunikaciju preko Interneta12
− foaf:depiction (testing) – predstavlja slikovni prikaz nekog objekta
− foaf:depicts (testing) – označava objekt koji se nalazi na slici.
− foaf:familyName (testing) – svojstvo sadrži prezime osobe.
− foaf:firstName (testing) - sadrži ime osobe.
− foaf:focus (testing) – predstavlja temeljni entitet koji je povezan sa nekim SKOS16
konceptom
− foaf:gender (testing) – označava rod agenta.
− foaf:givenName (testing) – predstavlja ime osobe.
− foaf:icqChatID (testing) – sadrži identifikator za ICQ17 korisnički račun
− foaf:img (testing) – sadrži sliku koja se može koristiti za prikaz nekog objekta
− foaf:interest (testing) – dokument koji pokazuje interes neke osobe.
− foaf:jabberID (testing) – sadrži identifikator za Jabber servis.
− foaf:lastName (testing) – predstavlja prezime osobe
− foaf:logo (testing) – predstavlja logo nekog objekta
− foaf:mbox_sha1sum (testing) – sadrži sha1 kod od URI-a internetskog poštanskog
sandučića.
− foaf:msnChatID (testing) – sadrži identifikator za MSN18 servis
− foaf:myersBriggs (testing) – sadrži Myers-Briggs19 klasifikaciju osobnosti.
− foaf:name (testing) – sadrži naziv nekog objekta.
− foaf:nick (testing) – predstavlja nadimak koji karakterizira agenta
− foaf:openid (testing) – sadrži OpenID za agenta.20
− foaf:page (testing) – predstavlja stranicu ili dokument o objektu koji sadrži ovo svojstvo
− foaf:pastProject (testing) – predstavlja projekt na kojem je osoba prije radila.
16 Simple Knowledge Organization System (SKOS) – http://www.w3.org/2004/02skos/17ICQ – servis za komunikaciju preko Interneta18MSN – servis za komunikaciju preko Interneta19 Myres-Briggs : http://en.wikipedia.org/wiki/Myers-Briggs_Type_Indicator20 OpenID : http://openid.net/
13
− foaf:phone (testing) – sadrži broj telefona definiran sa tel: URI shemi
− foaf:plan (testing) – odnosi se na sadržaj plan datoteke koja se nalazi na UNIX
sustavima
− foaf:publications (testing) – svojstvo sadrži publikacije osobe.
− foaf:schoolHomepage (testing) – predstavlja početnu stranice školske ustanove koju
osoba pohađa.
− foaf:skypeID (testing) – sadrži identifikator Skype21 servisa za online komunikaciju
− foaf:thumbnail (testing) – predstavlja umanjenu sliku originalne slike
− foaf:tipjar (testing) – tipjar dokument za agenta koji opisuje načine za plaćanje i
nagrade.
− foaf:title (testing) – definira titulu osobe
− foaf:topic (testing) – predstavlja temu neke stranice ili dokumenta
− foaf:topic_interest (testing) – predmet interesa određene osobe.
− foaf:weblog (testing) - predstavlja blog o nekom objektu
− foaf:workInfoHomepage (testing) – definira početnu stranicu koja sadrži opis posla
kojim se osoba bavi.
− foaf:workplaceHomepage (testing) – sadrži početnu stranicu radnog mjesta, odnosno
organizacije gdje osoba radi.
− foaf:yahooChatID (testing) – identifikator za Yahoo korisnički račun
− foaf:age (unstable) – predstavlja broj godina koliko je neka osoba stara.
− foaf:birthday (unstable) – predstavlja datum rođenja osobe.
− foaf:membershipClass (unstable) – predstavlja klasu individua koje su pripadnici
određene grupe.
− foaf:sha1 (unstable) – predstavlja sha1 kod dokumenta.
− foaf:status (unstable) – predstavlja kratki opis trenutnog raspoloženja osobe
21Skype - servis za komunikaciju preko Interneta14
Odnos klasa i svojstva
Tablica 7.1. prikazuje odnose svojstva i klasa koje se nalaze unutar FOAF standardizacije.
svojstvo(inverzno svojstvo) Domena Kodomena
foaf:homepage owl:Thing foaf:Document
foaf:knows foaf:Person foaf:Person
foaf:made(foaf:maker) foaf:Agent owl:Thing
foaf:mbox foaf:Agent owl:Thing
foaf:member foaf:Group foaf:Agent
foaf:primaryTopic(foaf:isPrimaryTopicOf)
foaf:Document owl:Thing
foaf:account foaf:Agent foaf:OnlineAccount
foaf:accountName foaf:OnlineAccount rdfs:Literal
foaf:accountServiceHomepage foaf:OnlineAccount foaf:Document
foaf:aimChatID foaf:Agent rdf:Literal
foaf:currentProject foaf:Person owl:Thing
foaf:depiction(foaf:depicts) owl:Thing foaf:Image
foaf:familyName foaf:Person rdfs:Literal
foaf:firstName foaf:Person rdfs:Literal
foaf:gender foaf:Agent rdfs:Literal
foaf:givenName foaf:Agent rdfs:Literal
foaf:icqChatID foaf:Agent rdfs:Literal
foaf:img foaf:Person foaf:Image
foaf:interest foaf:Agent foaf:Document
foaf:jabberID foaf:Agent rdfs:Literal
foaf:lastName foaf:Person rdfs:Literal
foaf:logo owl:Thing owl:Thing
foaf:mbox_sha1sum foaf:Agent rdfs:Literal
foaf:msnChatID foaf:Agent rdfs:Literal
foaf:myersBriggs foaf:Person rdfs:Literal
foaf:name owl:Thing rdfs:Literal
foaf:nick foaf:Person rdfs:Literal
foaf:openid foaf:Agent foaf:Document
foaf:page owl:Thing foaf:Document
foaf:pastProject foaf:Person owl:Thing
foaf:phone owl:Thing rdfs:Literal
15
foaf:plan foaf:Person rdfs:Literal
foaf:publications foaf:Person foaf:Document
foaf:schoolHomepage foaf:Person foaf:Document
foaf:skypeID foaf:Agent rdfs:Literal
foaf:thumbnail foaf:Image foaf:Image
foaf:tipjar foaf:Agent foaf:Document
foaf:title foaf:Person rdfs:Literal
foaf:topic foaf:Document owl:Thing
foaf:topic_interest foaf:Agent owl:Thing
foaf:weblog foaf:Agent foaf:Document
foaf:workInfoHomepage foaf:Person foaf:Document
foaf:workplaceHomepage foaf:Person foaf:Document
foaf:yahooChatID foaf:Agent rdfs:Literal
foaf:age foaf:Agent rdfs:Literal
foaf:birthday foaf:Agent rdfs:Literal
foaf:sha1 foaf:Document rdfs:Literal
Tablica 7.1. Prikaz svojstava i njihovi odgovarajućih domena i kodomena
16
7. Semantically-Interlinked Online Communities (SIOC)
Do sada je bio problem povezati online zajednice sa različitih stranica. Kako podaci koji opisuju
te zajednice nisu bili standardizirani, autor sustava je imao slobodu na svoj načine interpretirati
podatke. To uzrokuje da svaka online zajednica ima na svoj specifičan način definirane podatke i
time je teže povezati istu sa ostalim zajednicama.
Slika 6.1. SIOC logo22
SIOC predstavlja ontologiju za semantički web i namijenjen je za međusobno povezivanje
različitih sustava za diskusiju poput blogova, foruma i mailing lista, odnosno online zajednica.
Ontologija u sebi sadrži set klasa koji omogućava standardizirani opis online zajednice i time je
lako jednu zajednicu povezati sa drugom.
7.1. Klase i svojstva unutar SIOC ontologije
Ontologija u sebi sadrži 11 klasa čiji je odnos prikazan slikom 6.2. Klasa Tag, odnosno
Category, trenutno je prikazana na slici 6.2., ali ona nije definirana u trenutnoj specifikaciji. Ta
klasa se planira uvesti u sljedećim iteracijama specifikacije.
Slika 6.2. Prikaz odnosa klasa u SIOC ontologiji23
22 Izvor slike: http://sioc-project.org/files/sioc_logo.gif23 Izvor slike: http://rdfs.org/sioc/spec/img/main_classes_properties.png
17
Klase
− sioc:Community – klasa predstavlja zajednicu u kojoj mogu biti definirani različiti
tipovi objekata (poput ljudi, Internet stranica, foruma) koje povezuje zajednički interes ili
cilj. Ova klasa se razlikuje od klase Site koja inače predstavlja samo jednu Internet
mjesto.
− sioc:Container – općenita klasa koja u sebi može sadržavati različite instance klase Item
koje povezuje zajednički sadržaj. Klasa je povezana sa klasom Item preko svojstva
sioc:container_of i sioc:has_container. Također je moguće definirati hijerarhiju među
instancama klase preko svojstava sioc:parent_of i sioc:has_parent.
− sioc:Forum – je podklasa klasi sioc:Container. Klasa predstavlja područje u kojem se
nalaze instance klase Post. Forum se može nalaziti na nekoj Internet stranici što je
definirano svojstvom sioc:has_host. Također forum može imati moderatora što je
definirano svojstvom sioc:has_moderator.
− sioc:Item – je nadklasa klasi sioc:Post. Predstavlja općenitu klasu objektima koji mogu
biti postavljeni na forum.
− sioc:Post – klasa predstavlja poruku koja može biti postavljena na forumu od strane
korisnika. Neki postovi mogu biti povezani ukoliko dijele zajedničku temu rasprave.
− sioc:Role – predstavlja ulogu, odnosno funkciju, nekog korisnika u određenom području
djelovanja.
− sioc:Site – klasa koja predstavlja lokaciju na kojoj se nalazi samo jedna online zajednica
ili više njih.
− sioc:Space – klasa predstavlja prostor gdje se mogu nalaziti različiti objekti.
− sioc:Thread – odnosi se na niz postova ili predmeta koji su povezani zajedničkom
temom ili nečime drugim.
− sioc:UserAccount – korisnik koji pripada nekoj online zajednici
− sioc:Usergroup – grupa korisnika koji dijele zajednički interes ili cilj. Korisnici se mogu
grupirati ukoliko imaju zajedničku ulogu na nekom forumu ili možda ako odgovaraju na
određeni forum.
18
Svojstva
− sioc:about – specificira resurs koji predmet obrade nekog posta
− sioc:account_of – odnosi se na klasu foaf:Agent ili foaf:Person koji je vlasnik
UserAccounta
− sioc:addressed_to – definira osobu, e-mail adresu, korisnika za kojeg je određeni post
namijenjen
− sioc:administrator_of (inv. sioc:has_administrator) – predstavlja Site na kojoj je
UserAccount administrator.
− sioc:attachment – URI datoteke koja se odnosi na određeni Item
− sioc:avatar – sadrži sliku koja predstavlja UserAccount
− sioc:container_of (inv. sioc:has_container)– sadrži Item koji se nalazi unutar
Containera. Svojstvo predstavlja vezu između Containera ili Foruma prema Itemu,
odnosno Postu
− sioc:content – sadrži tekst koji predstavlja sadržaj Itema
− sioc:creator_of (inv. sioc:has_creator) – povezuje korisnika sa resursom kojeg je
stvorio
− sioc:earlier_version – poveznica prema ranijoj verziji Itema ili Posta
− sioc:email – predstavlja email adresu korisnika. Za email adresu se uglavnom uzima
primarna adresa korisnika.
− sioc:email_sha1 – korisnička email adresa kodirana sa SHA1
− sioc:embeds_knowledge – ovo svojstvo povezuje Item sa uklopljenim izjavama,
činjenicama i strukturiranim sadržajem
− sioc:feed – povezuje resurs (Forum, Site,..) sa njemu odgovarajućim RSS feed-om (ili
Atom, itd.)
− sioc:follows – predstavlja da jedan UserAccount prati drugi UserAccount, odnosno
njegove aktivnosti unutar online zajednice.
− sioc:function_of (inv. sioc:has_function) – povezuje Role sa UserAccountom. kod
inverznog svojstva, UserAccount može imati različite Role na različitim Forumima.
19
− sioc:has_discussion – povezuje Item sa odgovarajućom diskusijom, dok ono može biti
sioc:Forum, sioct:WikiArticle ili foaf:Document.
− sioc:has_host (inv. sioc:host_of) –sadrži Site na kojem se Forum nalazi.
− sioc:member_of(inv. has_member) - Usergroup u kojem se UserAccount nalazi
− sioc:moderator_of(inv. has_moderator) - predstavlja Forum kojem je UserAccount
moderator
− sioc:modifier_of(inv. has_modifier) - predstavlja Item kojeg je UserAccount izmijenio.
− sioc:owner_of(inv. has_owner) - predstavlja resurs kojem je UserAccoutn vlasnik.
− sioc:parent_of(inv. has_parent) - predstavlja dijete Container ili Forum kojem je ovaj
Container ili Forum roditelj.
− sioc:reply_of(inv. as_reply) - predstavlja Item ili Post kao odgovor na Item ili Post.
− sioc:scope_of(inv. has_scope) - predstavlja Role koji ima doseg na ovaj resurs
− sioc:space_of(inv. has_space) - predstavlja resurs koji pripada određenom Spaceu
− sioc:subscriber_of(inv. has_subscriber) - predstavlja Container na koji je UserAccount
pretplaćen
− sioc:usergroup_of(inv. has_usergroup) - predstavlja Space koji ovaj Usergroup ima
pravo pristupa.
− sioc:id - identifikator u SOIC ontologiji. ID mora biti jedinstven za svaki resurs unutar
iste online zajednice.
− sioc:ip_address - sadrži IP adresu autora Itema.
− sioc:last_activity_date - vrijeme zadnje aktivnosti koja se dogodila na resursu
− sioc:last_item_date - vrijeme zadnjeg Posta ili Itema unutar Foruma, odnosno
Containera.
− sioc:last_reply_date - vrijeme zadnjeg odgovora na Item ili Post.
− sioc:latest_version - predstavlja Item koji je zadnja verzija Itema
− sioc:link - predstavlja URI dokumenta koji sadrži ovaj SIOC objekt
20
− sioc:links_to - predstavlja link koji se nalazi unutar Posta ili Sitea
− sioc:name - sadrži naziv ili ime objekta unutar SIOC ontologije
− sioc:next_by_date(inv. previous_by_date) - sljedeći Item ili Post po vremenu unutar
danog Containera
− sioc:next_version(inv. previous_version) - predstavlja sljedeću verziju Itema ili Posta
− sioc:note - predstavlja zabilješku u vezi objekta
− sioc:num_authors - broj jedinstveni autora na Itemu, Postu ili Threadu...
− sioc:num_items - broj Postova (ili Itema) u Forumu (ili Containeru)
− sioc:num_replies - broj odgovora koji Item, Thread ili Post ima.
− sioc:num_threads - broj Thredova unutar foruma
− sioc:num_views - broj koliko puta je neki objekt pregledan
− sioc:related_to - predstavlja Post koji je u vez sa ovim Postom
− sioc:sibling - koristi se za povezivanje Itema koji su isti (ili malo različit), ali se nalaze u
različitom Containeru.
− sioc:topic - predstavlja temu s kojom je objekt povezan
21
Odnos klasa i svojstva
Tablica 6.1. prikazuje odnos svojstva i klasa na takav način da za svako svojstvo je navedeno u
kojoj se klasi ono nalazi, odnosno domeni i koju vrijednost svojstvo može poprimiti, odnosno
kodomena svojstva.
svojstvo(inverzno svojstvo) Domena Kodomena
sioc:about sioc:Item rdf:resource24
sioc:account_of(has_account) sioc:UserAccount foaf:Agent
sioc:addressed_to sioc:Item
sioc:administrator_of(has_administrator
sioc:UserAccount sioc:Site
sioc:attachment sioc:Item rdf:resource
sioc:avatar sioc:UserAccount rdf:resource
sioc:container_of(has_container)
sioc:Container sioc:Item
sioc:content sioc:Item rdfs:Literal25
sioc:creator_of(has_creator) sioc:UserAccount sioc:Item
sioc:earlier_version(later_version)
sioc:Item sioc:Item
sioc:email sioc:UserAccount rdfs:Literal
sioc:email_sha1 sioc:UserAccount rdfs:Literal
sioc:embeds_knowledge sioc:Item http://www.w3.org/2004/03/trix/rdfg-1/:Graph
sioc:feed owl:Thing rdf:resource
sioc:follow sioc:UserAccount sioc:UserAccount
sioc:function_of(has_function) sioc:Role sioc:UserAccount
sioc:has_discussion sioc:Item rdf:resource
sioc:host_of(has_host) sioc:Site sioc:Forum
sioc:member_of(has_member) sioc:UserAccount sioc:Usergroup
sioc:moderator_of(has_moderator)
sioc:UserAccount sioc:Item
sioc:modifier_of(has_modifier)
sioc:UserAccount sioc:Item
sioc:owner_of(has_owner) sioc:UserAccount owl:Thing
sioc:parent_of(has_parent) sioc:Container sioc:Container
24 rdf:resource je dio RDF specifikacije i predstavlja URI na neki vanjski dokument25 rdfs:Literal je dio RDF specifikacije, a odnosi se na tekst, broj, datum ...
22
sioc:reply_of(has_reply) sioc:Item sioc:Item
sioc:scope_of(has_scope) sioc:Role
sioc:space_of(has_space) sioc:Space
sioc:subscriber_of(has_subscriber)
sioc:UserAccount sioc:Container
sioc:usergroup_of(has_usergroup)
sioc:Usergroup sioc:Space
sioc:id rdfs:Literal
sioc:ip_address sioc:Item rdfs:Literal
sioc:last_activity_date rdfs:Literal
sioc:last_item_date sioc:Container rdfs:Literal
sioc:last_reply_date sioc:Item rdfs:Literal
sioc:latest_version sioc:Item sioc:Item
sioc:link
sioc:links_to
sioc:name rdfs:Literal
sioc:next_by_date(previous_by_date)
sioc:Item sioc:Item
sioc:next_version(previous_version)
sioc:Item sioc:Item
sioc:note rdfs:Literal
sioc:num_authors xsd:nonNegativeInteger26
sioc:num_items sioc:Container xsd:nonNegativeInteger
sioc:num_replies xsd:nonNegativeInteger
sioc:num_threads sioc:Forum xsd:nonNegativeInteger
sioc:num_views xsd:nonNegativeInteger
sioc:related_to
sioc:sibling sioc:Item sioc:Item
sioc:topic
Tablica 6.1. Prikaz svojstava i njihovi odgovarajućih domena i kodomena
Prema SIOC standardizaciji, nekim svojstvima nije točno definirana koja im je domena, odnosno
kodomena. Kod takvih svojstava, domena je uglavnom bilo koja klasa ili se može uzeti klasa
owl:Thing i sve njezine podklase. Dok kod kodomene može biti owl:Thing, rdfs:Literal ili
rdf:Resource.
26 xsd:nonNegativeInteger predstavlja cijeli broj koji nije negativan23
8. Implementacija SIOC i FOAF ontologije
U ontologijama postoji odnos nadklasa, podklasa između klasa što omogućava da u bazi
podataka nije potrebno za svaku klasu raditi tablicu sa svim atributima koje ta klasa može imati.
U tom slučaju je dovoljno za podklasu definirati tablicu koja će imati atribute specifične za tu
klasu, te prilikom čitanje iz baze podataka, ostale atribute dohvatiti preko reference na nadklasu.
Kako je klasa owl:Thing je nadklasa svim klasama, njezina tablica sadrži sve atribute koji su
zajednički svim klasama unutar ontologije. Na nju se referenciraju sve ostale klase.
Uzmimo na primjer klasu sioc:Forum. Njoj je nadklasa sioc:Container, te nadnadklasa
owl:Thing. Kako bi se prilikom čitanja podataka za objekt Forum, potrebno je doći do
vrijednosti svih atributa. Dio atributa koji su specifični za sioc:Forum nalaze se u istoimenoj
tablici u kojoj se nalazi i referenca na tablicu "sioc:Container" gdje se nalaze dodatni atributi koji
su vezani za traženi objekt. Porotom tablica "sioc:Container" sadrži referencu na tablicu
"owl:Thing" gdje se nalaze svi preostali atributi. Da bi se pročitali svi podaci za određeni objekt
tipa Forum, potrebno je pročitati podatke iz tri tablice.
Kod implementacije baze podataka za SIOC, treba napomenuti da za neke klase nisu definirane
posebne tablice, već se podaci vezani za instancu te klase spremaju u tablici koja predstavlja
nadklasu. Uzmimo na primjer klasu sioc:Usergroup. Prema SIOC specifikaciji, ukoliko objekt
sadrži svojstvo sioc:has_member, taj objekt je instanca klase sioc:Usergroup. U ovom slučaju
svojstvo sioc:has_member, i njemu inverzno svojstvo sioc:, je realizirano pomoću dodatne
tablice "sioc:Usergroup_sioc:UserAccount" pri čemu nema dodatnog svojstva koje bi moglo reći
da se radi o navedenoj klasi. Stoga se podaci instance spremaju u tablicu koja predstavlja
nadklasu, što je u ovom slučaju owl:Thing. Unutar SIOC ontologije, uz klasu sioc:Usergoup, kod
implementacije baze podataka postoji još klasa čiji se podaci instance spremaju u tablicu
nadklase. To su:
− sioc:Thread – podaci se pohranjuju u tablicu koja prezentira sioc:Container klasu
− sioc:Role – podaci se pohranjuju u "owl:Thing" tablicu
− sioc:Space – također se podaci pohranjuju u tablicu "owl:Thing"
− sioc:Site – iako je ova klasa podklasa klasi sioc:Space, a i navedeno je da se podaci za
Space pohranjuju u tablicu "owl:Thing", podaci za Site se također pohranjuju u navedenu
tablicu.
24
Prema ovoj implementaciji, također postoje klase iz FOAF ontologije čiji se podaci instance
pohranjuju u tablice nadklasa. Za FOAF, to su:
− foaf:Group – pohranjuje se u "foaf:Agent"
− foaf:Organization – pohranjuje se u "foaf:Agent"
− foaf:Image – pohranjuje se u "foaf:Document"
− foaf:PersonalProfileDocument – pohranjuje se u "foaf:Document"
− foaf:OnlineChatAccount – pohranjuje se u "foaf:OnlineAccount"
− foaf:OnlineEcommerceAccount – pohranjuje se u "foaf:OnlineAccount"
− foaf:OnlineGamingAccount – pohranjuje se u "foaf:OnlineAccount"
Kako bi se znalo prilikom čitanja iz baze podataka znalo o kojoj se klasi radi, dodana ja tablica
"sioc_foaf_class". Navedena tablica sadrži nazive svih klasa koje postoje u SIOC i u FOAF
ontologiji. Na tu tablice se referencira vanjski ključ "sioc_foaf_classid" iz tablice "owl:Thing"
što prilikom čitanja podataka o objektima definira tip objekta.
25
Slika 8.1. Entity-Relation dijagram baze podataka za SIOC i FOAF ontologije
26
9. Zaključak
FOAF ontologiju bi trebalo doraditi jer je mali broj klasa i svojstva koji su u potpunosti
prihvaćeni u standardizaciji. Također bi bilo potrebno smanjiti redudanciju među svojstvima jer
većina svojstava nije dobro definirana i zbog toga se javljaju preklapanja među semantikom. Kod
SIOC ontologije također postoje svojstva koja su nedovoljno definirana. Time otežava
implementacija samoh ontologija.
Postoji veliki broj primjera gdje se kod generiranih SIOC i FOAF datoteka ne definiraju svi
podaci te se time ne iskorištavaju sva svojstva i semantiku koju ontologije pružaju i time objekti
ostaju nedorečeni i gubi se smisao semantičkog weba gdje bi sve trebalo biti povezano. To se
može izbjeći ukoliko se bolje standardiziraju ontologije i veze prema drugim ontologijama.
Kod implementacije ontologija u relacijskoj bazi podataka i pohranjivanje podataka iz ontologija
javlja se problem da veći dio atributa nema vrijednosti što dovodi do bespotrebnog zauzeća
memorijskog prostora. U većini slučajeva se dogodi da se kreira objekt koji ima samo vrijednost
za svojstvo rdf:resource.
Potrebno je napomenuti da su obje ontologije još u razvoju, te takve podliježu promjenama. No
to ne mora biti glavni razlog promjenama. Moguće je u skoroj budućnosti da se definiraju i
standardiziraju nove ontologije koje će moći nadopunjavati već postojeće.
27
10. Literatura
1. The World Wide Web Consortium (W3C). XML TECHNOLOGY. Dostupno 12.9.2011. na
http://www.w3.org/standards/xml/
2. Wikipedia. Extensible Markup Language. Dostupno 12.9.2011. na
http://en.wikipedia.org/wiki/XML
3. Erik T. Ray. (2001). Learning XML. O'Reilly
4. Elliote R. Harold. (2001). XML Bible, Second Edition. New York: Hungry Minds
5. The World Wide Web Consortium (W3C). Resource Description Framework (RDF).
Dostupno 12.9.2011. na http://www.w3.org/RDF/
6. The World Wide Web Consortium (W3C). RDF Primer. Dostupno 12.9.2011. na
http://www.w3.org/TR/rdf-primer/
7. Wikipedia. Resource Description Framework. Dostupno 12.9.2011. na
http://en.wikipedia.org/wiki/Resource_Description_Framework
8. Shelley Powers. (2003). Practical RDF. O'Reilly
9. Shadbolt, N., Hall, W., Berners-Lee, T. (2006). The Semantic Web Revisited. IEEE
Intelligent Systems
10. RDFS.org. SIOC Core Ontology Specification. Dostupno 12.9.2011. na
http://xmlns.com/sioc/spec/
11. xmlns.com. FOAF Vocabulary Specification 0.98. Dostupno 12.9.2011. na
http://rdfs.org/foaf/spec/
12. Berners-Lee, T., Hendler, J. and Lassila, O. (2001).The Semantic Web. Scientific American.
28
11. Prilog 1 – SQL skripta za kreiranje baze podataka
1 CREATE TABLE "owl:Thing" (2 id SERIAL NOT NULL, 3 "rdf:about" varchar(255), 4 "rdfs:label" varchar(255), 5 "rdf:resource" varchar(255), 6 "rdfs:seeAlso" varchar(255), 7 sioc_foaf_classid int4, 8 "sioc:has_creator" int4, 9 "sioc:feed" varchar(255), 10 "sioc:has_owner" int4, 11 "sioc:id" int4, 12 "sioc:last_activity_date" timestamp, 13 "sioc:link" varchar(255), 14 "sioc:name" varchar(30), 15 "sioc:note" text, 16 "sioc:num_authors" int4, 17 "sioc:num_views" int4, 18 "sioc:topic" varchar(255), 19 "foaf:homepage" int4 NOT NULL, 20 "foaf:maker" int4 NOT NULL, 21 "foaf:mbox" int4 NOT NULL, 22 "foaf:name" int4, 23 "foaf:phone" varchar(20), 24 "foaf:page" int4 NOT NULL, 25 PRIMARY KEY (id));26 CREATE TABLE "sioc:UserAccount_sioc:Site" (27 "sioc:UserAccountid" int4 NOT NULL, 28 "sioc:Siteid" int4 NOT NULL, 29 PRIMARY KEY ("sioc:UserAccountid", 30 "sioc:Siteid"));31 CREATE TABLE "sioc:UserAccount_sioc:Item" (32 "sioc:UserAccountid" int4 NOT NULL, 33 "sioc:Itemid" int4 NOT NULL, 34 PRIMARY KEY ("sioc:UserAccountid", 35 "sioc:Itemid"));36 CREATE TABLE "sioc:Item_sioc:Item" (37 "sioc:Itemid" int4 NOT NULL, 38 "sioc:Itemid2" int4 NOT NULL, 39 PRIMARY KEY ("sioc:Itemid", 40 "sioc:Itemid2"));41 CREATE TABLE "sioc:Forum_sioc:UserAccount" (42 "sioc:Forumid" int4 NOT NULL, 43 "sioc:UserAccountid" int4 NOT NULL, 44 PRIMARY KEY ("sioc:Forumid", 45 "sioc:UserAccountid"));46 CREATE TABLE "sioc:Role_owl:Thing" (47 "sioc:Roleid" int4 NOT NULL, 48 "owl:Thingid" int4 NOT NULL, 49 PRIMARY KEY ("sioc:Roleid", 50 "owl:Thingid"));51 CREATE TABLE "sioc:Container" (52 id int4 NOT NULL, 53 "sioc:has_parent" int4, 54 "sioc:last_item_date" timestamp, 55 "sioc:num_items" int4, 56 PRIMARY KEY (id));
29
57 CREATE TABLE "sioc:UserAccount_sioc:Usergroup" (58 "sioc:UserAccountid" int4 NOT NULL, 59 "sioc:Usergroupid" int4 NOT NULL, 60 PRIMARY KEY ("sioc:UserAccountid", 61 "sioc:Usergroupid"));62 CREATE TABLE "sioc:UserAccount_sioc:UserAccount" (63 "sioc:UserAccountid" int4 NOT NULL, 64 "sioc:UserAccountid2" int4 NOT NULL, 65 PRIMARY KEY ("sioc:UserAccountid", 66 "sioc:UserAccountid2"));67 CREATE TABLE "sioc:Container_sioc:UserAccount" (68 "sioc:Containerid" int4 NOT NULL, 69 "sioc:UserAccountid" int4 NOT NULL, 70 PRIMARY KEY ("sioc:Containerid", 71 "sioc:UserAccountid"));72 CREATE TABLE "sioc:Usergroup_sioc:Space" (73 "sioc:Usegroupid" int4 NOT NULL, 74 "sioc:Spaceid" int4 NOT NULL, 75 PRIMARY KEY ("sioc:Usegroupid", 76 "sioc:Spaceid"));77 CREATE TABLE "sioc:Forum" (78 id int4 NOT NULL, 79 "sioc:has_host" int4 NOT NULL, 80 "sioc:num_threads" int4, 81 PRIMARY KEY (id));82 CREATE TABLE "sioc:Item" (83 id int4 NOT NULL, 84 "sioc:about" varchar(255), 85 "sioc:addressed_to" varchar(50), 86 "sioc:attachment" varchar(255), 87 "sioc:has_container" int4, 88 "sioc:content" text, 89 "sioc:earlier_version" int4, 90 "sioc:embeds_knowledge" varchar(255), 91 "sioc:has_discussion" varchar(255), 92 "sioc:has_reply" int4, 93 "sioc:ip_address" varchar(16), 94 "sioc:last_reply_date" timestamp, 95 "sioc:latest_version" int4 NOT NULL, 96 "sioc:next_version" int4 NOT NULL, 97 "sioc:num_replies" int4, 98 "sioc:previous_by_date" int4 NOT NULL, 99 PRIMARY KEY (id));100 CREATE TABLE "sioc:Space_owl:Thing" (101 "sioc:Spaceid" int4 NOT NULL, 102 "owl:Thingid" int4 NOT NULL, 103 PRIMARY KEY ("sioc:Spaceid", 104 "owl:Thingid"));105 CREATE TABLE "sioc:UserAccount" (106 id int4 NOT NULL, 107 "sioc:account_of" int4 NOT NULL, 108 "sioc:avatar" varchar(255), 109 "sioc:email" varchar(50), 110 "sioc:email_sha1" varchar(50), 111 PRIMARY KEY (id));112 CREATE TABLE "sioc:Role_sioc:UserAccount" (113 "sioc:Roleid" int4 NOT NULL, 114 "sioc:UserAccountid" int4 NOT NULL, 115 PRIMARY KEY ("sioc:Roleid",
30
116 "sioc:UserAccountid"));117 CREATE TABLE "foaf:Person_owl:Thing2" (118 "foaf:Personid" int4 NOT NULL, 119 "owl:Thingid" int4 NOT NULL, 120 PRIMARY KEY ("foaf:Personid", 121 "owl:Thingid"));122 CREATE TABLE "foaf:Group_foaf:Agent" (123 "foaf:Groupid" int4 NOT NULL, 124 "foaf:Agentid2" int4 NOT NULL, 125 PRIMARY KEY ("foaf:Groupid", 126 "foaf:Agentid2"));127 CREATE TABLE "foaf:Agent_foaf:Document" (128 "foaf:Agentid" int4 NOT NULL, 129 "foaf:Documentid" int4 NOT NULL, 130 PRIMARY KEY ("foaf:Agentid", 131 "foaf:Documentid"));132 CREATE TABLE "foaf:Document" (133 id int4 NOT NULL, 134 "foaf:sha1" varchar(50), 135 "foaf:topic" int4 NOT NULL, 136 "foaf:weblog" int4 NOT NULL, 137 PRIMARY KEY (id));138 CREATE TABLE "foaf:Document_owl:Thing" (139 "foaf:Documentid" int4 NOT NULL, 140 "owl:Thingid" int4 NOT NULL, 141 PRIMARY KEY ("foaf:Documentid", 142 "owl:Thingid"));143 CREATE TABLE "foaf:Person_foaf:Person" (144 "foaf:Personid" int4 NOT NULL, 145 "foaf:Personid2" int4 NOT NULL, 146 PRIMARY KEY ("foaf:Personid", 147 "foaf:Personid2"));148 CREATE TABLE "foaf:Image" (149 id int4 NOT NULL, 150 "foaf:depicts" int4 NOT NULL, 151 "foaf:thumbnail" int4 NOT NULL, 152 PRIMARY KEY (id));153 CREATE TABLE "foaf:Person_owl:Thing" (154 "foaf:Personid" int4 NOT NULL, 155 "owl:Thingid" int4 NOT NULL, 156 PRIMARY KEY ("foaf:Personid", 157 "owl:Thingid"));158 CREATE TABLE "foaf:OnlineAccount" (159 id int4 NOT NULL, 160 "foaf:accountName" varchar(50), 161 "foaf:account" int4 NOT NULL, 162 "foaf:accountServiceHomepage" int4 NOT NULL, 163 PRIMARY KEY (id));164 CREATE TABLE "foaf:Agent" (165 id int4 NOT NULL, 166 "foaf:aimChatId" varchar(50), 167 "foaf:gender" varchar(10), 168 "foaf:icqChatID" varchar(50), 169 "foaf:jabberID" varchar(50), 170 "foaf:mbox_sha1sum" varchar(50), 171 "foaf:msnChatID" varchar(50), 172 "foaf:skypeID" varchar(50), 173 "foaf:yahooChatID" varchar(50), 174 "foaf:age" int4,
31
175 "foaf:birthday" varchar(30), 176 "foaf:givenName" varchar(50), 177 "foaf:tipjar" int4 NOT NULL, 178 "foaf:topic_interest" int4 NOT NULL, 179 PRIMARY KEY (id));180 CREATE TABLE "foaf:Person" (181 id int4 NOT NULL, 182 "foaf:familyName" varchar(20), 183 "foaf:firstNme" varchar(20), 184 "foaf:lastName" varchar(20), 185 "foaf:myersBriggs" varchar(10), 186 "foaf:Nick" varchar(20), 187 "foaf:plan" varchar(255), 188 "foaf:title" varchar(30), 189 "foaf:img" int4 NOT NULL, 190 "foaf:schoolHomepage" int4 NOT NULL, 191 "foaf:workInfoHomepage" int4 NOT NULL, 192 "foaf:workplaceHomepage" int4 NOT NULL, 193 PRIMARY KEY (id));194 CREATE TABLE "foaf:Person_foaf:Document" (195 "foaf:Personid" int4 NOT NULL, 196 "foaf:Documentid" int4 NOT NULL, 197 PRIMARY KEY ("foaf:Personid", 198 "foaf:Documentid"));199 CREATE TABLE sioc_foaf_class (200 id SERIAL NOT NULL, 201 class_name varchar(30), 202 PRIMARY KEY (id));203 ALTER TABLE "foaf:Person" ADD CONSTRAINT "foaf:workInfoHomepage"
FOREIGN KEY ("foaf:workInfoHomepage") REFERENCES "foaf:Document" (id) ON UPDATE Cascade ON DELETE Set null;
204 ALTER TABLE "foaf:Person" ADD CONSTRAINT "foaf:workplaceHomepage" FOREIGN KEY ("foaf:workplaceHomepage") REFERENCES "foaf:Document" (id) ON UPDATE Cascade ON DELETE Set null;
205 ALTER TABLE "foaf:Document" ADD CONSTRAINT "foaf:weblog" FOREIGN KEY ("foaf:weblog") REFERENCES "foaf:Agent" (id) ON UPDATE Cascade ON DELETE Set null;
206 ALTER TABLE "foaf:Agent" ADD CONSTRAINT "foaf:topic_interest" FOREIGN KEY ("foaf:topic_interest") REFERENCES "owl:Thing" (id) ON UPDATE Cascade ON DELETE Set null;
207 ALTER TABLE "foaf:Document" ADD CONSTRAINT "foaf:topic" FOREIGN KEY ("foaf:topic") REFERENCES "owl:Thing" (id) ON UPDATE Cascade ON DELETE Set null;
208 ALTER TABLE "foaf:Agent" ADD CONSTRAINT "foaf:tipjar" FOREIGN KEY ("foaf:tipjar") REFERENCES "foaf:Document" (id) ON UPDATE Cascade ON DELETE Set null;
209 ALTER TABLE "foaf:Image" ADD CONSTRAINT "foaf:thumbnail" FOREIGN KEY ("foaf:thumbnail") REFERENCES "foaf:Image" (id) ON UPDATE Cascade ON DELETE Set null;
210 ALTER TABLE "foaf:Person" ADD CONSTRAINT "foaf:schoolHomepage" FOREIGN KEY ("foaf:schoolHomepage") REFERENCES "foaf:Document" (id);
211 ALTER TABLE "foaf:Person_foaf:Document" ADD CONSTRAINT "FKfoaf:Perso293488" FOREIGN KEY ("foaf:Documentid") REFERENCES "foaf:Document" (id) ON UPDATE Cascade ON DELETE Cascade;
212 ALTER TABLE "foaf:Person_foaf:Document" ADD CONSTRAINT "foaf:publications" FOREIGN KEY ("foaf:Personid") REFERENCES "foaf:Person" (id) ON UPDATE Cascade ON DELETE Cascade;
32
213 ALTER TABLE "owl:Thing" ADD CONSTRAINT "foaf:page" FOREIGN KEY ("foaf:page") REFERENCES "foaf:OnlineAccount" (id) ON UPDATE Cascade ON DELETE Set null;
214 ALTER TABLE "foaf:Person_owl:Thing2" ADD CONSTRAINT "FKfoaf:Perso782873" FOREIGN KEY ("owl:Thingid") REFERENCES "owl:Thing" (id) ON UPDATE Cascade ON DELETE Cascade;
215 ALTER TABLE "foaf:Person_owl:Thing2" ADD CONSTRAINT "foaf:pastProject" FOREIGN KEY ("foaf:Personid") REFERENCES "foaf:Person" (id) ON UPDATE Cascade ON DELETE Cascade;
216 ALTER TABLE "foaf:Agent_foaf:Document" ADD CONSTRAINT "FKfoaf:Agent220754" FOREIGN KEY ("foaf:Documentid") REFERENCES "foaf:Document" (id) ON UPDATE Cascade ON DELETE Cascade;
217 ALTER TABLE "foaf:Agent_foaf:Document" ADD CONSTRAINT "foaf:interest" FOREIGN KEY ("foaf:Agentid") REFERENCES "foaf:Agent" (id) ON UPDATE Cascade ON DELETE Cascade;
218 ALTER TABLE "foaf:Person" ADD CONSTRAINT "foaf:img" FOREIGN KEY ("foaf:img") REFERENCES "foaf:Image" (id) ON UPDATE Cascade ON DELETE Set null;
219 ALTER TABLE "foaf:Image" ADD CONSTRAINT "foaf:depiction(foaf:depicts)" FOREIGN KEY ("foaf:depicts") REFERENCES "owl:Thing" (id) ON UPDATE Cascade ON DELETE Cascade;
220 ALTER TABLE "foaf:Person_owl:Thing" ADD CONSTRAINT "FKfoaf:Perso824916" FOREIGN KEY ("owl:Thingid") REFERENCES "owl:Thing" (id);
221 ALTER TABLE "foaf:Person_owl:Thing" ADD CONSTRAINT "foaf:currentProject" FOREIGN KEY ("foaf:Personid") REFERENCES "foaf:Person" (id) ON UPDATE Cascade ON DELETE Cascade;
222 ALTER TABLE "foaf:OnlineAccount" ADD CONSTRAINT "foaf:accountServiceHomePage" FOREIGN KEY ("foaf:accountServiceHomepage") REFERENCES "foaf:Document" (id) ON UPDATE Cascade ON DELETE Cascade;
223 ALTER TABLE "foaf:OnlineAccount" ADD CONSTRAINT "foaf:account" FOREIGN KEY ("foaf:account") REFERENCES "foaf:Agent" (id) ON UPDATE Cascade ON DELETE Cascade;
224 ALTER TABLE "foaf:Document_owl:Thing" ADD CONSTRAINT "foaf:isPrimayTopic" FOREIGN KEY ("owl:Thingid") REFERENCES "owl:Thing" (id) ON UPDATE Cascade ON DELETE Cascade;
225 ALTER TABLE "foaf:Document_owl:Thing" ADD CONSTRAINT "foaf:primaryTopic" FOREIGN KEY ("foaf:Documentid") REFERENCES "foaf:Document" (id) ON UPDATE Cascade ON DELETE Cascade;
226 ALTER TABLE "foaf:Group_foaf:Agent" ADD CONSTRAINT "FKfoaf:Group783780" FOREIGN KEY ("foaf:Agentid2") REFERENCES "foaf:Agent" (id);
227 ALTER TABLE "foaf:Group_foaf:Agent" ADD CONSTRAINT "foaf:member" FOREIGN KEY ("foaf:Groupid") REFERENCES "foaf:Agent" (id) ON UPDATE Cascade ON DELETE Cascade;
228 ALTER TABLE "owl:Thing" ADD CONSTRAINT "foaf:mbox" FOREIGN KEY ("foaf:mbox") REFERENCES "foaf:Agent" (id) ON UPDATE Cascade ON DELETE Cascade;
229 ALTER TABLE "owl:Thing" ADD CONSTRAINT "foaf:made(foaf:maker)" FOREIGN KEY ("foaf:maker") REFERENCES "foaf:Agent" (id) ON UPDATE Cascade ON DELETE Cascade;
230 ALTER TABLE "foaf:Person_foaf:Person" ADD CONSTRAINT "foaf:knows" FOREIGN KEY ("foaf:Personid2") REFERENCES "foaf:Person" (id) ON UPDATE Cascade ON DELETE Cascade;
231 ALTER TABLE "foaf:Person_foaf:Person" ADD CONSTRAINT "foaf:knows_" FOREIGN KEY ("foaf:Personid") REFERENCES "foaf:Person" (id) ON UPDATE Cascade ON DELETE Cascade;
232 ALTER TABLE "owl:Thing" ADD CONSTRAINT "foaf:homepage" FOREIGN KEY ("foaf:homepage") REFERENCES "foaf:Document" (id) ON UPDATE Cascade ON DELETE Set null;
33
233 ALTER TABLE "sioc:Usergroup_sioc:Space" ADD CONSTRAINT "sioc:has_usergorup" FOREIGN KEY ("sioc:Spaceid") REFERENCES "owl:Thing" (id) ON UPDATE Cascade ON DELETE Cascade;
234 ALTER TABLE "sioc:Usergroup_sioc:Space" ADD CONSTRAINT "sioc:usergroup_of" FOREIGN KEY ("sioc:Usegroupid") REFERENCES "owl:Thing" (id) ON UPDATE Cascade ON DELETE Cascade;
235 ALTER TABLE "foaf:Image" ADD CONSTRAINT "FKfoaf:Image743785" FOREIGN KEY (id) REFERENCES "foaf:Document" (id) ON UPDATE Cascade ON DELETE Cascade;
236 ALTER TABLE "foaf:Person" ADD CONSTRAINT "FKfoaf:Perso102920" FOREIGN KEY (id) REFERENCES "foaf:Agent" (id) ON UPDATE Cascade ON DELETE Cascade;
237 ALTER TABLE "sioc:UserAccount_sioc:Usergroup" ADD CONSTRAINT "sioc:has_member" FOREIGN KEY ("sioc:Usergroupid") REFERENCES "owl:Thing" (id) ON UPDATE Cascade ON DELETE Cascade;
238 ALTER TABLE "sioc:Space_owl:Thing" ADD CONSTRAINT "sioc:has_space" FOREIGN KEY ("sioc:Spaceid") REFERENCES "owl:Thing" (id) ON UPDATE Cascade ON DELETE Cascade;
239 ALTER TABLE "sioc:Forum" ADD CONSTRAINT "sioc:host_of(sioc:has_host)" FOREIGN KEY ("sioc:has_host") REFERENCES "owl:Thing" (id) ON UPDATE Cascade ON DELETE Set null;
240 ALTER TABLE "sioc:UserAccount_sioc:Site" ADD CONSTRAINT "sioc:has_administrator" FOREIGN KEY ("sioc:Siteid") REFERENCES "owl:Thing" (id) ON UPDATE Cascade ON DELETE Cascade;
241 ALTER TABLE "sioc:Role_sioc:UserAccount" ADD CONSTRAINT "sioc:function_of" FOREIGN KEY ("sioc:Roleid") REFERENCES "owl:Thing" (id) ON UPDATE Cascade ON DELETE Cascade;
242 ALTER TABLE "sioc:Role_owl:Thing" ADD CONSTRAINT "sioc:has_scope" FOREIGN KEY ("sioc:Roleid") REFERENCES "owl:Thing" (id) ON UPDATE Cascade ON DELETE Cascade;
243 ALTER TABLE "sioc:Item_sioc:Item" ADD CONSTRAINT "sioc:sibling_" FOREIGN KEY ("sioc:Itemid2") REFERENCES "sioc:Item" (id) ON UPDATE Cascade ON DELETE Cascade;
244 ALTER TABLE "sioc:Item_sioc:Item" ADD CONSTRAINT "sioc:sibling" FOREIGN KEY ("sioc:Itemid") REFERENCES "sioc:Item" (id) ON UPDATE Cascade ON DELETE Cascade;
245 ALTER TABLE "sioc:Item" ADD CONSTRAINT "sioc:next_by_date(sioc:previous_by_date)" FOREIGN KEY ("sioc:previous_by_date") REFERENCES "sioc:Item" (id) ON UPDATE Cascade ON DELETE Set null;
246 ALTER TABLE "sioc:Item" ADD CONSTRAINT "sioc:previous_version(sioc:next_version)" FOREIGN KEY ("sioc:next_version") REFERENCES "sioc:Item" (id) ON UPDATE Cascade ON DELETE Set null;
247 ALTER TABLE "sioc:Item" ADD CONSTRAINT "sioc:latest_version" FOREIGN KEY ("sioc:latest_version") REFERENCES "sioc:Item" (id) ON UPDATE Cascade ON DELETE Set null;
248 ALTER TABLE "sioc:Container_sioc:UserAccount" ADD CONSTRAINT "sioc:subscriber_of" FOREIGN KEY ("sioc:UserAccountid") REFERENCES "sioc:UserAccount" (id) ON UPDATE Cascade ON DELETE Cascade;
249 ALTER TABLE "sioc:Container_sioc:UserAccount" ADD CONSTRAINT "sioc:has_subscriber" FOREIGN KEY ("sioc:Containerid") REFERENCES "sioc:Container" (id) ON UPDATE Cascade ON DELETE Cascade;
250 ALTER TABLE "sioc:Space_owl:Thing" ADD CONSTRAINT "sioc:space_of" FOREIGN KEY ("owl:Thingid") REFERENCES "owl:Thing" (id) ON UPDATE Cascade ON DELETE Cascade;
251 ALTER TABLE "sioc:Role_owl:Thing" ADD CONSTRAINT "sioc:scope_of" FOREIGN KEY ("owl:Thingid") REFERENCES "owl:Thing" (id) ON UPDATE Cascade ON DELETE Cascade;
34
252 ALTER TABLE "sioc:Item" ADD CONSTRAINT "sioc:reply_of(sioc:has_reply)" FOREIGN KEY ("sioc:has_reply") REFERENCES "sioc:Item" (id) ON UPDATE Cascade ON DELETE Set null;
253 ALTER TABLE "sioc:Container" ADD CONSTRAINT "sioc:parent_of(sioc:has_parent)" FOREIGN KEY ("sioc:has_parent") REFERENCES "sioc:Container" (id) ON UPDATE Cascade ON DELETE Set null;
254 ALTER TABLE "owl:Thing" ADD CONSTRAINT "sioc:owner_of(sioc:has_owner)" FOREIGN KEY ("sioc:has_owner") REFERENCES "sioc:UserAccount" (id) ON UPDATE Cascade ON DELETE Cascade;
255 ALTER TABLE "sioc:UserAccount_sioc:Item" ADD CONSTRAINT "sioc:has_modifier" FOREIGN KEY ("sioc:Itemid") REFERENCES "sioc:Item" (id) ON UPDATE Cascade ON DELETE Cascade;
256 ALTER TABLE "sioc:UserAccount_sioc:Item" ADD CONSTRAINT "sioc:modifier_of" FOREIGN KEY ("sioc:UserAccountid") REFERENCES "sioc:UserAccount" (id) ON UPDATE Cascade ON DELETE Cascade;
257 ALTER TABLE "sioc:Forum_sioc:UserAccount" ADD CONSTRAINT "sioc:moderator_of" FOREIGN KEY ("sioc:UserAccountid") REFERENCES "sioc:UserAccount" (id) ON UPDATE Cascade ON DELETE Cascade;
258 ALTER TABLE "sioc:Forum_sioc:UserAccount" ADD CONSTRAINT "sioc:has_moderator" FOREIGN KEY ("sioc:Forumid") REFERENCES "sioc:Forum" (id) ON UPDATE Cascade ON DELETE Cascade;
259 ALTER TABLE "sioc:UserAccount_sioc:Usergroup" ADD CONSTRAINT "sioc:member_of" FOREIGN KEY ("sioc:UserAccountid") REFERENCES "sioc:UserAccount" (id) ON UPDATE Cascade ON DELETE Cascade;
260 ALTER TABLE "sioc:Role_sioc:UserAccount" ADD CONSTRAINT "sioc:has_function" FOREIGN KEY ("sioc:UserAccountid") REFERENCES "sioc:UserAccount" (id) ON UPDATE Cascade ON DELETE Cascade;
261 ALTER TABLE "sioc:UserAccount_sioc:UserAccount" ADD CONSTRAINT "(follow_by)" FOREIGN KEY ("sioc:UserAccountid2") REFERENCES "sioc:UserAccount" (id) ON UPDATE Cascade ON DELETE Cascade;
262 ALTER TABLE "sioc:UserAccount_sioc:UserAccount" ADD CONSTRAINT "sioc:follows" FOREIGN KEY ("sioc:UserAccountid") REFERENCES "sioc:UserAccount" (id) ON UPDATE Cascade ON DELETE Cascade;
263 ALTER TABLE "sioc:Item" ADD CONSTRAINT "sioc:later_version(sioc:earlier_version)" FOREIGN KEY ("sioc:earlier_version") REFERENCES "sioc:Item" (id) ON UPDATE Cascade ON DELETE Set null;
264 ALTER TABLE "owl:Thing" ADD CONSTRAINT "sioc:creator_of(sioc:has_creator)" FOREIGN KEY ("sioc:has_creator") REFERENCES "sioc:UserAccount" (id) ON UPDATE Cascade ON DELETE Set null;
265 ALTER TABLE "sioc:Item" ADD CONSTRAINT "sioc:container_of(sioc:has_container)" FOREIGN KEY ("sioc:has_container") REFERENCES "sioc:Container" (id) ON UPDATE Cascade ON DELETE Set null;
266 ALTER TABLE "sioc:UserAccount_sioc:Site" ADD CONSTRAINT "sioc:administrator_of" FOREIGN KEY ("sioc:UserAccountid") REFERENCES "sioc:UserAccount" (id) ON UPDATE Cascade ON DELETE Cascade;
267 ALTER TABLE "sioc:UserAccount" ADD CONSTRAINT "foaf:account(sioc:account_of)" FOREIGN KEY ("sioc:account_of") REFERENCES "foaf:Agent" (id) ON UPDATE Cascade ON DELETE Cascade;
268 ALTER TABLE "foaf:Agent" ADD CONSTRAINT "FKfoaf:Agent387433" FOREIGN KEY (id) REFERENCES "owl:Thing" (id) ON UPDATE Cascade ON DELETE Cascade;
269 ALTER TABLE "sioc:UserAccount" ADD CONSTRAINT "FKsioc:UserA812211" FOREIGN KEY (id) REFERENCES "foaf:OnlineAccount" (id) ON UPDATE Cascade ON DELETE Cascade;
270 ALTER TABLE "foaf:OnlineAccount" ADD CONSTRAINT "FKfoaf:Onlin624376" FOREIGN KEY (id) REFERENCES "owl:Thing" (id) ON UPDATE Cascade ON DELETE Cascade;
35
271 ALTER TABLE "foaf:Document" ADD CONSTRAINT "FKfoaf:Docum478291" FOREIGN KEY (id) REFERENCES "owl:Thing" (id) ON UPDATE Cascade ON DELETE Cascade;
272 ALTER TABLE "sioc:Item" ADD CONSTRAINT "FKsioc:Item902159" FOREIGN KEY (id) REFERENCES "owl:Thing" (id) ON UPDATE Cascade ON DELETE Cascade;
273 ALTER TABLE "sioc:Forum" ADD CONSTRAINT "FKsioc:Forum801541" FOREIGN KEY (id) REFERENCES "sioc:Container" (id) ON UPDATE Cascade ON DELETE Cascade;
274 ALTER TABLE "sioc:Container" ADD CONSTRAINT "FKsioc:Conta116502" FOREIGN KEY (id) REFERENCES "owl:Thing" (id) ON UPDATE Cascade ON DELETE Cascade;
275 ALTER TABLE "owl:Thing" ADD CONSTRAINT "FKowl:Thing990503" FOREIGN KEY (sioc_foaf_classid) REFERENCES sioc_foaf_class (id) ON UPDATE Cascade ON DELETE Set null;
276 ALTER TABLE "owl:Thing" ADD CONSTRAINT "FKowl:Thing990504" FOREIGN KEY (sioc_foaf_classid) REFERENCES sioc_foaf_class (id) ON UPDATE Cascade ON DELETE Set null;
277 ALTER TABLE "sioc:Container" ADD CONSTRAINT "FKsioc:Conta116503" FOREIGN KEY (id) REFERENCES "owl:Thing" (id) ON UPDATE Cascade ON DELETE Cascade;
278 ALTER TABLE "sioc:Forum" ADD CONSTRAINT "FKsioc:Forum801542" FOREIGN KEY (id) REFERENCES "sioc:Container" (id) ON UPDATE Cascade ON DELETE Cascade;
279 ALTER TABLE "sioc:Item" ADD CONSTRAINT "FKsioc:Item902160" FOREIGN KEY (id) REFERENCES "owl:Thing" (id) ON UPDATE Cascade ON DELETE Cascade;
280 ALTER TABLE "sioc:UserAccount" ADD CONSTRAINT "FKsioc:UserA812212" FOREIGN KEY (id) REFERENCES "foaf:OnlineAccount" (id) ON UPDATE Cascade ON DELETE Cascade;
281 ALTER TABLE "foaf:Person_owl:Thing2" ADD CONSTRAINT "FKfoaf:Perso782874" FOREIGN KEY ("owl:Thingid") REFERENCES "owl:Thing" (id) ON UPDATE Cascade ON DELETE Cascade;
282 ALTER TABLE "foaf:Group_foaf:Agent" ADD CONSTRAINT "FKfoaf:Group783781" FOREIGN KEY ("foaf:Agentid2") REFERENCES "foaf:Agent" (id);
283 ALTER TABLE "foaf:Agent_foaf:Document" ADD CONSTRAINT "FKfoaf:Agent220755" FOREIGN KEY ("foaf:Documentid") REFERENCES "foaf:Document" (id) ON UPDATE Cascade ON DELETE Cascade;
284 ALTER TABLE "foaf:Document" ADD CONSTRAINT "FKfoaf:Docum478292" FOREIGN KEY (id) REFERENCES "owl:Thing" (id) ON UPDATE Cascade ON DELETE Cascade;
285 ALTER TABLE "foaf:Image" ADD CONSTRAINT "FKfoaf:Image743786" FOREIGN KEY (id) REFERENCES "foaf:Document" (id) ON UPDATE Cascade ON DELETE Cascade;
286 ALTER TABLE "foaf:Person_owl:Thing" ADD CONSTRAINT "FKfoaf:Perso824917" FOREIGN KEY ("owl:Thingid") REFERENCES "owl:Thing" (id);
287 ALTER TABLE "foaf:OnlineAccount" ADD CONSTRAINT "FKfoaf:Onlin624377" FOREIGN KEY (id) REFERENCES "owl:Thing" (id) ON UPDATE Cascade ON DELETE Cascade;
288 ALTER TABLE "foaf:Agent" ADD CONSTRAINT "FKfoaf:Agent387434" FOREIGN KEY (id) REFERENCES "owl:Thing" (id) ON UPDATE Cascade ON DELETE Cascade;
289 ALTER TABLE "foaf:Person" ADD CONSTRAINT "FKfoaf:Perso102921" FOREIGN KEY (id) REFERENCES "foaf:Agent" (id) ON UPDATE Cascade ON DELETE Cascade;
290 ALTER TABLE "foaf:Person_foaf:Document" ADD CONSTRAINT "FKfoaf:Perso293489" FOREIGN KEY ("foaf:Documentid") REFERENCES "foaf:Document" (id) ON UPDATE Cascade ON DELETE Cascade;
291 292 INSERT INTO sioc_foaf_class (class_name) VALUES ('foaf:Agent');293 INSERT INTO sioc_foaf_class (class_name) VALUES ('foaf:Document');
36
294 INSERT INTO sioc_foaf_class (class_name) VALUES ('foaf:Group');295 INSERT INTO sioc_foaf_class (class_name) VALUES ('foaf:Image');296 INSERT INTO sioc_foaf_class (class_name) VALUES ('foaf:OnlineAccount');297 INSERT INTO sioc_foaf_class (class_name) VALUES
('foaf:OnlineChatAccount');298 INSERT INTO sioc_foaf_class (class_name) VALUES
('foaf:OnlineGamingAccount');299 INSERT INTO sioc_foaf_class (class_name) VALUES ('foaf:Organization');300 INSERT INTO sioc_foaf_class (class_name) VALUES ('foaf:Person');301 INSERT INTO sioc_foaf_class (class_name) VALUES
('foaf:PersonalProfileDocument');302 INSERT INTO sioc_foaf_class (class_name) VALUES
('foaf:OnlineEcommerceAccount');303 INSERT INTO sioc_foaf_class (class_name) VALUES ('owl:Thing');304 INSERT INTO sioc_foaf_class (class_name) VALUES ('sioc:Container');305 INSERT INTO sioc_foaf_class (class_name) VALUES ('sioc:Forum');306 INSERT INTO sioc_foaf_class (class_name) VALUES ('sioc:Item');307 INSERT INTO sioc_foaf_class (class_name) VALUES ('sioc:UserAccount');308 INSERT INTO sioc_foaf_class (class_name) VALUES ('sioc:Post');309 INSERT INTO sioc_foaf_class (class_name) VALUES ('sioc:Site');310 INSERT INTO sioc_foaf_class (class_name) VALUES ('sioc:Space');311 INSERT INTO sioc_foaf_class (class_name) VALUES ('sioc:Role');312 INSERT INTO sioc_foaf_class (class_name) VALUES ('sioc:Usergroup');313 INSERT INTO sioc_foaf_class (class_name) VALUES ('sioc:Thread');
37
12. Prilog 2 – SQL skripta za brisanje baze podataka
1 ALTER TABLE "foaf:Person" DROP CONSTRAINT "foaf:workInfoHomepage";2 ALTER TABLE "foaf:Person" DROP CONSTRAINT "foaf:workplaceHomepage";3 ALTER TABLE "foaf:Document" DROP CONSTRAINT "foaf:weblog";4 ALTER TABLE "foaf:Agent" DROP CONSTRAINT "foaf:topic_interest";5 ALTER TABLE "foaf:Document" DROP CONSTRAINT "foaf:topic";6 ALTER TABLE "foaf:Agent" DROP CONSTRAINT "foaf:tipjar";7 ALTER TABLE "foaf:Image" DROP CONSTRAINT "foaf:thumbnail";8 ALTER TABLE "foaf:Person" DROP CONSTRAINT "foaf:schoolHomepage";9 ALTER TABLE "foaf:Person_foaf:Document" DROP CONSTRAINT
"FKfoaf:Perso293488";10 ALTER TABLE "foaf:Person_foaf:Document" DROP CONSTRAINT
"foaf:publications";11 ALTER TABLE "owl:Thing" DROP CONSTRAINT "foaf:page";12 ALTER TABLE "foaf:Person_owl:Thing2" DROP CONSTRAINT
"FKfoaf:Perso782873";13 ALTER TABLE "foaf:Person_owl:Thing2" DROP CONSTRAINT "foaf:pastProject";14 ALTER TABLE "foaf:Agent_foaf:Document" DROP CONSTRAINT
"FKfoaf:Agent220754";15 ALTER TABLE "foaf:Agent_foaf:Document" DROP CONSTRAINT "foaf:interest";16 ALTER TABLE "foaf:Person" DROP CONSTRAINT "foaf:img";17 ALTER TABLE "foaf:Image" DROP CONSTRAINT "foaf:depiction(foaf:depicts)";18 ALTER TABLE "foaf:Person_owl:Thing" DROP CONSTRAINT
"FKfoaf:Perso824916";19 ALTER TABLE "foaf:Person_owl:Thing" DROP CONSTRAINT
"foaf:currentProject";20 ALTER TABLE "foaf:OnlineAccount" DROP CONSTRAINT
"foaf:accountServiceHomePage";21 ALTER TABLE "foaf:OnlineAccount" DROP CONSTRAINT "foaf:account";22 ALTER TABLE "foaf:Document_owl:Thing" DROP CONSTRAINT
"foaf:isPrimayTopic";23 ALTER TABLE "foaf:Document_owl:Thing" DROP CONSTRAINT
"foaf:primaryTopic";24 ALTER TABLE "foaf:Group_foaf:Agent" DROP CONSTRAINT
"FKfoaf:Group783780";25 ALTER TABLE "foaf:Group_foaf:Agent" DROP CONSTRAINT "foaf:member";26 ALTER TABLE "owl:Thing" DROP CONSTRAINT "foaf:mbox";27 ALTER TABLE "owl:Thing" DROP CONSTRAINT "foaf:made(foaf:maker)";28 ALTER TABLE "foaf:Person_foaf:Person" DROP CONSTRAINT "foaf:knows";29 ALTER TABLE "foaf:Person_foaf:Person" DROP CONSTRAINT "foaf:knows_";30 ALTER TABLE "owl:Thing" DROP CONSTRAINT "foaf:homepage";31 ALTER TABLE "sioc:Usergroup_sioc:Space" DROP CONSTRAINT
"sioc:has_usergorup";32 ALTER TABLE "sioc:Usergroup_sioc:Space" DROP CONSTRAINT
"sioc:usergroup_of";33 ALTER TABLE "foaf:Image" DROP CONSTRAINT "FKfoaf:Image743785";34 ALTER TABLE "foaf:Person" DROP CONSTRAINT "FKfoaf:Perso102920";35 ALTER TABLE "sioc:UserAccount_sioc:Usergroup" DROP CONSTRAINT
"sioc:has_member";36 ALTER TABLE "sioc:Space_owl:Thing" DROP CONSTRAINT "sioc:has_space";37 ALTER TABLE "sioc:Forum" DROP CONSTRAINT "sioc:host_of(sioc:has_host)";38 ALTER TABLE "sioc:UserAccount_sioc:Site" DROP CONSTRAINT
"sioc:has_administrator";39 ALTER TABLE "sioc:Role_sioc:UserAccount" DROP CONSTRAINT
"sioc:function_of";40 ALTER TABLE "sioc:Role_owl:Thing" DROP CONSTRAINT "sioc:has_scope";41 ALTER TABLE "sioc:Item_sioc:Item" DROP CONSTRAINT "sioc:sibling_";
38
42 ALTER TABLE "sioc:Item_sioc:Item" DROP CONSTRAINT "sioc:sibling";43 ALTER TABLE "sioc:Item" DROP CONSTRAINT
"sioc:next_by_date(sioc:previous_by_date)";44 ALTER TABLE "sioc:Item" DROP CONSTRAINT
"sioc:previous_version(sioc:next_version)";45 ALTER TABLE "sioc:Item" DROP CONSTRAINT "sioc:latest_version";46 ALTER TABLE "sioc:Container_sioc:UserAccount" DROP CONSTRAINT
"sioc:subscriber_of";47 ALTER TABLE "sioc:Container_sioc:UserAccount" DROP CONSTRAINT
"sioc:has_subscriber";48 ALTER TABLE "sioc:Space_owl:Thing" DROP CONSTRAINT "sioc:space_of";49 ALTER TABLE "sioc:Role_owl:Thing" DROP CONSTRAINT "sioc:scope_of";50 ALTER TABLE "sioc:Item" DROP CONSTRAINT "sioc:reply_of(sioc:has_reply)";51 ALTER TABLE "sioc:Container" DROP CONSTRAINT
"sioc:parent_of(sioc:has_parent)";52 ALTER TABLE "owl:Thing" DROP CONSTRAINT "sioc:owner_of(sioc:has_owner)";53 ALTER TABLE "sioc:UserAccount_sioc:Item" DROP CONSTRAINT
"sioc:has_modifier";54 ALTER TABLE "sioc:UserAccount_sioc:Item" DROP CONSTRAINT
"sioc:modifier_of";55 ALTER TABLE "sioc:Forum_sioc:UserAccount" DROP CONSTRAINT
"sioc:moderator_of";56 ALTER TABLE "sioc:Forum_sioc:UserAccount" DROP CONSTRAINT
"sioc:has_moderator";57 ALTER TABLE "sioc:UserAccount_sioc:Usergroup" DROP CONSTRAINT
"sioc:member_of";58 ALTER TABLE "sioc:Role_sioc:UserAccount" DROP CONSTRAINT
"sioc:has_function";59 ALTER TABLE "sioc:UserAccount_sioc:UserAccount" DROP CONSTRAINT
"(follow_by)";60 ALTER TABLE "sioc:UserAccount_sioc:UserAccount" DROP CONSTRAINT
"sioc:follows";61 ALTER TABLE "sioc:Item" DROP CONSTRAINT
"sioc:later_version(sioc:earlier_version)";62 ALTER TABLE "owl:Thing" DROP CONSTRAINT
"sioc:creator_of(sioc:has_creator)";63 ALTER TABLE "sioc:Item" DROP CONSTRAINT
"sioc:container_of(sioc:has_container)";64 ALTER TABLE "sioc:UserAccount_sioc:Site" DROP CONSTRAINT
"sioc:administrator_of";65 ALTER TABLE "sioc:UserAccount" DROP CONSTRAINT
"foaf:account(sioc:account_of)";66 ALTER TABLE "foaf:Agent" DROP CONSTRAINT "FKfoaf:Agent387433";67 ALTER TABLE "sioc:UserAccount" DROP CONSTRAINT "FKsioc:UserA812211";68 ALTER TABLE "foaf:OnlineAccount" DROP CONSTRAINT "FKfoaf:Onlin624376";69 ALTER TABLE "foaf:Document" DROP CONSTRAINT "FKfoaf:Docum478291";70 ALTER TABLE "sioc:Item" DROP CONSTRAINT "FKsioc:Item902159";71 ALTER TABLE "sioc:Forum" DROP CONSTRAINT "FKsioc:Forum801541";72 ALTER TABLE "sioc:Container" DROP CONSTRAINT "FKsioc:Conta116502";73 ALTER TABLE "owl:Thing" DROP CONSTRAINT "FKowl:Thing990503";74 ALTER TABLE "owl:Thing" DROP CONSTRAINT "FKowl:Thing990504";75 ALTER TABLE "sioc:Container" DROP CONSTRAINT "FKsioc:Conta116503";76 ALTER TABLE "sioc:Forum" DROP CONSTRAINT "FKsioc:Forum801542";77 ALTER TABLE "sioc:Item" DROP CONSTRAINT "FKsioc:Item902160";78 ALTER TABLE "sioc:UserAccount" DROP CONSTRAINT "FKsioc:UserA812212";79 ALTER TABLE "foaf:Person_owl:Thing2" DROP CONSTRAINT
"FKfoaf:Perso782874";80 ALTER TABLE "foaf:Group_foaf:Agent" DROP CONSTRAINT
"FKfoaf:Group783781";
39
81 ALTER TABLE "foaf:Agent_foaf:Document" DROP CONSTRAINT "FKfoaf:Agent220755";
82 ALTER TABLE "foaf:Document" DROP CONSTRAINT "FKfoaf:Docum478292";83 ALTER TABLE "foaf:Image" DROP CONSTRAINT "FKfoaf:Image743786";84 ALTER TABLE "foaf:Person_owl:Thing" DROP CONSTRAINT
"FKfoaf:Perso824917";85 ALTER TABLE "foaf:OnlineAccount" DROP CONSTRAINT "FKfoaf:Onlin624377";86 ALTER TABLE "foaf:Agent" DROP CONSTRAINT "FKfoaf:Agent387434";87 ALTER TABLE "foaf:Person" DROP CONSTRAINT "FKfoaf:Perso102921";88 ALTER TABLE "foaf:Person_foaf:Document" DROP CONSTRAINT
"FKfoaf:Perso293489";89 DROP TABLE "owl:Thing" CASCADE;90 DROP TABLE "sioc:UserAccount_sioc:Site" CASCADE;91 DROP TABLE "sioc:UserAccount_sioc:Item" CASCADE;92 DROP TABLE "sioc:Item_sioc:Item" CASCADE;93 DROP TABLE "sioc:Forum_sioc:UserAccount" CASCADE;94 DROP TABLE "sioc:Role_owl:Thing" CASCADE;95 DROP TABLE "sioc:Container" CASCADE;96 DROP TABLE "sioc:UserAccount_sioc:Usergroup" CASCADE;97 DROP TABLE "sioc:UserAccount_sioc:UserAccount" CASCADE;98 DROP TABLE "sioc:Container_sioc:UserAccount" CASCADE;99 DROP TABLE "sioc:Usergroup_sioc:Space" CASCADE;100 DROP TABLE "sioc:Forum" CASCADE;101 DROP TABLE "sioc:Item" CASCADE;102 DROP TABLE "sioc:Space_owl:Thing" CASCADE;103 DROP TABLE "sioc:UserAccount" CASCADE;104 DROP TABLE "sioc:Role_sioc:UserAccount" CASCADE;105 DROP TABLE "foaf:Person_owl:Thing2" CASCADE;106 DROP TABLE "foaf:Group_foaf:Agent" CASCADE;107 DROP TABLE "foaf:Agent_foaf:Document" CASCADE;108 DROP TABLE "foaf:Document";109 DROP TABLE "foaf:Document_owl:Thing" CASCADE;110 DROP TABLE "foaf:Person_foaf:Person" CASCADE;111 DROP TABLE "foaf:Image" CASCADE;112 DROP TABLE "foaf:Person_owl:Thing" CASCADE;113 DROP TABLE "foaf:OnlineAccount" CASCADE;114 DROP TABLE "foaf:Agent" CASCADE;115 DROP TABLE "foaf:Person" CASCADE;116 DROP TABLE "foaf:Person_foaf:Document" CASCADE;117 DROP TABLE sioc_foaf_class CASCADE;
40