Podatkovna baza » History » Version 1

Vanč Levstik, 16.01.2012 01:33

1 1 Vanč Levstik
h1. Podatkovna baza
2 1 Vanč Levstik
3 1 Vanč Levstik
h2. Uporabljene tehnologije
4 1 Vanč Levstik
5 1 Vanč Levstik
Torej najprej na kratko. Uporabili bi OWL (Web Ontology Language), nekaj več o njemu "tukaj":http://www.w3.org/TR/2004/REC-owl-features-20040210/#s1.1
6 1 Vanč Levstik
OWL je zgrajen na "RDFS(Resource Description Framework)":http://en.wikipedia.org/wiki/RDFS ki za format podatkov uporablja "RDF":http://en.wikipedia.org/wiki/Resource_Description_Framework , le da mu doda še nekaj dodatnih možnosti za opisovanje razredov in lastnosti in je trenutno standard za semantičen splet po W3C. Nekaj več o tem kako so podatki organizirani sem že napisal v mailu, pa lahko dodam še tukaj:
7 1 Vanč Levstik
8 1 Vanč Levstik
Se pravi določi se neka shema razredov in podrazredov (class), kateri imajo lahko lastnosti (properties), ki so lahko objecttype ali datatype. Torej če gremo na nek preprost primer, imamo 
9 1 Vanč Levstik
class:"Book" in subclass: "Sci-fi book" ki ima object property  "hasOwner:" in še enega  "hasLicense:", ter datatype property "hasPrice:"
10 1 Vanč Levstik
Instanca tega subclassa pa je "Lord of the Rings", z lastnostmi "hasOwner: Alex" in "hasLicense:Free",  kjer sta "Alex" in "Free" spet instanci nekih razredov (Owner in License). Poleg tega pa ima še  property "hasPrice:0", pri čemer gre preprosto za integer.
11 1 Vanč Levstik
12 1 Vanč Levstik
Opis razredov, podrazredov in potrebnih lastnosti med razredi pa je narejen v ontologiji, za katero se lahko uporabi "Protege":http://protege.stanford.edu/ . 
13 1 Vanč Levstik
Ta del grajenja ontologije je nekako najbolj vsebinsko pomemben del, tu se namreč določi katere razrede za našo aplikacijo potrebujemo, zato bi ta del morali narediti skupaj. Za začetek pa kot smo rekli bi naredili preprosto ontologijo z nekaj razredi in lastnostmi, dodatne spremembe pa bi dodali potem ko imamo narejen osnoven prototip in komunikacijo med front-endom in back-endom.
14 1 Vanč Levstik
15 1 Vanč Levstik
Podatke ki so zapisani v OWL obliki, pa bi potem preko APIja narejenega v Javi("framework Jena":http://incubator.apache.org/jena/) zapisovali in nato dostopali do njih preko RESTa v "NoSQL bazi Allegrograph":http://www.franz.com/agraph/allegrograph/.
16 1 Vanč Levstik
17 1 Vanč Levstik
Se pravi edina komunikacija do front-enda, bi bil API in tu se bo potrebno uskladiti kako bo ta komunikacija poteka.
18 1 Vanč Levstik
19 1 Vanč Levstik
Drugi del pa bi bil potem tudi "obogatenje" naših podatkov s pomočjo prosto dostopnih podatkov organiziranih v "Linked Data Cloud":http://linkeddata.org/ Kot sem že opisal v prvem predlogu, bi tukaj dostopali do dodatnih informacij o naših razredih in jim dodajali lastnosti. Ta del bi tehnološko gledano zaenkrat pustil, je potrebno še raziskati točno kako dostopati do tega in to dodajati, bo pa dodano ko malo raziščem še ta del.
20 1 Vanč Levstik
21 1 Vanč Levstik
h2. Grajenje aplikacije
22 1 Vanč Levstik
23 1 Vanč Levstik
Zgoraj je napisano vse bolj osnovno, bi pa tu dodal še bolj natančne opise kako bi potekalo grajenje aplikacije, ki pridejo v poštev predvsem za Janeza, ki bi sodeloval pri temu delu aplikacije.
24 1 Vanč Levstik
25 1 Vanč Levstik
Predlagam da se za začetek spoznaš z "Protege-jem":http://protege.stanford.edu/ Na spletni strani imajo tudi tutorial , ki se ga splača vsaj preleteti. V program dodaš eno od "prosto dostopnih ontologij":http://protegewiki.stanford.edu/wiki/Protege_Ontology_Library#OWL_ontologies in pogledaš kako so podatki spravljeni in kako se da spreminjati in graditi ontologijo.
26 1 Vanč Levstik
27 1 Vanč Levstik
Lahko se zgradi neko osnovno ontologijo in nato naslednji korak bi bil da se to ontologijo uvozi v "Java Jena framework":http://incubator.apache.org/jena/ in se tu z uporabo Jena API-ja doda nove podatke in nato nad njimi izvede nekaj queryov s pomočjo jezika "SPARQL":http://www.w3.org/TR/rdf-sparql-query/ Za Jeno sta na voljo "2 tutoriala":http://incubator.apache.org/jena/tutorials/index.html ki precej dobro opišeta kako se framework uporablja, zapisuje podatke v RDF in nato dostopa do njih preko SPARQL queryjev,
28 1 Vanč Levstik
29 1 Vanč Levstik
Še tretji korak bi bil potem postavitev "Allegrograph":http://www.franz.com/agraph/allegrograph/ NoSQL baze in zapisovanje in dostopanje do naših podatkov na tej bazi. Komunikacija do baze bi potekala preko Jena-e in API-ja dostopnega na domači strani Allegrograph.
30 1 Vanč Levstik
31 1 Vanč Levstik
32 1 Vanč Levstik
Toliko zaenkrat, wiki se bo še dopolnjeval ko se tehnologija še bolj natančno določi in pridemo dlje v grajenju aplikacije.