如何调整此javascript文件以读取localhost上的数据。解析RDF任务

时间:2015-11-18 21:58:26

标签: javascript parsing rdf

我正在使用此Javascript RDF parser

在文档中说它相应地使用它:

getRDFURL(url,func,followSeeAlso)
从网址下载并解析RDF。 url是接收RDF的url,使用完整的url,而不是相对的url,否则基本url将是错误的。 func是一个在处理rdf时调用的javascript函数。

the file for the parser中,我发现了这个空变量:

    var baseURL='';

我把它填满了:

    var baseURL='http://localhost:8888/demo/StackOverflow-Europe.rdf';

在我的index.html文件中,我尝试以这种方式调用此解析脚本:

<!DOCTYPE html>
<meta charset='utf-8'>
<html>
  <head>
    <script src="http://d3js.org/d3.v3.min.js" charset="utf-8"></script>
    <link rel='stylesheet' href='style.css'>
  </head>
  <body>
    <!--
    <script type='text/javascript' src='script.js'></script>
    -->

    <script type='text/javascript' src='parser.js'></script>

  </body>
</html>

但最后......什么也没发生。

我做错了什么?

我猜这不是调用javascript文件的正确方法吗?是吗?或许还有另一个原因。

我对Javascript不熟悉。

1 个答案:

答案 0 :(得分:1)

正如Jeen Broekstra在评论中所说,您在html文件中使用的行:

<script type='text/javascript' src='parser.js'></script>

只能用于加载rdf-parser库。

您可以直接在主服务器上加载

<script src="http://www.jibbering.com/rdf-parser/parser.js"></script>

并使用您自己的脚本。

您可以使用官方演示作为起点:

<script type="text/javascript">
 function demo() {
     foafNS = "http://xmlns.com/foaf/0.1/";
     myRDF  = new RDF();
     myRDF.getRDFURL('/foaf2.rdf', callback);
     function callback() {
         alert("http://jibbering.com/foaf2.rdf contains the following triples\n\n" + myRDF.toNTriples())
         nm   = myRDF.Match(null, null, foafNS + "name", "Jim Ley")
         mbox = myRDF.getSingleObject(null, nm[0].subject, foafNS + "mbox", null)
         alert("The e-mail address of Jim Ley is " + mbox)
     }
  }
  document.write('<p>See demo using <a href="/foaf2.rdf">/foaf2.rdf</a> &nbsp; &nbsp; <button onclick="demo()">See Demo</button></p>')
</script>
  • new RDF()允许您创建RDF实用程序对象
  • getRDFURL('/foaf2.rdf', callback)加载foaf2.rdf文件并将函数callback设置为回调,即在完全加载rdf文件时调用此函数。
  • myRDF.toNTriples()返回所有RDF三元组。
  • nm = myRDF.Match(null, null, foafNS + "name","Jim Ley")返回与主题/谓词/对象模式匹配的三元组数组。
  • mbox = myRDF.getSingleObject(null, nm[0].subject, foafNS + "mbox", null)返回与主题/谓词/对象模式匹配的三元组集合中的对象值,如果未找到则返回空字符串。