Semantic Web
Prosty przykład opublikowany na blogu Internet Alchemy — osoba, o imieniu Eve i stronie domowej <http://example.org/~eve>
.
Opis w N3:
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> . @prefix foaf: <http://xmlns.com/foaf/0.1/> . _:eve rdf:type foaf:Person . _:eve foaf:name "Eve" . _:eve foaf:homepage <http://example.org/~eve> .
Następnie podano 16 różnych, poprawnych wersji zapisu tej informacji w formacie RDF/XML. Ta liczba nie wyczerpuje wszystkich możliwości.
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:foaf="http://xmlns.com/foaf/0.1/"> <foaf:Person> <foaf:name>Eve</foaf:name> <foaf:homepage rdf:resource="http://example.org/~eve"/> </foaf:Person> </rdf:RDF>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:foaf="http://xmlns.com/foaf/0.1/"> <rdf:Description> <rdf:type rdf:resource="http://xmlns.com/foaf/0.1/Person" /> <foaf:name>Eve</foaf:name> <foaf:homepage rdf:resource="http://example.org/~eve"/> </rdf:Description> </rdf:RDF>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:foaf="http://xmlns.com/foaf/0.1/"> <foaf:Person foaf:name="Eve"> <foaf:homepage rdf:resource="http://example.org/~eve"/> </foaf:Person> </rdf:RDF>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:foaf="http://xmlns.com/foaf/0.1/"> <rdf:Description foaf:name="Eve"> <rdf:type rdf:resource="http://xmlns.com/foaf/0.1/Person" /> <foaf:homepage rdf:resource="http://example.org/~eve"/> </rdf:Description> </rdf:RDF>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:foaf="http://xmlns.com/foaf/0.1/"> <foaf:Person rdf:nodeID="eve"> <foaf:name>Eve</foaf:name> </foaf:Person> <rdf:Description rdf:nodeID="eve"> <foaf:homepage rdf:resource="http://example.org/~eve"/> </rdf:Description> </rdf:RDF>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:foaf="http://xmlns.com/foaf/0.1/"> <foaf:Person rdf:nodeID="eve" foaf:name="Eve" /> <rdf:Description rdf:nodeID="eve"> <foaf:homepage rdf:resource="http://example.org/~eve"/> </rdf:Description> </rdf:RDF>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:foaf="http://xmlns.com/foaf/0.1/"> <rdf:Description rdf:nodeID="eve"> <rdf:type rdf:resource="http://xmlns.com/foaf/0.1/Person" /> <foaf:name>Eve</foaf:name> </rdf:Description> <rdf:Description rdf:nodeID="eve"> <foaf:homepage rdf:resource="http://example.org/~eve"/> </rdf:Description> </rdf:RDF>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:foaf="http://xmlns.com/foaf/0.1/"> <rdf:Description rdf:nodeID="eve" foaf:name="Eve"> <rdf:type rdf:resource="http://xmlns.com/foaf/0.1/Person" /> </rdf:Description> <rdf:Description rdf:nodeID="eve"> <foaf:homepage rdf:resource="http://example.org/~eve"/> </rdf:Description> </rdf:RDF>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:foaf="http://xmlns.com/foaf/0.1/"> <rdf:Description rdf:nodeID="eve"> <foaf:name>Eve</foaf:name> </rdf:Description> <foaf:Person rdf:nodeID="eve"> <foaf:homepage rdf:resource="http://example.org/~eve"/> </foaf:Person> </rdf:RDF>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:foaf="http://xmlns.com/foaf/0.1/"> <rdf:Description rdf:nodeID="eve" foaf:name="Eve" /> <foaf:Person rdf:nodeID="eve"> <foaf:homepage rdf:resource="http://example.org/~eve"/> </foaf:Person> </rdf:RDF>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:foaf="http://xmlns.com/foaf/0.1/"> <rdf:Description rdf:nodeID="eve"> <foaf:name>Eve</foaf:name> </rdf:Description> <rdf:Description rdf:nodeID="eve"> <rdf:type rdf:resource="http://xmlns.com/foaf/0.1/Person" /> <foaf:homepage rdf:resource="http://example.org/~eve"/> </rdf:Description> </rdf:RDF>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:foaf="http://xmlns.com/foaf/0.1/"> <rdf:Description rdf:nodeID="eve" foaf:name="Eve" /> <rdf:Description rdf:nodeID="eve"> <rdf:type rdf:resource="http://xmlns.com/foaf/0.1/Person" /> <foaf:homepage rdf:resource="http://example.org/~eve"/> </rdf:Description> </rdf:RDF>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:foaf="http://xmlns.com/foaf/0.1/"> <rdf:Description rdf:nodeID="eve"> <rdf:type rdf:resource="http://xmlns.com/foaf/0.1/Person" /> </rdf:Description> <rdf:Description rdf:nodeID="eve"> <foaf:name>Eve</foaf:name> <foaf:homepage rdf:resource="http://example.org/~eve"/> </rdf:Description> </rdf:RDF>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:foaf="http://xmlns.com/foaf/0.1/"> <rdf:Description rdf:nodeID="eve"> <rdf:type rdf:resource="http://xmlns.com/foaf/0.1/Person" /> </rdf:Description> <rdf:Description rdf:nodeID="eve" foaf:name="Eve"> <foaf:homepage rdf:resource="http://example.org/~eve"/> </rdf:Description> </rdf:RDF>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:foaf="http://xmlns.com/foaf/0.1/"> <rdf:Description rdf:nodeID="eve"> <foaf:name>Eve</foaf:name> </rdf:Description> <rdf:Description rdf:nodeID="eve"> <foaf:homepage rdf:resource="http://example.org/~eve"/> </rdf:Description> <rdf:Description rdf:nodeID="eve"> <rdf:type rdf:resource="http://xmlns.com/foaf/0.1/Person" /> </rdf:Description> </rdf:RDF>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:foaf="http://xmlns.com/foaf/0.1/"> <rdf:Description rdf:nodeID="eve" foaf:name="Eve" /> <rdf:Description rdf:nodeID="eve"> <foaf:homepage rdf:resource="http://example.org/~eve"/> </rdf:Description> <rdf:Description rdf:nodeID="eve"> <rdf:type rdf:resource="http://xmlns.com/foaf/0.1/Person" /> </rdf:Description> </rdf:RDF>
Możliwe dalsze zmiany:
xmlns:rdf
i xmlns:foaf
w tagu wewnętrznym (odpowiednio <foaf:Person>
lub <rdf:Description>
) oraz rezygnacja z tagu <rdf:RFD>
— kolejne 4 wersje,rdf:type
zapisany jako atrybut (nadal interpretowany jako „URI reference” a nie „Literal” — wyjątek rzadko stosowany, ale zgodny ze specyfikacją) — kolejnych 10 wersji.W efekcie: 30 poprawnych wersji RDF/XML dla grafu RDF składającego się zaledwie z 3 wyrażeń (trójek).
Powyższa mnogość wersji powoduje bardzo poważne utrudnienia w stosowaniu do plików RDF/XML standardowych mechanizmów obsługi plików XML, np. wybór wartości przez XPath, transformacja przez XSLT itp.