SylvaDB: A Polyglot and Multi-backend
Graph Database Management System
Javier de la Rosa
1
, Juan Luis Su
´
arez
1
and Fernando Sancho Caparrini
2
1
CulturePlex Lab, Dept. Modern Languages and Literature, Western University, Western Rd., London, Canada
2
Ciencias de la Computacin e Inteligencia Artificial, CulturePlex Lab, University of Seville, Seville, Spain
Keywords:
Graph Databases, Polyglot Backends, Network Research.
Abstract:
This paper presents SylvaDB, a graph database management system designed to be used by people with
no technical knowledge. SylvaDB is based on flexible schema definitions and has been developed taking
into account the need to deal with semantic information. It relies on the mathematical notion of property
graph. SylvaDB is an open source project and aims at lowering the barrier of adoption for anyone using graph
databases. At the same time, it is robust and scalable enough to support collaborative large projects related to
knowledge management, document archiving, and research.
1 INTRODUCTION
After several years of work in an international and
multidisciplinary project on cultural transfers, whose
objectives included the analysis of several datasets of
various types of cultural objects, we came to the con-
clusion that both the classic relational databases and
the total dependence of researchers on programmers
to deal with their data was detrimental to the purposes
and objectives of the project.
We came to this conclusion for several reasons.
First, we realized that non technical researchers pre-
sented a strong tendency towards resigning their own
research autonomy and handing in all the decisions
on database design and implementation to the profes-
sional programmer. However, this attitude was usu-
ally accompanied by the unsatisfactory results of the
collaboration, as humanists, for example, were not
able to extract or analyze their own results. And sec-
ond, as the projects evolved, non technical researchers
would come back to the programmers demanding
changes in the structure of their databases, asking for
new features during incremental design, corrections
of mistakes in the database design, or modifications
to reflect changes in the structure of the real world
artefacts modelled in the database. But despite of the
efforts of the database community to solve schema
modification and evolution, as noticed by (Roddick,
1992), there is still a gap between the database ad-
ministrator who manages to solve this issues, and the
end user who needs them solved.
In an attempt to improve the interaction with
databases, research efforts have been dedicated to
provide graphical interfaces to relational databases
such as HIBROWSE (Ellis et al., 1994), Query-By-
Example (Zloof, 1975), or Santucci and Palmisano’s
Visualiser (Santucci and Palmisano, 1994). Also,
some other works reveals moves from these complex
graphical interfaces to more expressive and closer to
natural languages alternatives (Hendrix et al., 1978;
Wolfe et al., 1992; Popescu et al., 2003). However,
there is no evidence of providing better and easier ad-
ministration tools for non technical users that allow
them to manage their data.
On the other hand, one of the most active areas
of research at this moment is the study of networks
(Knoke et al., 2008), what has brought the need to
manage information with inherent graph-like nature
(Angles and Gutierrez, 2008). Therefore, after sur-
veying the landscape (Vicknair et al., 2010), we de-
cided to build our own database management system,
SylvaDB
1
, in order to implement the graph model in-
stead of the relational and to provide researchers with
the tools they need as well as to reduce the depen-
dency on programmers and database administrators.
2 DESIGN PRINCIPLES
The main goals that guided the design of this graph
1
http://sylvadb.com
285
de la Rosa J., Suárez J. and Sancho Caparrini F..
SylvaDB: A Polyglot and Multi-backend Graph Database Management System.
DOI: 10.5220/0004475702850292
In Proceedings of the 2nd International Conference on Data Technologies and Applications (DATA-2013), pages 285-292
ISBN: 978-989-8565-67-9
Copyright
c
2013 SCITEPRESS (Science and Technology Publications, Lda.)
database management system were:
to provide technological autonomy to non techni-
cal researchers,
to allow for modifications and evolutions of the
schema at any time of the life cycle of the
database,
to be scalable and therefore useful for both the
single researcher working on a relatively small
project and the requirements of large teams,
to manage different datasets under the same sys-
tem,
to allow collaborative work on single databases,
to support as many as possible types of objects,
to present the information by using an intuitive in-
terface.
Out of our own experience in Complex Systems
and Cultural Analysis, we realized that topics and re-
lations among them are at the same level of interest.
Consequently, and from previous goals, the following
conceptual and technological features were manda-
tory for us:
No tables, only objects and relations.
Arbitrary number of attributes on objects and re-
lationships.
Support for multimedia content natively (image,
audio, video and documents).
Users and permissions management.
Ability to perform complex queries to retrieve and
analyze information.
Interactive graphic visualization of the content.
Connection to external tools for visualization and
analysis.
3 ARCHITECTURE
SylvaDB relies on the paradigm of Database as a Ser-
vice (DBaaS), as described by Hacigumus (Hacigu-
mus et al., 2002). Written using the Python pro-
gramming language, and built through the Model-
View-Controller web framework Django (Holovaty
and Kaplan-Moss, 2009), SylvaDB is a web platform
that can be used in modern browsers such as Google
Chrome or Mozilla Firefox.
In SylvaDB a graph database consists of a schema
with information on data types and properties for
nodes and relationships, and the real data stored on
them. Because some graph backends are schema-free
and some others are schema-restricted, and in order
Django
uwsgi memcached
Nginx
Static files
(Amazon S3)
SylvaDB (Amazon EC2)
PostgreSQL
(Heroku)
Graph Instance 1
(Amazon EC2)
Graph Instance N
(Amazon EC2)
Payments
(Stripe)
Neo4j HA (Amazon EC2)
Neo4j Node Neo4j Node
Neo4j Node Neo4j Node
Figure 1: General Architecture of SylvaDB.
to guarantee compatibility with as many of them as
possible, we store the schema (if any) in a relational
database while all data is actually stored in the graph
database backend; properties for both nodes and re-
lationships are also stored in the graph backend; and
the set of media files and other static files are stored
in Amazon Simple Storage Service (S3)
2
.
SylvaDB’s architecture, as depicted in Figure 1, is
divided into several parts in terms of machine isola-
tion, so any of them can be replaced or clustered with
no major problems
3
.
In short, there is a main HTTP server that serves
the Django application SylvaDB through an uwsgi-
compliant Python process. All statics files (includ-
ing user uploads and client-side Javascript and styles)
are handled in Amazon S3 instances. The relational
database to manage users, sessions, permissions and
graphs metadata like their schemas, is managed in
PostgreSQL instances by the Platform as a Service
provider Heroku (Malliga, 2012). Actual data for
graphs in the shared graph backend is stored in a
Neo4j High Availability (HA) cluster, and graphs in
custom instances may be in different kinds of graph
backends as described in section 3.2. On the other
hand, both low level and view level cache are im-
plemented in a distributed memcached environment
(Fitzpatrick, 2004).
This setup confers reliability and performance to
SylvaDB at the time that makes scalability a problem
easy to solve.
3.1 HTTP Server
Nginx
4
is an asynchronous HTTP and reverse proxy
server that natively includes support for upstream
2
https://aws.amazon.com/en/s3/
3
SylvaDB also gives support to services such as regis-
tration and messaging, but we have omitted them in the di-
agram, as they play an auxiliary role in our architecture.
4
http://nginx.com/
DATA2013-2ndInternationalConferenceonDataManagementTechnologiesandApplications
286
servers speaking the WSGI
5
protocol, such as
uWSGI
6
does for Django. The main advantage of the
asynchronous approach is scalability. In a process-
based server, each simultaneous connection requires
a thread which incurs significant overhead. An asyn-
chronous server, on the other hand, is event-driven
and handles requests in a single, or very few threads.
While a process-based server can often perform on
par with an asynchronous server under light loads, if
heavier loads occur the performance degrades signifi-
cantly as RAM consumption increases.
3.2 Graph Model
At the core of the system, we use the Object-
Relational Mapping (ORM) (Burza
´
nska et al., 2010)
provided by Django to manipulate the programming
objects in the code, and a set of mixins to abstract
graph backends (Esterbrook, 2001).
Figure 2 illustrates a simplified UML diagram of
the elements implied in the Graph model. Django ter-
minology uses model when refering to Python classes
that inherit from the base class that does the mapping
between the code and the database; it provides some
helpers to avoid the manual manipulation of tables,
foreign keys and many to many relationships. To em-
ulate a similar behaviour in relation to the graph back-
ends, and to make it easier to develop SylvaDB, we
wrote some mixins to abstract all the graph databases
primitives. In the diagram we omit inheritance from
Django models. Therefore, SylvaDB makes use of
Graph object instances that cover both the schema and
the backend.
Our graph structure is based on the property
graph, i.e., a multigraph data structure where graph
elements, nodes and relationships, can have prop-
erties (attributes) and can be typed. Formally,
the property graph is defined as a tuple G =
(V, E, P, D
V
, D
E
, ν
V
, ν
E
), where V is a set of vertices,
E is a multiset of directed edges, P is a domain of
properties, D
V
, D
E
are the domain of allowed prop-
erty values for vertices ad edges, respectively, ν
X
:
X × P P
f
(D
X
) (X = V or X = E) is a function
that maps properties of elements of X to their val-
ues (P
f
(D
X
) is the collection of finite subsets of D
X
,
meaning that a property can be associated with multi-
ple items from D
X
).
3.2.1 Flexible Schemas
The first component of a Graph object is the schema,
5
http://wsgi.readthedocs.org/
6
http://uwsgi-docs.readthedocs.org/en/latest/
Protocol.html
<<object>>
Graph Backend
<<django.db.models.Model>>
Relational Backend
Graph
+data: OneToOneField
+schema: OneToOneField
<<mix-in>>
GraphMixin
+nodes
+relationships
DataSchema
<<facade>>
NodeManager
<<facade>>
RelationshipManager
Instance
BaseType
RelationshipType
Node Relationship
1
1
1
1
NodeType
1
*
1
*
GraphDatabase
BlueprintsGraphDatabase
Neo4jGraphDatabase
1
1
Property
1
*
1
*
Figure 2: Simplified UML Diagram.
albeit it is not required of the graph to have one. To-
gether with the fact that some users may need no
schema in their data structure, the idea behind this
flexible schema is to design the platform as indepen-
dent as possible from the graph backend. Since some
graph bakends may require a schema and others do
not, we move the schema out of the graph backend
and made it optional.
Even when this decision may involve a manual
managing of all triggers commonly handled by rela-
tional databases, at the same time provide us with a
powerful and fine grained control over schema evo-
lution (the ability of a database system to respond to
changes in the real world by allowing the schema to
evolve (Roddick, 1992)). Relational databases usu-
ally have fixed schemas, but SylvaDB does not have
this limitation because is based on graphs, and schema
information is only tied to graph data through the ap-
plication logic.
SylvaDB makes users owners and responsible for
their schema evolution, at the time it provides them
with the tools to decide. Before adding nodes to a
graph, a schmea must be defined by creating node
SylvaDB:APolyglotandMulti-backendGraphDatabaseManagementSystem
287
types and relationship types. By using web forms
generated by SylvaDB, the user is able to add prop-
erties to the types and build the schema. Every time
a user makes a change in a graph schema, he is
prompted to choose what to do depending on the op-
eration he wants to perform:
If the user renames a node type or relationship
type, nothing will happen since types have inter-
nal numerical identifiers.
If the user renames a property, SylvaDB can keep
the previous property name internally in the item
(node or relationship), can remove the old prop-
erty from the item and consider the new property
as new and empty, or can try to rename the last
property with the new one.
If the user removes a node type or relationship
type, will be asked to decide if all related items
must be removed on cascade or just the type.
If the user removes a property, SylvaDB can also
keep the value internally in the item or remove it
from all the items affected.
3.2.2 Polyglot Graph Backend
The second component of a Graph object is a (manda-
tory) graph backend. From its inception, SylvaDB
was designed to support different technologies as
backend, what we call polyglot graph backend, since
there exist different graph databases providers for dif-
ferent needs. For example, Titan
7
is intended for dis-
tributed and massive-scale graphs, whereas Neo4j is
faster but does support a slightly lower number of
nodes. Currently, the graph databases providers land-
Table 1: Summary of graph databases, query methods and
Python bindings.
Graph Query Python
Database Method Binding
Cypher, Blueprints,
Neo4j Gremlin, Native,
Traversal REST
OrientDB Cypher Blueprints
Traversal
HyperGraphDB HGQuery No
Traversal
DEX Traversal Blueprints
Titan Gremlin Blueprints
InfiniteGraph Gremlin No
scape is not as huge and diverse as the relational, and
unfortunately most of them are only suitable to be
used in Java language programming.
To overcome this limitation, and having in mind
7
http://thinkaurelius.github.io/titan/
that SylvaDB base code is Python, we resorted to
REST (Representational State Transfer) interfaces
(Fielding, 2000). Specifically, SylvaDB makes use
of the Blueprints API
8
, a generic graph Java API
that binds to various graph database backends. Many
graph processing and programming frameworks are
built on top of it, e.g., Gremlin
9
, a graph traversal lan-
guage, and Rexster
10
, a graph server that exposes any
Blueprints graph through a REST interface. Not all
graph database backends have a built-in support for
the Blueprints API, as the Table 1 shows, and others
have their own interfaces, like Neo4j.
Figure 3 shows how, on top of these REST inter-
faces (Blueprints and Neo4j), SylvaDB defines a set
of abstraction layers to operate with them exposing
a common and unique set of methods and attributes,
the GraphDatabase interface. Any class able to im-
plement this interface, will be suitable as a graph
backend in SylvaDB. Nevertheless, only Neo4j and
Blueprints-compliant graph databases are available
now, thanks to client libraries like neo4j-rest-client
11
and pyblueprints
12
, respectively.
Neo4jOrientDB SailRDFDEXTitan
Blueprints API
REST
neo4j-rest-clientpyblueprints
GraphDatabase
Figure 3: Polyglot graph backend diagram.
Since each graph backend run on its own service,
SylvaDB is able to deploy backends on demand, by
using Amazon CloudFormation
13
templates, and of-
fer them to users with different needs.
3.3 Queries
For the purposes SylvaDB has been built, easy ways
8
http://blueprints.tinkerpop.com
9
http://gremlin.tinkerpop.com
10
http://rexster.tinkerpop.com
11
http://pypi.python.org/pypi/neo4jrestclient/
12
http://pypi.python.org/pypi/pyblueprints/
13
http://aws.amazon.com/cloudformation
DATA2013-2ndInternationalConferenceonDataManagementTechnologiesandApplications
288
for retrieval information from data was as important
as data itself, making it mandatory to provide tools to
build powerful queries to the user.
However, although it is not a new topic, recent re-
search and implementations are finally reaching a tip-
ing point with regards to providing natural language
interfaces for querying databases (Popescu et al.,
2003). In this context, SylvaDB tries to be a step
ahead by generating schema-based grammars to pro-
cess users’ queries.
Although the grammar depends on the graph
schema and is domain-specific and quite limited
yet, it is able to process approximate natural lan-
guage queries as inputs and produce backend-specific
queries as outputs. As an example, let’s suppose we
have a graph called ”Workers” with a Neo4j backend,
which supports Cypher Query Language
14
, then the
query:
Person who lives in country with name Spain
will produce the following Cypher query:
START node=node:graph(label=’Workers’)
MATCH person-[:lives_in]->country
WHERE country.name = ’Spain’
AND person.type = ’person’
AND country.type = ’country’
RETURN person
Unfortunately, for more complex queries (such as
returning nodes in the middle of a path) or to support
schema-free graphs, the only way around is by using
the query language available for the specific backend.
After having explored the options to implement a vi-
sual query system (Catarci et al., 1997), it is clear that
SylvaDB has considerable room to improve in this
area.
3.4 Visualization
For graphs with defined schemas, paginated table-
based views are provided for each type in the schema.
Since the data model is based on graphs, SylvaDB
may provide a proper way to visualize users’ data in
a more graphical manner. There are so far two differ-
ent kinds of visualization: the first is our own devel-
opment, and it allows users to expand relationships
by clicking on the nodes. However, for graphs with
more than a couple of thousand nodes this visualiza-
tion, although more complete, is not very useful. The
second one is based on sigma.js
15
, an open-source
lightweight JavaScript library to draw graphs, and us-
ing the HTML5 canvas element
16
.
14
http://docs.neo4j.org/chunked/stable/
cypher-query-lang.html
15
http://sigmajs.org/
16
http://w3.org/TR/html5/embedded-content-0.html
For other general purposes, the system provides
exporting functionality to GEXF
17
files, a graph for-
mat file defined for Gephi (Bastian et al., 2009).
3.5 Collaboration
Fine grained permissions is also an important feature
that SylvaDB includes. Implemented to graph object
level, graph owners can grant up to 9 different permis-
sions for their graphs to other users:
over the graph: view, change collaborators,
change graph properties (information description
and visibility),
over the data: all CRUD operations for nodes and
relationships,
and over the schema: view and change.
4 APPLICATIONS
Thanks to the versatility of the conceptual storage
data type supported, the property graph, the uses of
SylvaDB vary from a tool for standard storage, or
an implementation system for ontologies, glossaries,
conceptual maps and relaxed topic maps, to an anal-
ysis tool useful to find non explicit relations between
topics or discover hidden knowledge through queries
that traverse the graph.
Below follow three well studied cases that have
proven how useful SylvaDB can become.
4.1 Formal Ontologies: Baroque
Paintings Network
This research on baroque paintings is part of a 7-year
project that deals with the issues of cultural transmis-
sion and assimilation and community formation dur-
ing the baroque period in the territories of the former
Hispanic Monarchy. One of the important aspects of
this historical case lies in the fact that the political
structure that supported or accompanied the studied
cultural transfers reached almost global proportions,
from Europe to American and Asia. Thus, it offered
an excellent benchmark to test some of the prevalent
theories in the field taking advantage of a dataset that
included over 13,000 paintings, 1636 creators, 405 se-
ries of paintings, 195 schools and 2482 geographical
locations from different territories and cultural areas.
So far, extensive research have been done on three
main issues. First, an analysis of the data set to an-
swer questions related to the formation and sustain-
ability of large cultures, the semantic content of the
17
http://gexf.net/format/
SylvaDB:APolyglotandMulti-backendGraphDatabaseManagementSystem
289
San Andrés
San Mateo
El Niño Jesús y San Juan
Santa Agueda
Portrait of a Lady (Retrato de una dama)
Gaspar Sánchez
Juan Bautista de Urquiola y Elorriaga
Ildefonso Muños Tirado
Bodegón del cardo
Bodegón con dulces y recipientes de cristal
Bodegón de frutas y hortalizas
Bodegón
Nuestra Señora de Copacabana
Nuesta Señora del Pilar con un monje franciscano y uno dominico
La virgen de Almudena con Carlos II y la reina de España
Felipe III
Retrato ecuestre del duque de Lerma
Aguador de Sevilla
Vieja friendo huevos
Tres músicos
Don Luis de Góngora y Argote
Caballero Anciano
Isabel de Valois, tercera esposa de Felipe II
Caballero joven
Jerónimo de Cevallos
La infanta Isabel Clara Eugenia
El archiduque Alberto de Austria
La reina Ana de Austria, cuarta esposa de Felipe II
Retrato de caballero
Cabeza de anciano
Francisco Pacheco o Retrato de hombre con gola
Ana de Austria, esposa de Luis XIII
La familia del pintor
María de Medici, reina de Francia
Retrato de hombre (Autorretrato de Velazquez)
La mulata
Tres hombres a la mesa
Dos jóvenes a la mesa
Felipe IV
Retrato de caballero, Juan de Fonseca
Felipe IV
El conde duque con la cruz de Calatrava
Fiesta de bodas campesina
El patizambo
Giovan Carlo Doria a caballo
Retrato doble
Alessandro Giustiniani con traje de senador y su esposa, dama de la casa Spinola
Los síndicos del gremio de los pañeros
Sir George Villiers, futuro duque de Buckingham, y su esposa Katherine Manners retratados como Venus y Adonis
Retrato de familia
El Sacamuelas
La familia Lomellini
Autorretrato (Bernini)
Don Juan de Austria
Felipe IV
Retrato del Conde de Villalonga
Lope de Vega
Retrato de progenitor
El Primo
Retrato de dama
Retrato masculino
Familia de Mendigos
Retrato de hombre
Niño desnudo
Retrato del príncipe Felipe Manuel de Saboya
Retrato de doña María de Médicis
Felipe III
Retrato de Lope de Vega
Gabriel Téllez (seudónimo de Tirso de Molina)
Agustín Moreto y Cavana
Retrato de Felipe de Médicis, hijo de Francisco I
Cosme II
Cristina de Lorena, duquesa de Florencia
Self-Portrait (Autorretrato de Luis Tristán)
The Sculptor Gregorio Fernandez (El escultor Gregorio Fernández)
Autorretrato (Vicente Carducho)
Retrato de anciano
Retrato de George Gage con dos Asistentes
Autorretrato con su esposa Isabel Brant
Retrato de Elena Grimaldi Cattaneo
Self-Portrait (Autorretrato de Pedro Orrente)
Felipe III como Gran Maestre de la Orden del Toisón
Retrato de Jacobo I de Inglaterra
Retrato de don Francisco Gómez de Sandoval y Rojas, duque de Lerma
Retrato de Antonio de Servás
Queen Margaret and Princess Ana as the Annunciation (La reina Margarita y la Princesa Ana en la anuciación)
James Hamilton, conde de Arran y primer duque de Hamilton
Queen Margaret of Austria (La reina Margarita de Austria)
Portrait of Philip IV and Ana (Retrato de Felipe IV y Ana)
Portrait of Alfonso -el Caro- and Ana Margarita (Retrato de Alfonso -el Caro- y Ana Margarita)
King Philip III of Spain (Rey Felipe III de España)
Francisco Gómez de Sandoval y Rojas, Duke of Lerma (Duque de Lerma)
Portrait of Lorenzo van der Hamen y León (Retrato de Lorenzo van der Hamen y León)
Portrait of a Monk (Retrato de un monje)
Autorretrato
Retrato de Maria de Medicis
Retrato de Virginia Centuriona
Fray Hernando de Rojas
El conde duque de olivares
La Reina Margarita de Austria
El Infante don Alfonso el caro
Retrato de joven dama
Felipe III
La Duquesa de Módena
Cabeza de muchacha
Retrato de Agustín Moreto
Copia del retrato de Doña Mariana de Austria de Diego de Velázquez del Museo del Prado, nº 1191
Idolatría de Salomón-
Dos genios entre guirnaldas y ramos de flores, Amorcillos con guirnaldas
Santa Margarita de Escocia
Retrato de Jean de Montfort
Don Adrián Pulido Pareja
Copia de las Meninas
Retrato de Caballero (Fransisco Pacheco?)
Don Pedro Calderón de la Barca
Copia de Retrato de Doña Mariana de Austria de Juan Carreño de Miranda del Museo de Viena
Sacrificio de Isaac
Lope de Vega
Retrato de clérigo
Retrato de hombre
Retrato masculino
Retrato de dama
David con la cabeza de Goliat
Brigidad Spinola Doria
Isabelle Brandt
Maria Serra Pallavicino
Autorretrato
Retrato de Isabelle Brandt
Retrato del cardenal Guido Bentivoglio
Retrato de la marquesa Balbi
Retrato de Isabel la Católica
Retrato de don Cristóbal Suárez de Ribera
View and Plan of Toledo
Retrato de niño
Arcángel san Miguel con donante indígena
Virgen del Rosario con donante indígena
Retrato de Jorge Manuel Theotocopuoulos
Retrato de Simón Ruiz
Retrato de doña Mariana de Paz Pineda
David con la cabeza de Goliat
Virgen de Guápulo
Virgen del Rosario con Santo Domingo y San Francisco
La adoración de los Reyes Magos
La Resurrección
La anunciación
La Crucifixión
Pentecostés
Cristo abrazado a la Cruz
Fraile trinitario
Adoración de los Reyes
Adoración de los pastores
Adoración de los pastores
El Salvador
Santiago
Susana y los viejos
Ofrenda a Ceres
La serpiente de metal
La venerable madre Jerónima de la Fuente ( o Sor Jerónima de la Fuente)
El Prendimiento de Cristo
La Coronación de espinas
La Verónica
La visita de Baco al poeta Icario
Retrato de San Francisco
Magdalena Penitente
Cristo crucificado contemplado por la Virgen María y San Francisco
Santa Catalina de Siena
La Virgen y el Rosario con Santo Domingo y Catalina de Siena
Nuestra Señora del Rosario
Nuestra Señora del Pilar de Zaragoza
Nuestra Señora del Sagrario de Toledo
Nuestra Señora de La Salceda
La venerable madre Jerónima de la Fuente ( o Sor Jerónima de la Fuente)
Cristo atendido por los ángeles
Cristo en casa de Marta y María
Don Cristóbal Suárez de Ribera
La Virgen imponiendo la casulla a san Ildefonso
Cena de Emaús
Cristo flagelado
Cristo flagelado
La coronación de la Virgen
Crucifixión de San Pedro
Salomé
El tocador de Venus
Martyrdom of Saint Hippolytus (Martirio de San Hipólito)
Huida a Egipto
Paisaje con Mercurio y Argos
La Virgen de Guadalupe
Et in Arcadia ego
Muerte de la Virgen
Cena en Emaús
Resurrección de Lázaro
Vocación de san Mateo
La visión de san Francisco
Martirio de santa Rufina y santa Segunda
La Virgen presenta el Niño a santa Francisca Romana
San Pedro liberado de la cárcel
Sagrada Familia
Incredulidad de santo Tomás
La Virgen despierta al Niño
Pentecostés
Desposorio místico de santa Catalina
Virgen del Rosario
Siete obras de misericordia
Castigo de Cupido
David con la cabeza de Goliat
Sansón y los filisteos
Martirio de san Pedro
Rapto de Proserpina
San Juan Bautista
Las mujeres en el sepulcro
Marte y Venus
Ecce Homo
Bautizo de los cuatro señores de Tlaxcala
Cristo de la columna (Jesús de la Humildad y la Paciencia)
El Niño Jesús con los símbolos de la pasión
Ángel Zadquiel
Ángel Dominio
Ángel Baraquiel
Arcángel San Miguel
Letiel Dei
Gabriel Dei
Ángel de la Guarda
Nuestra Señora de Pomata
Concierto angélico
Prendimiento de Cristo
Adoración de los Reyes Magos
Moses (Moisés)
The Adoration of the Magi (La Adoración de los Magos)
St. Mary of Egypt (Santa María de Egipto)
The Archangel Barachiel, with Harquebus (El Arcangel Baraquiel con rifle)
Arcángel Uriel, Fuego de Dios
Arcángel Seactiel, Oración de Dios
Arcángel Miguel, Quién como Dios
Arcángel Baraquiel, Bendición de Dios
Sagrada Familia con Santa Isabel y San Juanito
David y Betsabé
Santiago del Mayor
Martirio de San Sebastián
Oración del huerto
San Ignacio curando a los apestados
Virgen de la Soledad
San Mateo
Cristo Yacente
Seactiel (Oración de Dios)
Angel Custodio
Jesús de la Humildad y la Paciencia
La adoración de los pastores
La Inmaculada
La Virgen de la Merced entregando el hábito de la orden a don Manuel Alonso, Duque de Medina Sidonia
La Santa Cena
Calvario
Sagrada Familia
Nativity (Natividad)
Transfixión de Santa Teresa
Santo Tomás de Aquino
La madre Jerónima de la Fuente
San Miguel de los Santos
Arrepentimiento de San Pedro
La Verónica
Cristo (puerta de sagrario)
Concepción y coronación de la Virgen
Inmaculada Concepción
Virgen de Guadalupe
Virgen con el Niño y San Juanito
El taller de Nazareth
San Isidro Labrador
Santo Tomás
San Juan Evangelista
Julián Romero y su santo Patrono
San Francisco sostenido por un ángel
Lucha de San Jorge y el dragón
San Sebastián
Piernas de San Sebastián
San Francisco confortado por un ángel músico
Santa Margarita resucita a un joven
Desposorios místicos de Santa Catalina
El Apóstol Santiago El Mayor
San Pedro liberado por un ángel
La curación de Tobías
La Inmaculada Concepción
San Juan Evangelista
San Pablo
San Pedro y San Pablo
Virgen Inmaculada con San Francisco y San Antonio
Santa Ursula y las once mil Vírgenes
Los milagros de san Ignacio de Loyola
San Pedro liberado de la cárcel
Sagrada Familia con santa Isabel, san Juanito y un ángel
Santo Tomás de Aquino fulminando al demonio con su pluma
Virgen de Chiquinquirá con el Niño con San Antonio y San Andrés
St. Joseph and the Infant Jesus (San José y el Niño Jesús)
Virgen de Chiquinquirá con el Niño, San Antonio y San Andrés
St. Francis of Assisi (San Francisco de Asís)
St. Nicholas of Bari (San Nicolás de Bari)
San Bartolomé
San Jose y el Niño
San Ignacio en la carcel en Alcala de Henares
Las Lagrimas de San Pedro
San Buenaventura
Jesus crucificado con la Virgen Maria y San Juan
Cabeza de Pablo
La Visión de San Ignacio en el camino de Roma
San Ignacio recibe en la compañia a San Francisco Javier
San Ignacio despide a San Francisco de Javier
La muerte de San Ignacio
San Pedro
San Mateo
San Pablo
San Judas Tadeo
San Felipe
Santo Tomas
San Andrés
Santa Casilda
Cristo de Los Temblores
The Decent from the Cross (el descendimiento de la cruz)
Los Desposorios de la Virgen
Adoración de los pastores
San Pedro Nolasco asistido por dos ángeles
San Bartolomé
San Fausto Labrador
San Juan Evangelista
San Ignacio de Loyola
Busto de Santa
El abrazo de Santo Domingo y San Francisco
San Agustín
San Andrés
San Francisco de Borja
San Pedro
San Pedro Nolasco
Santo en oración. San Pedro
Un Santo. San Zacarías
Verdugo con la cabeza de san Juan Bautista
Santa Catalina
San Jerónimo
Santa en éxtasis
El martirio de Santa Catalina de Alejandría
Los desposorios místicos de Santa Catalina
San Francisco y el lego
El apóstol San Mateo
San Francisco de Asís
San Pablo
San Pedro
San Sebastián curando por las Santas Mujeres
St. Francis and Brother Leo Meditating on Death (San Francisco y hermano Leo meditando sobre la muerte)
The Penitent St. Jerome in his study (El penitente, San Jérome en su cuarto de estudio)
San Francisco en oración
San Diego de Alcalá
Vestición de san Guillermo de Aquitania
Predicación de San Juan Bautista
San Agustín entre Cristo y la Virgen
La Sagrada Familia con Santa Ana y San Juanito
San Pedro Nolasco despidiéndose de Jaime I el Conquistador
Crucifixión de San Pedro
Sagrada Familia con Santa Ana
San Joaquín y Santa Ana contemplando a la Virgen con el Niño
El tránsito de San Isodoro
El martirio de San Andrés
Santa Ana enseñando a leer a la Virgen
Martirio de San Ramón Nonato
Resurrección de Santa Leocadia
Martirio de Santa Úrsula y las once mil vírgenes
La apoteosis de San Hermenegildo
El éxtasis de San Francisco Javier
San Pedro liberado por el ángel (La liberación de San Pedro)
San Jerónimo penitente
Crucifixión de San Pedro
Crucifixión de San Pedro
San Cristóbal
Los desposorios místicos de Santa Catalina
Santa Catalina de Alejandría en prisión
San Pedro penitente
San Pedro penitente
Las Lágrimas de San Pedro
San Pedro y San Fransisco
San Sebastián
Martirio de San Bartolomé
San Francisco de Asís penitente
San Pedro penitente
San Juan Bautista en el desierto
San Francisco de Borja
San Juan Evangelista en la isla de Patmos
San Julián de Cuenca
San Agustín
San Felipe Neri
San Jerónimo
Cabeza del Bautista
Desposorios de Santa Catalina
Saint Francis Embracing the Crucified (San Francisco abrazando a Cristo Crucificado)
The stigmatization of Saint Francis (la estigmatización de San Francisco)
Santa Humbelina
the vision of Saint John (la visión de San José)
Estigmatización de San Francisco de Asís
Saint Jerome as Scholar (San Jeronimo como cardenal)
Saint James (Santiago el mayor) (San Jaime)
The stigmatization of Saint Francis (la estigmatización de San Francisco)
The Visión of Saint Francis of Assisi (La Visión de San Francisco de Asís)
The Ecstasy of Saint Francis of Assisi: The Vision of the Musical Angels (éxtasis de San Francisco de Asís: La Visión de los ángeles músicos)
Martirio de San Lorenzo
San Lorenzo
Santa Catarina salvada del Martirio por un Angel
Santo Tomás de Aquino
San Juan de Dios
San Pedro
Martirio de Santiago el Menor
San José con el Niño Jesús
San Gabriel Arcángel
San José
La estigmatización de San Francisco
La asunción de la Virgen
Las tentaciones de San Antonio
San Juan Bautista
San Pedro
Cristo con San Pedro, Santiago y San Juan
San Ambrosio
San Pedro
La Sagrada Familia
La Sagrada Familia y santa Catalina,
San Carlos Borromeo ante Cristo muerto
Descanso en la Huida a Egipto
Copia de San Jerónimo de Ribera del Museo Nacional de Arte Antiga de Lisboa
Santa Teresa.
Autorretrato de pintor / San Cosme
Copia de San Esteban de José de Ribera del Museo Nacional de Bellas Artes de La Valletta
San Pedro liberado por un ángel
San Jerónimo y un rabino
Paisaje con San Juan Bautista niño dormido
Aparición de la Virgen a San Jacinto de Polonia
Cabeza de San Juan Bautista
Santa Edith
Santa Helena
Santa Walburga
Sagrada Parentela (Alegoría de la Inmaculada)
La Virgen con el Niño y Santos, y el Canónigo Bartolomé Cairasco
Santiago en la batalla de Clavijo
Visión de San Bernardo o Lactación de San Bernardo
El Martirio de San Serapio
San Ignacio de Loyola ante la Inmaculada y la Trinidad
Tránsito de San Isidoro
Anunciación de la Virgen y Encarnación del Verbo
Presentación de la Virgen en el Templo
Jesús camino del Calvario
Santa Ana enseñando a leer a la Virgen
San José con el Niño
La Dolorosa
San Juan Evangelista
San Juan Evangelista en la Isla de Patmos
San Pedro Nolasco
Aparición de la Virgen a san Simón de Rojas
Santo Domingo de Guzmán
San Agustín
San Juan Bautista
San Ambrosio
San Pedro Nolasco
El Salvador
Copia o imitación de San Francisco meditando de rodillas de El Greco
San Ambrosio
Copia de San Francisco en extasis de El Greco.
Noli me Tangere
Estigmatización de San Francisco
Virgen con el Niñ0 y san Juanito
Santos Mártires en gloria
San Francisco de Asís en éxtasis
La Virgen de los Carmelitas de Malinas
San José con el Niño
San Bartolomé
Santa Bárbara
El Niño Jesús apareciéndose a San Antonio de Padua
San Pedro
San Mateo y el ángel
La vocación de san Mateo
El martiro de san Mateo
El martirio de san Pedro
La conversión de San Pablo
Santa Cecilia y el ángel
La Vocación de san Mateo
San Juan de la Cruz
Santa Teresa de Jesús
Santa Teresa de Jesús
Paisaje con san Jerónimo
Apostle St Peter
Apostle St Andrew
Apostle St John the Evangelist
Apostle St Philip
Apostle St Bartholomew
Apostle St Matthew
Apostle St Thomas
Apostle St James the Less
Apostle St Thaddeus (Jude)
Apostle St Simon
Apostle St Paul
Cristo como Salvador (Christ as Saviour)
San Francisco en éxtasis
San José con el Niño
Santa Maria Egipciaca
Tránsito de San Hermenegildo
San Agustín
San Simón
San Francisco y el hermano León sobre la muerte
San Francisco
Santo Domingo
San Lucas y San Marcos
San Juan y San Mateo
Conversión de San Pablo
San Antonio Abad
El martirio de San Ramón Nonato
El Martirio de San Lorenzo
El martirio de Santa Catalina
El Martirio de Santa Ursula y las once mil vírgenes
El triunfo de San Gregorio
Santo Tomás de Villanueva
San Pedro Nolasco embarca para redimir cautivos
Aparación de la Virgen a San Ramón Nonnato
Sagrada Familia con San Joaquín y Santa Ana
Sagrada Familia
San Juan de la Cruz, destinado a las Indias
Santo Tomás
San Felipe
San Pablo
Vocación de San Pedro y San Andrés
Los santos Juanes
Sueño de la madre de San Eloy
San Francisco en oración.
Tránsito de san José
San Benito
Santa Escolástica
San Benito Abad
San Pedro
Santa Isabel Reina de Portugal
San Matías
San Bartolomé
San Pedro
San Simón
Los desposorios místicos de Santa Catalina
Predicación de San Andrés
San Juan Evangelista
San Juan Batista
San Roque
San Sebastián
San Fransisco de Asis
La santa cena
Retablo del Calvario
San Luis Rey de Francia
San Jerónimo
San Francisco de Asis
Bodegón de caza y frutas
Bodegón
Florero
Naturaleza muerta
Cisne sobre alfombra
Bodegón
Florero
Bodegón con objetos de orfebrería
Bodegón de caza, hortalizas y frutas
Bodegón de hortalizas
Bodegón de frutas
Bodegón
Still life with Fruit and Vegetables (Bodegón de frutas y hortalizas)
Bodegón de frutas
Bodegón
Bodegón con cisne
Bodegón con cajitas de dulces
Naturaleza muerta con volatería
Cestas de ciruelas e higos y un melón sobre una repisa con pimientos, uvas y membrillos colgados
Naturaleza Muerta
Florero
Bodegón de hortalizas y frutas
Bodegón de cocina
Florero y frutero
Plate of pears (Plato de peras)
Still life with Game Fowl (Bodegón de juego de aves)
Bodegón
Bodegón de frutas y caza
Bodegón de manzanas
Bodegón
Bodegón
Bodegón de cocina con frutas y vegetales y mujer
Gallo
Bodegón
Still life with Quince, Cabbage, Melon, and Cucumber (Bodegón de Membrillo, repollo, Melón, pepino)
Still life with sweets (Bodegón con dulces)
Still life (Plate with Bacon, Bread and Wine (Bodegón con tocino, pan y vino)
Still life with Sweets (Bodegón con dulces)
Bodegón de frutas
Una Perdiz
Frutero
Frutero y cestillos
Frutero y dulces
Bodegón
Jacob Conjuring Laban's Sheep (Jacobo apareciendo con las ovejas de Laban)
Retrato del Barón de Dietrichstein
Luis de Velasco
Retrato del archiduque Rodolfo de Austria
Hernán Cortés
Diego Vargas Calderón
Retrato de la Condesa de Goldstein
Pedro Sebastián de Bolívar y Mena
Princesa Margarita Gonzaga
García de Carbajal
Juan González
Juan Bautista de Urquiola y Elorriaga
Retrato de la baronesa de Dietrichstein
Andrés de Carbajal y Tapia
Un matemático
Pedro de Barrientos Lomelín
Bartolomé Pérez de la Canal
Diego Carrillo Mendoza Pimentel
Rodrigo Pacheco y Osorio
Alonso de la Veracruz
Juan Bohorques Ramírez
Retrato de Infanta
Diego Fernández de Córdoba
Dama de la época de Felipe III
Gerónimo de Cárcamo
Hernán Cortés
Juan Cano
Bartolomé González Soltero, fray
Retrato del archiduque Ernesto de Austria
Retrato ecuestre de Pedro Antonio Fernández de Castro (X Conde de Lemos, Virrey del Perú)
Juan de Aguirre
Juan de Mendoza y Luna
Gregorio López
Limpiadora de Cobre
Pedro Cristóbal Plancarte
Retrato de Dama
Francisco López de Solís
Miguel de Poblete
Juan de Cervantes
Diego de Contreras
Bartolomé de Ledesma
Gregorio López y Francisco de Losa
Bernardino de Sahagún
Nicolás de la Torre
Francisco de Armentia
Gil y Paulucio de la Trinidad
Juan González
Juan Millá de Poblete
Luis de Sifuentes
Juan Díez de Arce
Pedro Gutiérrez de Pisa
Ildefonso Muñoz
Francisco de Siles
Isidro Sariñana y Cuenca
Manuel Fernández de Santa Cruz y Sahagún
Francisco Rodríguez Santos
Alonso Enríquez de Toledo y Armendaris
Francisco de Contreras Ramírez y Zepeda
García Guerra, fray
Pedro de Gante
Juan González
García Guerra
Juan de Palafox y Mendoza
Juan Díaz Arce
La cabeza del Virgen María (Head of the Virgin Mary)
Santa Clara con Sor ? o Santa? Juana de la Cruz y Madre Luisa Carriona
Francisco Naranjo
Rodrigo Maldonado
Nicolás del Puerto y Salgado
Santa Clara
San Jerónimo
Santo Tomás de Villanueva (copia de Murillo)
Martirio de San Bartolomé
San Jerónimo
Magdalena Penitence
San Diego de Álcala
San Juan Evangelista
San Joaquín
Santo Tomás de Aquino
Vicente de San José, fray
Inmaculada Carmelita con San Francisco y Santa Clara
San Francisco recibiendo los Estigmas
Virgen con el Niño entre San Francisco y Santa Clara
San Eliseo
San José
San Pedro
San Juan Evangelista y la visión de la mujer del Apocalipsis
Anunciación a san José
Aparición de la Virgen a san Ignacio de Loyola
Concebida
Liberación de san Pedro
Meditaciones de san ignacio sobre el infierno
San Ignacio de Loyola
Santiago el Mayor
Santo Tomás Apóstol
Virgen con el Niño y San Bruno
Santa Clara Fundadora
Transverberación con asistencia de los dos Trinidades y Santos
San Elías
San Simón
San Ambrosio
San Andrés Apóstol
San Francisco de san Miguel
San Ignacio de Loyola
San Jerònimo
San Juan Bautista decapitado
San Nicolás de Tolentino
San Pedro
San Francisco
Cristo de la Pasión con San Francisco
San Pablo
Santa Teresa herida con la flecha del Divino Amor
María Magdalena
San Agustín
San Ambrosio
San Jerónimo
Santa Ana
Martirio de una Santa
La muerte de san Fransisco Javier (Xavier)
Los Santos Ermitaños Pablo y Antonio en el Desierto
Sta. Catalina de Alejandría discutiendo con los sabios
El martirio de san Aproniano
San Francisco de Borja
San Ignacio escribe las Constituciones en la cueva de Manresa
San Francisco en Extasis
Santa Teresa
San Francisco
Santa Bárbara
Santa Catalina de Alejandria
Visita de santo Domingo de Siles a santo Domingo de la Calzada
Apostolado
San Juan Bautista
Santa Lucía
Santo Niño de la Guardia
Transverberación de santa Teresa
San Francisco Javier
Santa Ana
San Antonio de Padua
San Pablo
Santiago el Menor
San Nicolás Obispo de Mira
La Virgen con el Niño, San Francisco y Santa Clara
San Mateo
Santiago Apóstol
San Bartolomé
Santa Justa
Santa Clara
San Agustín
San Francisco
Imposicion de la casulla a San Ildefonso, con donantes
La Sagrada Familia
ALA
BADO
SEA
ELSMOS
SACRA
MENTO
San Yldefonso
Virgen del Rosario con Santo Domingo y San Francisco
San Vicente Ferrer
Meditaciones de san Ignacio sobre el infierno
San Ignacio escribe las Constituciones en la cueva de Manresa
Ángel virtud
Santo Tomás y el obispo Faustino de Padua
San Ambrosio
Arcángel San Miguel
Jesús en casa de la Magadalena- Cristo en casa de Marta y María
Santo Domingo predica el rosario
Ángel Virtud
Arcángel San Rafael
Aspiel Apetus Dei (Arcángel Arcabucero)
Ángel de la Guarda
Ángel de la pasión con escalera
Arcángel San Miguel
Copia de la Virgen de Guadalupe
Copia de la Virgen de Guadalupe
Copia de la Virgen de Guadalupe
Copia de la Virgen de Guadalupe
Copia de la Virgen de Guadalupe
Copia de la Virgen de Guadalupe
Copia de la Virgen de Guadalupe
Copia de la Virgen de Guadalupe
Copia de la Virgen de Guadalupe
Copia de la Virgen de Guadalupe
Copia de la Virgen de Guadalupe
Copia de la Virgen de Guadalupe
Copia de la Virgen de Guadalupe
Copia de la Virgen de Guadalupe
Copia de la Virgen de Guadalupe
Copia de la Virgen de Guadalupe
Copia de la Virgen de Guadalupe
Copia de la Virgen de Guadalupe
Copia de la Virgen de Guadalupe
Virgen con el Niño
Copia de la Virgen de Guadalupe
Copia de la Virgen de Guadalupe
Copia de la Virgen de Guadalupe
Copia de la Virgen de Guadalupe
Copia de la Virgen de Guadalupe
Copia de la Virgen de Guadalupe
Copia de la Virgen de Guadalupe
Copia de la Virgen de Guadalupe
Copia de la Virgen de Guadalupe
Copia de la Virgen de Guadalupe
Copia de la Virgen de Guadalupe
Copia de la Virgen de Guadalupe
Copia de la Virgen de Guadalupe
Copia de la Virgen de Guadalupe
Copia de la Virgen de Guadalupe
El milagro de la estampación de la imagen de la Virgen de Guadalupe en la tilma de Juan Diego
Copia de la Virgen de Guadalupe
Copia de la Virgen de Guadalupe
Copia de la Virgen de Guadalupe
Copia de la Virgen de Guadalupe
Virgen con el niño, San José y San Roque
Virgen con Niño
Copia de la Virgen de Guadalupe
Copia de la Virgen de Guadalupe
Copia de la Virgen de Guadalupe
Copia de la Virgen de Guadalupe
Copia de la Virgen de Guadalupe
Copia de la Virgen de Guadalupe
La Azucena de Quito
Copia de la Virgen de Guadalupe
Copia de la Virgen de Guadalupe
Segunda y cuarta aparición de la Virgen de Guadalupe al indio Juan Diego
Virgen del Rosario
Copia de la Virgen de Guadalupe
Copia de la Virgen de Guadalupe
Copia de la Virgen de Guadalupe
Copia de la Virgen de Guadalupe
Copia de la Virgen de Guadalupe
Copia de la Virgen de Guadalupe
Copia de la Virgen de Guadalupe
Copia de la Virgen de Guadalupe
Copia de la Virgen de Guadalupe
Copia de la Virgen de Guadalupe
Copia de la Virgen de Guadalupe
Copia de la Virgen de Guadalupe
Copia de la Virgen de Guadalupe
Copia de la Virgen de Guadalupe
Copia de la Virgen de Guadalupe
Copia de la Virgen de Guadalupe
Copia de la Virgen de Guadalupe
Copia de la Virgen de Guadalupe
Copia de la Virgen de Guadalupe
Tercera aparición de la Virgen de Guadalupe al mismo
Virgen de la Antigua
Copia de la Virgen de Guadalupe
Copia de la Virgen de Guadalupe
Copia de la Virgen de Guadalupe
Primera aparición de la Virgen de Guadalupe al indio Juan Diego
Segunda aparición de la Virgen de Guadalupe al mismo
Virgen coronada por La Trinidad
Copia de la Virgen de Guadalupe
Copia de la Virgen de Guadalupe
Milagro de la Virgen de Valvanera
Copia de la Virgen de Guadalupe
Copia de la Virgen de Guadalupe
Copia de la Virgen de Guadalupe
Copia de la Virgen de Guadalupe
Copia de la Virgen de Guadalupe
Copia de la Virgen de Guadalupe
Copia de la Virgen de Guadalupe
Copia de la Virgen de Guadalupe
Copia de la Virgen de Guadalupe
Copia de la Virgen de Guadalupe
Copia de la Virgen de Guadalupe
Copia de la Virgen de Guadalupe
Primera y tercera aparición de la Virgen de Guadalupe al indio Juan Diego
Figure 4: Example of graph generated by SylvaDB, ex-
ported to GEXF format and visualized and styled in Gephi.
This graph represents the similarity network of Hispanic-
American paintings in the period from 1600 to 1625. Colors
designate modularity classes.
network of paintings, and the role of art as an insti-
tution that contributes to sustain large-scale societies
(Su
´
arez et al., 2012). From a set of 211 keys or de-
scriptors it was carried out a manual semantic annota-
tion of all artworks (with an average of 5.85 descrip-
tors/work and peaks of 14 per work).
This process of annotation required a special level
of reliability in order to avoid data conflicts. A team
of annotators was setup following the next hierar-
chy: administrators (with global permissions over the
graph), reviewers (with all CRUD permissions over
the graph data, but not over the schema), and annota-
tors (with creation and edition permissions only). The
fact that SylvaDB has a built-in support for collabora-
tive work and detailed permissions management (both
essential in this kind of research), was crucial to the
success of the project.
On the other hand, this experience allowed us to
know how real users face the interface, resulting in
a positive feedback about its usability and easiness
when it comes time to handle complex data or modify
the schema according to the necessities in real time.
Altogether, more than 30 people were using SylvaDB
in creating the Hispanic Baroque paintings network,
and currently it is available for researchers all over
the world to enhance and validate the content.
The research focuses on the network of paintings
resulting from an analysis of the edges that connected
them (Su
´
arez et al., 2011) (see Figure 4). These edges
are part of a detailed ontology that allowed the re-
search team to fully categorize artworks from various
provenances and geographic contexts. The network
of baroque paintings proved to be a resilient one that
allowed for the integration of many local aspects and
techniques while keeping all those technical and the-
matic features that made a painting from Cusco (Peru)
similar to one from Puebla (Mexico), Madrid (Spain),
or Antwerp (Belgium).
4.2 Knowledge Influence: elBulli Graph
This case proposes a formalization of the evolutionary
method of creation developed by Ferran Adri
`
a in his
restaurant, elBulli, over many years of work that took
it to be considered the best restaurant in the world
by expert media and the public. If a recipe is a sort
of algorithm that explicitly gives a set of instructions
to reproduce a given dish, then they are excellent for
reproducing existing culinary knowledge. But if re-
production is not the objective any more, as Adri
`
a
discovered early on, then the recipe would be just a
byproduct of the whole method, not the corner stone.
For the new method of creative cuisine developed by
Adri
`
a, creativity was to be anchored at the levels of
preparations, techniques and concepts as it is at these
levels that creativity in the kitchen can become evolv-
ing creativity. Figure 5 shows the general schema of
a recipe as conceived by Adri
`
a’s cooking style.
Figure 5: Schema of a Recipe in elBulli context.
What Adri
`
a and his team did was to develop and
implement a method to achieve what Horng and Lin
(Horng and Lin, 2009) have described as the objec-
tive of a truly creative form of culinary art, that is,
a ”wider variety of dishes, as well as more innova-
tive, aesthetically, and culturally innovative individual
dishes”. The development of new techniques, the in-
clusion of new concepts, the constant addition of new
products and, specifically, the combination, mix and
merger of all elements would open the floodgates of
discovery into the creation of new preparations and,
along with it, a considerable increase in the rate of in-
novation. All these elements become nodes in a com-
plex network that keep most of their own instances
connected, a network that allows for the creation of
many paths and the integration of new elements, spe-
cially products, techniques, and preparations. The
DATA2013-2ndInternationalConferenceonDataManagementTechnologiesandApplications
290
combinatory potential of the method is unquestion-
able, but even more important are the effects provoked
by the integration of new elements connected in sur-
prising ways with the existing structure. This increase
in innovation can be seen in the growth in the numbers
of hubs and relations in their method that would result
in a multiplication of the dishes and recipes produced
at the end of any given season.
Using the SylvaDB query system, in this case run-
ning real Cypher queries for a Neo4j graph backend,
conclusions about elBulli artistic evolution and the el-
ements involved in its creative process, just came up.
In this way, we could prove how useful is the rep-
resentation of data in graphs, not only at conceptual
level, but from the point of view of storage backend
and querying.
4.3 Social Network Analysis:
Preliminaries Project
Finally, the Preliminaries project uses SylvaDB to
store, visualize and analyze a large data set dealing
with information contained in the 17
th
-century books
that allow us to unearth the social network of publish-
ers, writers, bureaucrats, and noblemen involved in
the publishing industry at both sides of the Hispanic
Atlantic.
The ”preliminary” of a 17
th
-century book encom-
passes all pages appearing in the printed text before
the beginning of the work itself. This information is
divided into five different types: details of publica-
tion, documentation of censorship (both civil and ec-
clesiastical), licensing, selling price and dedications.
The important thing for this project lies in the fact that
all sections usually include names of the officers or
individuals signing the specific documentation, dates
and places of the issuing of the documents, i.e., in
a few pages these preliminaries give us a very com-
plete image of the individuals, places, dates, coun-
cils, and institutions involved in the publication of
each specific title of literature. In this process, Syl-
vaDB played an important role by allowing an incre-
mental design of the schema without losing any pre-
vious data. By compiling all this information into a
graph database, and subsequently performing differ-
ent kinds of queries according to the various research
questions, the dataset became a valuable source of
information about the historical networks that influ-
enced the publication of early Modern Spanish litera-
ture.
This project has produced a research model that
combines network-based analysis with quantitative
and qualitative studies of early Modern cultural pro-
duction. It has also explored the concept of cultural
Figure 6: Screenshot of the SylvaDB schema for the Pre-
liminaries Project graph.
network within the framework of complexity theory
and with new data covering various historical peri-
ods. Last, it has given evidence of the interaction
between political structures and cultural production
through social network analysis.
The cultural objects considered in this study are
complex and variable (see Figure 6). Therefore, the
flexibility of SylvaDB, that allows for the adaptation
of the schema in real time, was a key factor to achieve
the goals of the project.
5 CONCLUSIONS AND FUTURE
WORK
SylvaDB, although still in private beta, is currently
being used in several historical and cultural projects,
and it will soon be open for any researcher or group
to use. Also, it is open source software (GNU Affero
General Public License
18
) and the source code can be
easily found and forked
19
.
As fields like Digital Humanities grow and evolve,
more and more researchers with no training in com-
puter science feel the need to work with large datasets
and combine their traditional object-focused research
with data analysis and visualization. SylvaDB aims at
lowering the barrier for the adoption of database sys-
tems into the practices of those fields. Also, it is de-
signed to support the storage and analysis required by
large, advanced research projects looking for a power-
ful and intuitive data and document management sys-
tem based on flexible schemas.
As any other existing piece of software, SylvaDB
is far of being finished in terms of features. A non
exhaustive list of proposed features is shown below.
18
http://www.gnu.org/licenses/agpl-3.0.html
19
http://github.com/CulturePlex/Sylva
SylvaDB:APolyglotandMulti-backendGraphDatabaseManagementSystem
291
A visual editor for queries. Even if the natu-
ral language query input is powerful and intuitive
enough, a more complete and customizable sys-
tem that enables users to build their own complex
queries is in our plans, due to the same criteria
of usability and low barriers that got the project
started in the first place.
Implementation of topological pattern matching
protocols as a complement for the query module.
Better visualizations. Full-screen mode, integra-
tion with queries system, and basic interaction
with properties of drawn elements such as shape,
color, and size of nodes, relationships and labels.
A battery of well-known algorithms. Including
the most common ones, like Page Rank, HITS or
Dijkstra (Ding et al., 2002), could be a valuable
help for users to perform first level analysis using
the same interface.
We are also working to improve tests coverage to
reach at least a 90% of the code covered.
ACKNOWLEDGEMENTS
We acknowledge the support of the Social Sciences
and Humanities Research Council of Canada through
a Major Collaborative Research Initiative on The His-
panic Baroque. And the Canada Foundation for Inno-
vation through the Leaders Opportunity Fund.
REFERENCES
Angles, R. and Gutierrez, C. (2008). Survey of graph
database models. Computing Surveys, 40(1):1.
Bastian, M., Heymann, S., and Jacomy, M. (2009). Gephi:
An open source software for exploring and manipulat-
ing networks.
Burza
´
nska, M., Stencel, K., Suchomska, P., Szumowska,
A., and Wi
´
sniewski, P. (2010). Recursive queries us-
ing object relational mapping. Future Generation In-
formation Technology, pages 42–50.
Catarci, T., Costabile, M., Levialdi, S., and Batini, C.
(1997). Visual query systems for databases: A survey.
Journal of visual languages and computing, 8(2):215–
260.
Ding, C., He, X., Husbands, P., Zha, H., and Simon, H.
(2002). Pagerank, hits and a unified framework for
link analysis. In Proceedings of the 25th annual in-
ternational ACM SIGIR conference on Research and
development in information retrieval, pages 353–354.
ACM.
Ellis, G., Finlay, J., and Pollitt, A. (1994). Hibrowse for ho-
tels: bridging the gap between user and system views
of a database. In IDS’94 Workshop on User Interfaces
to Databases, pages 45–58.
Esterbrook, C. (2001). Using mix-ins with python. Linux
Journal, 2001(84es):7.
Fielding, R. (2000). Architectural styles and the design
of network-based software architectures. PhD thesis,
University of California.
Fitzpatrick, B. (2004). Distributed caching with mem-
cached. Linux journal, (124):72–74.
Hacigumus, H., Iyer, B., and Mehrotra, S. (2002). Provid-
ing database as a service. In Data Engineering, 2002.
Proceedings. 18th International Conference on, pages
29–38. IEEE.
Hendrix, G., Sacerdoti, E., Sagalowicz, D., and Slocum,
J. (1978). Developing a natural language interface to
complex data. ACM Transactions on Database Sys-
tems (TODS), 3(2):105–147.
Holovaty, A. and Kaplan-Moss, J. (2009). The Defini-
tive Guide to Django: Web Development Done Right.
Apress.
Horng, J. and Lin, L. (2009). The development of a scale
for evaluating creative culinary products. Creativity
Research Journal, 21(1):54–63.
Knoke, D., Yang, S., and Kuklinski, J. (2008). Social net-
work analysis, volume 2. Sage Publications Los An-
geles, CA.
Malliga, P. (2012). Database services for cloud computing–
an overview. Database, 2(3).
Popescu, A., Etzioni, O., and Kautz, H. (2003). Towards
a theory of natural language interfaces to databases.
In Proceedings of the 8th international conference on
Intelligent user interfaces, pages 327–327. ACM.
Roddick, J. (1992). Schema evolution in database systems:
an annotated bibliography. ACM sIGMOD record,
21(4):35–40.
Santucci, G. and Palmisano, F. (1994). A dynamic form-
based data visualiser for semantic query languages.
Interfaces to Database Systems, pages 249–265.
Su
´
arez, J., Sancho, F., and de la Rosa, J. (2011). The art-
space of a global community: the network of baroque
paintings in hispanic-america. In Culture and Com-
puting (Culture Computing), 2011 Second Interna-
tional Conference on, pages 45–50. IEEE.
Su
´
arez, J., Sancho, F., and de la Rosa, J. (2012). Sustaining
a global community: Art and religion in the network
of baroque hispanicamerican paintings. Leonardo,
45(3):281–281.
Vicknair, C., Macias, M., Zhao, Z., Nan, X., Chen, Y., and
Wilkins, D. (2010). A comparison of a graph database
and a relational database: a data provenance perspec-
tive. In Proceedings of the 48th annual Southeast re-
gional conference, page 42. ACM.
Wolfe, R., Needels, M., Arias, T., and Joannopoulos, J.
(1992). Visual revelations from silicon ab initio calcu-
lations. Computer Graphics and Applications, IEEE,
12(4):45–53.
Zloof, M. (1975). Query by example. In Proceedings Na-
tional Computer Conference, pages 431–438. ACM.
DATA2013-2ndInternationalConferenceonDataManagementTechnologiesandApplications
292