Drupal RDFme Plugin

Writing the RDFme mappings is about connecting the Drupal content type fields with ontology classes and properties.

The feature allows to specify a RDF property per each field and map the value directly or define some simple trasformations (e.g. adding node url, node id etc.) The module is based on the Drupal RDF API but gives more flexibility in defining the mappins and also provides a different interface that gathers all possible mappings on a single screen.

For both cases before starting with the mappings its needed to tell RDFme about the namespaces that shall be used. The namespaces added in RDFme settings are exported together with the data and only in that case the RDF/XML file shall be valid (rdf vocabulary is present by default).

Use Case #1: Mappings for the standard Drupal installation.

Namespaces used:

Example resources: [ Get Mappings File ] [ Get Sample RDF/XML ]

The table below presents mappings for Drupal Page content type and related data to RDF.

Content Type:
Page
RDF Class:
foaf:Document
URI Pattern:
@@@url@@@node/@@@nid@@@/tordf
Field Name RDF Property rdf:resource Pattern External Property
Creator ID sioc:has_creator rdf:resource @@@url@@@user/@@@value@@@/tordf -
Creator name dcterms:creator - - -
Created dcterms:created - - -
Comment sioc:has_reply rdf:resource @@@url@@@node/@@@nid@@@/@@@value@@@/tordf -
Title dcterms:title - - -
Body sioc:content - - -
Taxonomy rdfs:seeAlso rdf:resource - external
Source URL foaf:page rdf:resource - -
 
Content Type:
- (subclass of Page)
RDF Class:
skos:Concept
URI Pattern:
@@@url@@@node/@@@nid@@@/class/@@@id@@@/tordf
Field Name RDF Property rdf:resource Pattern External Property
taxonomy skos:prefLabel - - n/a
 
Content Type:
User
RDF Class:
foaf:OnlineAccount
URI Pattern:
@@@url@@@user/@@@uid@@@/tordf
Field Name RDF Property rdf:resource Pattern External Property
Name foaf:accountName - - -
 
Content Type:
Comment
RDF Class:
sioc:Post
URI Pattern:
@@@url@@@node/@@@nid@@@/@@@cid@@@/tordf
Field Name RDF Property rdf:resource Pattern External Property
Parent sioc:reply_of rdf:resource @@@url@@@node/@@@value@@@/tordf -
Creator ID sioc:has_creator rdf:resource @@@url@@@user/@@@value@@@/tordf -
Creator name dcterms:creator - - -
Title dcterms:title - - -
Body sioc:content - - -
Created dcterms:created - - -

Use Case #2: Mappings for Idea Management System.

The second case is definition of mappings for the content types that we used in our Gi2MO Idea Stream instance.

On top of the regular Drupal content, the instance has following Content Types specific for Idea Management Systems:

  • Idea
  • Idea Review
  • Idea Contest

Namespaces used in this example are:

Example resources: [ Get Mappings File ] [ Get Sample RDF/XML ]

Similar as in the first example we present a full mappings table that matches each content type with Gi2MO class and then every data field with respectable ontology property.

Content Type:
Idea
RDF Class:
gi2mo:Idea
URI Pattern:
@@@url@@@node/@@@nid@@@/tordf
Field Name RDF Property rdf:resource Pattern External Property
Creator ID gi2mo:hasCreator rdf:resource @@@url@@@user/@@@value@@@/tordf -
Created dcterms:created - - -
Comment gi2mo:hasComment rdf:resource @@@url@@@node/@@@nid@@@/@@@value@@@/tordf -
Title dcterms:title - - -
Body gi2mo:content - - -
Taxonomy gi2mo:hasCategory - - -
Source URL foaf:page rdf:resource - -
Workflow gi2mo:hasStatus - - -
Rating (Voting API) gi2mo:hasReview rdf:resource - external
Idea Contest gi2mo:hasIdeaContest rdf:resource @@@url@@@node/@@@value@@@/tordf -
Idea Review gi2mo:hasReview rdf:resource @@@url@@@node/@@@value@@@/tordf -
 
Content Type:
- (subclass of Idea, describes Rating in detail)
RDF Class:
gi2mo:UpDownRating
URI Pattern:
@@@url@@@node/@@@nid@@@/class/@@@id@@@/tordf
Field Name RDF Property rdf:resource Pattern External Property
votingapi_rating gi2mo:ratingValue - - n/a
rdfme_literal_value dcterms:description - “User up/down voting value” n/a
 
Content Type:
Idea Review
RDF Class:
gi2mo:Review
URI Pattern:
@@@url@@@node/@@@nid@@@/tordf
Field Name RDF Property rdf:resource Pattern External Property
Creator ID gi2mo:hasCreator rdf:resource @@@url@@@user/@@@value@@@/tordf -
Created dcterms:created - - -
Comment gi2mo:hasComment rdf:resource @@@url@@@node/@@@nid@@@/@@@value@@@/tordf -
Title dcterms:title - - -
Body gi2mo:content - - -
Taxonomy dcterms:description - - -
Source URL foaf:page rdf:resource - -
Rating gi2mo:hasSupplement rdf:resource - external
 
Content Type:
- (subclass of Idea Review, describes Rating in detail)
RDF Class:
gi2mo:MinMaxRating
URI Pattern:
@@@url@@@node/@@@nid@@@/class/@@@id@@@/tordf
Field Name RDF Property rdf:resource Pattern External Property
field_review_rating gi2mo:ratingValue - - n/a
rdfme_literal_value dcterms:description - “Rating from 1..10 assigned by the reviewer” n/a
 
Content Type:
Idea Contest
RDF Class:
gi2mo:IdeaContest
URI Pattern:
@@@url@@@node/@@@nid@@@/tordf
Field Name RDF Property rdf:resource Pattern External Property
Creator ID gi2mo:hasCreator rdf:resource @@@url@@@user/@@@value@@@/tordf -
Created dcterms:created - - -
Title dcterms:title - - -
Body gi2mo:content - - -
Source URL foaf:page rdf:resource - -
 
Content Type:
User
RDF Class:
gi2mo:User
URI Pattern:
@@@url@@@user/@@@uid@@@/tordf
Field Name RDF Property rdf:resource Pattern External Property
Name foaf:accountName - - -
Created dcterms:created - - -
 
Content Type:
Comment
RDF Class:
gi2mo:Comment
URI Pattern:
@@@url@@@node/@@@nid@@@/@@@cid@@@/tordf
Field Name RDF Property rdf:resource Pattern External Property
Parent sioc:reply_of rdf:resource @@@url@@@node/@@@value@@@/tordf -
Creator ID sioc:has_creator rdf:resource @@@url@@@user/@@@value@@@/tordf -
Creator name dcterms:creator - - -
Title dcterms:title - - -
Body gi2mo:content - - -
Created dcterms:created - - -

Known Limitations

  • Taxonomies are not fully supported yet, RDFme does not make a distinction between tags and other categories. In practice this makes currently impossible to do the mappings according to Gi2MO specification (tags and categories mapped with different classes)
  • It is not possible to define a mapping table that will convert literals into another set of literals (e.g. “I like plums” to “I like peaches”). In case of Gi2MO ontology this impacts mappings of workflows to class instances representing Idea Status.