Quelque chose de type "œuvre"
... etc

Information Management: A Proposal,
--Tim Berners-Lee, CERN, Marzo 1989

Foafnaut montre l'information comme des éléments (nodes) liés...

<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:mbox rdf:resource="mailto:charles@w3.org"/>
<foaf:givenname xml:lang="en">Charles</foaf:givenname>
</foaf:Person>
</rdf:RDF>
Un outil utile - le validateur RDF
les "triples" (les déclarations):
| sujet | prédicat | objet | |
|---|---|---|---|
| 1 | genid:ARP14847 | http://www.w3.org/1999/02/22-rdf-syntax-ns#type | http://xmlns.com/foaf/0.1/Person |
| 2 | genid:ARP14847 | http://xmlns.com/foaf/0.1/mbox | mailto:charles@w3.org |
| 3 | genid:ARP14847 | http://xmlns.com/foaf/0.1/givenname | "Charles"@en |
Quelque chose sans identification, qui n'a qu'une description (nœud anonyme)

Utilisons :
Regardez un exemple de foaf, ou un exemple d'EARL, si vous ne voulez pas en créer
- declarations de origen independiente
- se prononce comme "cum"
python cwm.py --rdf rdf-ejem.rdf rdf2-ejem.rdf
résultat : les deux fichiers melangés
- l'important est la sémantique
En utilisant une autre forme de RDF, appelée n3, cwm peut
N3 utilise une syntaxe consistante pour tout, mais ce n'est pas XML
python cwm.py --rdf rdf-ejem.rdf rdf2-ejem.rdf --n3
(il est pratique de créer une instruction cwm au lieu de répéter python cwm.py...)
donne :
[ a <http://xmlns.com/foaf/0.1/Person>;
<http://xmlns.com/foaf/0.1/givenname> "Charles"@en;
<http://xmlns.com/foaf/0.1/mbox> <mailto:charles@w3.org> ].
[ a <http://xmlns.com/foaf/0.1/Person>;
<http://xmlns.com/foaf/0.1/mbox> <mailto:charles@w3.org>;
<http://xmlns.com/foaf/0.1/name> "Charles McCathieNevile"@fr ].
l'idée de n3 était de créer une syntaxe facile pour écrire et lire.
(mais en tout cas je préfère utiliser un logiciel)
La syntaxe de base : <url1> <url2> <url3>
.
pour deux déclarations :
<url1> <url2> <url3> .
<url4> <url5> <url6> .
[ <prédicat> <objet> ]<x> a <y> .<x> est un membre de la classe
<y> - c'est à dire
<x> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <y> .
<x> <pred1> <obj1> .
<x> <pred2> <obj2> .
"texto"@esCwm comprend des options dans les instructions
{ ?x a <http://xmlns.com/foaf/0.1/Person> ;
<http://xmlns.com/foaf/0.1/mbox> ?adresse ;
<http://xmlns.com/foaf/0.1/name> ?nom .
?y a <http://xmlns.com/foaf/0.1/Person> ;
<http://xmlns.com/foaf/0.1/mbox> ?adresse ;
<http://xmlns.com/foaf/0.1/givenname> ?prénom .
} =>
{ ?x a <http://xmlns.com/foaf/0.1/Person> ;
<http://xmlns.com/foaf/0.1/mbox> ?addresse ;
<http://xmlns.com/foaf/0.1/givenname> ?prénom ;
<http://xmlns.com/foaf/0.1/name> ?nom } .
Si ?x est une Person, avec une mbox
determiné et un name,
y ?y est une Person avec la même
mbox et un givenname,
?x a aussi ce givenname
=><http://www.w3.org/2000/10/swap/log#implies>?qqChose{ <x> <y> <z> }cwm --rdf rdf-ejem.rdf rdf2-ejem.rdf --n3 regla-ejem.n3 --think
Le résultat inclut toute l'information donnée.
@prefix log: <http://www.w3.org/2000/10/swap/log#>
.<x> <pred> <objUno> .
<x> <pred> <objDos> .
pour n'inclure que les résultats intéressants, on peut utiliser
cwm --rdf rdf-ejem.rdf rdf2-ejem.rdf --n3 regla-ejem.n3 --think --filter=regla-ejem.n3
Ainsi, on n'a que les déclarations correspondant à une implication de regla-ejem.n3
Note Si on veut des autres declarations, il faut les inclure :
{ ?z a ical:Vcalendar } =>
{ ?z a ical:Vcalendar } .
les règles dans le fichier evaluador.n3 incluent un nœud anonyme
{ [ a <http://xmlns.com/foaf/0.1/Person> ;
<http://xmlns.com/foaf/0.1/mbox> ?adresse ;
?relation ?objet ] .
?y a earl:Assertor ;
earl:email ?adresse }
=> { ?y ?relation ?objet } .
On peut utiliser le fichier FOAF, et celui d'EARL.
cwm --rdf earl-ejem.rdf foaf-ejem2.rdf --n3 > cwm-ejem.n3 cwm cwm-ejem.n3 evaluador.n3 --think --filter=evaluador.n3
pour chercher toutes les déclarations avec l'évaluateur comme sujet
{ ?ev a act:ActionItem ; dc:title ?titre ;
log:racine ?desde . ?desde dc:date ?laDate} =>
{ ?ev a ical:Vtodo ; ical:summary ?titre ;
ical:dtstart [ ical:dateTime ?laDate ];
is ical:component of <foo> } .
Note: <objet> is <relation> of
<sujet>
Plus d'information sur cwm (en anglais)
C'est de l'open source, mais en anglais seulement, à ma connaissance (mais Tim parle français).
Il possède des fonctions arithmétiques, entre autres posibilités intéressantes
Rappel
Etc...
RDF de base :
Sujet - Prédicat - Objet
<?xml version="1.0"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:exterms="http://www.example.org/terms/">
<rdf:Description rdf:about="http://www.example.org/index.html">
<exterms:creation-date>August 16, 1999</exterms:creation-date>
</rdf:Description>
</rdf:RDF>
trois attributs similaires pour identifier ce qui est décrit
par ex. <rdf:Description rdf:ID="ici"> se réfère
à #ici dans le document
p.ex. <rdf:Description
rdf:about="http://www.example.com/#ici">
Les proprietés sont les relations
Elles ont une URI - donc se décrivent en RDF
<rdf:Description rdf:about="http://www.w3.org/1999/02/22-rdf-syntax-ns#Property"> <rdfs:comment xml:lang="es">Une relation entre 2 choses identifiées (normalement) par une URIs</rdf:label> </rdf:Description>
Une classe est un type de ressource.
Par exemple, chaque classe RDF est de type
http://www.w3.org/1999/02/22-rdf-syntax-ns#Class
(et elle peut être de plusieurs types à la fois)
Deux choses distinctes, avec un but similaire
<foaf:Person><foaf:name>Charles</foaf:name></foaf:Person><quelquechose:anonyme><dc:title rdf:value="Un
titre"/></quelquechose:anonyme>first, rest, nil, ...subClass - hiérarchie en RDFSUne classe peut être une sous-classe d'autres classes
Par exemple, on peut dire que "maClasse" est une sous-classe
de Class
cela implique que toute chose de type myclass est de type Class (mais la réciproque est fausse)
Il y a aussi subProperty pour les proprietés
Il y a 6 spécifications pour RDF, et 6 de plus pour OWL...
RDFS est une abréviation du nom du langage pour définir des vocabulaires
Il possèfe les proprietés label et comment, qui
sont utiles pour presenter un vocabulaire dans une interface, ou le décrire
d'une manière sémantique.
<rdf:Description rdf:about="http://www.w3.org/2000/01/rdf-schema#label">
<rdfs:label xml:lang="es">Titulo</rdfs:label>
<rdfs:comment xml:lang="es">Un titulo breve pour un termino en un vocabulario RDF</rdfs:comment>
<rdfs:label xml:lang="fr">Titre</rdfs:label>
<rdfs:comment xml:lang="fr">Un titre bref pour un terme dans un vocabulaire RDF</rdfs:comment>
</rdf:Description>
Un langage RDF qui peut mieux definir un vocabulaire
Par exemple
- ou décrit quelquechose d'équivalent....
créer (utilisez rdfs:label et rdfs:comment !) ou
chercher ?
Chercher de préférence, mais où ?