Estoy jugando con RDF y, en particular, cómo acceder a la información almacenada en un almacenamiento de rdf. La gran diferencia de una base de datos relacional tradicional es la falta de un esquema predefinido: en una base de datos relacional, usted sabe que la tabla tiene esas columnas, y puede mapear técnicamente cada fila a una instancia de una clase. La clase tiene métodos bien definidos y atributos bien definidos.¿Mejores prácticas para acceder a datos sin esquema?
En un sistema sin esquema, no sabe qué datos están asociados a una determinada información. Es como tener una tabla de base de datos con un número arbitrario y no predefinido de columnas, y cada fila puede tener datos en cualquier número de estas columnas.
Similar a ObjectRelational Mappers, existen mapeadores Object RDF. RDFAlchemy y SuRF son los dos que estoy jugando en este momento. Básicamente, le proporcionan un objeto de Recurso, cuyos métodos y atributos se proporcionan dinámicamente. Tiene algún sentido ... sin embargo, no es tan fácil. En muchos casos, prefiere tener una interfaz bien definida y tener más control de lo que sucede cuando establece y obtiene datos en su objeto modelo. Tener un acceso tan genérico hace que las cosas sean difíciles, en cierto sentido.
Otra cosa (y más importante) he observado es que, incluso si engenerales, se espera que los datos sin esquema para proporcionar información arbitraria sobre un recurso, en la práctica más o menos clases saber" de la información "que tienden a estar juntos". Por supuesto, no puede excluir la presencia de información adicional, pero esto, en algunos casos, es la excepción, en lugar de la norma, aunque la excepción es lo suficientemente sensible como para ser demasiado perjudicial para un esquema estricto. En una representación en rdf de un artículo (por ejemplo, como en los feeds RSS/ATOM) conoce los términos de los recursos descritos y puede asignarlos a un objeto bien definido. Si proporciona información adicional, puede definir un objeto extendido (heredado de la base) para proporcionar acceso a la información mejorada. De modo que, en cierto sentido, puede tratar con datos sin esquema por medio de "objetos orientados al esquema", puede ampliar cuando desea ver información adicional específica que le interese.
Mi pregunta es relativa a su experiencia sobre las prácticas de uso del mundo real de almacenamiento de datos sin esquema. ¿Cómo se asignan al mundo orientado a objetos para que pueda usarlo con soltura y sin acercarse demasiado al "bare metal" del almacenamiento sin esquema? (en términos de RelDB, sin utilizar demasiados SQL y directamente jugando con la estructura de la tabla)
El acceso está condenado a ser muy genérico (por ejemplo, los "atributos conectados" de SuRF son el nivel más alto y especializado que puede tener acceda a sus datos), o tener clases especializadas para esquemas convenientes convenidos específicos también es un buen enfoque, ¿pero presenta el riesgo de tener una proliferación de clases para acceder a datos asociados nuevos e inesperados?
Ahora que es una pregunta ENORME – rossipedia
Para longitud o complejidad? :PAG –