[Yanel-commits] rev 21728 - public/yanel/trunk/src/contributions/resources/nutch/src/java/org/wyona/yanel/impl/resources

michi at wyona.com michi at wyona.com
Sun Jan 14 14:42:42 CET 2007


Author: michi
Date: 2007-01-14 14:42:40 +0100 (Sun, 14 Jan 2007)
New Revision: 21728

Modified:
   public/yanel/trunk/src/contributions/resources/nutch/src/java/org/wyona/yanel/impl/resources/NutchResource.java
Log:
Ontology fixed

Modified: public/yanel/trunk/src/contributions/resources/nutch/src/java/org/wyona/yanel/impl/resources/NutchResource.java
===================================================================
--- public/yanel/trunk/src/contributions/resources/nutch/src/java/org/wyona/yanel/impl/resources/NutchResource.java	2007-01-14 13:42:10 UTC (rev 21727)
+++ public/yanel/trunk/src/contributions/resources/nutch/src/java/org/wyona/yanel/impl/resources/NutchResource.java	2007-01-14 13:42:40 UTC (rev 21728)
@@ -45,7 +45,7 @@
 
 import org.apache.nutch.html.Entities;
 import org.apache.nutch.metadata.Metadata;
-
+import org.apache.nutch.ontology.Ontology;
 import org.apache.nutch.searcher.Hit;
 import org.apache.nutch.searcher.HitDetails;
 import org.apache.nutch.searcher.Hits;
@@ -98,6 +98,7 @@
     private String cachedMimeType = null;
     private Transformer transformer = null;
     private I18nTransformer i18nTransformer = null;
+    Ontology ontology = null;
     
     /**
      * 
@@ -256,7 +257,7 @@
                 exceptionElement.appendChild(document.createTextNode(e.getMessage()));
             }
             if (crawlDir != null) {
-                createDocument4SearchResult(searchTerm, start, hitsPerPage);
+                getSearchResults(rootElement, searchTerm, start, hitsPerPage);
             }
         } else {
             rootElement.appendChild(document.createElementNS(NAME_SPACE, "no-query"));
@@ -499,7 +500,7 @@
      * @param searchTerm 
      * @param start position of found results for searchTerm 
      */
-    private void createDocument4SearchResult(String searchTerm, int start, int hitsPerPage) {
+    private void getSearchResults(Element rootElement, String searchTerm, int start, int hitsPerPage) {
         try {
             if (!crawlDir.isDirectory()) {
                 exceptionElement = (Element) resultsElement.appendChild(document.createElementNS(NAME_SPACE, "exception"));
@@ -508,7 +509,21 @@
                 log.warn(exceptionMessage);
                 return;
             } else {
-                getRefineList();
+
+
+        loadOntology(); 
+        if (ontology != null) {
+            Iterator refinedQueryIterator = ontology.subclasses(searchTerm);
+            if (refinedQueryIterator.hasNext()) {
+                Element refinedQueryElement = (Element) document.createElementNS(NAME_SPACE, "refined-query-terms");
+                rootElement.appendChild(refinedQueryElement);
+                while (refinedQueryIterator.hasNext()) {
+                    Element term = (Element) document.createElementNS(NAME_SPACE, "term");
+                    term.appendChild(document.createTextNode((String) refinedQueryIterator.next()));
+                    refinedQueryElement.appendChild(term);
+                }
+            }
+        }
                 
                 nutchBean = new NutchBean(configuration);
                 Query query = Query.parse(searchTerm, configuration);
@@ -532,6 +547,9 @@
                 Element hitIndexNoElement = null;
                 Element fragmentsElement = null;
                 Element fragmentElement = null;
+                if (show.length == 0) {
+                    rootElement.appendChild((Element) document.createElementNS(NAME_SPACE, "no-results"));
+                }
                 for (int i = 0; i < show.length; i++) {
                     Element resultElement = (Element) resultsElement.appendChild(document.createElementNS(NAME_SPACE, "result"));
                     resultElement.setAttributeNS(NAME_SPACE, "index", "" + (i + 1));
@@ -580,15 +598,23 @@
     }
     
     /**
-     * Use OWL to refine query
+     * Load Ontology
      */
-    private List getRefineList() {
-        org.apache.nutch.ontology.Ontology ontology = null;
+    private void loadOntology() {
         try {
             // Configuration nutchConf = NutchConfiguration.get(application);
             String urls = configuration.get("extension.ontology.urls");
-            log.error("DEBUG: extension.ontology.urls: " + urls);
+            log.debug("extension.ontology.urls: " + urls);
 
+            if (urls != null) {
+                ontology = (Ontology) Class.forName(configuration.get("extension.ontology.extension-name")).newInstance();
+                //ontology = (Ontology) Class.forName("org.apache.nutch.ontology.jena.OntologyImpl").newInstance();
+                //ontology = new org.apache.nutch.ontology.OntologyFactory(configuration).getOntology();
+                if (ontology != null) {
+                    ontology.load(urls.split("\\s+"));
+                }
+            }
+
 /*
             // TODO: null is being returned!
             ontology = new org.apache.nutch.ontology.OntologyFactory(configuration).getOntology();
@@ -602,20 +628,6 @@
         } catch (Exception e) {
             log.error(e.getMessage(), e);
         }
-         
-        List refineList = new ArrayList();
-        if (ontology != null) {
-            Iterator iter = ontology.subclasses(searchTerm);
-            while (iter.hasNext()) {
-                String nextItem = (String)iter.next();
-                log.error("iterating: --> " + nextItem);  
-                // refineList.add((String)iter.next());
-                refineList.add(nextItem);
-            }
-        } else {
-            log.warn("Ontology is null");
-        }
-        return refineList;
     }
 
     /**




More information about the Yanel-commits mailing list