Estoy de acuerdo con los otros respondedores en que no debe preocuparse por la sintaxis XML, pero tampoco sugeriría pensar en los triples inmediatamente. Primero empiece por pensar con claridad sobre las cosas que está tratando de modelar, luego las tripletas serán más obvias.
Entonces, usted tiene una cosa, su automóvil, que es una especie de automóvil. Ser cualquier tipo de automóvil en general, y ser tu automóvil en particular, son dos conceptos diferentes. Por lo tanto, necesitará dos nombres distintos, RDF los llama recursos, para representar la clase de todos los automóviles y la instancia de su automóvil. Del mismo modo, hay cosas que son GPS en general, y el GPS en su automóvil en particular. Suponiendo un espacio de nombres adecuado, entonces:
:car127 rdf:type :Car .
:gps99 rdf:type :GPS.
Eso es un triple que expresa que un coche dado (sujeto car127
) es un miembro de (predicado rdf:type
) la clase de todos los coches (objeto Car
), y de manera similar una para el GPS .
Su vehículo es propiedad de Nina, quien es una persona.Así que por dos relaciones más, uno diciendo que Nina es una persona, y uno que Nina es dueño de ese coche específico (reutilizando el mismo recurso que identifica el coche):
:nina rdf:type foaf:Person.
:nina foaf:name "Nina".
:car127 :ownedBy :nina.
(OK, he añadido un triple adicional relacionar el URI del recurso :nina
con el nombre Nina).
El GPS es un componente específico del coche específico:
:car127 :containsComponent :gps99.
Ahora, podemos decir que el GPS de manera informal "tiene" una posición lat y largo dado. Claramente estos cambian con el tiempo (si no, consigue un auto nuevo :). Puede modelar esto teniendo los predicados x e y directamente conectados al recurso de GPS, y actualizando repetidamente los valores en el modelo. Pero si piensas en tu GPS dando una serie de lecturas en momentos particulares, parece un poco más claro y más descriptivo. Entonces tenemos:
:gps99 :reading [
rdf:type :Reading;
:lat 51.14276;
:long -2.71619;
:at "2011-09-02T123400"^^xsd:dateTime
].
Los corchetes [...]
es una manera corta a mano de la introducción de un nuevo recurso cuyas propiedades - relaciones - podemos describir, pero cuya identidad no se sabe o no se preocupan. Técnicamente se llama nodo anónimo o bNode, pero ese no es un detalle del que preocuparse ahora. Es suficiente notar que existe una relación (': lectura') desde el dispositivo GPS a un recurso de tipo :Reading
(tenga en cuenta la R mayúscula: esta es una convención para distinguir recursos que identifican clases de otros tipos de recursos). Este recurso de lectura tiene cuatro propiedades: un tipo, latitud y longitud observadas, y el tiempo de la lectura. Si quisiéramos, podríamos agregar más lecturas para otros puntos en el tiempo, lo que serviría para modelar una pista ... ¡pero esa es otra discusión!
Gracias por la explicación. Inicialmente comencé dibujando un gráfico dirigido de rdf triples y luego tratando de seguir los ejemplos en algunos tutoriales en línea de rdf de w3schools.com. La sintaxis que acaba de publicar es nueva para mí, y ahora tengo más preguntas: ¿cómo puedo obtener más información sobre esta sintaxis de escribir triples y qué espacios de nombres debo usar? Veo que utilizó foaf, y xsd ... ¿hay algún lugar o URL donde pueda encontrar fácilmente los espacios de nombres relevantes que necesito? –
La sintaxis se llama Tortuga. Consulte, por ejemplo, http://en.wikipedia.org/wiki/Turtle_%28syntax%29 –
En cuanto a los espacios de nombres, generalmente los verá nombrados en la documentación que describe el vocabulario que desea usar: FOAF, DC, etc. Sin embargo, un buen punto de referencia que recopila prefijos juntos es http: // prefix.cc –