【问题标题】:Semantic web ColdFusion cfhttp request options语义网 ColdFusion cfhttp 请求选项
【发布时间】:2012-03-12 22:35:09
【问题描述】:

我正在尝试使用以下链接在 ColdFusion 中获取 RDF/XML 格式的增强建议。

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

我的问题是列表重复包含单词。我可以设置一些选项来获得独特的增强功能吗?

【问题讨论】:

  • 您能否提供一个示例,说明您在 Stanbol 增强器中粘贴的内容以及返回的内容?您是否尝试获取 RDF/XML 数据,然后在 CF 中以相同格式返回数据?

标签: coldfusion semantic-web


【解决方案1】:

您需要使用并熟悉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()>

【讨论】:

    【解决方案2】:

    本质上,在 ColdFusion 中执行此操作的最佳方法是遍历列表并创建一个 ColdFusion 结构。假设您的 Web 服务返回一个有效的分隔列表,下面是一个示例:

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

    【讨论】:

    • httpReq.text 将是一个布尔值。你是说 httpReq.fileContent 吗?
    • 是的 - 这不适用于 RDF/XML。您不能也不应该将 RDF/XML 解析为 XML 并且需要 RDF 解析器
    • 感谢大卫和威廉。我编辑了我的回复,以展示删除列表的基础知识。看起来他已经知道如何执行 http 请求并从 XML 响应中检索列表。
    猜你喜欢
    • 1970-01-01
    • 2017-02-01
    • 2014-11-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多