【问题标题】:How can I extract RDFa from HTML using PHP or Java?如何使用 PHP 或 Java 从 HTML 中提取 RDFa?
【发布时间】:2012-03-28 21:47:59
【问题描述】:

我是一个新手,几天以来一直在努力学习RDF,RDFa和与之相关的东西..

我的问题是,考虑遵循 HTML + RDFa 代码.. 是否可以单独提取 RDF 部分?如果可以,请您演示简单的代码 sn-p (PHP 或 Java)..

我听说可以使用 Jena,但找不到解释这一点的教程。因此,如果 Jena 有可能,任何人都可以发布一些代码 sn-p..

<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:foaf="http://xmlns.com/foaf/0.1/"
xmlns:dc="http://purl.org/dc/elements/1.1/"
version="XHTML+RDFa 1.0" xml:lang="en">
  <head>
    <title>John's Home Page</title>
    <base href="http://example.org/john-d/" />
    <meta property="dc:creator" content="Jonathan Doe" />
    <link rel="foaf:primaryTopic" href="http://example.org/john-d/#me" />
  </head>
  <body about="http://example.org/john-d/#me">
    <h1>John's Home Page</h1>
    <p>My name is <span property="foaf:nick">John D</span> and I like
      <a href="http://www.neubauten.org/" rel="foaf:interest"
        xml:lang="de">Einstürzende Neubauten</a>.
    </p>
    <p>
      My <span rel="foaf:interest" resource="urn:ISBN:0752820907">favorite
      book is the inspiring <span about="urn:ISBN:0752820907"><cite
      property="dc:title">Weaving the Web</cite> by
      <span property="dc:creator">Tim Berners-Lee</span></span>
     </span>
    </p>
  </body>
</html>

【问题讨论】:

    标签: java php html rdf rdfa


    【解决方案1】:

    是的,您可以从包含 RDFa 标记的页面中提取 RDF,一旦提取,您可以将其放入本地 RDF 三元存储中,如果您想单独使用该数据做一些事情,或者您可以将其插入到全局三元存储,并能够与现有 RDF 数据一起查询它。

    Here 是关于 Java RDFa 解析器的相关讨论。

    【讨论】:

      【解决方案2】:

      看看 Damian 的 java-rdfa。您可以将它与Apache Jena 一起使用,这是一段代码:

      Class.forName("net.rootdev.javardfa.RDFaReader");
      Model model = ...
      model.read(url, "XHTML"); // xml parsing
      model.read(other, "HTML"); // html parsing
      

      Java 中的另一个选项是Apache Any23

      【讨论】:

      • 谢谢 castagna.. 这正是我一直在寻找的.. 除了你所说的之外,还有更多的选择,它在 Michael 提供的讨论链接中..
      • 嘿,我尝试了以下代码 Class.forName("net.rootdev.javardfa.RDFaReader");模型模型 = ModelFactory.createDefaultModel(); model.read("file:///C:/sample.html", "GRDDL"); model.write(System.out, "RDF/XML");但它给出了错误:未处理的异常类型 ClassNotFoundException HelloRdfWorld.java 你能帮忙.. plz..
      • 你见过GRDDL是我的答案吗? ;-)
      【解决方案3】:

      在 PHP 中解析 RDFa:https://github.com/njh/easyrdf/(使用 0.8 / master 分支来拥有 RDFa 解析器)

      在 Java 中解析 RDFa:http://semarglproject.org/

      【讨论】:

        【解决方案4】:

        您无法将 RDF 与 HTML 分开,因为 RDF 提供有关 HTML 中事物的附加信息。

        这就像从一本书中取出脚注和参考书目然后把书扔掉:基本上毫无意义。

        【讨论】:

        • 嘿,感谢您的快速回复...但我的问题是,是否可以提取 RDFa 并将其用于其他处理。假设我有 10 个相关的 HTML +RDFa 页面,我想要从所有这些页面中提取 RDFa 的副本(不是分离/删除),将其组合起来并在服务器端使用它进行进一步处理(例如,说我想插入数据库或在 RDFa 上执行一些查询等,..)这可能吗?
        • 我不明白如何将 RDF 从页面中取出并放入数据库中并不会将 RDF 与其所描述的数据分开。显然原来的 HTML+RDFa 文档仍然完好无损,只是没有连接到数据库。
        • 好吧好吧..所以不可能得到一堆 HTML + RDFa 文档中存在的所有三元组的纯列表?那么耶拿是干什么用的呢?能否请您简要介绍一下...
        • 当你有 HTML+RDFa 部分元组用 HTML 表示。 Jena 主页没有提到能够处理这个问题,而是谈到了处理(纯)RDF。
        • 最初我检查了这个链接w3.org/TR/grddl-primer它说可以从XHTML获取RDF..然后我发现这个链接jena.sourceforge.net/grddl/index.html这是Jena框架的GRDDL实现..
        猜你喜欢
        • 1970-01-01
        • 2013-10-28
        • 2013-07-29
        • 2020-06-30
        • 2019-03-02
        • 2016-09-10
        • 2015-08-22
        • 2010-12-05
        • 2019-05-10
        相关资源
        最近更新 更多