ES2609445T3 - Método, controlador, programa y sistema de almacenamiento de datos para realizar procesado de reconciliación - Google Patents

Método, controlador, programa y sistema de almacenamiento de datos para realizar procesado de reconciliación Download PDF

Info

Publication number
ES2609445T3
ES2609445T3 ES12174230.8T ES12174230T ES2609445T3 ES 2609445 T3 ES2609445 T3 ES 2609445T3 ES 12174230 T ES12174230 T ES 12174230T ES 2609445 T3 ES2609445 T3 ES 2609445T3
Authority
ES
Spain
Prior art keywords
nodes
reconciliation
graph
node
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
ES12174230.8T
Other languages
English (en)
Inventor
Bo Hu
Loredana Laera
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Application granted granted Critical
Publication of ES2609445T3 publication Critical patent/ES2609445T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9024Graphs; Linked lists
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/36Creation of semantic tools, e.g. ontology or thesauri
    • G06F16/367Ontology
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/02Knowledge representation; Symbolic representation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Computational Linguistics (AREA)
  • Evolutionary Computation (AREA)
  • Mathematical Physics (AREA)
  • Computing Systems (AREA)
  • Artificial Intelligence (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Animal Behavior & Ethology (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

Un método para realizar reconciliación de recursos representados en un gráfico de datos como nodos; incluyendo el método: seleccionar un subconjunto inicial de los nodos del gráfico para los que se ha de realizar procesado de reconciliación con un nodo particular; realizar procesado de reconciliación entre el nodo particular y cada uno del subconjunto inicial de nodos; retardar el procesado de reconciliación entre el nodo particular y otro subconjunto de los nodos del gráfico para el que se ha de realizar reconciliación con el nodo particular, donde el procesado de reconciliación del subconjunto adicional de los nodos se retarda y realiza durante intervalos de tiempo cuando la supervisión de los recursos informáticos responsables del procesado de reconciliación indica que dichos recursos informáticos estarían en reposo en caso contrario.

Description

5
10
15
20
25
30
35
40
45
50
55
60
65
DESCRIPCION
Metodo, controlador, programa y sistema de almacenamiento de datos para realizar procesado de reconciliacion
La presente invencion se refiere al campo del almacenamiento de datos y el procesado asociado. Espedficamente, realizaciones de la presente invencion se refieren al rendimiento de recursos de procesado de reconciliacion en una representacion grafica de un conjunto de datos. El procesado de reconciliacion tiene la finalidad de reconciliar la heterogeneidad entre recursos semanticamente correspondientes en el grafico.
El enorme volumen de datos graficos disponibles crea un potencial de analisis automatizado o semiautomatizado que puede no solamente poner de manifiesto tendencias estadfsticas, sino tambien descubrir configuraciones ocultas y obtener conocimiento de datos. La semantica formal desempena un papel clave en la automatizacion de tareas que requieren mucho calculo. Aunque hay una larga discusion sobre como se captura mejor la semantica, se considera ampliamente que los graficos y las representaciones a modo de graficos son el mejor instrumento para emular como los humanos perciben el mundo (como una ontologfa con entidades y relaciones entre entidades).
Por lo tanto, las bases de datos graficos ofrecen la ventaja de presentar naturalmente una representacion de conocimientos basada en “redes semanticas” que puede almacenar grandes cantidades de datos estructurados y no estructurados.
Una base de datos graficos es una representacion de datos que emplea nodos y bordes (o arcos) para representar entidades, y arcos entre nodos para representar relaciones entre dichas entidades. Se usan bases de datos graficos en una amplia variedad de diferentes aplicaciones que en general se pueden agrupar en dos categonas principales. La primera consta de sistemas complejos basados en conocimiento que tienen grandes colecciones de descripciones de conceptos (denominadas “aplicaciones basadas en conocimiento”), tal como soporte de decisiones inteligentes y autoaprendizaje. La segunda incluye aplicaciones que implican realizar analisis de graficos sobre datos transaccionales (denominadas “aplicaciones de datos transaccionales”), tal como inteligencia de empresas y datos sociales.
En el corazon de las bases de datos graficos formalizadas esta el Marco de Descripcion de Recursos, RDF, un simple lenguaje de modelado de datos basado en graficos que realiza marcacion semantica de datos. Con RDF, los silos de datos pueden empezar a fragmentarse conjuntamente y el paisaje de datos dispersos actuales transformarse en un grafico de datos conectado sobre el que se puede construir complicadas aplicaciones de analftica de datos e inteligencia comercial.
Los conjuntos de datos pueden ser en general altamente heterogeneos y distribuidos. La naturaleza descentralizada de tales datos origina el problema de que a menudo muchas fuentes de datos usan diferentes referencias para indicar el mismo objeto del mundo real. Un paso necesario e importante hacia la utilizacion de datos graficos disponibles es efectivamente identificar y reconciliar multiples referencias para consistencia semantica. A continuacion, el termino “reconciliacion” se usa para indicar el proceso de reconciliar la heterogeneidad entre recursos (como nodos en un grafico de datos, por ejemplo, como el sujeto u objeto de triplas RDF) identificando y definiendo enlaces de equivalencia entre recursos que corresponden semanticamente uno a otro. Se sigue que el “procesado de reconciliacion” es la ejecucion de algoritmos e instrucciones con un procesador con el fin de lograr la reconciliacion.
El significado de reconciliacion de datos es evidente. La reconciliacion de datos asegura la integridad de los datos cuando se enlazan conjuntos de datos heterogeneos (dando lugar a variedad semantica en los datos). El analisis significativo no puede ser realizado de otro modo. Mientras tanto, las equivalencias permiten alinear aplicaciones una con otra. Por lo tanto, las comunicaciones entre las aplicaciones se pueden automatizar y delegar a los ordenadores.
NATALYA F NOY y colaboradores: “The PROMPT suite: Interactive tools for ontology merging and mapping”, INTERNATIONAL JOURNAL OF HUMAN_COMPUTER STUDIES, vol. 59, n° 6, 1 Diciembre 2003 (2003-12-01), paginas 983-1024, XP055055662, ISSN: 1071-5819, DOI: 10,1016/j.ijhcs.2003,08,002, describe una herramienta que permite al usuario seleccionar secciones de dos ontologfas a fusionar en un tiempo determinado por el usuario.
Las realizaciones de la presente invencion proporcionan un metodo para realizar reconciliacion de recursos representados en un grafico de datos como nodos; incluyendo el metodo: seleccionar un subconjunto inicial de los nodos del grafico para los que se ha de realizar procesado de reconciliacion con un nodo particular; realizar procesado de reconciliacion entre el nodo particular y cada uno del subconjunto inicial de nodos; retardar el procesado de reconciliacion entre el nodo particular y otro subconjunto de los nodos del grafico para el que se ha de realizar reconciliacion con el nodo particular, donde el procesado de reconciliacion del subconjunto adicional de los nodos se retarda y realiza durante intervalos de tiempo cuando la supervision de recursos informaticos responsables del procesado de reconciliacion indica que dichos recursos informaticos estanan en reposo en caso contrario.
Se puede crear enlaces de equivalencia durante o despues de la creacion de un grafico. En procesos de
5
10
15
20
25
30
35
40
45
50
55
60
65
reconciliacion existentes, el proceso de hallar enlaces de equivalencia se realiza simultaneamente (en una sola rutina) frente a todo el conjunto de datos. Esto podna ser una fuente significativa de ineficiencia si se considera una gran cantidad de datos (del tamano de miles de millones de nodos). La reconciliacion es un proceso complejo, tedioso y lento, asf como generalmente caro. Los algoritmos de reconciliacion realizan a menudo operaciones computacionalmente intensivas que pueden ser considerablemente lentas. Esto plantea varios retos con vistas a su aplicabilidad practica para tareas complejas reales y la eficiente utilizacion de las arquitecturas de computacion que mejor encajen en los requisitos de datos para obtener maximo rendimiento y escalabilidad. La cantidad de datos disponibles esta creciendo y, por lo tanto, la cantidad de datos disponibles a reconciliar a menudo no puede ser manejada por los acercamientos y las herramientas existentes. Para poder reconciliar grandes cantidades de datos, es deseable un enfoque severo en cuestiones de escalabilidad.
Los datos del grafico pueden denominarse “datos conectados”, “datos de grafico”, “datos enlazados” o “datos relacionados”, entre otras expresiones -todas las cuales pretenden reflejar la estructura conceptual de un grafico como una pluralidad de nodos interconectados por arcos. En algunas implementaciones, los datos del grafico pueden ser “lados enlazados” como en datos proporcionados como parte de la iniciativa “Datos abiertos enlazados” (LOD), aunque las realizaciones de la presente invencion no se limitan a tales implementaciones, y el termino “datos enlazados” puede ser interpretado en sentido mas amplio que solamente datos proporcionados como parte de la iniciativa LOD.
Proporcionando un proceso con el que se realiza el procesado de reconciliacion, pero no necesariamente todo en una sola rutina, se habilita la escalabilidad. Es decir, cierto procesado de reconciliacion puede ser realizado a la adicion de un nuevo nodo al grafico, o a la adicion de un nuevo elemento de datos (tal como una tripla) que tiene un nodo como sujeto, pero el procesado de reconciliacion no es necesariamente con todo el conjunto de nodos en el grafico, simplemente un subconjunto. El tamano de dicho subconjunto inicial no tiene que aumentar necesariamente a medida que el tamano del grafico aumenta, y por lo tanto el procesado requerido para el procesado de reconciliacion inicial no es inviables a medida que el grafico aumenta.
Ademas, reduciendo el requisito de realizar procesado de reconciliacion frente a todo el grafico en una pasada o una rutina, el cuello de botella producido por el procesado de reconciliacion de nuevos nodos se alivia. Esto mejora el rendimiento del sistema en conjunto, y tambien permite al operador del sistema tender hacia algoritmos de reconciliacion mas complejos y por lo tanto potencialmente mas efectivos, sin preocuparse por el impacto adverso en el rendimiento del sistema.
La reconciliacion de recursos puede ser un proceso de reconciliar la heterogeneidad entre recursos en un grafico identificando y produciendo enlaces de equivalencia entre recursos (representados por nodos en el grafico) que corresponden uno a otro semanticamente. Por ejemplo, donde dos recursos que tienen nombres diferentes se refieren al mismo objeto del mundo real (es decir, los dos recursos son semanticamente equivalentes/de significado equivalente), sena apropiado anadir un enlace al grafico indicando que los dos recursos son equivalentes. Reconciliar recursos puede incluir identificar donde existen equivalencias entre recursos (los nodos de grafico son un recurso), y anadir una indicacion de la equivalencia al grafico. La identificacion de multiples recursos o representaciones de la misma entidad del mundo real tambien se conoce como mapeado ontologico, coincidencia ontologica, o alineacion ontologica.
Un recurso puede ser un recurso web desreferenciable por un URI, y puede ser una representacion (descripcion) de una entidad descrita por datos del grafico. Una entidad particular puede estar representada por uno o mas recursos.
Retardar el procesado de reconciliacion puede incluir realizar los procesos de identificar la equivalencia semantica entre recursos y anadir al grafico enlaces que indiquen las equivalencias semanticas, y luego esperar uno de un conjunto predeterminado de eventos de disparo, o una decision hecha por un programador de tareas en respuesta al estado (tal como el uso/carga) de recursos informaticos en el sistema, antes de reanudar dichos procesos.
En realizaciones de la presente invencion, seleccionar el subconjunto inicial puede incluir determinar que nodo tiene el numero mas alto de accesos de lectura en operaciones de representacion grafica, e incluir los nodos en el subconjunto inicial como los nodos mas visitados.
El tamano del subconjunto inicial puede ser controlable por un administrador de sistema, o puede ser preestablecido, y puede ser, por ejemplo, un numero establecido de nodos o una proporcion establecida de nodos en el grafico. Una operacion de representacion grafica puede incluir visitar/leer nodos de grafico de manera particular; eventualmente todos los nodos podna ser visitados donde el metodo de visitar puede afectar a la eficiencia del algoritmo de representacion. Ventajosamente, seleccionando los nodos mas visitados en el subconjunto inicial, el procesado de reconciliacion se completa entre el nodo particular y los nodos de consulta mas probable. Por lo tanto, es probable que los nodos lefdos como parte de una consulta al grafico hayan tenido procesado de reconciliacion realizado con otros nodos en el grafico. Ademas, seleccionar el subconjunto inicial tambien puede incluir determinar que nodo tiene la probabilidad mas alta de tener un acceso de lectura como el nodo siguiente despues de uno de los nodos mas visitados en una operacion de representacion grafica.
5
10
15
20
25
30
35
40
45
50
55
60
65
Ventajosamente, en este metodo particular, la aparicion conjunta con los nodos mas visitados tambien se usa como una base para seleccion en el subconjunto inicial. Esto ampUa el rango de nodos que habran tenido procesado de reconciliacion realizado con una alta proporcion de los otros nodos cuando sean consultados, y la extension se dirige de manera que sea simpatica al mecanismo con el que se hacen los accesos de lectura a los nodos. Usando una regla de asociacion de apariciones conjuntas para identificar los nodos que muy probablemente seran visitados despues de uno de los nodos mas visitados en una operacion de representacion grafica, el procesado de reconciliacion realizado para los nodos mas visitados tambien puede ser realizado (propagarse) para los nodos identificados, como parte del subconjunto inicial.
En una implementacion alternativa, puede ser que los nodos que tengan la probabilidad mas alta de tener un acceso de lectura como el nodo siguiente despues de que uno de los nodos mas visitados en una operacion de representacion grafica sean identificados como un subconjunto adicional para el que se retarda el procesado de reconciliacion. Por ejemplo, subconjuntos adicionales pueden estar asociados con un rango de probabilidades de nodos que tienen un acceso de lectura como el nodo siguiente despues de uno de los nodos mas visitados en una operacion de representacion grafica, y los nodos pueden ser asignados a otro subconjunto dependiendo de dicha probabilidad.
En implementaciones en las que se ha determinado que, en un tiempo u otro, entre cada nodo y otro nodo se debe realizar procesado de reconciliacion, el subconjunto adicional de los nodos son todos los nodos del grafico que no son elementos del subconjunto inicial. Sin embargo, puede ser que en el subconjunto adicional de nodos no se realice necesariamente todo el procesado de reconciliacion entre ellos y el nodo particular en una sola rutina, sino que se puede dividir en subconjuntos adicionales, con retardos entre el procesado de reconciliacion para cada subconjunto adicional.
Realizar procesado de reconciliacion entre cada nodo y cada uno de los otros nodos es deseable porque permite alinear una con otra varias aplicaciones que utilizan o analizan los datos en el grafico y facilita la comunicacion entre ellas. Por ejemplo, un recolector de datos puede seguir los enlaces de equivalencia producidos por procesado de reconciliacion para navegar a traves de una web de datos potencialmente sinfm.
Opcionalmente, el procesado de reconciliacion del subconjunto adicional de los nodos puede ser retardado y realizado durante intervalos de tiempo cuando la supervision de recursos informaticos indica que los recursos informaticos estaran en reposo en caso contrario.
Puede ser que el procesado de reconciliacion se realice solamente en el tiempo de reposo del sistema. Opcionalmente, puede ser que el procesado de reconciliacion del nodo particular con el subconjunto inicial se realice en un tiempo determinado por eventos en el grafico, por ejemplo, en el tiempo de introduccion de un nuevo elemento de datos (tal como una tripla RDF) en el grafico, y que el procesado de reconciliacion entre el subconjunto adicional y el nodo particular se retarde hasta dicho tiempo de reposo del sistema. El tiempo de reposo del sistema se usa aqrn como notacion conveniente de un rango de estados operativos en el que hay capacidad de manejar la carga de procesado extra impuesta por el procesado de reconciliacion al recurso responsable del procesado de reconciliacion. Por ejemplo, puede ser que el procesado de reconciliacion del subconjunto adicional sea realizado por el procesador cuando no haya otras tareas pendientes en el procesador. Tales decisiones puede tomarlas un programador de carga de trabajo centralizado (que tiene la funcionalidad de un modulo de control de procesado de reconciliacion) o localmente en el procesador propiamente dicho. Es decir, puede ser que la decision de cuando realizar procesado de reconciliacion entre el nodo particular y el subconjunto adicional de nodos se tome dependiendo del estado operativo del recurso de calculo responsable de realizar dicho procesado.
Los metodos que realizan la presente invencion pueden incluir ademas: anadir una identificacion del nodo particular a una lista; mantener la identificacion del nodo particular en la lista hasta que el procesado con el subconjunto adicional de los nodos del grafico haya sido realizado, despues de lo que la identificacion del nodo particular se quita de la lista; y cuando se recibe una consulta al grafico que identifica uno o mas nodos a leer, verificar cual del unico o los varios nodos a leer es identificado en la lista, y por cada uno del unico o los varios nodos a leer que sea identificado en la lista, realizar procesado de reconciliacion con cada nodo del grafico.
Tal lista podna mantenerse a nivel central, por una entidad que tenga la funcion de un controlador de reconciliacion (tal como un modulo de control de procesado de reconciliacion) o controlador de sistema. Alternativamente, puede ser que la lista se realice dentro de una arquitectura distribuida, y que sea realizada por mas de un nodo de un sistema distribuido que trabajen en cooperacion uno con otro. En algunas implementaciones, puede ser deseable que el procesado de reconciliacion sea completado con respecto a un nodo particular antes de ser devuelto como parte de una respuesta a una consulta, o lefdo como parte de una respuesta a una consulta. Ventajosamente, mantener una lista de los nodos para los que todavfa no se ha realizado un procesado de reconciliacion completo (es decir, procesado de reconciliacion con otros nodos en el grafico) permite la facil identificacion del procesado de reconciliacion que se tiene que realizar antes de devolver una respuesta a una consulta. La identificacion del nodo en la lista puede ser, por ejemplo, un nombre o un URI. La identificacion de un nodo particular puede permanecer en la lista hasta que el procesado de reconciliacion con el subconjunto adicional de nodos haya sido iniciado o completado, dependiendo de la implementacion.
5
10
15
20
25
30
35
40
45
50
55
60
65
Adicional o alternativamente, por cada nodo del grafico no incluido en el subconjunto inicial con el que se lleva a cabo procesado de reconciliacion, un metodo que realiza la presente invencion puede incluir anadir una identificacion del nodo particular a una lista de nodos no reconciliados en los metadatas asociados, y mantener dicha identificacion en dicha lista hasta que se lleve a cabo el procesado de reconciliacion con el nodo particular, despues de lo que la identificacion del nodo particular se quita de dicha lista; y cuando se recibe una consulta al grafico que identifica el unico o los varios nodos a leer, por cada uno de los nodos a leer, realizar procesado de reconciliacion entre dicho nodo y cada uno de los nodos identificados en la lista de nodos no reconciliados en los metadatas asociados.
Hay implementaciones en las que cada uno de los nodos tiene metadatas asociados, que pueden estar almacenados en el nodo o en una posicion enlazada a/de el nodo o localizable en base a una identificacion del nodo. Cada nodo tiene sus propios metadatas individuales asociados. Los metadatas pueden incluir una lista de nodos que han sido reconciliados con (= se realizo procesado de reconciliacion entre ellos propiamente dichos y) el subconjunto inicial de nodos, pero todavfa no con el nodo en cuestion. Ventajosamente, esto permite realizar el control del procesado de reconciliacion con el subconjunto adicional de nodos localmente en base a informacion disponible en el nodo o accesible directamente desde el nodo.
Aunque no es esencial en realizaciones de la presente invencion, las implementaciones pueden incluir sistemas en los que el grafico esta almacenado en una red distribuida de recursos informaticos. La red distribuida de recursos informaticos (nodos de almacenamiento) puede incluir un sistema de mas de una unidad de almacenamiento distinta en comunicacion entre sf. Un paradigma de comunicacion ejemplar es entre iguales (P2P), por lo tanto puede ser que la red distribuida de recursos informaticos sea una red entre iguales de nodos de almacenamiento. p2p es una arquitectura distribuida que divide tareas o cargas de trabajo entre iguales. Los iguales (nodos o procesos de almacenamiento individuales) son participates equipotentes, igualmente privilegiados, en la aplicacion. Cada igual esta configurado para hacer que una porcion de sus recursos, tal como potencia de procesado, almacenamiento en disco o anchura de banda de red, este directamente disponible para otros participates en la red, sin necesidad de coordinacion central por servidores o hosts estables. Puede considerarse que los iguales son tanto proveedores como consumidores de recursos, en contraposicion a un modelo cliente-servidor tradicional donde los servidores suministran y los clientes consumen. Ventajosamente, un sistema P2P puede mantener grandes grupos de nodos de almacenamiento intercambiando mensajes con un costo de comunicacion logantmico.
En terminos del proceso actual de realizar reconciliacion entre dos nodos, en realizaciones de la presente invencion, el procesado de reconciliacion del nodo particular con otro nodo puede incluir: obtener un valor de semejanza agregando los valores resultantes de realizar una pluralidad de diferentes calculos de semejanza, u obtener un solo valor resultante de realizar un calculo de semejanza, donde un calculo de semejanza es un calculo que genera un valor que representa la probabilidad de que el nodo particular y el otro nodo sean semanticamente equivalentes; y si el valor de semejanza excede de un umbral de semejanza predeterminado, anadir al grafico un enlace de equivalencia que denota una relacion de equivalencia entre el nodo particular y el otro nodo.
Ventajosamente, las realizaciones de la presente invencion reducen el requisito de realizar todo el procesado de reconciliacion para un nodo particular de una vez, o en una sola rutina. Con la flexibilidad anadida del acercamiento incremental al procesado de reconciliacion empleado en realizaciones de la presente invencion, se puede emplear un algoritmo mas robusto o un conjunto de algoritmos en el procesado de reconciliacion propiamente dicho, sin impactar negativamente en el rendimiento general del sistema. Para ello, las realizaciones de la presente invencion pueden ejecutar una pluralidad de algoritmos cada uno de los cuales de un valor de semejanza, o ejecutar un unico algoritmo robusto, que de un valor de semejanza, y agregar estos valores para obtener un valor de semejanza general para comparacion con un umbral. Puede ser que cada algoritmo (o calculo de semejanza) de un sf/no (1/0) acerca de si dos nodos son o no semanticamente equivalentes, y el umbral es la proporcion de resultados afirmativos requeridos del numero total de calculos de semejanza realizados. Alternativamente, se puede usar una media ponderada de un numero de calculos de semejanza para obtener un valor de semejanza.
Dependiendo de la manera en que se implemente una realizacion de la presente invencion, puede ser que el procesado de reconciliacion se realice simultaneamente en mas de un recurso de calculo dentro de la red distribuida de recursos informaticos, entre el nodo particular y los nodos almacenados en dicho recurso de calculo y pertenecientes al subconjunto de nodos con respecto a los que se este realizando el procesado de reconciliacion con el nodo particular.
Los sistemas de almacenamiento distribuidos, como los que se podna emplear para almacenar un grafico de datos, imponen una segmentacion en los datos por su naturaleza. Ventajosamente, las realizaciones de la presente invencion pueden aprovechar dicha segmentacion realizando reconciliacion en paralelo para un nodo particular realizando procesado de reconciliacion en cada recurso de calculo usado para almacenamiento de nodos entre el nodo particular y los nodos de grafico almacenados en dicho recurso de calculo. Puede ser que se realice cierta segmentacion ortogonal de los datos, de modo que cada recurso de calculo no realice procesado de reconciliacion entre el nodo particular y cada uno de los nodos almacenados en el en una rutina, sino que divida los nodos, por ejemplo, en base a la frecuencia con que los nodos son visitados en operaciones de representacion grafica. Esta
5
10
15
20
25
30
35
40
45
50
55
60
65
segmentacion ortogonal proporciona mayor flexibilidad en implementaciones de procesado en paralelo. Puede ser que el procesado de reconciliacion entre el nodo particular y un subconjunto inicial se realice en el centro, y que luego se realice el procesado de reconciliacion entre el nodo particular y el subconjunto adicional, y posiblemente tambien se programe, localmente.
Las realizaciones de la presente invencion pueden mejorar o realizar su funcionalidad mediante el almacenamiento de ciertas estad^sticas/valores/propiedades/parametros/mediciones como metadatos almacenados en base por nodo. Las realizaciones de la presente invencion pueden incluir almacenar, para cada nodo, como metadatos asociados, un valor que represente los numeros de accesos de lectura realizados al nodo en operaciones de representacion grafica, y un valor que represente el numero de veces que se leyo cada nodo con el que el nodo este enlazado en el grafico como el nodo siguiente en una operacion de representacion grafica.
En realizaciones de la presente invencion, el conocimiento, los hechos y/o las declaraciones se representan con un grafico de nodos y bordes, donde los nodos son las entidades descritas o representadas, y los bordes son las relaciones entre dichas entidades. Las realizaciones de la presente invencion pueden estar configuradas para almacenar datos graficos directamente, es decir, como nodos y bordes. Sin embargo, puede ser que se emplee alguna otra estructura de datos subyacente.
Como una estructura de almacenamiento de datos subyacente ejemplar, puede ser que los datos en el grafico esten codificados como triplas incluyendo cada una un sujeto, un predicado, y un objeto, y los nodos del grafico son los sujetos y los objetos de las triplas, y el predicado de una tripla denota un enlace entre el sujeto y el objeto de la tripla.
Opcionalmente, las triplas pueden ser triplas del Marco de Descripcion de Recursos (RDF). En todo este documento, se debera entender que donde se hacen referencias espedficas a “tripla(s) RDF)”, es una forma de tripla ejemplar, conforme al estandar RDF. Ademas, las referencias a “tripla(s)” incluyen la posibilidad de que la tripla en cuestion sea una tripla RDF. Igualmente, los procesadores RDF explicados en otro lugar en este documento son ejemplos de procesadores usados para interaccion entre el wrapper API y los elementos de datos almacenados.
El Marco de Descripcion de Recursos es un metodo general para la descripcion conceptual o el modelado de informacion que es un estandar para redes semanticas. Estandardizar el modelado de informacion en una red semantica permite la interoperabilidad entre aplicaciones que operan en una red semantica comun. RDF mantiene un vocabulario sin semantica formal ambigua, proporcionando el esquema RDF (RDFS) como un lenguaje para describir vocabularios en RDF.
Opcionalmente, cada uno del unico o los varios elementos de la tripla (siendo elemento el predicado, el objeto, o el sujeto) es un identificador de recursos uniformes (URI). RDF y otros formatos de tripla son premisa de la nocion de identificar cosas (es decir, objetos, recursos o casos) usando identificadores web como URIs y describir las 'cosas' identificadas en terminos de simples propiedades y valores de propiedad. En terminos de la tripla, el sujeto puede ser un URI que identifique un recurso web que describa una entidad, el predicado puede ser un URI que identifique un tipo de propiedad (por ejemplo, color), y el objeto puede ser un URI que especifique la instancia particular de dicho tipo de propiedad atribuido a la entidad en cuestion, en su encarnacion de recursos web. El uso de URIs permite que las triplas representen declaraciones simples, con relacion a recursos, como un grafico de nodos y arcos que representan los recursos, asf como sus respectivas propiedades y valores. Un grafico RDF puede ser consultado usando el protocolo SPARQL y el lenguaje de consulta RDF (SPARQL). Fue estandarizado por el Grupo de Trabajo de Acceso a Datos RDF (DAWG) del World Wide Web Consortium, y se considera una tecnologfa web de clave semantica. SPARQL permite que una consulta conste de configuraciones de triplas, uniones, desuniones, y configuraciones opcionales.
Las triplas proporcionan codificacion de datos graficos caracterizando los datos graficos como una pluralidad de expresiones de sujeto-predicado-objeto. En ese contexto, el sujeto y el objeto son nodos de grafico de los datos graficos, y como tales son entidades, objetos, casos, o conceptos, y el predicado es una representacion de una relacion entre el sujeto y el objeto. El predicado afirma algo acerca del sujeto proporcionando un tipo de enlace especificado al objeto. Por ejemplo, el sujeto puede denotar un recurso web (por ejemplo, mediante un URI), el predicado denota un rasgo particular, caractenstica o aspecto del recurso, y el objeto denota una instancia de dicho rasgo, caractenstica o aspecto. En otros terminos, una recogida de declaraciones de triplas representa intnnsecamente datos graficos direccionales. El estandar RDF proporciona estructura formalizada para tales triplas.
El procesado de reconciliacion entre un nodo y un subconjunto inicial de nodos puede ser iniciado a la entrada de una nueva tripla al grafico. Ademas, puede ser condicional sobre si el sujeto de la nueva tripla es en sf mismo nuevo (en cuyo caso el procesado de reconciliacion se inicia para dicho 'nodo particular'), o no (en cuyo caso se decide que no se requiere procesado de reconciliacion).
Realizaciones de un aspecto particular de la presente invencion proporcionan un controlador de base de datos para realizar reconciliacion de recursos representados en un grafico de datos como nodos; incluyendo el controlador de base de datos: un modulo de seleccion configurado para seleccionar un subconjunto inicial de los nodos del grafico
5
10
15
20
25
30
35
40
45
50
55
60
65
para los que se ha de realizar procesado de reconciliacion con un nodo particular; un modulo de procesado de reconciliacion configurado para realizar procesado de reconciliacion entre el nodo particular y cada uno del subconjunto inicial de nodos; un modulo de control de procesado de reconciliacion configurado para retardar el procesado de reconciliacion de otro subconjunto de los nodos del grafico para el que se ha de realizar reconciliacion con el nodo particular, donde el procesado de reconciliacion del subconjunto adicional de los nodos es retardado y realizado durante intervalos de tiempo cuando la supervision de recursos informaticos responsables del procesado de reconciliacion indica que dichos recursos informaticos estanan en reposo en caso contrario.
El controlador de base de datos podna realizarse como un controlador centralizado en un solo recurso de calculo, como un controlador centralizado por un numero de recursos informaticos que cooperan, o como un controlador entre una pluralidad de controladores equivalentes cada uno en un recurso de calculo respectivo en un sistema de almacenamiento distribuido. Por ejemplo, puede ser que el controlador de base de datos lo facilite un programa que se ejecute en un recurso de calculo en el sistema de almacenamiento, y que uno o mas recursos informaticos distintos tambien ejecuten programas equivalentes de modo que la base de datos sea accesible mediante una pluralidad de controladores de base de datos.
Realizaciones de otro aspecto de la presente invencion proporcionan un sistema de almacenamiento de datos para almacenar un grafico de datos en el que los recursos se representan como nodos del grafico, incluyendo el sistema de almacenamiento de datos: una pluralidad de unidades de almacenamiento configurada cada una para almacenar un segmento de datos del grafico de datos; y un controlador de base de datos como se ha descrito anteriormente y/o en otro lugar como una realizacion de la invencion. Naturalmente, las unidades de almacenamiento de datos son ejemplos de recursos informaticos, y pueden tener funcionalidad de procesado y funcionalidad de control/gestion ademas de almacenamiento.
Las unidades de almacenamiento pueden ser recursos informaticos, por ejemplo, cada una puede incluir una unidad de almacenamiento, ademas de un procesador, memoria, y/o componentes adicionales tal como una tarjeta de interfaz de red, una placa madre, dispositivos de entrada/salida.
Realizaciones de otro aspecto de la presente invencion proporcionan un programa de ordenador que, cuando es ejecutado por un ordenador, hace que el ordenador realice un metodo que realiza la presente invencion. Ademas, realizaciones de otro aspecto de la presente invencion incluyen un programa de ordenador, que, cuando es ejecutado por uno o mas ordenadores, hace que el unico o los varios ordenadores funcionen como un controlador de base de datos que realiza la presente invencion. Los programas de ordenador que realizan la presente invencion pueden estar almacenados en un medio de almacenamiento legible por ordenador, tal como un medio de almacenamiento no transitorio, y se pueden proporcionar como un solo programa de ordenador o como una serie de programas secundarios.
Realizaciones de la presente invencion implementan un acercamiento para realizar procesado de reconciliacion que tiene uno o varios de los efectos ventajosos siguientes: reducir el esfuerzo computacional de la reconciliacion; descomponer el procesado en trozos mas pequenos para permitir una mejor programacion de las tareas de reconciliacion; aprovechar el almacenamiento de datos distribuido para permitir la segmentacion ortogonal de los datos para aumentar el rendimiento en paralelo y mejorar la escalabilidad; permitir la ejecucion de varias medidas de semejanza al mismo tiempo y en recursos de ordenador dispersados; es guiado por un modelo de probabilidad para realizar reconciliacion.
Ahora se describiran caractensticas preferidas de la presente invencion, puramente a modo de ejemplo, con referencia a los dibujos acompanantes, en los que:
La figura 1 es una ilustracion esquematica del software desplegado en un servidor en un sistema de almacenamiento de datos que realiza la presente invencion.
La figura 2 ilustra una arquitectura de sistema de una realizacion de la presente invencion en la que parte de la funcionalidad de control esta centralizada.
La figura 3 es un diagrama de flujo que ilustra el procesado realizado al anadir una nueva tripla a un almacenamiento de datos subyacente en una realizacion de la presente invencion.
La figura 4 es un diagrama de flujo que ilustra el procesado realizado al actualizar el grafico extendido y realizar procesado de reconciliacion en una realizacion de la presente invencion.
La figura 5 es un diagrama de flujo que ilustra un proceso ejemplar para realizar procesado de reconciliacion en una realizacion de la presente invencion.
La figura 6 es un diagrama de flujo que ilustra un proceso ejemplar para recibir y manejar una consulta en una realizacion de la presente invencion.
5
10
15
20
25
30
35
40
45
50
55
60
65
La figura 7 es un diagrama de flujo que ilustra un proceso ejemplar para llevar a cabo reconciliacion exhaustiva para un nodo en una realizacion de la presente invencion.
La figura 8 es un diagrama de flujo que ilustra un proceso ejemplar para llevar a cabo procesado de reconciliacion “en nodo” en una realizacion de la presente invencion.
La figura 9 es una ilustracion conceptual de paralelizacion de procesado de reconciliacion.
La figura 10 es una ilustracion conceptual de la segmentacion de datos habilitada por distribucion ffsica de datos y utilizando valores almacenados como metadatas.
La figura 1 ilustra la arquitectura del software desplegado en cada servidor 10. En este ejemplo particular, el sistema de almacenamiento esta compuesto por un conjunto de servidores que comunican a traves de un sistema de paso de mensajes. En el ejemplo ilustrado en la figura 1, los servidores implementan un modelo de capas multiples donde cada capa explota y usa capacidades de las capas situadas debajo. La arquitectura consta, partiendo de la capa superior, de una capa semantica 11, una capa rDf 12, una capa de adaptador de tripla 14, una capa KVS 15, y una capa de comunicacion 16 con un detector de fallo 13 que se extiende junto a la capa de adaptador de tripla 14 y la capa KVS 15. Naturalmente, como sera claro por la descripcion que sigue, la realizacion aqrn explicada usa triplas rDf como la estructura de datos subyacente para almacenar el grafico de datos. Esta no es de ningun modo la unica estructura de datos subyacente que se puede usar en realizaciones de la invencion, pero se ha seleccionado aqrn al objeto de presentar una implementacion ejemplar de realizaciones de la invencion. Ademas, se emplea un formato kVs (almacenamiento de valor clave), en el que las triplas RDF propiamente dichas se usan como claves para acceder a mas datos (incluyendo metadatos) en un almacenamiento de valor asociado. De nuevo, el formato KVS se selecciona para presentar una implementacion ejemplar de realizaciones de la invencion, y sera evidente a los expertos que las realizaciones de la invencion no se limitan a este formato concreto.
Los parrafos siguientes describen el papel de cada capa y su interaccion.
1) Capa semantica: la capa semantica 11 es la interfaz a aplicaciones de cliente que interactuan con usuarios finales y esta configurada para enviar consultas de usuario al procesador RDF. En esta capa, los datos no se consideran como triplas RDF individuales, sino a un nivel conceptual o incluso a nivel modelo (como grupos de triplas RDF relacionados). Las operaciones de procesado semantico tales como procesado de reconciliacion de datos y representacion de propiedad se realizan en esta capa. El analisis ontologico de mayor refinamiento tecnico, tal como inferencia basada en normas e inferencia basada en logica descriptiva, tambien se puede habilitar cuando se necesite un analisis semantico profundo. En la implementacion ejemplar, se puede realizar inferencias de nivel alto a traves de Jena y OWL2 RL/RDF. Sin embargo, la capa semantica 22 no se limita a implementaciones espedficas y permite conectar facilmente otros motores de inferencia. La capa semantica 11 proporciona la funcionalidad de control del modulo de seleccion, el modulo de procesado de reconciliacion, y el modulo de control de procesado de reconciliacion mencionado en otro lugar en este documento.
2) Capa RDF: la capa RDF 12 puentea la capa de datos subyacente y la capa semantica. Esto se puede implementar con una API tal como Jena Graph API. La capa RDF 12 esta configurada para usar metodos que operan directamente con triplas, por ejemplo anadir/quitar triplas y recuperar triplas usando consultas RDF SPARQL. Tambien en la capa RDF 12 hay un motor SPARQL, responsable de convertir la consulta basada en texto a un conjunto de operaciones. Estas operaciones incluyen operaciones de busqueda a nivel bajo, mecanismos de filtracion y union, entre otros. Algunas de estas funcionalidades se implementan dentro del motor SPARQL en esta capa, mientras que la busqueda de datos a nivel bajo la facilita la capa de adaptador de tripla subyacente 14.
3) Capa de adaptador de tripla: la capa de adaptador de tripla 14 es responsable de convertir triplas a una clave que puede ser almacenada en la capa KVS 15. Esta clave debera ser unica y tambien puede ser comparable con otras claves con el fin de implementar un orden (en el que cada clave es mayor, menor o igual a cualquier otra clave generada a partir de una tripla) sobre claves. La capa de adaptador de tripla 14 proporciona a la capa superior tres operaciones simples: anadir una nueva tripla, sacar una tripla existente, y hallar un conjunto de triplas segun criterios espedficos. La operacion hallar es espedfica de RDF, recibe tres parametros, que pueden ser un valor espedfico o nulo. Por ejemplo, hallar (sujeto; nulo; nulo) devuelve todas las triplas que tienen un sujeto espedfico (definido). Esta capa usa la interfaz KVS subyacente para almacenar, quitar y consultar datos.
4) Capa KVS: la capa KVS 15 implementa un almacenamiento distribuido de valores clave ordenados. Ofrece una interfaz de mapa hash ordenado regular para anadir un par de valores clave, para obtener o quitar un valor clave (dada alguna clave) y, adicionalmente, para ejecutar consultas de rango sobre el KVS ordenado. El metodo de consulta de rango recibe una clave minima prefijo y una clave maxima prefijo, y desvuelve un iterador sobre todos los pares de valores clave contenidos dentro del rango dado. Esta capa es responsable de la distribucion y recuperacion de los datos de otros servidores. Esta capa usa la capa de comunicacion subyacente 16 para comunicar con los otros servidores pasando mensajes.
5) Detector de fallo: el detector de fallo 13 es responsable de la ejecucion de vigilantes que detectaran un fallo de
5
10
15
20
25
30
35
40
45
50
55
60
servidor y notificaran a la capa de almacenamiento los servidores supervivientes (sin fallo). Tambien usa la capa de comunicacion 16 para intercambiar mensajes entre otros servidores y producir un conjunto de procesos vivos, tambien llamado una vista del sistema. Cuando esta vista cambia, se le notifica a la capa KVS 15 de modo que, por ejemplo, pueda disparar la recuperacion de fallos. El detector de fallo 13 es muy opcional en el contexto de las realizaciones de la presente invencion, y proporciona funcionalidad que amplfa la funcionalidad de las realizaciones de la invencion.
6) Capa de comunicacion: la capa de comunicacion 16 es un mecanismo por el que se pueden pasar mensajes entre servidores (ejemplos de unidades de almacenamiento o dispositivos informaticos mencionados en otro lugar en este documento). Por ejemplo, la capa de comunicacion 16 puede estar configurada para exportar primitivos para enviar y recibir mensajes a/de otros servidores. El lector experto apreciara que se puede usar muchas implementaciones alternativas para esta finalidad.
La figura 2 ilustra una arquitectura alternativa, en la que una aplicacion de cliente 30 comunica con un solo punto de contacto centralizado mediante un procesador RDF centralizado 22. El procesador RDF 22 tiene la funcionalidad de la capa RDF 12, pero en el ejemplo de la figura 2 se implementa a un nivel centralizado, mas bien que local. El procesador de reconciliacion 21 (que combina la funcionalidad del modulo de seleccion, el modulo de procesado de reconciliacion, y el modulo de control de procesado de reconciliacion mencionados en otro lugar en este documento) tambien se implementa a un nivel centralizado en el ejemplo de la figura 2. El procesador de reconciliacion 21 esta configurado para controlar y realizar procesado de reconciliacion para un grafico almacenado en la pluralidad de unidades de almacenamiento de datos 23. La pluralidad de unidades de almacenamiento de datos 23 estan configuradas al menos para almacenar un segmento de un grafico de datos. Ademas, las unidades de almacenamiento de datos 23 pueden estar configuradas para realizar las funciones de una o varias de la capa de adaptador de tripla 14, la capa KVS 15, la capa de comunicacion 16, y el detector de fallo 13 descritos anteriormente. Las figuras 1 y 2 ilustran que varias funciones de realizaciones de la presente invencion se pueden llevar a cabo a un nivel local o a un nivel centralizado, dependiendo de los requisitos del sistema en el que se implemente la realizacion.
KVS se emplea en la realizacion ejemplar de la figura 1 (y es igualmente aplicable a la figura 2) como acercamiento para escalar el almacenamiento de datos RDF, es decir, el almacenamiento del grafico de datos. Sin embargo, las triplas RDF propiamente dichas no estan preparadas para KVS. Un primer paso es definir las tuplas de valores clave que un KVS estandar puede utilizar convenientemente. A continuacion se expone una estructura de datos formalizada ejemplar para un almacenamiento distribuido (grafico) de datos.
Definicion 1: Tripla RDF. Una tripla RDF t, (s,p,o) (denotado como SPO) define la relacion entre un sujeto (s) y el objeto (o). La relacion se refiere a usar un predicado (p). El sujeto (s) y el objeto (o) son nodos en el grafico, y el predicado es un arco.
Tripla es la estructura de datos fundamental en RDF. Como tal, las triplas son una estructura de datos subyacente ejemplar para almacenar una base de datos de grafico (que se puede considerar que es una forma almacenada del grafico) en realizaciones de la presente invencion. Sin embargo, la presente invencion tambien puede realizarse o aplicarse a realizaciones en las que se emplee una estructura de datos subyacente distinta de triplas RDF. El objeto de una tripla puede ser, a su vez, el sujeto de otras triplas o de tipos de datos concretos tal como cadena, entero, etc. Un grafico es una presentacion natural de triplas RDF. Un grafico RDF es un grafico etiquetado dirigido. Los vertices (nodos) del grafico son sujetos u objetos de triplas y los bordes son predicados. En un grafico RDF, ambos nodos y bordes tambien se denominan recursos RDF.
Definicion 2: Grafico RDF. Sea T un conjunto de triplas RDF. La representacion grafica de T es G = (V,E) donde V={v|3t e T.(v e sujeto(t)uobjeto(t))} y E = {(vs,vo)|(s,p,o) e T}. V se define como un conjunto de nodos (o vertices) como sujetos u objetos de triplas RDF mientras que E es un conjunto de bordes (o arcos) entre nodos generalmente especificados como un par de nodos (v-i,v2),v-i,v2 e V.
En terminos generales, KVS es un modelo de datos no relacional que permite almacenar datos sin esquema. Los beneficios clave de KVS son la simplicidad y la escalabilidad. Los elementos de datos en KVS son tuplas de valores clave (k,v), donde k es un identificador unico y v la carga que k identifica.
Definicion 3: Tupla K/V (valor clave) triplificada. Dado una tripla t, la tupla K/V triplificada es
imagen1
donde los metadatos guardan metadatos de tripla como el valor de una tupla de valores clave.
Como un ejemplo de un almacenamiento de triplas como un formato de datos subyacente para realizaciones de la presente invencion, cada tripla de la forma SPO se replica generando dos variantes semanticamente identicas, pero
5
10
15
20
25
30
35
40
45
50
55
60
sintacticamente diferentes en forma de (p,o,s) (denotado como POS) y (o,s,p) (denotado como OSP). Esto bajo la consideracion de rendimiento de consulta y recuperacion de fallo, y con vistas a proporcionar un mecanismo para almacenar varias formas de metadatas utilizados en algunas realizaciones de la invencion.
La consulta de datos RDF se efectua normalmente mediante consultas de rango, sustituyendo elementos en triplas por comodines. Por ejemplo SELECT(?,?,?) recupera todas las triplas en el almacenamiento de datos mientras que SELECT(?,?,o) devuelve todas las triplas con o como objeto. La replica de datos permite clasificar datos segun no solamente los sujetos sino tambien los predicados y los objetos. Esto mejora la ejecucion de la consulta.
Las triplas son almacenadas en un KVS distribuido, en esta implementacion espedfica, con cada tripla y sus variantes como una clave y los metadatos relacionados como un valor. Tal acercamiento facilita el modelado y la gestion de metadatos flexibles. Como se ha mencionado previamente en este documento, se podna haber usado cualquier otro almacenamiento basado en grafico, preferiblemente las realizaciones de la presente invencion se implementan de tal forma que los metadatos puedan ser almacenados y accedidos mediante el almacenamiento basado en grafico. En las realizaciones de la invencion, los metadatos pueden ser usados para registrar frecuencias de visita a nodos y apariciones conjuntas de pares de nodos como se explica a continuacion. A su vez, los metadatos se usan para seleccionar que nodos de grafico incluir en el subconjunto inicial de nodos, y cuales pueden tener procesado de reconciliacion con un nodo particular retardado.
El conjunto tanto de triplas originales de la forma SPO como sus replicas de la forma POS y OSP se clasifica y divide en n segmentos, donde n es el numero de servidores (o unidades de almacenamiento) que se usaran para almacenar los datos, con cada servidor responsable para un segmento de datos. Se puede usar una funcion hash para mapear segmentos de los datos a servidores.
Con el fin de localizar eficientemente el segmento donde se debera colocar una tripla espedfica o una de sus variantes, se puede usar un Trie (un arbol clasificado con complejidad de busqueda vinculada al tamano de cadena a indexar), donde cada hoja del Trie corresponde a un segmento de datos. Por ejemplo, se puede implementar un mapeado de dos etapas desde un elemento de datos al servidor. Todas las triplas existentes son organizadas y clasificadas usando el Trie, disponiendose todo el conjunto de triplas en orden alfabetico. El hallazgo del segmento de datos correcto se efectua entonces siguiendo el prefijo asociado con cada nodo en el Trie. Despues de recuperar las IDs de segmento, se puede emplear hashing consistente como una herramienta para mapear segmentos a maquinas servidoras. Poniendo en cascada los dos mapeados conjuntamente, una funcion (y) que es capaz de hallar a cada tripla su maquina de almacenamiento destino: y: t ^ IDmachine con implementacion y = hashing consistente (busqueda de trie (t)). Esta funcion mapea un elemento de datos a un segmento ID usando la estructura Trie y a continuacion el segmento ID es mapeado a una ID de maquina usando hashing consistente. Este metodo se usa para almacenar todas las versiones de triplas, como se describe en los parrafos siguientes.
La adicion de una tripla incluye los pasos de localizar el segmento de datos en el espacio de datos ordenado e insertar la tupla de valores clave en la maquina correspondiente (usando mapeado y ()). Un algoritmo ejemplar para introduccion de tripla se detalla a continuacion en algoritmo 1.
Algoritmo 1: addTriple(t)
Requerir: y()
mi ^ Y(t SPO), m2 ^ Y(t POS),ma ^ Y(tOSP) almacenar ((t.SPO,metadatos),mi,m2,m3) en mi almacenar ((t.PPO,metadatos),mi,m2,m3) en m2 almacenar ((t.OSP,metadatos),mi,m2,m3) en m3
Los argumentos pasados a una maquina de almacenamiento incluyen la tripla o una variante de la tripla y los identificadores (mi, m2, m3) de todas las maquinas implicadas (para variantes) que se mantienen en una tabla mdice de almacenamiento local de servidor para recuperacion de fallo. Estos procedimientos aseguran que cada tripla SPO, POS y OSP se almacene en el sistema de tal forma que permita consultas de rango usando como prefijo cualquier combinacion de un subconjunto de los datos de tripla.
El mecanismo de localizar una tripla es el mismo para recuperacion y borrado. Dado que los datos siempre estan ordenados, es posible recuperar IDs de segmento necesarias para manejar consultas de rango RDF. La definicion 5 expone como se podna realizar una consulta de rango en esta implementacion espedfica.
Definicion 5: Consulta de rango. Dadas dos triplas t1 y t2 y segmentaciones de datos D0, ...,Dn, una consulta de rango recupera todas las triplas entre ti y t2 inclusive como:
5
10
15
20
25
30
35
40
45
50
55
{t\t eDt a tx e Di a key{t) > key(tx)} u [if'| ?'e ZX a t2 e Dy. a key{?) < key(t2)}
donde key() convierte una tripla a una clave
imagen2
en KVS.
Los segmentos que tienen que ser visitados son: el segmento conteniendo ti, el segmento conteniendo t2, y todos los segmentos entremedio.
Una operacion de borrar se procesa de manera similar sustituyendo la instruccion “almacenar” en el algoritmo 1 por “borrar” en cada uno de los servidores. La instruccion “borrar” quita la fila que corresponde a la tripla y actualiza la tabla mdice respectiva, si es necesario.
El acercamiento incremental a la reconciliacion de las realizaciones de la presente invencion se puede implementar de manera “activada por evento”. Se produce un evento cuando “algo” cambia el estado de un almacenamiento de datos (por ejemplo se introduce una nueva tripla o se recupera una tripla existente), siendo un almacenamiento de datos la version almacenada del grafico. A efectos de reconciliacion de datos, dos eventos elementales se consideran eventos relevantes que pueden disparar el procesado de reconciliacion: addEvent y readEvent. AddEvent es emitido por una operacion de introduccion de tripla. ReadEvent es emitido por consulta de grafico. La reconciliacion se dispara como una reaccion a estos dos eventos. Otros tipos de eventos que pueden impactar en la reconciliacion de datos se pueden representar como una serie de addEvents y readEvents y por ello no se definen por separado. Naturalmente, addEvent y readEvent estan altamente conectados. Cuando se anade una tripla a un grafico no vado, las triplas relacionadas seran visitadas y evaluadas para detectar cualesquiera datos que deban ser reconciliados, haciendo que se emita una serie de readEvent al almacenamiento de datos. Tal relacion estrecha se refleja de la manera ejemplar para seleccionar el subconjunto inicial de nodos con los que realizar el procesado de reconciliacion con un nodo particular expuesto a continuacion. ReadEvent se considera como una operacion de representacion grafica. La historia de representaciones se emplea para establecer un subconjunto inicial incluyendo los nodos mas visitados y los nodos que tienen una fuerte relacion de apariciones conjuntas con los nodos mas visitados. El algoritmo para seleccionar el subconjunto inicial es un mecanismo ejemplar para seleccionar el subconjunto inicial, y se basa en el supuesto de que si dos nodos estan fuertemente correlacionados (es decir, la probabilidad de visitar el nodo B despues de visitar el nodo A en una operacion de representacion grafica es muy alta), es altamente probable que el procesado de reconciliacion realizado en A tambien deba realizarse en B en la misma rutina, en vez de retardarse. Siguiendo los recorridos de tales nodos correlacionados usando relaciones de apariciones conjuntas se puede seleccionar un subconjunto inicial de nodos cuya reconciliacion sea mas inminente que la de otros nodos.
La deseabilidad de tal mecanismo de seleccion es evidente. Aunque el grafico esta almacenado a traves de multiples servidores, el tamano de datos en una maquina individual puede ser potencialmente muy grande, denegando una accion de reconciliacion exhaustiva en tiempo real. La probabilidad de aparicion conjunta entre dos nodos arbitrarios puede ser usada para dividir el grafico en un grafico secundario de nodos frecuentemente visitados y los que tienen fuerte correlacion con los nodos mas frecuentemente visitados (subconjunto inicial), y uno conteniendo menos nodos visitados (subconjunto adicional). Con respecto a este ultimo, las comprobaciones de reconciliacion se posponen hasta que se realice una operacion de lectura directa. Por lo tanto, se habilita un acercamiento incremental para reconciliacion con respecto a un grafico de datos grande.
Dividiendo el grafico en un subconjunto inicial y subconjunto adicional, tambien es posible superponer la segmentacion del grafico de datos sobre la segmentacion de datos ffsicos ya en posicion. Esta segmentacion basada en el uso mejora mas el procesado en paralelo de la reconciliacion de datos.
Realizaciones de la presente invencion pueden emplear o crear un grafico extendido, extendido por algunos campos/valores de metadatos particulares que seran elaborados mas adelante. Los campos de metadatos particulares proporcionan informacion que puede ser usada al diferenciar el subconjunto inicial de nodos del subconjunto adicional de nodos.
Definicion 4: Grafico RDF extendido.
El grafico RDF extendido es Ge = (V', E') que extiende el grafico RDF G = (V, E) con metadatos de nodo y borde:
5
10
15
20
25
30
35
40
45
50
55
60
V'- {{v,mv | v e F)}, \es E\,
donde V y E son los definidos en la Definicion 2: Grafico RDF.
Las triplas son tratadas como la estructura de datos subyacente en esta implementacion concreta, y el grafico RDF extendido definido anteriormente requiere metadatas de nodo local y borde local. Dado que esta implementacion guarda tres variantes de cada tripla, los metadatas pueden ser almacenados de la siguiente manera:
* Almacenar metadatos de nodo y borde: mv se almacena localmente en cada tripla SPO y OSP para nodos que representan sujeto de tripla y objeto de tripla respectivamente. Me se almacena localmente en cada PSO. Actualizar los metadatos de una tripla existente incluye leer las triplas de metadatos, recalcular el valor, y poner de nuevo el valor.
* Consultar metadatos de nodo y borde: al consultar metadatos acerca de un nodo particular o borde, todas las triplas relevantes son recuperadas y los metadatos se agregan cuando sea apropiado.
Por ejemplo, una indicacion de cuantas veces se lee una tripla particular (t) se puede mantener usando una simple tupla de valores clave: (kt, number_of _visits). Si se precisa un modulo funcional para averiguar el numero total de visitas al nodo s, deberan recuperarse todas las tuplas de valores clave que tengan (s,?,?) como clave (donde ? corresponde a cualquier cadena). El number_of_visits correspondiente se sumara entonces para obtener la respuesta final.
El grafico RDF normal se extiende con metadatos que registran las frecuencias de visita a nodos y las apariciones conjuntas de pares de nodos. El uso de frecuencia y aparicion conjunta tiene la finalidad de reducir el numero de nodos que un proceso de reconciliacion tiene que visitar inicialmente y por ello reducir el costo computacional al tiempo de introduccion de tripla. Esto permite una tecnica de reconciliacion incremental que pospone operaciones no urgentes al punto en que sea necesario. Los metadatos de nodo y borde se usan como un mecanismo para indicar que significativos son los nodos entre otros y cuan estrechamente estan conectados los nodos uno a otro.
Se anaden incrementalmente valores numericos al grafico normal como resultado de readEvent (consulta disparada por datos). A continuacion, el grafico normal de datos (grafico RDF) se indica como G y el grafico extendido G'i, indicando i cuantas iteraciones (disparadas por readEvent y addEvent) han sido aplicadas al grafico original efectuando la transformacion de grafico incremental.
Definicion 6: Frecuencia, aparicion conjunta, peticion pendiente.
Sea t una tripla (s,p,o) y sean s y o dos nodos resultantes de la representacion grafica de t. La frecuencia, f(s), es el numero total de visitas al nodo sujeto s. La aparicion conjunta
co(s,o) - ,
f(s)
donde m es el numero total de veces que una tripla particular (s,p,o) ha sido visitada/consultada con s como el sujeto.
Lt = [to; ..., ti, ..., tn] es una lista de triplas conteniendo todas las todavfa por reconciliar en el nodo. Lt puede estar vacta.
La aparicion conjunta entre el nodo s y el nodo o es aproximada como, de todas las visitas en el nodo s, cuantas han conducido a la visita del nodo o. En el nivel de almacenamiento subyacente, los metadatos estan asociados con triplas que forman tuplas de valores clave, donde la frecuencia y la peticion pendiente se implementan como metadatos de nodo (es decir, (v, f: Lt)) mientras que la aparicion conjunta se realiza a traves de metadatos de borde como (e, co). Naturalmente, estas son simplemente tecnicas ejemplares para almacenar metadatos requeridos para identificar los nodos mas visitados y los nodos visitados despues de los nodos mas visitados en operaciones de representacion grafica. El lector experto apreciara que se podria usar varios valores diferentes almacenados como metadatos en posiciones diferentes para la misma finalidad.
AddEvent y readEvent son manejados por el sistema de forma diferente. Dado que anadir una tripla a un grafico da lugar normalmente a que se emita una serie de consultas y potencialmente se generen y anadan nuevas triplas, una instancia de addEvent puede ser considerada como una secuencia de actualizaciones de los valores de frecuencia y aparicion conjunta. Teoricamente, tal efecto en cadena terminara solamente si no hay que procesar mas nodos.
Sea t una tripla (s,p,o) equivalente a un borde dirigido que va desde el nodo sujeto al nodo objeto. Cada operacion
5
10
15
20
25
30
35
40
de lectura en el grafico cambia incrementalmente el valor de frecuencia f(s) del nodo que ha sido visitado y la relacion de apariciones conjuntas co(s,o) entre nodos contiguo en G’i. La base es que usando la regla de asociacion de apariciones conjuntas, se puede decidir si el procesado de reconciliation realizado con respecto a nodo s sera/debera ser propagado a los nodos contiguos que conectan con s, o si el procesado de reconciliacion de los nodos contiguos debera ser retardado.
La figura 3 ilustra un flujo de control en el proceso de anadir una nueva tripla a un grafico.
Al anadir una tripla a un grafico vado, no se necesita reconciliacion, S101-S103, ‘Sr en S102. El grafico extendido es inicializado entonces como el grafico RDF sencillo en el paso S104. Al anadir una tripla a un grafico existente, ‘NO’ en S102, el grafico extendido es actualizado en S105 en la medida en que una frecuencia correspondiente del nodo sujeto y la aparicion conjunta del borde que conecta el sujeto y el objeto de tripla se incrementan en 1. El procesado de reconciliacion se realiza en S105, si es necesario. En esta etapa, puede ser que se seleccione un subconjunto inicial de nodos y que el procesado de reconciliacion se realice entre el subconjunto inicial de nodos y el nodo sujeto de la nueva tripla. Un flujo ejemplar de control para el procesado dentro de S105 se expone en la figura 4, como se explica a continuation, y se formaliza en el algoritmo 2. En muchos casos, el procesado de reconciliacion puede dar lugar a producir nuevas triplas, ‘Si’ en S106, que a su vez debera incurrir en actualization de metadatos y nuevo procesado de reconciliacion. Esto continuara hasta que no se genere un nuevo conocimiento (tripla). Este proceso se formaliza en el algoritmo 2. Observese que, debido a la naturaleza de KVS, la adicion a pares de valores clave existentes simplemente actualiza los valores de las tuplas.
En terminos de aparatos que realizan ciertos procedimientos, la selection de un subconjunto inicial puede ser realizada por un modulo de seleccion. El procesado de reconciliacion, incluyendo los calculos de semejanza, su agregacion, y la creation de nuevos enlaces de equivalencia donde sea apropiado, puede ser realizado por un modulo de procesado de reconciliacion. La identification y la programacion de procesado de reconciliacion adicional (retardado), incluyendo responder a ciertos eventos de disparo e identificar el procesado de reconciliacion que debera ser realizado en respuesta a un evento de disparo, es realizado por un modulo de control de procesado de reconciliacion. Cada uno de los modulos puede ser realizado como parte de un controlador de base de datos que puede ser local a una unidad de almacenamiento/servidor/recurso de calculo en un sistema distribuido, o puede estar centralizado y estar dispuesto en un elemento de hardware centralizado o por hardware/recursos de calculo/servidores distribuidos que cooperan para crear un controlador centralizado efectivo. Los modulos pueden ser realizados como hardware, o pueden ser modulos de software que operen en un recurso de calculo/servidor/unidad de almacenamiento, por ejemplo, como parte de un sistema de gestion de base de datos.
La reconciliacion de datos/semantica tiene lugar principalmente cuando se afirman nuevos datos de instancia. Al anadir una tripla t = (s,p,o), una instancia addEvent dispara la realization de reconciliacion del sujeto s de la tripla insertada t frente a todo el grafico. En la practica, el tamano de un grafico frente al que hay que efectuar procesado, puede llegar facilmente a millones de nodos y ser demasiado grande para permitir una representation exhaustiva. Centrando la seleccion en un subconjunto inicial con el que se ha de realizar inicialmente reconciliacion del nodo particular, en este caso el sujeto de la nueva tripla, se reduce la carga de procesado adelantado y se obtiene una aproximacion de reconciliacion inicial menos cara.
Algoritmo 2 doAddEvent(f = (s, p,oj)
Require: G = (V,E} as the RDF graph
Require: addTriple() (Algorithm 1) if G = 0 then
H no reconciliation is necessary addTripl e(t)
initialise G0 where V’ = V and £' = £
G0 <- G0 u {(s, f0 (s) = 0), {(s, o),co0(s,o) = 0)}
return end if
if 5 € F'then
fi {s) = fi-|W + 1 if (5,0) e E' then
coj (s, o) = coM (s, o) + 1 else
cOjiSfO) = 0
end if else
//= 0
end if
G] f-Gwuji)/j(4((i,o),coi(i,o)))
addTriple(f)
reconcile(f) against Gt
if new triples are generated then new add£ve/7f.fire() end if
Algoritmo 3 reconcile(f) t = (s,p,o)
Require: a and j8 as predefined thresholds
S^{v£V'\ft (v) >
for every v'e S do
doReconciliation (s, v')
end for
for every v" e VIS do
if 3v'e S.(v',v") e £'aco.(v>") > J3 then
doReconciliationfSjV”)
else
record (v",t) end if end for
actualizar los metadatos de G'
5
El algoritmo 3 es un algoritmo ejemplar para seleccionar un subconjunto inicial de nodos con el que se lleva a cabo procesado de reconciliacion con un nodo particular, y el registro de una indicacion del nodo particular en los nodos que no son parte del subconjunto inicial, de modo que se pueden reconciliar con el nodo particular a demanda en el futuro (es decir, el procesado de reconciliacion se retarda).
10
La figura 4 ilustra un flujo de control correspondiente al algoritmo 2, y al procesado que tiene lugar como parte de S105 de la figura 3. Es decir, la figura 4 ilustra un flujo de control para realizar procesado de reconciliacion para un nodo particular (por ejemplo, el nodo sujeto de una nueva tripla) con el grafico, y actualizar el grafico extendido. En S200, se recuperan los nodos mas visitados. El procesado de reconciliacion entre el nodo particular y los nodos mas 15 visitados se efectua en S201, mientras que la aparicion conjunta de nodos se recupera/calcula en s202, y los nodos
contiguos a los nodos mas visitados que tienen frecuencias de aparicion conjunta con el respectivo nodo mas
visitado superiores a un umbral predeterminado (‘St en S203) tambien son reconciliados con el nodo particular en S201 como parte del subconjunto inicial. El procesado realizado en S201 se ilustra con mas detalle en el diagrama de flujo de la figura 5 y en el algoritmo 3. Una vez que no haya nodos mas visitados restantes o contiguos a los 20 nodos mas visitados que tengan aparicion conjunta con el nodo mas visitado superior a un umbral, se comprueba si
la generacion de nuevas triplas como parte del procesado de reconciliacion ha dado lugar a nuevos nodos mas
5
10
15
20
25
30
35
40
45
50
55
60
65
visitados, de modo que se repiten los pasos S200 a S203. Esto se conoce como el “efecto en cadena” y continua hasta que no se anaden nuevas triplas como parte del procesado de reconciliacion. El procesado de reconciliacion entre el resto de los nodos y el nodo particular se retarda. Como se expone en el algoritmo 2, se registra una indicacion del nodo particular en cada uno de los nodos con los que no se realiza procesado de reconciliacion como parte de los pasos S200 a S204, de modo que los nodos puedan ser reconciliados incrementalmente despues de un retardo.
La base que esta detras de este acercamiento incremental es que la reconciliacion solamente se realiza con respecto a los nodos que fueron visitados frecuentemente en el pasado y sus contiguos que estan fuertemente correlacionados con ellos (a traves de aparicion conjunta). La reconciliacion de otros nodos se pospone hasta que sean visitados o hasta que se realice explfcitamente una peticion de reconciliacion exhaustiva. Como se representa en el algoritmo 3, un subconjunto de nodos mas frecuentemente visitados S se identifica usando los valores de frecuencia.
La reconciliacion se realiza frente a este subconjunto inicial de nodos mas frecuentemente visitados. Todos los nodos no procesados que estan fuertemente conectados a nodos frecuentemente visitados (por encima de un umbral predefinido p) son reconciliados frente al nodo particular, los nodos fuertemente conectados pueden ser parte del subconjunto inicial, pero en algunas realizaciones puede ser que el subconjunto inicial sea solamente los nodos mas frecuentemente visitados, y que los nodos fuertemente conectados (los que tienen una relacion de aparicion conjunta co(s,o) con un nodo mas visitado por encima de un umbral) son parte del subconjunto adicional de nodos con respecto al que se retarda el procesado de reconciliacion con el nodo particular.
La reconciliacion de todos los nodos restantes se pospondra hasta que sean visitados explfcitamente, se realice un acercamiento de reconciliacion exhaustiva con respecto al nodo particular, o se lleve a cabo procesado de reconciliacion en respuesta a una indicacion de que el sistema esta inactivo o tiene capacidad de procesado de reserva. Sin embargo, la reconciliacion no realizada se registra localmente en cada nodo usando record(). Esto permitira la reconciliacion de una pasada cuando sea necesaria o favorable.
La reconciliacion doReconciliation(s,v') para v’e V’k consta de dos partes espedficas: calculo de semejanza y agregacion de resultados. La figura 5 es un diagrama de flujo que expone el procesado realizado como parte de “realizar reconciliacion” del paso S201 de la figura 4. El procesado de reconciliacion se formaliza en el algoritmo 3 anterior. El algoritmo 3 y la figura 5 exponen procesado de reconciliacion ejemplar en una implementacion espedfica de una realizacion de la invencion. Naturalmente, muchas rutinas alternativas de procesado de reconciliacion se pueden realizar en realizaciones de la presente invencion. La lista de candidatos de reconciliacion se obtiene en el paso S300. Este es, por ejemplo, el subconjunto inicial de nodos, o todo o parte del subconjunto adicional de nodos. En el paso S301, se calculan las medidas de semejanza, o se realizan calculos de semejanza. Los calculos de semejanza pueden ser un conjunto de medidas de semejanza para determinar en que medida los dos recursos s, v’ son equivalentes. Cada calculo de semejanza produce una puntuacion que denota el grado de semejanza entre los dos recursos (o la probabilidad de que el nodo particular s y otro nodo v’ sean equivalentes), de modo que similarity(s; v’) = a, siendo a la puntuacion en [0, 1] donde 0 denota que dos entidades son diferentes y 1 denota que son equivalentes (describen el mismo objeto del mundo real). Los calculos de semejanza pueden combinarse entonces, por ejemplo, por simple agregacion o por media ponderada, para obtener un valor de semejanza.
El calculo de semejanza se puede basar en diferentes medidas de semejanza, la mayona implica varias metricas de semejanza en cadena, ampliamente usadas tanto en enlaces de registro como en adaptacion de esquemas. La metrica de semejanza en cadena puede incluir la distancia Levenshtein Edit, que mide el numero de operaciones de cambio primitivas necesarias para transformar un valor de cadena a otro, y/o la metrica Jaro, disenada para tomar en cuenta desviaciones ortograficas comunes. Estas dos son simplemente una muestra de las muchas realizaciones de medidas de semejanza que se puede usar para realizar reconciliacion de recursos. En la agregacion de resultados, por cada par (s, v’, puntuacion), la reconciliacion obtiene, por ejemplo, un valor de semejanza agregado equivalente (s, vi, weighted_score) como una media ponderada de estas medidas de semejanza. Solamente si el valor de semejanza es superior a un umbral de semejanza elegido (S303), similarity_th, el enlace de equivalencia candidato sera seleccionado y anadido en el grafico. Similarity_th denota el valor mmimo de semejanza necesario para considerar un par de descripciones de objeto como similares una a otra.
La reconciliacion pospuesta se maneja en una o dos formas diferentes:
i) reconciliacion “a demanda” y “en nodo” disparada por readEvent (consultas); y
ii) reconciliacion forzada en tiempo de reposo del sistema. En los casos extremos, es posible que no se realice reconciliacion al tiempo de introduccion de tripla, es decir, toda la reconciliacion se puede posponer al tiempo de reposo del sistema o el punto de consulta explfcita.
1) Consultar grafico con peticiones de reconciliaddn pendientes:
El acercamiento de reconciliacion incremental que se usa en realizaciones de la presente invencion incluye
5
10
15
20
25
30
35
40
45
50
55
60
65
posponer o retardar el procesado de reconciliacion entre un nodo particular con el que se ha determinado que se debera realizar reconciliacion con los nodos existentes en el grafico, y al menos algunos de los nodos en el grafico, hasta un punto de tiempo en que sea realmente necesario o favorable. Como se ha explicado anteriormente, puede ser que el nodo particular sea el nodo sujeto de una nueva tripla insertada en el grafico. Al tiempo de la introduccion, en el nodo particular puede haberse realizado solamente procesado de reconciliacion entre sf mismo y los nodos/recursos mas frecuentemente visitados y sus contiguos fuertemente correlacionados. La reconciliacion frente a todos los nodos restantes se retarda para consideracion “a demanda”.
Como un mecanismo por el que el procesado de reconciliacion retardado puede ser identificado y programado, estas peticiones pendientes pueden almacenarse en una o dos posiciones diferentes. Efectivamente, el espacio de almacenamiento adicional requerido para este mecanismo es un compromiso de la eficiencia de tiempo y el rendimiento del procesado.
En primer lugar, las triplas que inician un proceso de reconciliacion de datos se almacenan en cada nodo no visitado del grafico extendido como metadatos de nodo (vease la definicion 4 y la definicion 6). Almacenando peticiones pendientes localmente en el nodo (en la lista Lt), la reconciliacion adicional puede proseguir localmente en cada nodo y a demanda, es decir, el hecho de que haya procesado retardado con respecto a un nodo puede ser conocido leyendo los metadatos almacenados para dicho nodo, y el procesado retardado puede ser programado consiguientemente.
En segundo lugar, el sistema mantiene una lista de triplas nuevamente anadidas que todavfa no estan completamente reconciliadas (donde una tripla o nodo completamente reconciliado es uno para el que ha sido realizado el procesado de reconciliacion con cada uno de los otros nodos en el grafico) al grafico. Esta lista se denomina la cola (o cache) de triplas no reconciliadas, Q = [t0, ..., tm].
La figura 6 es un diagrama de flujo que expone el procesado realizado a la recepcion de una consulta en el grafico, con el fin de asegurar que el procesado de reconciliacion con respecto a los nodos sea recuperado en respuesta a una consulta realizada frente a todos los otros nodos en el grafico.
Al consultar, una consulta (q) es verificada primero frente a los elementos en Q, en los pasos S401 y S402.
La condicion a cumplir para que se considere que la consulta incluye un elemento en Q puede tomar la forma:
(3/y e Q.tj ~ q v similarity{tj ,q)> S)
donde 6 es un umbral numerico predefinido. Esencialmente, si la consulta es igual a un elemento en Q o es significativamente similar a un elemento en Q (donde la semejanza umbral viene dada por 6), entonces la reconciliacion de datos del nodo en cuestion se realiza frente a todo el grafico. La provision de un umbral de semejanza proporciona flexibilidad al verificar si Q contiene la consulta deseada.
Si Q contiene la consulta (es decir, si se cumple la condicion anterior), S en S402, el flujo pasa a S403 y la reconciliacion de datos del nodo consultado que es un elemento de Q, tj, se refuerza frente a todo el grafico. Observese que esta ‘reconciliacion exhaustiva’ define efectivamente un ‘escenario del peor caso’ en terminos de la cantidad de procesado de reconciliacion que debe realizarse a la recepcion de una consulta. Sin embargo, en la mayona de las implementaciones se espera que el tamano de Q sea mucho menor en comparacion con el grafico. Por lo tanto, la reconciliacion exhaustiva forzada del grafico no debera suceder frecuentemente. Ademas, en el tiempo de reposo del sistema las triplas no reconciliadas en cola son quitadas y procesadas, reduciendo mas la posibilidad de que una consulta se encuentre en el ‘escenario del peor caso’. Ademas, el caso es que la reconciliacion exhaustiva se requiere en este punto debido a la identificacion del nodo en una consulta, por lo tanto el procesado es eficiente en terminos del hecho de que la reconciliacion es con respecto a un nodo al que se esta accediendo. Despues de la reconciliacion exhaustiva en S403 (se expone un proceso de reconciliacion exhaustiva ejemplar con mas detalle en la figura 7), el flujo pasa a S404, y se evalua la consulta y se leen los nodos.
Si la respuesta es ‘NO’ en S402, y no hay solapamiento entre la consulta q y la cola Q, el flujo pasa a S405 y se evalua frente al grafico extendido. En los pasos S405 y S406 se lleva a cabo una comprobacion para identificar si alguno de los nodos consultados tiene indicaciones “en nodo” (identificadas en la cola Lt almacenada en los metadatos) de nodos con los que tienen procesado de reconciliacion pendiente/retardado, tan pronto como se encuentra un nodo no reconciliado (nodos en el grafico extendido con reconciliacion pendiente), se realiza procesado de reconciliacion de datos “en nodo” en S407. Un procesado ejemplar para el procesado de reconciliacion de datos “en nodo” se expone en la figura 8.
En el paso S408, durante la evaluacion de consulta, los metadatos del grafico extendido son actualizados en terminos de frecuencia, aparicion conjunta y peticiones de reconciliacion pendiente en cache tanto de nodo local como global.
5
10
15
20
25
30
35
40
45
50
55
60
65
Como se puede ver en las figuras 8 y 9, el procesado de reconciliacion que debe realizarse en cada caso es en gran parte el mismo que el procesado de reconciliacion expuesto en la figura 5, y se han usado los mismos numeros para pasos directamente equivalentes. La diferencia esta simplemente en los nodos candidato con los que se ha de realizar procesado de reconciliacion con el nodo particular.
2) Reconciliacion en tiempo de reposo: aparte de la reconciliacion de datos “a demanda” y “en nodo” forzada por consultas, el acercamiento incremental tambien permite una mejor utilizacion de los recursos informaticos. Supervisando todo el sistema, es posible identificar intervalos de tiempo cuando los recursos informaticos estan en reposo, o en un estado operativo que se determina que tiene suficiente capacidad de procesado para anadir procesado de reconciliacion a la carga de trabajo del recurso informatico. La reconciliacion pendiente puede ser identificada, programada y realizada frente a todo el grafico si es necesario y apropiado o incrementalmente usando de nuevo los valores de frecuencia y aparicion conjunta. Observese que la reconciliacion tambien produce la actualizacion de los metadatos de grafico extendido. La reconciliacion en tiempo de reposo puede ser una o ambas de reconciliacion “en nodo” y reconciliacion exhaustiva.
Implementar un acercamiento activado por evento tiene la caractenstica importante de que permite la existencia de varias tareas de semejanza a ejecutar simultaneamente en nodos de Internet diferentes y distribuidos. este se diferencia de otros acercamientos. El uso de eventos es el principal vehuculo para organizar intercomunicacion de componentes. La paralelizacion de la operacion semantica se logra a traves de una segmentacion de datos bidimensional.
En primer lugar, el grafico original de datos es distribuido por multiples almacenamientos ffsicos, lo que permite una segmentacion de datos 'vertical' cuando se realiza la reconciliacion. Diferentes tareas de semejanza pueden ser realizadas por servidores remotos que esten enlazados a traves de una red de comunicaciones y tales tareas pueden ejecutarse en paralelo. La distribucion y la paralelizacion son caractensticas de un sistema activado por evento que puede ayudar a acelerar el tiempo de ejecucion de todo el proceso de reconciliacion. El procesado de reconciliacion puede ser realizado por un recurso de calculo disparado por un evento de lectura o un evento de adicion con respecto a un nodo particular que todavfa no ha sido reconciliado con todos los nodos en dicho recurso de calculo. Mas de un recurso de calculo puede realizar tal procesado de reconciliacion con respecto al mismo nodo particular en un tiempo.
La figura 9 es una ilustracion de la paralelizacion del procesado de reconciliacion a traves de un numero de servidores. El procesado de reconciliacion es disparado por un evento, que puede ser la introduccion de una nueva tripla al almacenamiento de datos subyacente, en cuyo caso el sujeto de la tripla es el “particular”. El rendimiento de calculos de semejanza y el procesado requerido para obtener un valor de semejanza en base a los calculos puede ser realizado en cada servidor entre el nodo particular y los nodos de una lista de candidatos seleccionada (por ejemplo, el subconjunto inicial, o en el caso de procesado exhaustivo, todo el grafico) que estan almacenados en dicho servidor. En ese sentido, el procesado de reconciliacion se descompone en un numero de tareas de semejanza (tareas de semejanza 1 a n) que se realizan en paralelo en los servidores individuales. Los resultados se agregan entonces y el grafico se actualiza con enlaces de equivalencia donde sea apropiado, lo que puede dar origen a otro “evento” que dispare mas procesado de reconciliacion.
En segundo lugar, el grafico extendido ofrece una mayor capacidad de paralelizacion a traves de una capa abstracta y dinamica de division de datos. Usando los valores de frecuencia y aparicion conjunta almacenados como metadatos en el grafico extendido G' como un discriminador, es posible imponer una segmentacion de datos ortogonal a la ffsica subyacente adquirida a traves de almacenamiento de datos distribuido. Los datos en el grafico son troceados en dados despues efectivamente en elementos mas pequenos para procesado de reconciliacion, definiendo cada dado de datos los lfmites dentro de los que una rutina de procesado de reconciliacion esta confinada (como se ilustra en la figura 10). Esta segunda segmentacion es deseable porque, aunque el grafico este almacenado por multiples maquinas, el tamano de datos en una maquina individual puede ser potencialmente muy grande denegando una accion de reconciliacion exhaustiva en tiempo real. La probabilidad de aparicion conjunta entre dos nodos arbitrarios puede ser usada para dividir el grafico en un grafico secundario de nodos frecuentemente visitados (un subconjunto inicial) y otro conteniendo menos nodos visitados (un subconjunto adicional). Con respecto a este ultimo, el procesado de reconciliacion se retarda o pospone hasta que se realice una operacion de lectura directa, o hasta el tiempo de reposo del sistema. Por lo tanto, se habilita un acercamiento incremental que puede paralelizar potencialmente el procesado de reconciliacion semantica de datos. Superponiendose a la segmentacion de almacenamiento ffsico ya en posicion, esta segmentacion basada en el uso mejora mas el procesado paralelo de reconciliacion de datos.
En cualquiera de los aspectos anteriores, las varias caractensticas pueden implementarse en hardware, o como modulos de software que se ejecutan en uno o varios procesadores. Las caractensticas de un aspecto pueden aplicarse a cualquiera de los otros aspectos.
La invencion tambien proporciona un programa de ordenador o un producto de programa de ordenador para llevar a la practica cualquiera de los metodos aqrn descritos, y un medio legible por ordenador que almacena un programa para llevar a la practica cualquiera de los metodos aqrn descritos. Un programa de ordenador que realiza la
invencion puede estar almacenado en un medio legible por ordenador, o podna estar, por ejemplo, en forma de una senal tal como una senal de datos descargable proporcionada desde una pagina de Internet, o podna estar en cualquier otra forma.

Claims (14)

  1. 5
    10
    15
    20
    25
    30
    35
    40
    45
    50
    55
    60
    65
    REIVINDICACIONES
    1. Un metodo para realizar reconciliacion de recursos representados en un grafico de datos como nodos; incluyendo el metodo:
    seleccionar un subconjunto inicial de los nodos del grafico para los que se ha de realizar procesado de reconciliacion con un nodo particular;
    realizar procesado de reconciliacion entre el nodo particular y cada uno del subconjunto inicial de nodos;
    retardar el procesado de reconciliacion entre el nodo particular y otro subconjunto de los nodos del grafico para el que se ha de realizar reconciliacion con el nodo particular, donde el procesado de reconciliacion del subconjunto adicional de los nodos se retarda y realiza durante intervalos de tiempo cuando la supervision de los recursos informaticos responsables del procesado de reconciliacion indica que dichos recursos informaticos estanan en reposo en caso contrario.
  2. 2. Un metodo segun la reivindicacion 1, donde
    seleccionar el subconjunto inicial incluye determinar que nodos tienen el numero mas alto de accesos de lectura realizados en ellos en operaciones de representacion grafica, e incluyendo los nodos en el subconjunto inicial como los nodos mas visitados.
  3. 3. Un metodo segun la reivindicacion 2, donde
    seleccionar el subconjunto inicial tambien incluye determinar que nodos tienen la probabilidad mas alta de que en ellos se haga un acceso de lectura como el nodo siguiente despues de un nodo de los nodos mas visitados en una operacion de representacion grafica.
  4. 4. Un metodo segun cualquiera de las reivindicaciones precedentes,
    el subconjunto adicional de los nodos son todos los nodos en el inicial.
  5. 5. Un metodo segun cualquiera de las reivindicaciones precedentes,
    anadir una identificacion del nodo particular a una lista;
    mantener la identificacion del nodo particular en la lista hasta que se haya realizado el procesado con el subconjunto adicional de los nodos del grafico, despues de lo que la identificacion del nodo particular se quita de la lista; y
    cuando se recibe una consulta al grafico que identifica uno o mas nodos a leer, verificar cual o cuales nodos a leer son identificados en la lista, y para cada uno del unico o varios nodos a leer que es identificado en la lista, realizar procesado de reconciliacion con cada nodo del grafico.
  6. 6. Un metodo segun cualquiera de las reivindicaciones precedentes, incluyendo ademas:
    por cada nodo del grafico no incluido en el subconjunto inicial con el que se lleva a cabo procesado de reconciliacion,
    anadir una identificacion del nodo particular a una lista de nodos no reconciliados en los metadatos asociados, y mantener dicha identificacion en dicha lista hasta que se lleve a cabo procesado de reconciliacion con el nodo particular, despues de lo que la identificacion del nodo particular se quita de dicha lista; y
    cuando se recibe una consulta al grafico que identifica uno o mas nodos a leer, por cada uno de los nodos a leer, realizar procesado de reconciliacion entre dicho nodo y cada uno de los nodos identificados en la lista de nodos no reconciliados en los metadatos asociados.
  7. 7. Un metodo segun cualquiera de las reivindicaciones precedentes, donde el grafico se almacena en una red distribuida de recursos informaticos.
  8. 8. Un metodo segun cualquiera de las reivindicaciones precedentes, donde el procesado de reconciliacion del nodo particular con otro nodo incluye:
    obtener un valor de semejanza agregando los valores resultantes de realizar una pluralidad de diferentes calculos de semejanza, u obtener un solo valor resultante de realizar un calculo de semejanza, donde un calculo de semejanza es un calculo que genera un valor que representa la probabilidad de que el nodo particular y el otro nodo sean
    donde
    grafico que no son elementos del subconjunto incluyendo ademas:
    5
    10
    15
    20
    25
    30
    35
    40
    45
    semanticamente equivalentes; y
    si el valor de semejanza excede de un umbral de semejanza predeterminado, anadir un enlace de equivalencia al grafico que denota una relacion de equivalencia entre el nodo particular y el otro nodo.
  9. 9. Un metodo segun las reivindicaciones 7 y 8, donde
    el procesado de reconciliacion se realiza simultaneamente en mas de un recurso de calculo dentro de la red distribuida de recursos informaticos, entre el nodo particular y los nodos almacenados en dicho recurso de computacion y pertenecientes al subconjunto de nodos para el que se esta realizando procesado de reconciliacion con el nodo particular.
  10. 10. Un metodo segun cualquiera de las reivindicaciones precedentes, incluyendo ademas
    almacenar, por cada nodo, como metadatos asociados, un valor que representa los numeros de accesos de lectura hechos al nodo en operaciones de representacion grafica, y un valor que representa el numero de veces que se leyo cada nodo al que el nodo esta enlazado en el grafico como el nodo siguiente en una operacion de representacion grafica.
  11. 11. Un metodo segun cualquiera de las reivindicaciones precedentes, donde los datos en el grafico son codificados como triplas incluyendo cada una un sujeto, un predicado, y un objeto, y los nodos del grafico son los sujetos y objetos de las triplas, y el predicado de una tripla denota un enlace entre el sujeto y el objeto de la tripla.
  12. 12. Un controlador de base de datos (21) para realizar reconciliacion de recursos representados en un grafico de datos como nodos; incluyendo el controlador de base de datos (21):
    un modulo de seleccion configurado para seleccionar un subconjunto inicial de los nodos del grafico para los que se ha de realizar procesado de reconciliacion con un nodo particular;
    un modulo de procesado de reconciliacion configurado para realizar procesado de reconciliacion entre el nodo particular y cada uno del subconjunto inicial de nodos; y
    un modulo de control de procesado de reconciliacion configurado para retardar el procesado de reconciliacion de otro subconjunto de los nodos del grafico para el que se ha de realizar reconciliacion con el nodo particular, donde el procesado de reconciliacion del subconjunto adicional de los nodos se retarda y realiza durante intervalos de tiempo cuando la supervision de recursos informaticos responsables del procesado de reconciliacion indica que dichos recursos informaticos estanan en reposo en caso contrario.
  13. 13. Un sistema de almacenamiento de datos para almacenar un grafico de datos en el que los recursos se representan como nodos del grafico, incluyendo el sistema de almacenamiento de datos:
    una pluralidad de unidades de almacenamiento (23) configurada cada una para almacenar un segmento de datos del grafico de datos; y un controlador de base de datos (21) segun la reivindicacion 12.
  14. 14. Un programa de ordenador que, cuando es ejecutado por un ordenador, hace que el ordenador realice el metodo segun cualquiera de las reivindicaciones 1 a 11, o hace que el ordenador funcione como el controlador de base de datos segun la reivindicacion 12.
ES12174230.8T 2012-06-11 2012-06-28 Método, controlador, programa y sistema de almacenamiento de datos para realizar procesado de reconciliación Active ES2609445T3 (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB201210234 2012-06-11
GBGB1210234.9A GB201210234D0 (en) 2012-06-12 2012-06-12 Reconciliation of large graph-based data storage

Publications (1)

Publication Number Publication Date
ES2609445T3 true ES2609445T3 (es) 2017-04-20

Family

ID=46605703

Family Applications (1)

Application Number Title Priority Date Filing Date
ES12174230.8T Active ES2609445T3 (es) 2012-06-11 2012-06-28 Método, controlador, programa y sistema de almacenamiento de datos para realizar procesado de reconciliación

Country Status (6)

Country Link
US (1) US9449115B2 (es)
EP (1) EP2674875B1 (es)
JP (1) JP6160277B2 (es)
CN (1) CN103488673B (es)
ES (1) ES2609445T3 (es)
GB (1) GB201210234D0 (es)

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8682846B2 (en) * 2011-09-09 2014-03-25 Hewlett-Packard Development Company, L.P. Content item reconciliation
US9342622B2 (en) * 2013-06-27 2016-05-17 Google Inc. Two-phase construction of data graphs from disparate inputs
US9218438B2 (en) * 2013-08-28 2015-12-22 Bank Of America Corporation Computing architecture for storing a graph database based on temporal aspects of its edges
CN104915340B (zh) * 2014-03-10 2019-09-10 北京大学 自然语言问答方法及装置
US20150261860A1 (en) * 2014-03-12 2015-09-17 Kaushal MITTAL Predicate execution in shared distributed computing environment
US20150293783A1 (en) * 2014-04-09 2015-10-15 International Business Machines Corporation Scheduling identity manager reconciliation to execute at an optimal time
WO2015162458A1 (en) * 2014-04-24 2015-10-29 Singapore Telecommunications Limited Knowledge model for personalization and location services
KR101660584B1 (ko) * 2014-04-30 2016-09-27 한국과학기술원 그래프 압축 처리 방법 및 장치
EP3001329A1 (en) * 2014-09-25 2016-03-30 Fujitsu Limited Method, controller, program and data storage system for performing reconciliation processing
US9535963B1 (en) * 2015-09-18 2017-01-03 Linkedin Corporation Graph-based queries
US20170147402A1 (en) * 2015-11-25 2017-05-25 GM Global Technology Operations LLC Optimized task partitioning through data mining
CN105447156A (zh) * 2015-11-30 2016-03-30 北京航空航天大学 资源描述框架分布式引擎及增量式更新方法
US20170228448A1 (en) * 2016-02-08 2017-08-10 Futurewei Technologies, Inc. Method and apparatus for association rules with graph patterns
JP6745127B2 (ja) * 2016-03-30 2020-08-26 株式会社アドバンスト・メディア 情報処理システム、サーバ、端末装置、情報処理方法及びプログラム
US9893941B1 (en) 2016-07-29 2018-02-13 Qualcomm Incorporated Unit sourcing
US20200334715A1 (en) * 2016-10-17 2020-10-22 Singapore Telecommunications, Ltd. Knowledge Model for Personalization and Location Services
US10725988B2 (en) * 2017-02-09 2020-07-28 Micron Technology, Inc. KVS tree
EP3407206B1 (en) 2017-05-22 2021-08-04 Fujitsu Limited Reconciled data storage system
US10725982B2 (en) * 2017-11-20 2020-07-28 International Business Machines Corporation Knowledge graph node expiration
CN108052614B (zh) * 2017-12-14 2021-12-03 太原理工大学 一种数据库系统负载的调度方法
US10423726B2 (en) * 2018-01-10 2019-09-24 International Business Machines Corporation Machine learning to integrate knowledge and natural language processing
CN108984633B (zh) * 2018-06-21 2020-10-20 广东顺德西安交通大学研究院 一种基于节点上下文向量空间的rdf近似答案查询方法
US11973777B2 (en) * 2018-07-09 2024-04-30 Siemens Aktiengesellschaft Knowledge graph for real time industrial control system security event monitoring and management
US10936661B2 (en) 2018-12-26 2021-03-02 Micron Technology, Inc. Data tree with order-based node traversal
CN111914092A (zh) * 2019-05-09 2020-11-10 富士通株式会社 针对作者消歧的信息处理装置、方法和介质
CN111046241B (zh) * 2019-11-27 2023-09-26 中国人民解放军国防科技大学 用于流式图处理的图存储方法及装置
CN111291002B (zh) * 2020-03-05 2023-07-18 深圳市网心科技有限公司 文件对账方法、装置、计算机设备及存储介质
CN111538311B (zh) * 2020-04-22 2021-08-20 北京航空航天大学 一种基于数据挖掘的机械设备柔性多状态自适应预警方法及装置
US20240012803A1 (en) * 2022-07-08 2024-01-11 Salesforce, Inc. Mechanisms for deleting triples of a database store
CN116955363B (zh) * 2023-09-21 2023-12-26 北京四维纵横数据技术有限公司 无模式数据创建索引方法、装置、计算机设备及介质

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002157158A (ja) * 2000-11-20 2002-05-31 Hitachi Ltd データベースシステムにおけるデータ管理方法
US7539697B1 (en) * 2002-08-08 2009-05-26 Spoke Software Creation and maintenance of social relationship network graphs
US20060248093A1 (en) * 2005-04-29 2006-11-02 Ora Lassila Method for determining relationships between data resources
US7426524B2 (en) * 2005-09-27 2008-09-16 International Business Machines Corporation Update processes in an enterprise planning system
CN101022377A (zh) * 2007-01-31 2007-08-22 北京邮电大学 一种基于服务关系本体的交互式服务创建方法

Also Published As

Publication number Publication date
GB201210234D0 (en) 2012-07-25
EP2674875A1 (en) 2013-12-18
JP2013257874A (ja) 2013-12-26
US9449115B2 (en) 2016-09-20
JP6160277B2 (ja) 2017-07-12
CN103488673B (zh) 2016-12-28
US20130332490A1 (en) 2013-12-12
EP2674875B1 (en) 2016-12-14
CN103488673A (zh) 2014-01-01

Similar Documents

Publication Publication Date Title
ES2609445T3 (es) Método, controlador, programa y sistema de almacenamiento de datos para realizar procesado de reconciliación
Ali et al. A survey of RDF stores & SPARQL engines for querying knowledge graphs
US10146801B2 (en) Apparatus and method for distributed graph processing
Chen et al. Big data analytics and big data science: a survey
US10810257B2 (en) Fast processing of path-finding queries in large graph databases
Gupta et al. Scalable machine‐learning algorithms for big data analytics: a comprehensive review
Choi et al. SPIDER: a system for scalable, parallel/distributed evaluation of large-scale RDF data
Patil et al. A survey on graph database management techniques for huge unstructured data
Hajeer et al. Handling big data using a data-aware HDFS and evolutionary clustering technique
Kulcu et al. A survey on semantic web and big data technologies for social network analysis
Miller et al. Research directions for big data graph analytics
EP2808804A1 (en) Database controller, method, and program for handling range queries
Yuan et al. Subgraph matching over graph federation
Amghar et al. Storing, preprocessing and analyzing tweets: finding the suitable noSQL system
Agarwal et al. Map reduce: a survey paper on recent expansion
Duan et al. Distributed in-memory vocabulary tree for real-time retrieval of big data images
CN114328576A (zh) 一种基于星际文件系统的分布式协同查询处理系统
Mittal et al. Efficient random data accessing in MapReduce
Saleh et al. Complex event processing on linked stream data
Khettabi et al. Clustering and parallel indexing of big IoT data in the fog‐cloud computing level
EP2731020B1 (en) Database system and method for storing distributed data and logic
Singh et al. Big graph analytics: techniques, tools, challenges, and applications
Sharmila et al. BTLA-LSDG: Blockchain-based triune layered architecture for authenticated subgraph query search in large-scale dynamic graphs
Czech et al. Distributed computing of distance‐based graph invariants for analysis and visualization of complex networks
Xhafa et al. Performance evaluation of mahout clustering algorithms using a twitter streaming dataset