Typowe i nietypowe literały
Kiedy mówiliśmy o RDF, wspominaliśmy też, że to właśnie struktura grafu dostarcza maszynom informacji w sposób, który umożliwia ich przetwarzanie. To właśnie dzięki połączeniom pomiędzy zasobami graf RDF nabiera znaczenia. Jak zapewne pamiętacie niektóre zdania w grafie RDF kończą się literałami (ang. literal). Dziś kilka słów na ich temat.
Czym są literały? Służą one do zapisu wartości liczbowych, dat, nazw, itp. w postaci ciągu znaków (reprezentacji leksykalnej).
Jednym z oczywistych zastosowań literałów jest dostarczanie etykiet do zasobów reprezentowanych przez URI, tak aby mogły być one prezentowane w sposób zrozumiały ludziom a nie tylko maszynom. Ponieważ Sieć Semantyczna była budowana od początku z myślą o międzynarodowej społeczności, możliwe jest przypisanie znacznika języka (ang. language tag) do literału. Znaczniki języka (zdefiniowane w specyfikacji RFC 3306) wyrażone są w postaci zestawu dwuliterowych etykiet, zapisanych małymi literami alfabetu łacińskiego, oddzielonych myślnikiem (-). Warto zwrócić uwagę na subtelną różnicę w zapisie znaczników języka w porównaniu do definicji lokalizacji (ang. locale) używanej powszechnie w procesie internacjonalizacji treści. Przykładem znacznika języka może być: "en" lub "pl-pl".
Jak widzieliśmy na przykładach w poprzednich artykułach, literały mogą również służyć do wyrażania ilości. Jednak jak to zwykle bywa z maszynami, należy maszynom powiedzieć jak należy interpretować wartości liczbowe, tak aby nie pomyliły ich z np. datami. Do tego celu służą tzw. typowane literały (ang. typed literals). Specyfikacja RDF przewiduje możliwość dołączenia typu danych (ang. datatype) literału zapisanego w postaci referencji URI do definicji typu. Zazwyczaj (w 99% przypadków) spotyka się definicje typów ze specyfikacji schematu XML (ang. XML Schema), np: xsd:boolean, xsd:int, itp. Specyfikacja RDF przewiduje również specjalny typ danych do osadzania dokumentu XML jako literału, służy do tego typ rdf:XMLLiteral. Ponownie jak poprzednio, proszę o informację w komentarzach jeżeli chcielibyście dowiedzieć się więcej na temat samych typów zdefiniowanych z specyfikacji schematu XML.
Czas na przykład: chcemy podać nazwę serwisu http://www.semanticschool.com/ po angielsku i po polsku, oraz datę od kiedy serwis istnieje.
Wersja NTriples wyglądałaby następująco:
<http://www.semanticschool.com> <http://purl.org/dc/terms/date> "2009-09-21"^^<http://www.w3.org/2001/XMLSchema#date> . <http://www.semanticschool.com> <http://purl.org/dc/terms/title> "Szkoła Web 3.0"@pl . <http://www.semanticschool.com> <http://purl.org/dc/terms/title> "School of Semantics"@en .
Turtle:
@prefix dc: <http://purl.org/dc/terms/> . <http://www.semanticschool.com> dc:title "Szkoła Web 3.0"@pl , "School of Semantics"@en ; dc:date "2009-09-21"^^<http://www.w3.org/2001/XMLSchema#date> .
i na koniec RDF/XML:
<?xml version="1.0" encoding="UTF-8"?> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/terms/"> <rdf:Description rdf:about="http://www.semanticschool.com"> <dc:title xml:lang="pl">Szkoła Web 3.0</ns2:title> <dc:title xml:lang="en">School of Semantics</ns2:title> <dc:date rdf:datatype="http://www.w3.org/2001/XMLSchema#date">2009-09-21</ns2:date> </rdf:Description> </rdf:RDF>

