Author: wikier
Date: Wed Apr 24 10:32:54 2013
New Revision: 1471353

URL: http://svn.apache.org/r1471353
Log:
added some sesame façading documentation

Modified:
    incubator/marmotta/site/trunk/content/markdown/sesame.md.vm

Modified: incubator/marmotta/site/trunk/content/markdown/sesame.md.vm
URL: 
http://svn.apache.org/viewvc/incubator/marmotta/site/trunk/content/markdown/sesame.md.vm?rev=1471353&r1=1471352&r2=1471353&view=diff
==============================================================================
--- incubator/marmotta/site/trunk/content/markdown/sesame.md.vm (original)
+++ incubator/marmotta/site/trunk/content/markdown/sesame.md.vm Wed Apr 24 
10:32:54 2013
@@ -16,7 +16,63 @@ in your Marmotta module:
         <version>${projectVersion}</version>
     </dependency>
 
-Then, in your Java code yoy may need to use something like:
+Then, in your Java code you may need to define your model, for instance define 
a 
+[skos:Concept](http://www.w3.org/2004/02/skos/core#Concept):
 
-    @@TODO@@
+    @RDFType(Namespace.SKOS.Concept)
+    public interface ConceptFacade extends Facade {
+            
+            @RDF({Namespace.DCTERMS.identifier})
+            public String getIdentifier();
+            public void setIdentifier(String name); 
+            
+            @RDF({Namespace.SKOS.prefLabel, Namespace.RDFS.label})
+            public String getPrefLabel();
+            public void setPrefLabel(String location);
+
+            @RDF(Namespace.SKOS.altLabel)
+            public Set<String> getAltLabels();
+            public void setAltLabels(Set<String> location);
+            public void addAltLabel(String label);
+
+            @RDF(Namespace.SKOS.definition)
+            public String getDefinition();
+            public void setDefinition(String location);
+            
+            @RDF(Namespace.SKOS.broader)
+            public void setBroaders(Set<Resource> broader);
+            public Set<Resource> getBroaders();
+            public void addBroader(Resource broader);
+            
+            @RDF(Namespace.SKOS.narrower)
+            public void setNarrowers(Set<Resource> narrower);
+            public Set<Resource> getNarrowers();
+            public void addNarrower(Resource narrower);
+    }
+
+So the necessary code to use this, for instance for lookup by identifier, 
would be something like:
+
+    Resource concept = null;
+    RepositoryConnection conn = ...
+    try {
+            conn.begin();
+            Facading facading = FacadingFactory.createFacading(conn);
+            Literal object = conn.getValueFactory().createLiteral(identifier);
+            URI prop = 
conn.getValueFactory().createURI(Namespace.DCTERMS.identifier);
+            if (object != null && prop != null) {
+                    RepositoryResult<Statement> statements = 
conn.getStatements(null, prop, object, true, context);
+                    while (statements.hasNext()) {
+                            Statement stmt = statements.next();
+                            if ( stmt.getObject().equals(object)) {
+                                    concept = stmt.getSubject();
+                                    break;
+                            }
+                    }
+                    statements.close();
+            }           
+    } finally {
+            conn.commit();
+            conn.close();
+    }
+    return concept;
 


Reply via email to