Skip to content

semiodesk/trinity-rdf

Repository files navigation

Overview

Semiodesk Trinity is an application development platform for Microsoft .NET and Mono. It allows to easily build Linked Data and Semantic Web applications based on the RDF metadata standard issued by the W3C. The API allows for developing first-class .NET applications with direct access to Linked Open Data repositories and knowledge graphs.

Our platform is built on top of the powerful and stable dotNetRDF library which has been in development since early 2009. Since dotNetRDF is low-level and primarliy focused on directly manipulating triples, it does not integrate well with existing application frameworks and introduces a steep learning curve for new developers. Therefore, our primary goal was to allow developers to use proven enterprise development patterns such as MVC or MVVM to build Linked Data applications that integrate well into existing application eco-systems.

The software is supported by Semiodesk, for more information have a look at the product page. We are available for consulting and projects, don't hesitate to contact us.

Installation

The easiest way to start using the Trinity API is to add it to your project trough NuGet.

PM> Install-Package Semiodesk.Trinity

Getting Started

After the installation our First Steps guide should help you getting started.

Examples

We have a list of examples to show how easy it is to set up a project.

Documentation

For more details have a look at the API documentation.

Features

Semantic Object Mapping

Similar to OR-mapping techniques for relational databases, we provide a way to map RDFS / OWL terms to .NET objects. Using byte-code manipulation, we implement the code required for the mapping during program compilation. This results in higher performance and less runtime errors than solutions based on introspection.

Ontology Classes

The Trinity platform offers a way to work with ontologies directly in the IDE. We have developed a set of tools to help you integrate ontology concepts directly into your project.

A small code generator transforms RDFS and OWL ontologies into C# representations. With these the IDE, for example Visual Studios IntelliSense, can offer you autocompletion as well as documentation hints for the ontologies you are working with. Additionally this process can be integrated into the build process, that way the code stays up to date with the ontologies.

A different tool deploys the ontologies to your triple store. If you are working on your own ontologies, you can integrate this process into your toolchain.

LINQ

Not familiar with SPARQL? No problem. The powerful LINQ to SPARQL translator in Trinity RDF lets you query your RDF knowledge graph using LINQ.

Data Virtualization

Knowledge graphs can become large datasets quite easily. In order to maintain application performance and user interface responsiveness, Trinity RDF makes paged queries to your datasets easy. Simply use the Take and Skip operators in your LINQ queries and you're done. Of course, SPARQL has built-in support for paging if you are creating more advanced queries.

Various Backends

The Semiodesk Trinity API has built-in support for three store types. We offer an in-memory store to get started quick and without much overhead. For more sophisticated applications we support the use of OpenLinks Virtuoso database. To access data from the Linked Open Data cloud, Trinity is able to connect to SPARQL endpoints. Additional stores can be used trough external modules.

License

The library and tools in this repository are all released under the terms of the MIT license. This means you can use it for every project you like, even commercial ones, as long as you keep the copyright header intact. The source code, documentation and issue tracking can be found at our bitbucket page. If you like what we are doing and want to support us, please consider donating.

Dependencies

The Semiodesk.Trinity API has dependencies to

The libraries are included in the release package. If you install via NuGet the depencies should be resolved for you.

Support

If you need help or want priority support, contact us under hello@semiodesk.com.