NuestraCiudad:Objetos complejos

De NuestraCiudad
Ir a la navegación Ir a la búsqueda

Los objetos complejos son todas las relaciones semánticas en NuestraCiudad que van más allá de una simple relación sujeto-predicado-objeto o página-atributo-valor. En la terminología de la Web Semántica se las conoce com n-ary relations.

Son necesarios cuando en una página hay dos o más atributos que forman un conjunto inseparable. Un buen ejemplo es una dirección, en la cual existen los valores calle y número: el número no tiene sentido si no se guarda en conjunto con la calle.

Tipos de objetos complejos

Hay tres tipos de objetos complejos: Records, Objetos Internos Semánticos (SIO) y Subobjetos. Además existen seudo-objetos que son una construcción auxiliar propia.

Records

Son atributos que contienen, en vez de un solo valor, una lista de campos de valores de distintas características (es decir, no son simples listas de valores similares). Cada valor con características propias es guardado en su propio atributo.

  • Ejemplo: Atributo:Tiene perfil en red social tiene dos valores diferentes: uno del tipo "URL" (Atributo:Dirección web) y uno del tipo "String" (Atributo:Sitio web)
  • Ventajas: Son más fácilmente utilizables que los otros tipos de objetos complejos, porque la relación básica página-atributo(s)-valor(es) se mantiene.
  • Desventajas: Si se guardan varios valores por campo, son más difíciles de procesar, ya que no es posible desglosar los valores de un campo basado en algún valores de otro campo. Es decir: son guardados como simples listas por campo, no como una "tabla".

Subobjetos

Son objetos que funcionan como una sub-página. Apuntan del objeto al subobjeto. Pueden tener nombres propios o ser anónimos (desde SMW 1.8).

  • Ejemplo: Actualmente en fase de prueba usado en Plantilla:Tabla-Parada.
  • Ventajas: Dado que tienen nombres propios, es posible dirigirse a un subobjeto en particular. En todos los otros aspectos son similares a los objetos internos. A diferencia de estos son una funcionalidad nativa de Semantic MediaWiki.
  • Desventajas: Se pierde la relación página-atributo-valor y se la reemplaza con una relación más compleja: página-subobjeto-atributo(-página) y página-subobjeto-atributo-valor. Por esta razón las consultas son más complejas: no se puede consultar "la página" en la que está incluido el objeto, sino se tiene que consultar directamente al objeto interno.

A partir de 1.9 la funcionalidad de los subobjetos equivale prácticamente a los objetos internos (ver abajo), por lo que los mismos se consideran obsoletos y se han cambiado todas las plantillas reemplazándolos por subobjetos.

Seudo-objetos

En algunos casos no es posible usar subobjetos, y usar records complicaría las cosas aún más. Un caso muy complicado es cuando hay que encapsular un objeto dentro de otro objeto. En este caso, gracias a la extensión Arrays, es posible construir seudo-objetos que se componen de dos propiedades distintas que son unidas mediante una plantilla.

  • Ejemplo: Plantilla:Unidad de recorrido, un objeto interno, contiene seudo-objetos que combinan los valores de los atributos Atributo:Tiene lista de paradas y Atributo:Tiene lista de horarios según su posición en la lista. Cada "parada" así tiene, dentro de la lista, un valor "horario" asignado.
  • Ventaja: A veces la única posibilidad. Respecto a los records es más flexible y más fácil de usar.
  • Desventaja: Es problemática la inclusión "lógica" en el sistema de la ontología.

Objetos Internos Semánticos (Semantic Internal Objects) (obsoleto)

Son objetos que funcionan como una sub-página. Fueron los precursores de los subobjetos. Consisten de un atributo principal que apunta a la página en la cual está incluida, y un número no definido de otros atributos.

  • Ejemplo: El objeto interno basado en la Plantilla:Dirección (antes del cambio a subobjetos).
  • Ventajas: Son muy flexibles en cuanto al procesamiento, ya que se pueden consultar como cualquier otra página. A diferencia de los subobjetos (ver abajo) no hace falta que tengan un nombre propio.
  • Desventajas: Se pierde la relación página-atributo-valor y se la reemplaza con una doble relación: objeto interno-atributo-página y objeto interno-atributo-valor. Por esta razón las consultas son más complejas: no se puede consultar "la página" en la que está incluido el objeto, sino se tiene que consultar directamente al objeto interno.

Objetos complejos en NuestraCiudad

Records

Los records se usan en los siguientes casos:
  • cuando es importante mantener la relación página-atributo-valor
  • cuando hay un solo valor por campo en cada record
  • cuando no hay más de tres campos diferentes
  • aún cuando estas condiciones no están dadas, no hay otra posibilidad si el objeto se encuentra como atributo dentro de un objeto interno o subobjeto.-

Objetos internos y subobjetos

Los objetos internos se usan en los siguientes casos:
  • cuando hay valores con listas (#list) (<SMW 1.9).

Sino, se usan subobjetos, en todos los casos:

  • cuando hay más de una cadena de valores por página
  • cuando se trata de eventos ("recurring events")
  • cuando hay varios objetos similares en una página, que no se pueden diferenciar de manera consistente a través de nombres propios
  • cuando hay una cantidad no definida de objetos similares por página

Los objetos internos se agrupan en plantillas para ser más fáciles de usar.

Plantilla En categoría Plantilla principal Contenidos
Plantilla:Recorrido-Parada Recorrido de transporte público No embebida Atributo:Es parada de recorrido, Atributo:Tiene parada. Atributo:Tiene parada de referencia.

Las paradas son subobjetos de los recorridos de una línea.

Plantilla:Unidad de recorrido Categoría:Tabla de horarios de transporte público No embebida Atributo:Es unidad de recorrido, Atributo:Tiene lista de paradas, Atributo:Tiene lista de horarios
Plantilla:Tabla-Parada Categoría:Tabla de horarios No embebida Atributo:Es horario de tabla, Atributo:Tiene horario, Atributo:Válido para parada, Atributo:Válido para recorrido, Atributo:Válido para tipo de día
Plantilla:Dirección Categoría:Organización, Categoría:Local, Categoría:Estructura, Categoría:Parada de transporte público Plantilla:Organización, Plantilla:Local, Plantilla:Estructura, Plantilla:Parada de transporte público Atributo:Es dirección de lugar, Atributo:Ubicado en calle, Atributo:Tiene número de calle, Atributo:Ubicado en piso, Atributo:Ubicado en unidad (oficina/departamento), Atributo:Ubicado en barrio, Atributo:Tiene código postal, Atributo:Ubicado en localidad
Plantilla:Función Categoría:Persona Plantilla:Persona (Módulo) Atributo:Es función ocupada por, Atributo:Ha ocupado función, Atributo:Tiene nombre de función, Atributo:Tiene fecha de comienzo, Atributo:Tiene fecha de finalización.
Plantilla:Participación Categoría:Entidad personal Plantilla:Evento, Plantilla:Obra Atributo:Es participación en, Atributo:Es participación de, Atributo:Rol en participación
Plantilla:Objeto Categoría:Entidad impersonal Plantilla:Evento, Plantilla:Obra Atributo:Es objeto de, Atributo:Es entidad de objeto, Atributo:Función en objeto
Plantilla:Horario de apertura Categoría:Local Plantilla:Local Atributo:Es horario de apertura de. Atributo:Válido para día de semana, Atributo:Tiene horario de comienzo, Atributo:Tiene horario de finalización.
Plantilla:Instancia de evento Categoría:Evento Plantilla:Evento Atributo:Tiene fecha (único atributo -> "Evento regular interno")
Plantilla:Población de lugar Categoría:Región político-administrativa Plantilla:Localidad, Plantilla:Barrio Atributo:Es población de lugar, Atributo:Tiene población, Atributo:Tiene población urbana, Atributo:Tiene fecha de censo, Atributo:Tiene fecha de estimación, Atributo:Tiene fuente

Objetos obsoletos: Plantilla:Horario en parada, Plantilla:Unidad de recorrido

Subobjetos

Los subobjetos se usan en los siguientes casos:
  • cuando es necesario poder dirigirse al objeto directamente a través de su nombre
  • cuando la cantidad de objetos similares por página es claramente definida

En todos los otros casos es mejor usar un objeto interno semántico o un record, dado el temprano estado de desarrollo de #subobject en Semantic MediaWiki.