Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/192.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Android中从一个函数中的多个服务器获取结果_Android_Google App Engine_Sparql_Ontology - Fatal编程技术网

如何在Android中从一个函数中的多个服务器获取结果

如何在Android中从一个函数中的多个服务器获取结果,android,google-app-engine,sparql,ontology,Android,Google App Engine,Sparql,Ontology,我正在安卓上安装用于链接数据提取和上下文的混合排序算法。你可以在谷歌搜索上面的关键词。 现在我正在安装两个uri1和uri2之间的语义相似性 输入:两个dbpediauri 输出:表示其相似性的值 private float similarity(String uri1, String uri2) { float wikipedia = wikiS(uri1, uri2); float abtract = abtractS(uri1, uri2); float go

我正在安卓上安装用于链接数据提取和上下文的混合排序算法。你可以在谷歌搜索上面的关键词。 现在我正在安装两个uri1和uri2之间的语义相似性

输入:两个dbpediauri

输出:表示其相似性的值

private float similarity(String uri1, String uri2) {
     float wikipedia = wikiS(uri1, uri2);
     float abtract = abtractS(uri1, uri2);
     float google = engineS(uri1, uri2, google);
     float yahoo = engineS(uri1, uri2, yahoo);
     float bing = engineS(uri1, uri2, bing);
     float dilicious = engineS(uri1, uri2, dilicicous);
     return wikipedia + abtract + google + yahoo + bing + dilicious;
}
对于每个子函数,我必须使用SPARQL dbpedia、google、yahoo、bing和Dilicous使用提供的API查询数据。获得的结果将被计算到解析器并返回相应的浮点值

下面的abtractS(uri1、uri2)示例:

私有浮点摘要(字符串uri1、字符串uri2、最终浮点Wiki){
字符串url=createUrlAbstractS(uri1,uri2);
StringRequest=newStringRequest(request.Method.GET,url,new Response.Listener()){
@凌驾
公共void onResponse(字符串响应){
浮动轨迹=0.0f;
试一试{
JSONObject JSONObject=新JSONObject(响应);
JSONArray data=jsonObject.getJSONObject(“结果”).getJSONArray(“绑定”);
if(data.length()==0){
showLogAndToast(“无结果”);
}否则{
JSONObject元素=data.getJSONObject(0);
String label1=element.getJSONObject(“label1”).getString(“value”);
字符串abtract1=element.getJSONObject(“abtract1”).getString(“value”);
String label2=element.getJSONObject(“label2”).getString(“value”);
字符串abtract2=element.getJSONObject(“abtract2”).getString(“value”);
abtractS=calWordContained(label1,abtract2)+calWordContained(label2,abtract1)+wiki;
//TODO:结果在这里。下一步如何?
}
}捕获(JSONException e){
e、 printStackTrace();
}
}
},new Response.ErrorListener(){
@凌驾
公共无效onErrorResponse(截击错误){
Log.d(标记,error.getMessage());
}
});
AppController.getInstance().addToRequestQueue(请求);
返回0.0f;//此处:无结果
}
私有浮点calWordContained(字符串标签、字符串跟踪){
如果(label.length()==0 | | abtract.length()==0){
返回0.0f;
}
List words=Arrays.asList(label.split(“”));
整数计数=0;
float length=words.size();
for(int i=0;i
但是如何在上执行此操作,我无法在相似性函数(uri1,uri2)中获得我想要的结果。因此,它将影响不同功能的结果

所以我要问的是:如何以最简单的方式获得Wiki、abtractS、engine(google)、engine(bing)、engine(yahoo)、engine(dilicious)功能的所有结果。我目前在安卓系统上做,数据加载时间非常重要


多谢各位

你说的“我怎样才能得到Wiki函数的所有结果,…”是什么意思?你必须向每个搜索API发送一个查询,还有什么可能?顺便说一句,对我来说,不清楚Google、Yahoo等搜索两个DBpedia URI的意义有多大……这听起来很奇怪,更适合使用两个DBpedia资源的标签。我想获得Wiki、abtractS、engine(谷歌)的数据。。相似性函数将在以后处理。但是我必须通过网络发送查询来检索数据,所以Wiki、abtractS、engine(谷歌)的结果。。不能采用直接样式:float wikis=wikis(uri1,uri2),我必须解析它的onResponse(String response)中的数据才能得到结果。因此,我无法在函数similiraty(uri1,uri2)中获得结果。据我所知,您需要所有截取请求的结果来查找相似性。您面临的问题是,并没有返回截击响应的机制(本例中的摘要)。要解决此问题,可以使用。看看你能不能弄明白。如果没有,我会帮助你。试一下。对我来说,整个问题还不清楚,很抱歉这么说。最好解释一下到底什么不起作用。1.)修复打字错误,例如
abtract
2。
private float abstractS(String uri1, String uri2, final float wikiS){
    String url = createUrlAbstractS(uri1, uri2);
    StringRequest request = new StringRequest(Request.Method.GET, url, new Response.Listener<String>() {
        @Override
        public void onResponse(String response) {
            float abtractS = 0.0f;
            try {
                JSONObject jsonObject = new JSONObject(response);
                JSONArray data = jsonObject.getJSONObject("results").getJSONArray("bindings");
                if(data.length() == 0){
                    showLogAndToast("No result");
                }else{
                    JSONObject element = data.getJSONObject(0);
                    String label1 = element.getJSONObject("label1").getString("value");
                    String abtract1 = element.getJSONObject("abtract1").getString("value");
                    String label2 = element.getJSONObject("label2").getString("value");
                    String abtract2 = element.getJSONObject("abtract2").getString("value");
                    abtractS = calWordContained(label1, abtract2) + calWordContained(label2, abtract1) + wikiS;
                    //TODO: RESULT ABTRACTS HERE. How next?
                }
            } catch (JSONException e) {
                e.printStackTrace();
            }
        }
    }, new Response.ErrorListener() {
        @Override
        public void onErrorResponse(VolleyError error) {
            Log.d(TAG, error.getMessage());
        }
    });
    AppController.getInstance().addToRequestQueue(request);
    return 0.0f;//HERE: no results
}

private float calWordContained(String label, String abtract){
    if(label.length() == 0 || abtract.length() == 0){
        return 0.0f;
    }
    List<String> words = Arrays.asList(label.split(" "));
    int count = 0;
    float length = words.size();
    for(int i = 0; i < length; i++){
        if(abtract.toLowerCase().contains(words.get(i).toLowerCase())){
            count++;
        }
    }
    return (count/length);
}

public String createUrlAbstractS(String uri1, String uri2){
    private String BASE_URL_DBPEDIA = "http://dbpedia.org/sparql?default-graph-uri=&query=";
    String query = createQueryAbstractS(uri1, uri2);
    String url = "";
    try {
        url = Config.BASE_URL_DBPEDIA + URLEncoder.encode(query, "UTF-8") + Config.RESULT_JSON_TYPE;
    } catch (UnsupportedEncodingException e) {
        e.printStackTrace();
    }
    return url;
}

private String createQueryAbstractS(String uri1, String uri2){
    String query = Config.PREFIX_DBPEDIA + " \n" +
            "prefix dbpedia-owl: <http://dbpedia.org/ontology/>\n" +
            "\n" +
            "\n" +
            "select ?label1, ?label2, ?abtract1, ?abtract2 where\n" +
            "{\n" +
            "  {\n" +
            "     select *\n" +
            "     where{\n" +
            "          <" + uri1 + "> rdfs:label ?label1 ;\n" +
            "                         dbpedia-owl:abstract ?abtract1 .\n" +
            "          FILTER langMatches(lang(?abtract1),'en') . \n" +
            "          FILTER langMatches(lang(?label1),'en') .\n" +
            "     }\n" +
            "  }\n" +
            "\n" +
            "\n" +
            "  {\n" +
            "      select *\n" +
            "      where{\n" +
            "          <" + uri2 + "> rdfs:label ?label2 ;\n" +
            "                         dbpedia-owl:abstract ?abtract2 .\n" +
            "          FILTER langMatches(lang(?label2),'en') . \n" +
            "          FILTER langMatches(lang(?abtract2),'en') .\n" +
            "      }\n" +
            "  }\n" +
            "}";
    return query;
}