nodetype ejemplo xml rdf

ejemplo - soap xml



Diferencias entre rdf: resource, rdf: about y rdf: ID (2)

Me gustaría aclarar algunos de los puntos excelentes en la respuesta proporcionada, pero solo con respecto a rdf: ID y rdf: about.

Las etiquetas se utilizan para construir un URI. Si no se proporciona el URI completo (como rdf: ID = "x"), el URI generado es relativo al URI base dentro del alcance que generalmente se deriva de la ubicación del documento, pero se puede especificar con el atributo xml: base .

El punto (mencionado anteriormente) es que rdf: about puede ser un URI completo, por lo que es fácil configurarlo.

rdf: ID no puede ser un URI completo, pero aún puede controlarlo si configura manualmente el atributo xml: base.

Por lo tanto, la regla general para mí es usar rdf: about para un identificador "conocido mundialmente" (cuando desea que el URI sea siempre el mismo) y usar rdf: ID al describir un recurso local cuyo URI no es cuidado fuera del documento actual.

¿Cuáles son las diferencias conceptuales entre rdf:resource , rdf:about y rdf:ID ? Hice una investigación pero la diferencia entre ellos aún no está clara para mí. Por ejemplo, si rdf:ID se usa al declarar un recurso por primera vez, rdf:resource se usa para hacer referencia a un recurso ya existente, etc.

Me alegraría si me das algunos pequeños ejemplos.


Para que quede claro, se trata solo de una forma particular de escribir rdf: RDF / XML. Otras sintaxis no presentan estas diferencias.

Con ese descargo de responsabilidad fuera del camino:

Lo que estamos tratando de hacer es escribir declaraciones de la forma:

subject predicate object

y en particular:

subjectURI predicate objectURI

Entonces, ¿cómo introducimos URI de sujeto y objeto en RDF / XML?

  1. rdf:about establece el URI del sujeto de una declaración, que puede ser absoluta ( http://example.com/ ) o resuelta en relación con la BASE del documento (por ejemplo, /foo/bar , #frag ). (Como href en html)
  2. rdf:resource establece el URI de objeto de una declaración, una vez más absoluta o relativa.
  3. rdf:ID establece el URI del sujeto, pero solo puede estar dentro de este documento. Una identificación solo se puede usar una vez. Muy parecido a <a name="baz"> o id="baz" en html.

rdf:ID se recomienda desde

  1. puede reemplazarlo con un rdf:about o rdf:resource con un fragmento #baz y
  2. puede causar problemas xml si usa la misma ID más de una vez.

Es decir, es redundante y una fuente potencial de errores.

En retrospectiva, normalmente solo es necesario que haya un atributo para especificar un URI, ya que la sintaxis RDF / XML muestra si algo es un sujeto u objeto:

<ex:Foo ...> - subject <ex:prop ... /> - property then object </ex:Foo> <ex:Foo ...> - subject <ex:prop> - property <ex:Bar ... /> - subject (and implictly an object chaining from previous) ...

(regla general: líneas impares rdf:about , incluso líneas, rdf:resource )

y usar rdf:about y rdf:resource en un elemento es casi siempre un error (estás en una posición de sujeto o en una posición de objeto).

tl; dr

Evitar rdf:ID . Use rdf:about y rdf:resource como href, el primero para sujeto, el último para objetos.

Adicional

Olvidó mencionar que rdf:ID se puede usar en un elemento de propiedad, pero hace algo que puede encontrar inesperado: reifica el triple. Evitar rdf:ID .