Hi all,
I provided the implementation of bidirectional mapping between JCR/CMIS
content repositories and RDF data. Also updated HTML interface of CMS
Adapter accordingly.
I tried to implement this mechanism based on our earlier discussions
with Rupert.
First I determined a simple CMS vocabulary. UriRef declarations that are
used in this mapping process are at the bottom of this class at [1].
Then, I implemented mapper classes [2][3][4] ,for JCR and CMIS
repositories, parsing the CMS vocabulary annotated RDF and updates the
content repository or generates a CMS vocabulary annotated RDF from
content repository.
To be able to map an RDF like the following one to content repository in
a hierarchical manner,
|<node1> rdf:type vCard:Event
<node1> rdfs:label "Community Workshop Paris"
<node1> vCard:participant <node2>
<node1> dbp-prop:location "Paris"
<node2> rdf:type vCard:Agent
<node2> rdfs:label "Participant"
|I have developed an RDF bridge interface and a default implementation
for it [5][6]. The default implementation provides some configurations:
-To identify which resources are going to be mapped to the content
repository.
(rdf:type > vCard:Event)
-To specify resource that is going to be used to determine name of the
objects/nodes in the repository
(rdfs:label)
-To identify which resources represent the children of resources to be
mapped and what will be the name of the children
(vCard:participant > participant)
-To specify the content repository path in which mapped objects will be
created.
I tried to give a detailed explanation about configurations in the Felix
configuration panel. Most of them are used in a reverse manner i.e to
insert annotations into the RDF for each content repository object while
mapping repository to RDF.
I have also implemented an HTML interface at [7] where these mapping
functionalities can be used.
I would be glad to hear your feedbacks and further suggestions.
Best,
Suat
[1]
http://svn.apache.org/repos/asf/incubator/stanbol/trunk/cmsadapter/servicesapi/src/main/java/org/apache/stanbol/cmsadapter/servicesapi/helper/CMSAdapterVocabulary.java
[2]
http://svn.apache.org/repos/asf/incubator/stanbol/trunk/cmsadapter/servicesapi/src/main/java/org/apache/stanbol/cmsadapter/servicesapi/mapping/RDFMapper.java
[3]
http://svn.apache.org/repos/asf/incubator/stanbol/trunk/cmsadapter/jcr/src/main/java/org/apache/stanbol/cmsadapter/jcr/repository/JCRRDFMapper.java
[4]
http://svn.apache.org/repos/asf/incubator/stanbol/trunk/cmsadapter/cmis/src/main/java/org/apache/stanbol/cmsadapter/cmis/repository/CMISRDFMapper.java
[5]
http://svn.apache.org/repos/asf/incubator/stanbol/trunk/cmsadapter/servicesapi/src/main/java/org/apache/stanbol/cmsadapter/servicesapi/mapping/RDFBridge.java
[6]
http://svn.apache.org/repos/asf/incubator/stanbol/trunk/cmsadapter/core/src/main/java/org/apache/stanbol/cmsadapter/core/mapping/DefaultRDFBridgeImpl.java
[7]
http://svn.apache.org/repos/asf/incubator/stanbol/trunk/cmsadapter/web/src/main/java/org/apache/stanbol/cmsadapter/web/resources/RDFMapperResource.java