SVG/Metadane

< SVG

Zazwyczaj autor grafiki chciałby w jakiś konkretny sposób być utożsamiany ze swoim dziełem, zawrzeć dodatkowe informacje o pliku, jego licencji i tym podobnych sprawach. Podobnie jak w dokumentach każdego typowago języka znaczników (HTML czy XML), również przy grafikach typu SVG dano nam do dyspozycji specyficzne pole metadanych (ang. metadata - dane o danych).

<metadata>
...
</metadata>

"Specyficzność" ta polega na użyciu systemu RDF - ang. Resource Description Framework, którego celem jest umożliwienie maszynowego przetwarzania abstrakcyjnych opisów zasobów w sposób automatyczny. Może służyć zarówno do wyszukiwania danych, jak i śledzenia informacji na dany temat. Dlatego też nasze pole metadanych powinno współdziałać z tym systemem - a dane informacyjne powinny być umieszczane pomiędzy znacznikami systemu RDF, jak poniżej:

<metadata>
 <rdf:RDF>
  <cc:Work>
...
  </cc:Work>
 </rdf:RDF>
</metadata>

Zacznijmy od tego, że każdy plik powinien mieć opisany znacznik MIME, dlatego warto zawszeć informacje o typie pliku właśnie w tym miejscu, dodając do metadanych linijkę:

<dc:format>image/svg+xml</dc:format>

I w tak oto przygotowanym polu danych możemy umieścić kolejno:

  • tytuł <dc:title>
  • ID <dc:identifier>
  • datę <dc:date>
  • źródło <dc:source>
  • powiązania <dc:relation>
  • język <dc:language>
  • tematykę <dc:coverage>
  • opis słowny <dc:description>
  • twórcę <dc:creator><cc:Agent><dc:title>
  • współautorów <dc:contributor><cc:Agent><dc:title>
  • własność <dc:rights><cc:Agent><dc:title>
  • wydawcę <dc:publisher><cc:Agent><dc:title>
  • słowa kluczowe <dc:subject><rdf:Bag><rdf:li>

Założeniem RDF jest opis zasobu za pomocą wyrażenia składającego się z trzech elementów: podmiotu, predykatu i obiektu. W RDF podmiot stanowi opisywany zasób, predykat określa jaka jego własność jest opisywana, zaś obiekt stanowi wartość tej własności. Dlatego nie dziwcie się, że podane zostały więcej niż pojedyncze znaczniki. Taka właśnie jest idea RDF.

Przy opisie metadanych w SVG wykorzystano system biblioteczny Dublin Core (stąd to dc:). Używając jego możliwości w połączeniu z zasadami RDF, jesteśmy w stanie dodawać w zasadzie wszelkie potrzebne nam informacje do grafiki:

<metadata>
 <rdf:RDF>
   <cc:Work>
     <dc:format>image/svg+xml</dc:format>
     <dc:title>Tytuł</dc:title>
     <dc:date>Data</dc:date>
     <dc:creator>
       <cc:Agent>
         <dc:title>Autor</dc:title>
       </cc:Agent>
     </dc:creator>
     <dc:rights>
       <cc:Agent>
         <dc:title>Własność<dc:title>
       </cc:Agent>
     </dc:rights>
     <dc:publisher>
       <cc:Agent>
         <dc:title>Wydawca</dc:title>
       </cc:Agent>
     </dc:publisher>
     <dc:identifier>ID</dc:identifier>
     <dc:source>Źródło</dc:source>
     <dc:relation>Powiązania</dc:relation>
     <dc:language>Język</dc:language>
     <dc:subject>
       <rdf:Bag>
         <rdf:li>Słowa kluczowe</rdf:li>
       </rdf:Bag>
     </dc:subject>
     <dc:coverage>Tematyka</dc:coverage>
     <dc:description>Opis</dc:description>
     <dc:contributor>
       <cc:Agent>
         <dc:title>Współautorzy</dc:title>
       </cc:Agent>
     </dc:contributor>
   </cc:Work>
 </rdf:RDF>
</metadata>