如何调整此 javascript 文件以读取我在本地主机上的数据。解析 RDF 任务

How to tweak this javascript file to read in my data on localhost. parsing RDF task

我正在使用这个 Javascript RDF parser

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

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

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

    var baseURL='';

我是这样填的:

    var baseURL='http://localhost:8888/demo/Whosebug-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不是很熟悉。

正如 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() returns 所有 RDF 三元组。
  • nm = myRDF.Match(null, null, foafNS + "name","Jim Ley") returns 匹配 subject/predicate/object 模式的三元组数组。
  • mbox = myRDF.getSingleObject(null, nm[0].subject, foafNS + "mbox", null) returns 三元组集合中与 subject/predicate/object 模式匹配的对象的值,如果未找到则为空字符串。