You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stanbol.apache.org by rw...@apache.org on 2012/03/25 20:16:01 UTC
svn commit: r1303354 - in
/incubator/stanbol/branches/0.9.0-incubating/entityhub:
generic/core/src/main/java/org/apache/stanbol/entityhub/core/site/
site/linkeddata/src/main/java/org/apache/stanbol/entityhub/site/linkeddata/impl/
Author: rwesten
Date: Wed Mar 21 10:36:41 2012
New Revision: 1303354
URL: http://svn.apache.org/viewvc?rev=1303354&view=rev
Log:
STANBOL-542 and STANBOL-543: merged changes of Revision 1303322 to stanbol-0.9.0-incubating branch
Modified:
incubator/stanbol/branches/0.9.0-incubating/entityhub/generic/core/src/main/java/org/apache/stanbol/entityhub/core/site/AbstractEntityDereferencer.java
incubator/stanbol/branches/0.9.0-incubating/entityhub/generic/core/src/main/java/org/apache/stanbol/entityhub/core/site/AbstractEntitySearcher.java (contents, props changed)
incubator/stanbol/branches/0.9.0-incubating/entityhub/site/linkeddata/src/main/java/org/apache/stanbol/entityhub/site/linkeddata/impl/CoolUriDereferencer.java
incubator/stanbol/branches/0.9.0-incubating/entityhub/site/linkeddata/src/main/java/org/apache/stanbol/entityhub/site/linkeddata/impl/LarqSearcher.java
incubator/stanbol/branches/0.9.0-incubating/entityhub/site/linkeddata/src/main/java/org/apache/stanbol/entityhub/site/linkeddata/impl/SparqlDereferencer.java
incubator/stanbol/branches/0.9.0-incubating/entityhub/site/linkeddata/src/main/java/org/apache/stanbol/entityhub/site/linkeddata/impl/SparqlSearcher.java
incubator/stanbol/branches/0.9.0-incubating/entityhub/site/linkeddata/src/main/java/org/apache/stanbol/entityhub/site/linkeddata/impl/VirtuosoSearcher.java
Modified: incubator/stanbol/branches/0.9.0-incubating/entityhub/generic/core/src/main/java/org/apache/stanbol/entityhub/core/site/AbstractEntityDereferencer.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/branches/0.9.0-incubating/entityhub/generic/core/src/main/java/org/apache/stanbol/entityhub/core/site/AbstractEntityDereferencer.java?rev=1303354&r1=1303353&r2=1303354&view=diff
==============================================================================
--- incubator/stanbol/branches/0.9.0-incubating/entityhub/generic/core/src/main/java/org/apache/stanbol/entityhub/core/site/AbstractEntityDereferencer.java (original)
+++ incubator/stanbol/branches/0.9.0-incubating/entityhub/generic/core/src/main/java/org/apache/stanbol/entityhub/core/site/AbstractEntityDereferencer.java Wed Mar 21 10:36:41 2012
@@ -16,6 +16,8 @@
*/
package org.apache.stanbol.entityhub.core.site;
+import static org.apache.stanbol.entityhub.core.site.AbstractEntitySearcher.extractBaseUri;
+
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
@@ -42,6 +44,7 @@ public abstract class AbstractEntityDere
log.info("create instance of " + this.getClass().getName());
}
+ private String accessUri;
private String baseUri;
private Dictionary<String, ?> config;
@@ -50,6 +53,13 @@ public abstract class AbstractEntityDere
@Override
public final String getAccessUri() {
+ return accessUri;
+ }
+ /**
+ * Getter for the base URI to be used for parsing relative URIs in responses
+ * @return
+ */
+ protected String getBaseUri(){
return baseUri;
}
@@ -63,12 +73,13 @@ public abstract class AbstractEntityDere
Dictionary<String, ?> properties = context.getProperties();
Object baseUriObject = properties.get(EntityDereferencer.ACCESS_URI);
if (baseUriObject != null) {
- this.baseUri = baseUriObject.toString();
+ this.accessUri = baseUriObject.toString();
//now set the new config
this.config = properties;
} else {
throw new IllegalArgumentException("The property " + EntityDereferencer.ACCESS_URI + " must be defined");
}
+ baseUri = extractBaseUri(accessUri);
//TODO: I am sure, there is some Utility, that supports getting multiple
// values from a OSGI Dictionary
Object prefixObject = properties.get(SiteConfiguration.ENTITY_PREFIX);
@@ -95,6 +106,7 @@ public abstract class AbstractEntityDere
log.info("in " + AbstractEntityDereferencer.class.getSimpleName() + " deactivate with context " + context);
this.config = null;
this.prefixes = null;
+ this.accessUri = null;
this.baseUri = null;
}
Modified: incubator/stanbol/branches/0.9.0-incubating/entityhub/generic/core/src/main/java/org/apache/stanbol/entityhub/core/site/AbstractEntitySearcher.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/branches/0.9.0-incubating/entityhub/generic/core/src/main/java/org/apache/stanbol/entityhub/core/site/AbstractEntitySearcher.java?rev=1303354&r1=1303353&r2=1303354&view=diff
==============================================================================
--- incubator/stanbol/branches/0.9.0-incubating/entityhub/generic/core/src/main/java/org/apache/stanbol/entityhub/core/site/AbstractEntitySearcher.java (original)
+++ incubator/stanbol/branches/0.9.0-incubating/entityhub/generic/core/src/main/java/org/apache/stanbol/entityhub/core/site/AbstractEntitySearcher.java Wed Mar 21 10:36:41 2012
@@ -37,6 +37,7 @@ public abstract class AbstractEntitySear
}
private String queryUri;
+ private String baseUri;
private Dictionary<String,?> config;
private ComponentContext context;
@@ -44,6 +45,13 @@ public abstract class AbstractEntitySear
protected final String getQueryUri() {
return queryUri;
}
+ /**
+ * Getter for the base URI to be used for parsing relative URIs in responses
+ * @return
+ */
+ protected String getBaseUri(){
+ return baseUri;
+ }
@SuppressWarnings("unchecked")
@Activate
@@ -64,17 +72,45 @@ public abstract class AbstractEntitySear
} else {
throw new IllegalArgumentException("The property "+EntitySearcher.QUERY_URI+" must be defined");
}
+ this.baseUri = extractBaseUri(queryUri);
this.config = properties;
} else {
throw new IllegalArgumentException("The property "+EntitySearcher.QUERY_URI+" must be defined");
}
}
+ /**
+ * computes the base URL based on service URLs
+ * @param the URL of the remote service
+ * @return the base URL used to parse relative URIs in responses.
+ */
+ protected static String extractBaseUri(String uri) {
+ //extract the namepsace from the query URI to use it fore parsing
+ //responses with relative URIs
+ String baseUri;
+ int index = Math.max(uri.lastIndexOf('#'),uri.lastIndexOf('/'));
+ int protIndex = uri.indexOf("://")+3; //do not convert http://www.example.org
+ if(protIndex < 0){
+ protIndex = 0;
+ }
+ //do not convert if the parsed uri does not contain a local name
+ if(index > protIndex && index+1 < uri.length()){
+ baseUri = uri.substring(0, index+1);
+ } else {
+ if(!(uri.charAt(uri.length()-1) == '/' || uri.charAt(uri.length()-1) == '#')){
+ baseUri = uri+'/'; //add a tailing '/' to Uris like http://www.example.org
+ } else {
+ baseUri = uri;
+ }
+ }
+ return baseUri;
+ }
@Deactivate
protected void deactivate(ComponentContext context) {
log.debug("in "+AbstractEntitySearcher.class.getSimpleName()+" deactivate with context "+context);
this.config = null;
this.queryUri = null;
+ this.baseUri = null;
}
/**
* The OSGI configuration as provided by the activate method
Propchange: incubator/stanbol/branches/0.9.0-incubating/entityhub/generic/core/src/main/java/org/apache/stanbol/entityhub/core/site/AbstractEntitySearcher.java
------------------------------------------------------------------------------
--- svn:mergeinfo (added)
+++ svn:mergeinfo Wed Mar 21 10:36:41 2012
@@ -0,0 +1,2 @@
+/incubator/stanbol/branches/0.9.0-incubating/entityhub/generic/core/src/main/java/org/apache/stanbol/entityhub/core/site/AbstractEntityDereferencer.java:1303322
+/incubator/stanbol/trunk/entityhub/generic/core/src/main/java/org/apache/stanbol/entityhub/core/site/AbstractEntitySearcher.java:1301064-1301517,1303322
Modified: incubator/stanbol/branches/0.9.0-incubating/entityhub/site/linkeddata/src/main/java/org/apache/stanbol/entityhub/site/linkeddata/impl/CoolUriDereferencer.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/branches/0.9.0-incubating/entityhub/site/linkeddata/src/main/java/org/apache/stanbol/entityhub/site/linkeddata/impl/CoolUriDereferencer.java?rev=1303354&r1=1303353&r2=1303354&view=diff
==============================================================================
--- incubator/stanbol/branches/0.9.0-incubating/entityhub/site/linkeddata/src/main/java/org/apache/stanbol/entityhub/site/linkeddata/impl/CoolUriDereferencer.java (original)
+++ incubator/stanbol/branches/0.9.0-incubating/entityhub/site/linkeddata/src/main/java/org/apache/stanbol/entityhub/site/linkeddata/impl/CoolUriDereferencer.java Wed Mar 21 10:36:41 2012
@@ -75,7 +75,7 @@ public class CoolUriDereferencer extends
long queryEnd = System.currentTimeMillis();
log.info(" > DereferenceTime: "+(queryEnd-start));
if(in != null){
- MGraph rdfData = new IndexedMGraph(parser.parse(in, format));
+ MGraph rdfData = new IndexedMGraph(parser.parse(in, format,new UriRef(getBaseUri())));
long parseEnd = System.currentTimeMillis();
log.info(" > ParseTime: "+(parseEnd-queryEnd));
return valueFactory.createRdfRepresentation(new UriRef(uri), rdfData);
Modified: incubator/stanbol/branches/0.9.0-incubating/entityhub/site/linkeddata/src/main/java/org/apache/stanbol/entityhub/site/linkeddata/impl/LarqSearcher.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/branches/0.9.0-incubating/entityhub/site/linkeddata/src/main/java/org/apache/stanbol/entityhub/site/linkeddata/impl/LarqSearcher.java?rev=1303354&r1=1303353&r2=1303354&view=diff
==============================================================================
--- incubator/stanbol/branches/0.9.0-incubating/entityhub/site/linkeddata/src/main/java/org/apache/stanbol/entityhub/site/linkeddata/impl/LarqSearcher.java (original)
+++ incubator/stanbol/branches/0.9.0-incubating/entityhub/site/linkeddata/src/main/java/org/apache/stanbol/entityhub/site/linkeddata/impl/LarqSearcher.java Wed Mar 21 10:36:41 2012
@@ -16,13 +16,16 @@
*/
package org.apache.stanbol.entityhub.site.linkeddata.impl;
+import static org.apache.stanbol.entityhub.site.linkeddata.impl.SparqlEndpointUtils.sendSparqlRequest;
+import static org.apache.stanbol.entityhub.site.linkeddata.impl.SparqlSearcher.extractEntitiesFromJsonResult;
+
import java.io.IOException;
import java.io.InputStream;
import java.util.List;
import org.apache.clerezza.rdf.core.MGraph;
import org.apache.clerezza.rdf.core.TripleCollection;
-import org.apache.clerezza.rdf.core.impl.SimpleMGraph;
+import org.apache.clerezza.rdf.core.UriRef;
import org.apache.clerezza.rdf.core.serializedform.Parser;
import org.apache.felix.scr.annotations.Component;
import org.apache.felix.scr.annotations.ConfigurationPolicy;
@@ -69,7 +72,8 @@ public class LarqSearcher extends Abstra
log.info(" > QueryTime: "+(queryEnd-initEnd));
if(in != null){
MGraph graph;
- TripleCollection rdfData = parser.parse(in, SparqlSearcher.DEFAULT_RDF_CONTENT_TYPE);
+ TripleCollection rdfData = parser.parse(in, SparqlSearcher.DEFAULT_RDF_CONTENT_TYPE,
+ new UriRef(getBaseUri()));
if(rdfData instanceof MGraph){
graph = (MGraph) rdfData;
} else {
@@ -88,9 +92,9 @@ public class LarqSearcher extends Abstra
final SparqlFieldQuery query = SparqlFieldQueryFactory.getSparqlFieldQuery(parsedQuery);
query.setEndpointType(EndpointTypeEnum.LARQ);
String sparqlQuery = query.toSparqlSelect(false);
- InputStream in = SparqlEndpointUtils.sendSparqlRequest(getQueryUri(), sparqlQuery, SparqlSearcher.DEFAULT_SPARQL_RESULT_CONTENT_TYPE);
+ InputStream in = sendSparqlRequest(getQueryUri(), sparqlQuery, SparqlSearcher.DEFAULT_SPARQL_RESULT_CONTENT_TYPE);
//Move to util class!
- final List<String> entities = SparqlSearcher.extractEntitiesFromJsonResult(in,query.getRootVariableName());
+ final List<String> entities = extractEntitiesFromJsonResult(in,query.getRootVariableName());
return new QueryResultListImpl<String>(query, entities.iterator(),String.class);
}
Modified: incubator/stanbol/branches/0.9.0-incubating/entityhub/site/linkeddata/src/main/java/org/apache/stanbol/entityhub/site/linkeddata/impl/SparqlDereferencer.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/branches/0.9.0-incubating/entityhub/site/linkeddata/src/main/java/org/apache/stanbol/entityhub/site/linkeddata/impl/SparqlDereferencer.java?rev=1303354&r1=1303353&r2=1303354&view=diff
==============================================================================
--- incubator/stanbol/branches/0.9.0-incubating/entityhub/site/linkeddata/src/main/java/org/apache/stanbol/entityhub/site/linkeddata/impl/SparqlDereferencer.java (original)
+++ incubator/stanbol/branches/0.9.0-incubating/entityhub/site/linkeddata/src/main/java/org/apache/stanbol/entityhub/site/linkeddata/impl/SparqlDereferencer.java Wed Mar 21 10:36:41 2012
@@ -89,7 +89,7 @@ public class SparqlDereferencer extends
long queryEnd = System.currentTimeMillis();
log.info(" > DereferenceTime: "+(queryEnd-start));
if(in != null){
- MGraph rdfData = new IndexedMGraph(parser.parse(in, format));
+ MGraph rdfData = new IndexedMGraph(parser.parse(in, format,new UriRef(getBaseUri())));
long parseEnd = System.currentTimeMillis();
log.info(" > ParseTime: "+(parseEnd-queryEnd));
return valueFactory.createRdfRepresentation(new UriRef(uri), rdfData);
Modified: incubator/stanbol/branches/0.9.0-incubating/entityhub/site/linkeddata/src/main/java/org/apache/stanbol/entityhub/site/linkeddata/impl/SparqlSearcher.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/branches/0.9.0-incubating/entityhub/site/linkeddata/src/main/java/org/apache/stanbol/entityhub/site/linkeddata/impl/SparqlSearcher.java?rev=1303354&r1=1303353&r2=1303354&view=diff
==============================================================================
--- incubator/stanbol/branches/0.9.0-incubating/entityhub/site/linkeddata/src/main/java/org/apache/stanbol/entityhub/site/linkeddata/impl/SparqlSearcher.java (original)
+++ incubator/stanbol/branches/0.9.0-incubating/entityhub/site/linkeddata/src/main/java/org/apache/stanbol/entityhub/site/linkeddata/impl/SparqlSearcher.java Wed Mar 21 10:36:41 2012
@@ -24,6 +24,7 @@ import java.util.List;
import org.apache.clerezza.rdf.core.MGraph;
import org.apache.clerezza.rdf.core.TripleCollection;
+import org.apache.clerezza.rdf.core.UriRef;
import org.apache.clerezza.rdf.core.impl.SimpleMGraph;
import org.apache.clerezza.rdf.core.serializedform.Parser;
import org.apache.clerezza.rdf.core.serializedform.SupportedFormat;
@@ -37,6 +38,7 @@ import org.apache.stanbol.entityhub.core
import org.apache.stanbol.entityhub.query.clerezza.RdfQueryResultList;
import org.apache.stanbol.entityhub.query.clerezza.SparqlFieldQuery;
import org.apache.stanbol.entityhub.query.clerezza.SparqlFieldQueryFactory;
+import org.apache.stanbol.entityhub.servicesapi.defaults.NamespaceEnum;
import org.apache.stanbol.entityhub.servicesapi.model.Representation;
import org.apache.stanbol.entityhub.servicesapi.query.FieldQuery;
import org.apache.stanbol.entityhub.servicesapi.query.QueryResultList;
@@ -62,7 +64,7 @@ public class SparqlSearcher extends Abst
@Reference
private Parser parser;
- protected static final String DEFAULT_RDF_CONTENT_TYPE = SupportedFormat.N3;
+ protected static final String DEFAULT_RDF_CONTENT_TYPE = SupportedFormat.RDF_XML;
protected static final String DEFAULT_SPARQL_RESULT_CONTENT_TYPE = SparqlEndpointUtils.SPARQL_RESULT_JSON;
@Override
public final QueryResultList<String> findEntities(FieldQuery parsedQuery) throws IOException {
@@ -129,7 +131,8 @@ public class SparqlSearcher extends Abst
log.info(" > QueryTime: "+(queryEnd-initEnd));
if(in != null){
MGraph graph;
- TripleCollection rdfData = parser.parse(in, DEFAULT_RDF_CONTENT_TYPE);
+ TripleCollection rdfData = parser.parse(in, DEFAULT_RDF_CONTENT_TYPE,
+ new UriRef(getBaseUri()));
if(rdfData instanceof MGraph){
graph = (MGraph) rdfData;
} else {
@@ -143,6 +146,4 @@ public class SparqlSearcher extends Abst
}
}
-
-
}
Modified: incubator/stanbol/branches/0.9.0-incubating/entityhub/site/linkeddata/src/main/java/org/apache/stanbol/entityhub/site/linkeddata/impl/VirtuosoSearcher.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/branches/0.9.0-incubating/entityhub/site/linkeddata/src/main/java/org/apache/stanbol/entityhub/site/linkeddata/impl/VirtuosoSearcher.java?rev=1303354&r1=1303353&r2=1303354&view=diff
==============================================================================
--- incubator/stanbol/branches/0.9.0-incubating/entityhub/site/linkeddata/src/main/java/org/apache/stanbol/entityhub/site/linkeddata/impl/VirtuosoSearcher.java (original)
+++ incubator/stanbol/branches/0.9.0-incubating/entityhub/site/linkeddata/src/main/java/org/apache/stanbol/entityhub/site/linkeddata/impl/VirtuosoSearcher.java Wed Mar 21 10:36:41 2012
@@ -16,12 +16,16 @@
*/
package org.apache.stanbol.entityhub.site.linkeddata.impl;
+import static org.apache.stanbol.entityhub.site.linkeddata.impl.SparqlEndpointUtils.sendSparqlRequest;
+import static org.apache.stanbol.entityhub.site.linkeddata.impl.SparqlSearcher.extractEntitiesFromJsonResult;
+
import java.io.IOException;
import java.io.InputStream;
import java.util.List;
import org.apache.clerezza.rdf.core.MGraph;
import org.apache.clerezza.rdf.core.TripleCollection;
+import org.apache.clerezza.rdf.core.UriRef;
import org.apache.clerezza.rdf.core.impl.SimpleMGraph;
import org.apache.clerezza.rdf.core.serializedform.Parser;
import org.apache.felix.scr.annotations.Component;
@@ -69,7 +73,8 @@ public class VirtuosoSearcher extends Ab
log.info(" > QueryTime: "+(queryEnd-initEnd));
if(in != null){
MGraph graph;
- TripleCollection rdfData = parser.parse(in, SparqlSearcher.DEFAULT_RDF_CONTENT_TYPE);
+ TripleCollection rdfData = parser.parse(in, SparqlSearcher.DEFAULT_RDF_CONTENT_TYPE,
+ new UriRef(getBaseUri()));
if(rdfData instanceof MGraph){
graph = (MGraph) rdfData;
} else {
@@ -88,9 +93,9 @@ public class VirtuosoSearcher extends Ab
final SparqlFieldQuery query = SparqlFieldQueryFactory.getSparqlFieldQuery(parsedQuery);
query.setEndpointType(EndpointTypeEnum.Virtuoso);
String sparqlQuery = query.toSparqlSelect(false);
- InputStream in = SparqlEndpointUtils.sendSparqlRequest(getQueryUri(), sparqlQuery, SparqlSearcher.DEFAULT_SPARQL_RESULT_CONTENT_TYPE);
+ InputStream in = sendSparqlRequest(getQueryUri(), sparqlQuery, SparqlSearcher.DEFAULT_SPARQL_RESULT_CONTENT_TYPE);
//Move to util class!
- final List<String> entities = SparqlSearcher.extractEntitiesFromJsonResult(in,query.getRootVariableName());
+ final List<String> entities = extractEntitiesFromJsonResult(in,query.getRootVariableName());
return new QueryResultListImpl<String>(query, entities.iterator(),String.class);
}