Since we began writing the first lines of code for the Ximdex CMS, we have embraced the Semantic Web paradigm to achieve a higher level of abstraction for the content, data, and web applications we manage, as well as to facilitate automated tasks in information processing. However, even more important was ensuring the maximum scalability of published content, which compelled us to find a balance in using these techniques.
To this end, we have applied a clear distinction between the Semantic Web paradigm—understood as a somewhat utopian vision of the web where all links carry the “why” of the link (provided by its associated meaning, shared and described in ontologies, making it processable automatically and allowing inferences)—and the use of Semantic Technologies, which we see as selectively “choosing” certain components of the Semantic Web paradigm. For example, using relatively simple vocabularies that describe only people or places, and simpler languages like RDF, limits the operations we can perform on entities but allows for much more direct processing without compromising values like scalability.
This separation between the Semantic Web paradigm and the use of Semantic Technologies has led us to select the best of both worlds. While it has resulted in controversial and somewhat criticized decisions at the time (mainly by integrators), many of them have eventually become trends.
A few examples include storing semantic triples in relational databases (there are systems for mapping them used in R&D projects with a strong semantic load) or deciding to store content (described in XML) in the file system rather than the database (where we store “pointers” and their relationships following a triple schema). This latter decision was heavily questioned by some integrators, although the rise of NoSQL systems seems to indicate we weren’t too far off the mark. ;)
In reality, it has been simpler considering that all decisions in the development of Ximdex have been based on the following pillars:
- Abstraction: To separate content from both presentation and business logic, enhance its reuse, and represent services (e.g., a web application to list educational centers by location) that can be included and customized by the editor without programming, among other benefits.
- Meaning: Linked to the informational elements that make up a content or service (e.g., introductory paragraphs, the amount of a scholarship, news-type documents, multimedia elements like romantic songs, etc.). This has allowed us to improve retrieval via the search engine, automate the suggestion of related links and images, generate a TV information channel by automatically filtering out irrelevant elements, and more.
- Neutral, free, and open: Applied to the use of the tool without limiting the number of projects, users, languages, channels, technologies, or programming languages (Java, Python, PHP, XML, XHTML, HTML5, .NET, Ruby, Django, etc.). It also includes the freedom to structure information without imposed constraints (no specific document structures), modify the source code, or choose the technological components for the production portal (e.g., static vs. dynamic content, database usage and type, connectors, application servers, web or video servers, etc.). All of this ensures full access to content in the most neutral, simple, and transparent way possible using standards (XML, XSLT, etc.).
These pillars have shaped the Security, Flexibility, and Scalability values that define Ximdex CMS, enhancing the return on investment—whether in time or money—when choosing it.