Semantic Platform Guidelines
In a similar vein to the HumanInterfaceGuidelines, the SemanticPlatformGuidelines outlines a set of recommended programming practices that will help bring individual modules and applications (collectively referrred to as modules here), and consequently the GNOME platform, closer to the vision of a SemanticDesktop. This is not an official document.
1. Aim to use RDF compatible data structures. Generally speaking, any data structure can be mapped into RDF, but because the basic primitive of RDF is the triple, certain conversions are easier than others. For instance, an associative array may be mapped almost directly into a set of triples (array name, array element key, array element value) while an ordered list may need a little work-around to indicate the place of each element in the order.
2. Aim to use RDF's universal namespace. Use RDF's URI namespace scheme everywhere applicable rather than namespaces that can only be correctly comprehended within a specific scope or context. This can enable many useful standard RDF operations such as metadata annotations with triples, ontology alignment and integration with the Semantic Web.
3. Aim to use standard ontologies. When designing data models for a module, aim to make them compatible with existing ontologies that serve the same purpose rather than introducing another one. For instance, rather than reinventing attributes for media files, use Dublin Core or the XESAM or NEPOMUK ontologies.
4. Support the RDF backend D-Bus interface. Implement the backend API defined for the RDFStack for all datastores introduced by the module. This will allow other applications to access the data through a standard interface.
5. Use the central RDF store. Use the triple store provided by the RDFStack where possible. This will allow other applications to query data combined from many sources.