2012-03-12 9 views
0

次のリンクを使用して、ColdFusionのRDF/XML形式で機能強化の提案を取得しようとしています。セマンティックWeb ColdFusion cfhttpリクエストオプション

http://dev.iks-project.eu:8081/engines

私の問題は、リストが繰り返し言葉が含まれていることです。ユニークな機能拡張を得るためのオプションを設定することはできますか?

+0

あなたがStanbolエンハンサーに貼り付けているもののサンプルと返されているものを与えることは可能でしょうか?あなたはRDF/XMLデータを取得しようとしていますか?CFで同じフォーマット**でデータ**を返しますか? –

答えて

1

:Webサービスが有効な区切りのリストを返すと仮定すると、ここでどのように例を示します。それでは、単にのケースです:

<cfset oldModel = createObject("java", "com.hp.hpl.jena.rdf.model.ModelFactory").createDefaultModel().read("http://dev.iks-project.eu:8081/engines")> 
<cfset newModel = createObject("java", "com.hp.hpl.jena.rdf.model.ModelFactory").createDefaultModel()> 

<cfset sparqlQuery = "SELECT DISTINCT ?s ?p ?o WHERE {?s ?p ?o}"> 
<cfset triples = createObject("java", "com.hp.hpl.jena.query.QueryExecutionFactory").create(sparqlQuery, rdfModel).execSelect()> 

<cfloop condition="triples.hasNext()"> 
    <cfset nextTriple = triples.nextSolution()> 
    <cfset newModel.add(newModel.createStatement(nextTriple.getResource("s"), newModel.createProperty(nextTriple.getResource("p").getURI()), nextTriple.get("o")))> 
</cfloop> 

<cfset outputStream = createObject("java", "java.io.ByteArrayOutputStream")> 
<cfset newRdfXmlContent = newModel.write(outputStream, "RDF/XML-ABBREV").toString()> 
0

これをColdFusionで行う最も良い方法は、リストをループしてColdFusion構造体を作成することです。あなたが使用してJenaに精通しているとJavaをインラインで使用する方法を知っておく必要があり

<cfset enhancements = "item1,item2,item3,item4,item1,item2,item3,item4"> 
<cfset objEnhancement = structNew()><!---- CREATE STRUCT---> 
<cfloop index="item" list="#enhancements#"><!---- LOOP THROUGH RESPONSE TEXT---> 
    <cfset objEnhancement[item] = ""><!---- CREATE STRUCT KEYS, THESE WILL AUTO DE-DUPE ---> 
</cfloop> 
<cfset uniqueEnhancements = StructKeyList(objEnhancement)> <!---- DUMP THE STRUCT KEYS TO A NEW LIST----> 
+0

httpReq.textはブール値になります。 httpReq.fileContentを意味しますか? –

+0

ええええええええええ、これはRDF/XMLでは動作しません。 RDF/XMLをXMLとして解析することはできません。また、RDFパーサーが必要です –

+0

DavidとWilliamに感謝します。私は自分の回答を編集して、リストの重複排除の基本を示しました。彼はすでにhttpリクエストを行い、XMLレスポンスからリストを取得する方法を知っているようです。 –

関連する問題