Варианты запроса семантической паутины ColdFusion cfhttp - PullRequest
0 голосов
/ 12 марта 2012

Я пытаюсь использовать следующую ссылку для получения предложений по улучшению в формате RDF / XML в ColdFusion.

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

Моя проблема в том, что список содержит слова несколько раз.Могу ли я установить некоторые опции для получения уникальных улучшений?

Ответы [ 2 ]

1 голос
/ 12 марта 2012

Вам нужно использовать и знать Jena и знать, как использовать Java inline. Тогда это просто случай:

<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 голосов
/ 12 марта 2012

По сути, лучший способ сделать это в ColdFusion - это пройтись по списку и создать структуру ColdFusion. Предполагая, что ваш веб-сервис возвращает действительный список с разделителями, вот пример как:

<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---->
...