Search code examples
coldfusionsemantic-web

Semantic web ColdFusion cfhttp request options


I am trying to use the following link to get enhancement suggestions in RDF/XML format in ColdFusion.

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

My problem is that the list contains the words repeatedly. Can I set some option to get the unique enhancements?


Solution

  • You need to use and be familiar with Jena and know how to use Java inline. Then it is simply a case of:

    <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()>