Serializācija

Pēdējais mainījis Administrator 2011-06-06 17:14

Serializācija

Prasības

Lai realizētu identificēto grafu ideju konkrētajai sintaksei jāatspoguļo grafa nosaukums, pats grafs un asociācijas starp tiem. To var realizēt trīs sintaksēs : TriX un RDF/XML, kas ir bāzēti uz XML, kā arī, TriG, kas ir kompakts tīra teksta formāts.

RDF/XML

Identificētie grafi ir atpakaļ-savietojami ar RDF. RDF/XML (19) dokumentu kolekcija tīmeklī lieliski iekļaujas abstraktās sintakses idejā, izmantojot pirmo „xml:base” deklarāciju dokumentā vai iekš URL no kura RDF/XML fails tika iegūts, kā grafa nosaukumu, kas aprakstīts RDF/XML failā. RDF/XML ir sekojoši trūkumi:

  • identificēto grafu kopa visdrīzāk ir daudzu dokumentu kopa, nevis viens dokuments,
  • RDF/XML ir zināmi ierobežojumi (48, 49). Piemēram, nav iespējams serializēt grafus ar noteiktiem predikātu URI, kā arī nav iespējams izmantot literāļus (literals) kā subjektus,
  • URI kurā ir publicēts RDF/XML dokuments tiek izmantots trijiem dažādiem mērķiem: kā izguves adresi ar operāciju semantiku, kā līdzekli dokumenta identificēšanai un kā līdzekli grafa identificēšanai, kas aprakstīts dokumentā. Pastāv iespēja, ka tie savā starpā tiks sajaukti.

Neviens no šiem trūkumiem nepiemīt TriX un TriG sintaksēs. Jāpiemin, ka RDF/XML izmantošanai ir savas priekšrocības: izvērsts pamats un tā ir jau esoša tehnoloģija.

TriX

RDF/XML sintakse tika radīta kā kompromiss starp dažādu grupu interesēm. RDF/XML iekodē RDF abstrakto sintaksi, bet tajā pašā laikā cenšas slēpt trijnieku struktūru uz kuras tas balstās, lai cilvēkiem būtu vieglāk lasīt kodu uz izprast RDF pielietojumus, piemēram, tādus kā OWL, tikai ar daļēju izpratni par to attēlošanu ar RDF. RDF/XML piedāvā daudz dažādas serializācijas iespējas, kas ne tikai daļēji slēpj zem tās esošo RDF, bet arī nepadara to līdz galam saprotamu. Tā kā ir pieļaujama liela serializācijas brīvības, nav iespējams aprakstīt RDF/XML ar dokumenta tipa definīciju (document type definition) (50) vai XML shēmu (XML schema) (51), aizliedz izmantot XML ģenerēšanas rīkus, tādus kā XPath (52), XSLT (53), XQuery (54) un citus (17), tādējādi, sarežģī sintakses parsēšanu (48, 49).

TriX (14) risina šīs problēmas ar ciešas atbilstības nodibināšanu ar RDF abstrakto sintaksi to slēpjot. Tas tiek panākts lietojot alternatīvas sintaktiskās formas, kas tiek pārveidotas RDF abstraktajā sintaksē. Piedevām, ar TriX ir iespējams izvietot vairākus identificētos grafus un tos serializēt vienā dokumentā.

TriX pamats ir trijnieka elements, kas satur trīs bērnus: subjektu, predikātu un trijnieka objektu. Katrs trijnieks sastāv no URI elementa, identifikatora elementa un literāļa (plainLiteral) vai tipizēta literāļa (typedLiteral) elementa, atkarībā no tā vai atbilstošā virsotne grafā ir RDF URI atsauce, tukša virsotne vai literālis. Tukšumu normalizācija (whitespace normalization) (60) tiek pielietota URI un identifikatora elementam.

Literāļa elementu var modificēt xml:lang atribūts. xml:lang atribūts ir aizliegts jebkurā citā dokumenta vietā, piemēram, tas nav atļauts saknes (root) elementā. Tas palīdz izvairīties no jebkādiem pārpratumiem, ja rodas šaubas vai tas attiecas uz tipizētajiem literāļiem – tas neattiecas. Tipizēto literāļu elementam ir nepieciešams datu tipa elements. Tukšumu apstrāde netiek veikta tāpat kā RDF/XML.

Grafa elements sākas ar neobligātu URI bērna elementu, kas nosauc grafu, un, tad seko jebkurš skaits trijnieku elementu kā bērni. Dokumenta saknes elements ir TriX elements, kuram ir nulle vai vairāk grafi kā tā bērni.

TriX definē arī vispārēju paplašināšanas mehānismu. Katra lietotāju grupa var definēt un lietot jebkurus sintaktiskos paplašinājumus, kurus tie vēlās deklarējot nepieciešamos paplašinājumus datu faila sākumā. Jebkurš apstrādātājs var pielietot paplašinājumus, kamēr tie ir aprakstīti standarta veidā un ir identificēti ar URL vietrādi. Var izmantot XSLT kā sintaktiskās paplašināšanas mehānismu un stila lapu apstrādes instrukciju (stylesheet processing instruction) (55) kā deklarāciju.

TriG

TriG ir tīra teksta formāts identificēto grafu serializācijai. TriG sintakse piedāvā kompaktu un cilvēkam lasāmu alternatīvu uz XML bāzētajai TriX sintaksei (18).

TriG ir Turtle (56) variācija, kas savukārt ir bāzēts uz N3 (40). TriG paplašina Turtle ar „{” un „}”, lai sagrupētu trijniekus vairākos grafos, un, lai katru no tiem ievadītu grafa vārds. Sekojošais TriG dokuments satur divus grafus:

:G1 { _:Elina ex:vards "Elina Berzina" .
_:Elina ex:email <mailto:elina@inbox.lv> .
:G1 pr:disallowedUsage pr:Marketing }
:G2 { :G1 ex:author :Kristaps .
:G1 ex:datums "2003-09-03"ˆˆxsd:datums }

Pirmais grafs satur informāciju pats par sevi. Otrais grafs atsaucas uz pirmo (tiek izlaistas vārdu apgabala prefiksu definīcijas).

TriG piedāvā savietojamību ar N3, bet atļauj papildus „=” un „ .”, lai to pašu grafu pāri varētu pierakstīt sekojoši:

:G1 = { _:Elina ex:vards "Elina Berzina" .
_:Elina ex:email <mailto: elina@inbox.lv> .
:G1 pr:disallowedUsage pr:Marketing } .
:G2 = { :G1 ex:author : Kristaps.
:G1 ex:datums "2003-09-03"ˆˆxsd:datums } .

Tas ir N3, kurā „=” tiek lasīts kā owl:sameAs, kaut gan, sekojošās N3 īpašības nav atļautas:

  • tukšos mezglus nevar dalīt starp grafiem,
  • katru grafu jānosauc ar URI atsauci,
  • formula vienam grafam nevar tikt ievietota citā grafā kā virsotne, kaut gan, tās vārds var tikt lietots šāda veidā.

Šīs atšķirības nozīmē to, ka pamata sintaktiskās operācijas, tādas kā, divu N3 dokumentu salīdzināšana pēc to abstraktās sintakses, nozīmīgi atšķiras no tām pašām operācijām ar RDF grafiem. Šie ierobežojumi atļauj izmantot identificētajiem grafiem veikt RDF grafu salīdzināšanu (57) un RDF grafu parakstīšanu (58).

Turpmākās atšķirības parādās, kad dokuments tiek lasīts kā N3, tad katrs identificētais grafs ir owl:sameAs trijnieka objekts ārējā grafā. Tātad, N3 atļauj grafus ievietot grafos, tādējādi, palielinot kopējo sarežģītību. Šī sarežģītība nav lietojumprogrammu motivēta, bet gan šķiet nevajadzīga elegance, kas zem tā esošo matemātisko ietvaru padara daudz sarežģītāku un daudz mazāk saprotamu. Ja dokuments tiek lasīts kā TriG dokuments, tad tiek nolasīti divi atsevišķi identificētie grafi, kas neiekļauj papildus slāni no ārējā grafa (59).

Atpakaļ uz saturu

Tagi:
Izveidojis MarisSteinbergs 2007-12-05 23:17
    
This wiki is licensed under a Creative Commons 2.0 license
XWiki Enterprise 6.4 - Documentation