Podatkovna baza » History » Version 1
Vanč Levstik, 16.01.2012 01:33
1 | 1 | Vanč Levstik | h1. Podatkovna baza |
---|---|---|---|
2 | |||
3 | h2. Uporabljene tehnologije |
||
4 | |||
5 | 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 | 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 | |||
8 | 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 | class:"Book" in subclass: "Sci-fi book" ki ima object property "hasOwner:" in še enega "hasLicense:", ter datatype property "hasPrice:" |
||
10 | 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 | |||
12 | Opis razredov, podrazredov in potrebnih lastnosti med razredi pa je narejen v ontologiji, za katero se lahko uporabi "Protege":http://protege.stanford.edu/ . |
||
13 | 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 | |||
15 | 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 | |||
17 | Se pravi edina komunikacija do front-enda, bi bil API in tu se bo potrebno uskladiti kako bo ta komunikacija poteka. |
||
18 | |||
19 | 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 | |||
21 | h2. Grajenje aplikacije |
||
22 | |||
23 | 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 | |||
25 | 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 | |||
27 | 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 | |||
29 | Š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 | |||
31 | |||
32 | Toliko zaenkrat, wiki se bo še dopolnjeval ko se tehnologija še bolj natančno določi in pridemo dlje v grajenju aplikacije. |