You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@clerezza.apache.org by mi...@apache.org on 2010/06/02 14:24:13 UTC

svn commit: r950528 - /incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.language/org.apache.clerezza.platform.language.core/src/main/java/org/apache/clerezza/platform/language/LanguageService.java

Author: mir
Date: Wed Jun  2 12:24:13 2010
New Revision: 950528

URL: http://svn.apache.org/viewvc?rev=950528&view=rev
Log:
added additional method to languageService to retrieve lingvoj uri for a label name

Modified:
    incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.language/org.apache.clerezza.platform.language.core/src/main/java/org/apache/clerezza/platform/language/LanguageService.java

Modified: incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.language/org.apache.clerezza.platform.language.core/src/main/java/org/apache/clerezza/platform/language/LanguageService.java
URL: http://svn.apache.org/viewvc/incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.language/org.apache.clerezza.platform.language.core/src/main/java/org/apache/clerezza/platform/language/LanguageService.java?rev=950528&r1=950527&r2=950528&view=diff
==============================================================================
--- incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.language/org.apache.clerezza.platform.language.core/src/main/java/org/apache/clerezza/platform/language/LanguageService.java (original)
+++ incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.language/org.apache.clerezza.platform.language.core/src/main/java/org/apache/clerezza/platform/language/LanguageService.java Wed Jun  2 12:24:13 2010
@@ -34,9 +34,11 @@ import org.apache.felix.scr.annotations.
 import org.apache.clerezza.platform.config.SystemConfig;
 import org.apache.clerezza.rdf.core.BNode;
 import org.apache.clerezza.rdf.core.Graph;
+import org.apache.clerezza.rdf.core.Language;
 import org.osgi.service.component.ComponentContext;
 import org.apache.clerezza.rdf.core.MGraph;
 import org.apache.clerezza.rdf.core.NonLiteral;
+import org.apache.clerezza.rdf.core.PlainLiteral;
 import org.apache.clerezza.rdf.core.Resource;
 import org.apache.clerezza.rdf.core.Triple;
 import org.apache.clerezza.rdf.core.UriRef;
@@ -115,7 +117,8 @@ public class LanguageService {	
 	/**
 	 * Returns a set containg all language uris which are in the
 	 * <http://www.lingvoj.org/lingvoj> graph which is included in this bundle.
-	 * @return a set containing all language uris
+	 * @return a set containing all language uris. This uris can be used to 
+	 * add the language to Clerezza over the addLanguage()-method in this class.
 	 */
 	public Set<UriRef> getAllLanguages() {
 		Set<UriRef> result = new HashSet<UriRef>();
@@ -130,6 +133,35 @@ public class LanguageService {	
 	}
 
 	/**
+	 * Returns a language uri of a language which has a label containing the
+	 * specified languageName. The label itself is in the language specified through
+	 * inLanguage. If inLanguage is null, then all labels of a language of searched.
+	 * If no language was found in the <http://www.lingvoj.org/lingvoj>
+	 * graph, then null is returned. The returned uri can be used to
+	 * add the language to Clerezza over the addLanguage()-method in this class.
+	 * @return a language uris
+	 */
+	public UriRef getLanguage(String languageName, Language inLanguage) {
+		Graph lingvojGraph = getLingvojGraph();
+		Iterator<Triple> languages = lingvojGraph.filter(null, RDFS.isDefinedBy,
+				null);
+		while (languages.hasNext()) {
+			GraphNode languageNode = new GraphNode((UriRef) languages.next().getSubject(),
+					lingvojGraph);
+			Iterator<Resource> labels = languageNode.getObjects(RDFS.label);
+			while (labels.hasNext()) {
+				PlainLiteral label = (PlainLiteral) labels.next();
+				if (label.getLanguage().equals(inLanguage) || inLanguage == null) {
+					if (label.getLexicalForm().contains(languageName)) {
+						return (UriRef) languageNode.getNode();
+					}
+				}
+			}
+		}
+		return null;
+	}
+
+	/**
 	 * Adds the language specified through languageUri to the Clerezza
 	 * platform. The languageUri has to be a <http://www.lingvoj.org/ontology#Lingvo>
 	 * according to the graph <http://www.lingvoj.org/lingvoj> included in this