Društvo LJUDMILA, Slovenska 54
OSMO nadstropje, Avtotehna

pošta: Rozmanova 12
SI-1000 Ljubljana
Slovenia
e: info@ljudmila.org
t: +386 1 426 9530
f: +386 1 426 9531

pon,tor,čet,pet 9h-14h
vstop prost

M3CRDF

Uvod

M3CRDF je skupina standardov, ki omogočajo izmenjavo vseh relevantnih podatkov znotraj mreže M3C.

Kjer so primerni standardi že obstajajo in ustrezajo bomo praviloma uporabili te; za ostale potrebe bomo standarde nadgradili v skladu z dobro prakso semantičnega spleta. Predlogi za razširitve so podani v M3C XML namespace.

<graphviz> digraph m3crdf {

 node [shape="box"]
 edge [style="dashed",arrowhead="vee"]
 M3CRDF -> "RDF calendar";
 M3CRDF -> "FOAF";
 M3CRDF -> "M3C";
 M3CRDF -> "XHTML";
 M3CRDF -> "CC";
 M3CRDF -> Atom;
 M3CRDF -> RSS;
 "RDF calendar"->RDF;
 RSS -> RDF;
 FOAF->RDF; M3C->RDF; CC->RDF;
 XHTML -> XML; RDF->XML;
 "RDF calendar"->"iCalendar";
 Atom -> XML;

} </graphviz>

Enostavne stvari naj bodo enostavne, komplicirane pa mogoče,

Entitete

Entitete so tisti razredi (tabele), ki so primarnega pomena in so zanimivi za izmenjavo in konsolidacijo.

Entitetam pripadajo unikatni URL naslovi. Ti se v RDF datoteki določijo z atributom rdf:about. Unikatni URL naslovi so pomembni ker so osnovni ločevalni element med zapisi - tvorijo primarni ključ v podatkovni bazi. Če imata dva zapisa enak URL naslov, potem se smatra, da gre za en in isti zapis (npr. isto lokacijo ali dogodek).

Določanje pravil, po katerih se tvorijo unikatni URL naslovi ni vedno povsem jasno in enostavno.

Bistvene entitete, ki nas zanimajo so:

UML Diagram razredov. Entitete, posebej zanimive za izmenjavo so označene s stereotipom «entity».

<graphviz> digraph m3crdf { node [shape="box"];

       "atom:Atom"
       "atom:Entry"
       "atom:Link"
       "atom:Person"
       "atom:Feed"
       "atom:Category"

"foaf:Agent" [color="orange"];

"foaf:Person" [label="«entity»\nfoaf:Person"]; "foaf:Organization" [label="«entity»\nfoaf:Organization"]; "foaf:Document";

"ical:Vevent" [label="«entity»\nical:Vevent",color="green"]; "ical:Vcalendar"; "m3c:Venue" [label="«entity»\nm3c:Venue",color="green"];

       "m3c:Artwork"  [label="«entity»\nm3c:Artwork",color="orange"];

"m3c:Category" [label="«entity»\nm3c:Category",color="green"];

"ical:Vcalendar"->"ical:Vevent"[label="ical:component"]; "ical:Vevent"->"m3c:Venue"[label="m3c:location"]; "foaf:Document"->"ical:Vcalendar"[label="rdfs:seeAlso"]; "foaf:Document"->"rss:channel"[label="rdfs:seeAlso"];

"foaf:Agent"->"foaf:Document"[label="foaf:weblog"];

"m3c:Venue"->"m3c:Venue"[label="contains"];

edge [arrowhead="none"]; "ical:Vevent"->"m3c:Category" [label="m3c:category"];

       "ical:Vevent"->"m3c:Artwork" [label="m3c:featuring"];
       "atom:Atom"->"atom:Category" [label="categories"];
       "atom:Atom"->"atom:Link" [label="links"];

edge [arrowhead="empty"]; "foaf:Person"->"foaf:Agent"; "foaf:Organization"->"foaf:Agent";

       "m3c:Category"->"atom:Category"
       "m3c:Venue"->"atom:Entry"
       "atom:Entry"->"atom:Atom"
       "atom:Feed"->"atom:Atom"
       "ical:Vevent"->"atom:Entry"

} </graphviz>

XML

Osnova je označevalni jezik XML, ki je ena bistvenih spletnih tehnologij. XML naj bi s primerno uporabo močno poenostavil izmenjavo podatkov, saj XML standard že predpisuje vrsto pravil, ki se jih mora držati vsak pravilen XML dokument. S tem so uporabniki delno rešeni ponovnega izumljanja dobro znanih zapisov podatkov.

XML je osnova, na kateri je zgrajenih več standardov za posamezne vrste podatkov, npr:

  • XHTML - klasične spletne strani
  • SVG - vektorska grafika
  • Atom - novice, blogi
  • RDFCAL - koledarji

Tem standardom rečemo tudi XML aplikacije.

Z uporabo dovršenih knjižnic za obdelavo XML je mogoče precej poenostaviti programiranje XML aplikacij, rezultati pa so kakovostnejši.

Unicode

UNICODE je mednarodni standard za zapis znakov, ki je posebej priporočen za uporabo z XML, saj pokriva veliko večino svetovnih jezikov. Kadar XML dokumenti niso v kodiranju UNICODE je potrebno v XML dokumentu to posebej označiti.

XML imenski prostori

XML omogoča uporabo imenskih prostorov:

brez imenskega prostora

<entryfee>

z imenskim prostorom

<m3c:entryfee>

Imenski prostor ima pripadajoč URL, kar je potrebno deklarirati na začetku dokumenta.

<rdf xmlns:m3c="http://www.m3c.si/xmlns/m3c/2006-06#">

Imenski prostori se dajansko določijo po URL naslovih. "m3c" v zgornjem primeru je le okrajšava za uporabo znotraj posamezne XML datoteke. Dejanska oznaka je tako <http://www.m3c.si/xmlns/m3c/2006-06#entryfee>, se pravi URL imenskega prostora in oznaka, staknjena skupaj.

Imenski prostori omogočajo združevanje več različnih XML aplikacij v eno datoteko!

Osnovni imenski prostori

<rdf:RDF
 xmlns="http://www.m3c.si/xmlns/m3c/2006-06#"
 xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
 xmlns:ical="http://www.w3.org/2002/12/cal/icaltzd#"
 xmlns:m3c="http://www.m3c.si/xmlns/m3c/2006-06#"
 xmlns:xhtml="http://www.w3.org/1999/xhtml"
 xmlns:dc="http://purl.org/dc/elements/1.1/"
 xmlns:dcterms="http://purl.org/dc/terms/"
 xmlns:cc="http://web.resource.org/cc/"
 xmlns:skos="http://www.w3.org/2004/02/skos/core#" 
 xmlns:vCard="http://www.w3.org/2001/vcard-rdf/3.0#"
 xmlns:foaf="http://xmlns.com/foaf/0.1/"
 xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#"
>

RDF

Glej semantični splet

RDF lahko razumememo kot nekoliko strožjo varianto XML, ki daje dodaten poudarek na URL naslove.

Kakovostni URL naslovi so izrednega pomena za distribuirane podatkovne zbirke, saj določajo primarni ključ (unikatnost) posameznih enot informacije.

Atom

Atom je posebej popularen standard za distribucijo blogov, podcastov, itd...


Agregator

Zapis v M3CRDF najraje uporablja M3C Agregator za uvoz podatkov. Agregator je uporabljen pri izvedbi portala Kulturnik.si.

M3C Agregator zbira podatke na semantičnem spletu v centralno podatkovno bazo. Zbrani podatki bodo na voljo vsem uporabnikom Interneta v različnih zapisih, za čim bolj široko in fleksibilno rabo.

<graphviz> digraph x {

atom [label="agregator",shape="box"];
blogi->atom;
napovedi->atom;
multimedia->atom;
lokacije->atom;
tagi->atom;
organizacije->atom;
uporabniki->atom;

} </graphviz>

Predvsem nas zanimajo:

Veliko spreminjanja:

  1. Novice/Blogi
  2. Koledarji dogodkovRDF Calendar
  3. Multimedijski elementi (slike, zvok, video)Video Blogging
  4. Spletne (tudi RDF) povezave in viri

Malo spreminjanja, centralni registri

  1. Kategorije ➙ Kategorije dogodkov
  2. Podatki o organizacijah ➙ RDF FOAF
  3. Podatki o lokacijah ➙ Lokacije
  4. Obratovalni čas

M3C Agregator je podatkovna baza portala Kulturnik.si.

Podatki bodo na voljo tudi kot ločeni viri za vsako od statističnih regij: Pomurska, Podravska, Koroška, Savinjska, Zasavska, Spodnjeposavska, Jugovzhodna Slovenija, Osrednjeslovenska, Gorenjska, Notranjsko-kraška, Goriška in Obalno-kraška.

Opis posebnih M3C specifičnih atributov najdete na strani M3C XML namespace.

Upamo, da bomo imeli validator feeda, ki bo pomagal in svetoval pri izvedbi feeda.

Primeri

Akterji (organizacije in posamezniki)

<foaf:Organization>
  <foaf:name>KUD France Prešeren<foaf:name>
  <foaf:nick>kud-fp</foaf:nick>
 
  <foaf:logo rdf:resource="kud-logo.png"/>
  <foaf:depiction rdf:resource="photo1.jpg"/>
  <foaf:depiction rdf:resource="photo2.jpg"/>
 
  <legal-country>SI</legal-country>
  <legal-type rdf:resource="http://www.m3c.si/party#association"/>
  <legal-registrar rdf:resource=""/>
  <legal-title>KUD France Prešeren, Trnovo</legal-title>
  <legal-registry>5134021</legal-registry>
  <legal-capital>0</legal-capital>
 
  <financial-taxnumber>SI89786866</financial-taxnumber>
  <financial-bank rdf:resource="http://www.n-lb.si"/>
  <financial-account>02010-0017359086</financial-account>
 
   <v:workAdr>
     <rdf:type rdf:resource="http://nwalsh.com/rdf/vCard#Address"/>
     <v:street-address>Karunova 14</v:street-address>
     <v:postal-code>1000</v:postal-code>
     <v:country-name>SI</v:country-name>
   </v:workAdr>

  <post-address>Karunova 14, SI-1000 Ljubljana, Slovenia</post-address>
 
  <foaf:mbox rdf:resource="mailto:kud@kud-fp.si"/>
  <foaf:phone rdf:resource="tel:+38612832288"/>
  <fax rdf:resource="fax:+38612831128"/>
  <foaf:homepage rdf:resource="http://www.kud-fp.si"/>
  <foaf:weblog rdf:resource="http://www.kud-fp.si/atom/">
  <foaf:msnChatID>kud@kud-fp.si</foaf:msnChatID>
</foaf:Organization>
<foaf:Person>
 <foaf:img rdf:resource="main_photo.jpg">
 <foaf:firstName>Keiko</foaf:firstName>
 <foaf:surname>Suzuki</foaf:surname>
</foaf:Person>

Dogodki, Festivali

Minimalno

<ical:Vevent>
 <ical:dtstart>2006-02-08T200000</ical:dtstart>
 <ical:summary>Katalena</ical:summary>
</ical:Vevent>

Razširjeno

<ical:Vevent>
 <ical:uid>XYZ12345</ical:uid>
 <ical:lastModified>2006-02-07T182300</ical:lastModified>

 <ical:dtstart>2006-02-08T200000</ical:dtstart>
 <ical:dtend>2006-02-08T220000</ical:dtend>
 <ical:summary>Katalena</ical:summary>
 <ical:description>Bla bla bla...<ical:description>

 <ical:location>KUD France Prešeren</ical:location>
 <ical:categories>glasba</ical:categories>

 <location rdf:resource="http://www.kud-fp.si">
</ical:Vevent>

Predlogi (glej tudi M3C XML namespace)

 <ticketoffice rdf:resource=""/>
 <entryfee rdf:type="&SIT;">1200</m3c:entryfee>
 <entryfee rdf:type="&EURO;">4.55</m3c:entryfee>
 <festival rdf:resource=""/>
 <live-stream rdf:resource=""/>

Festival je večdnevni dogodek. Pri posameznih dogodkih, ki sestavljajo festival je potrebno nastaviti atribut festival

Več primerov je na posebni strani.

Prizorišča, Lokacije

<Venue rdf:about="http://www.kud-fp.si">
  <type rdf:resource="http://www.m3c.si/venue#art_center"/>
  <foaf:name>KUD France Prešeren</foaf:name>
  <label>KUD France Prešeren</label>
  
  <owner rdf:resource="http://www.kud-fp.si"/>
  <manager rdf:resource="http://www.kud-fp.si"/>
  <organizer rdf:resource="http://www.kud-fp.si"/>

  <foaf:logo rdf:resource="kud-logo.png"/>
  <foaf:depiction rdf:resource="photo1.jpg"/>
  <foaf:depiction rdf:resource="photo2.jpg"/>
 
   <v:workAdr>
     <rdf:type rdf:resource="http://nwalsh.com/rdf/vCard#Address"/>
     <v:street-address>Karunova 14</v:street-address>
     <v:postal-code>1000</v:postal-code>
     <v:country-name>SI</v:country-name>
   </v:workAdr>

  <geolocation></geolocation>
 
  <schedule> 
   <daily>
    <opens>10:00</opens>
    <closes>01:00</closes>
   </daily>
  </schedule>
 
  <technical-rider rdf:resource="rider.pdf"/>

  <contains>
    <Venue rdf:about="#dvorana"> 
      <foaf:name>dvorana</foaf:name>
    </Venue>
  <contains>

  <contains>
    <Venue rdf:about="#galerija">
      <foaf:name>galerija</foaf:name>
    </Venue>
  </contains>

  </contains>
    <Venue rdf:about="#zunanjiOder">
      <foaf:name>zunanji oder</foaf:name>
    <Venue>
  </contains>

</Venue>

Kategorije, Obeski, Ključne besede