Semantics At Play: Electronic Arts using Linked Data for Multi-Channel Content Management

The annual SEMANTiCS conference is the meeting place for professionals who make semantic computing work, and understand its benefits and know its limitations. This year the conference took place at the beautiful Meervaart Theater in Amsterdam. Amongst the keynotes from industry representatives of Wolters Kluver, Otto Group and Google there was one to stand out: ‘Semantics At Play: Electronic Arts’ Linked Data Journey’ jointly held by Aaron Bradley and Eamonn Glass about the new content management strategy at Electronic Arts.

Aaron Bradley and Eamonn Glass presenting at SEMANTiCS 2017

EA’s Problem: Data Silos

Electronic Arts is one of the world’s largest gaming companies with a portfolio of more than 1.100 titles and annual net sales of over 4.9 billion dollars in 2017. According to the presenters the company had an enormous problem with managing their content across the various divisions and brands: For every title published by EA there used to be multiple content management systems for marketing and support teams, often replicating the content of the other ones via copy and paste. As one can imagine this was highly inefficient, costing the company considerable amounts of time and money while making it increasingly harder to serve content for multiple channels – including web sites, social networks and in-game.

EA’s Solution: Linked Data Content Management

Heavily inspired by the content management system which the BBC had developed for the football World Cup 2012, EA is consolidating a large amount of its online content in a so called ‘Content Service’. That is a high performance MarkLogic semantic graph database storing its content aligned with the vocabulary. PoolParty was chosen as the solution for managing the enterprise taxonomy.

The huge advantage of this approach is, that now EA is capable of making the same content available to multiple channels (in-game, web, apps, feeds) in various formats just by exposing it over APIs, along with structured data for SEO. According to the presenters this has resulted in a 40% increase in personalized content served via in-game channels and in search results exposing significantly more EA authored content.

Mr. Bradley and Mr. Glass stated that the new content management strategy is successful and will be extended in future.

Playing With Semantics: Trinity RDF used in Award-Nominated Game

As it comes we have made our own game-related experiences with Linked Data: Close is a poetic and atmospheric exploration game about yourself and the other one, about being alone and being together.”

The game was co-authored by Moritz Eberl who developed its artificial intelligence engine based on Linked Data using Trinity RDF and the gaming engine Unity. It was amongst the nominated finalists for the 2017 Independent Games Festival Award at the Game Developers Conference in San Francisco, USA.

If you have any questions about how Linked Data and semantic technologies can be deployed to remove the boundaries of your data silos or to make your applications even smarter – just ask us, we can help you out.

Artivity alpha release available for macOS

We are proud to announce that the first pre-release version of Artivity codenamed ‘Altamira’ can be downloaded for macOS from our project website. Following an intensive six-month development sprint which started in March this year, the software is now ready for testing by artists and designers using the Creative Cloud versions of Adobe Photoshop and Illustrator. The software allows for easily documenting and sharing of the entire creation process of your digital artwork. It can be used as a long term self archiving tool which does not interfere with your creative practice.

One user experience across all platforms

The focus of the latest developments has been on making Artivity usable with the Adobe Creative Cloud products and on providing a consistent user experience on all supported operating systems. One of the results is a completely new graphical user interface, re-written from ground up using modern web technologies. It features fluent layout, smooth animations, powerful extensibility and drag’n’drop interaction – on all operating systems. This new user interface will also be the basis for all future Artivity cloud services that we are currently developing.

The alpha release is currently only available for macOS as part of our product stabilization strategy. A version for Windows is already up and running and will be released when Artivity progresses into beta stadium. There will also be a version for Linux as soon as Inkscape 0.92 is released. Semiodesk sponsored new code to the project for loading native C++ plugins which was published at the Libre Graphics Meeting 2016 in London.

Artivity ScreenshotArtivity Windows File

Plugins for Adobe Creative Cloud products

The plugins for Adobe Illustrator and Photoshop do not only provide detailed data about every influence to a picture – they also provide rendered layer data which can be used to visually reconstruct and analyse the image at every state in its creation process. Artivity presents a video-player like interface for replaying all the editing steps that have gone into a digital artwork. However, unlike a plain video capture, the reconstructed images are fully interactive and can be commented, edited and analysed retrospectively. This allows for simply moving existing shapes in an image to preview and communicate ideas for changes to other users.

Artivity Screenshot Plugins

Powerful SPARQL query editor with built-in visualization

As a research project of the London University of the Arts, it is important that the data which is produced by Artivity can be studied to gain new insights into the creative process of digital artists. For this reason Artivity has been built using W3C Semantic Web technologies which provide a standard model for data interchange on the Word Wide Web. The TinyVirtuoso  graph database allows for querying W3C PROV-O provenance data from multiple sources using the powerful SPARQL query language. The built-in query editor has support for syntax highlighting, code completion, error checking and generates charts for the data returned from a query. Of course, all results can be exported into CSV format for further processing in spreadsheet and statistics tools.

Artivity Query Editor

See Artivity in action

Artivity will be presented at this year’s SEMANTiCS conference in Leipzig and at the JISC Research Data Spring Showcase in Birmingham. The project is a cooperation of Semiodesk GmbH and the University of the Arts, London. Its development was funded by JISC as part of the Research Data Spring.

Trinity adds SPARQL parameters and automatic prefixes

Semiodesk Trinity Our enterprise grade Semantic Web platform just got better: With support for bindable SPARQL parameters and automatic prefix declarations, the new Semiodesk Trinity 0.9.122 release substantially improves the usability and performance of the query API.

Automatic Prefix Declaration

Trinity users will already know the Vocabulary Class Generator feature which allows to use ontology terms directly in source code to support all kind of code completion engines such as IntelliSense in Visual Studio. Based on the ontologies which are defined in the App.config file, the improved SparqlQuery class is now capable of declaring all registered prefixes automatically. This is a booster for developer productivity since it's no longer required to copy and paste prefix declarations from one query to another, which is time consuming and prone to errors. The following example illustrates the use of the new SparqlQuery class. The query uses the W3C PROV ontology and some terms from the Dublin Core Metadata Element Set to retrieve the time range of user activities and the files and websites which were used:
// NOTE: The prefixes used in the query will be declared by the SparqlQuery class.
ISparqlQuery query = new SparqlQuery(@"
   SELECT ?activity ?startTime ?endTime ?title ?description WHERE
      ?activity prov:used ?entity ;
         prov:startedAtTime ?startTime .
         prov:endedAtTime ?endTime .

      ?entity dc:title ?title .

      OPTIONAL { ?entity dc:description ?description . }
   ORDER BY ASC(?startTime)");

ISparqlQueryResult result = Model.ExecuteQuery(query);
The query is parsed once at construction time and all missing prefixes will be declared if they are found in App.config.

SPARQL Parameters

Adding runtime parameters to SPARQL query strings can be tricky: The string concatenation operator does not allow to reuse any parameterized query string with different values and string.Format() quickly leads to a pile of curly braces that is hard to maintain. To address this issue we have introduced bindable SPARQL parameters to our query API: an extension to the SPARQL syntax that allows to define special variables which may be bound to a given value at runtime. The syntax is similar to SqlParameters in Microsoft Entity Framework where a query parameter is preceded by '@'. The parameter value can later be bound to a specific value like in this example:
// NOTE: The parameter '@startTime' will later be bound to today's date.
ISparqlQuery query = new SparqlQuery(@"
   SELECT ?activity WHERE
      ?activity prov:startedAtTime ?startTime .

      FILTER(?startTime > @startTime)
   ORDER BY ASC(?startTime)");

query.Bind("@startTime", DateTime.Today);

ISparqlQueryResult result = Model.ExecuteQuery(query);
The new SparqlQuery class encapsulates a blazing fast StringBuilder that regenerates the query string only when a modified query is actually used. The result is a convenient API with high performance, especially when a query is subsequently executed with different parameter values.

Now Available

The new version of the API has been released by the time of this writing. Start your favourite C# IDE and add the Semiodesk Trinity Core NuGet package to try it now. Please refer to the Trinity website for more information.

What’s in the pipeline: Upcoming Releases

We are not only working hard on Artivity but we try to constantly improve upon the Trinity framework, as well as general tooling for Semantic Web technologies with C#. So here is a small overview of the things that are currently on our agenda:


Ontologies are at the heart of every Linked Data project. Here we always have to compete with all other data modelling tools for Visual Studio and some developers raised the issue that there is no integration into the IDE. So we are doing exactly that.

We have created editors for popular ontology serialization formats like Turtle, N3 etc. They offer syntax highlighting as well as auto-completion. Additionaly they tie in with our own Trinity Framework, so you can create a bootstrapping object model from an ontology with few simple mouse clicks. Further down the road we want to add a graphical editor where you can get a better overview of the ontology terms.


Using the feature-rich Virtuoso database server, we have created a package to deploy an embedded triple store that can be instrumented using C#. It can serve the same needs as Microsofts SQL Server Compact.

There are a number of use cases for such a store:

  • We use it to do the integration tests for our software. We can do the instrumentation of the database directly in the tests and verify that everything works as it should.
  • For desktop applications that need the features like inferencing it is often easier to deploy a store on demand instead of trying to start a service.
  • In todays development culture it is important to get a prototype out of the door as fast as possible. This often means that dealing with deployment issues like configuring the database server is something that people rather push back. With TinyVirtuoso you won’t have to deal these issues until better scalability is required.

LINQ support for Trinity

Though we already have the Resource Query API for retrieving data from the RDF database, we still feel that the Trinity is still lacking a bit in that aspect. For one we feel that there is a disparity between using the RDF properties for queries and the C# properties for the mapped classes. Additionally, LINQ is the standard way of writing queries in C# and we want to adhere to that. So we are currently working on implementing LINQ querying for mapped classes. Still, you won’t be able to get the full potential that SPARQL has to offer, but it should speed up development for your typical day to day queries.

Semiodesk Trinity now available under MIT license

With Semiodesk Trinity, we offer a feature-rich development platform to create Semantic Web powered applications in C#.Net/Mono. If you are looking for an object mapping API for graph databases or just want a simple way to consume linked open data from your applications, Trinity can deliver.

Because we want to get as many people as possible interested in Semantic Web, we have made sure it is dead simple to use. Furthermore, to make it available to anyone, we have released it under the MIT license. This means you can use it for free, even for commercial projects.

For a detailed overview what Trinity can offer you, please visit our product page. If you just want to try it out, just head over to our tutorial and follow the instructions. For arising problems or bugs, please use our issue tracker. Please contact us under if you have any further questions.