Best practice per aggiungere semantica a un sito Web

Sono un po ‘confuso riguardo alla semantica dei siti web. Capisco che ogni URI dovrebbe rappresentare una risorsa. Presumo che tutte le informazioni fornite da RDFa all’interno di una pagina web descrivono la risorsa rappresentata dall’URI di tale pagina web. La mia domanda è: quali sono le migliori pratiche per fornire dati semantici per le sottopagine di un sito web.

Nel mio caso voglio creare un sito web per un gruppo teatrale chiamato magma usando RDFa con schema.org e vocabolari opengraph. Diciamo che ho la pagina di benvenuto ( http://magma.com/ ), una pagina di contatto ( http://magma.com/contact/ ) e le pagine per le riproduzioni individuali ( http://magma.com/play// ).

Ora penso che sia la pagina di benvenuto che la pagina di contatto rappresentano la stessa risorsa (magma) fornendo al contempo diverse informazioni su tale risorsa. Le pagine di riproduzione tuttavia rappresentano rappresentazioni teatrali che vengono eseguite solo da magma. O è meglio dire che le pagine di gioco rappresentano anche il magma, ma forniscono informazioni sui giochi che verranno eseguiti da quel gruppo? La terza opzione che ho trovato è http://schema.org/WebPage . Soprattutto sottotipi come ContactPage sembrano essere rilevanti.

Quando si tratta di implementazione, dove inserisco l’RDFa?

E infine: in che modo la mia scelta cambierà il modo in cui il sito web viene trattato da terze parti (google, facebook, …)?

Mi rendo conto che questa domanda è un po ‘sfocata. Per renderlo più concreto, aggiungerò un esempio che potresti criticare:

     

Romeo and Juliet

...

Shows

  • ...
  • ...

    Capisco che ogni URI dovrebbe rappresentare una risorsa. Presumo che tutte le informazioni fornite da RDFa all’interno di una pagina web descrivono la risorsa rappresentata dall’URI di tale pagina web.

    Bene, un URI HTTP potrebbe identificare la pagina stessa O la cosa della pagina. Non puoi dire se un URI identifica la pagina o la cosa semplicemente guardandola.

    Esempio (nella syntax di Turtle):

      ex:author "John Doe" 

    Ciò potrebbe significare che la pagina HTML con l’URI http://en.wikipedia.org/wiki/The_Lord_of_the_Rings è stata creata da “John Doe”. Oppure potrebbe significare che la cosa descritta da quella pagina HTML (→ il romanzo) è stata creata da “John Doe”. Ovviamente questa è una differenza importante.

    Ci sono vari modi per differenziare cosa rappresenta un URI, e c’è qualche disputa a riguardo. La discussione su questo argomento è nota come problema httpRange-14 . Vedi ad esempio la risorsa Web dell’articolo di Wikipedia.

    Un modo è usare gli URI hash ( vedi anche questa risposta ). Esempio: http://magma.com/play/42 potrebbe identificare la pagina sulla riproduzione, http://magma.com/play/42#play potrebbe identificare la riproduzione .

    Un altro modo è l’uso del codice di stato HTTP 303 . Il codice 200 fornisce la rappresentazione della pagina sulla cosa, il codice 303 See Other fornisce un URI aggiuntivo che identifica la cosa. Questo metodo è utilizzato da DBpedia:

    Vedi Scegliere tra 303 e Hash .

    Ora, quando si utilizza RDFa, è ansible fare dichiarazioni su entrambi, la pagina stessa e la cosa rappresentata dalla pagina. Basta usare l’URI corrispondente come sobject (ad esempio, utilizzando l’ attributo della resource ).

    Diciamo che http://magma.com/#magma rappresenta il gruppo teatrale. Ora puoi usare questo URI su ogni pagina (/ contact, / play /, …) per fare affermazioni sul gruppo resp. per riferirsi al gruppo.

     
    Magma
    Website of Magma

    Vi suggerisco di consultare prima la documentazione semplice di schema.org . Questo vocabolario è molto completo per le tue preoccupazioni e supportato dai principali motori di ricerca.

    Ecco un esempio di snippet per iniziare, puoi includerlo direttamente in una pagina HTML. Quando parli dell’esecuzione del gioco su una pagina puoi usare:

     

    Romeo and Juliet

    Council Bluffs, IA, US May 23 Buy tickets

    Nella tua pagina di contatto potresti includere:

     
    Magma Tel:( 33 1) 42 68 53 00