我正在使用Scrapy抓取网站并创建一组链接。我希望能够使用此数据集创建RDF文档;
我的三元组将采用以下形式,
<ParentURL> - <HTML Text associated with Link> - <LinkURL>
有关如何进行的任何指示?感谢帮助。
答案 0 :(得分:1)
<ParentURL> - <HTML Text associated with Link> - <LinkURL>
这将是一个困难的表示,因为RDF三元组中的谓词只能是URI;它们不能是文字或空白节点。在我看来,你有两个简单的选择。
首先,您可以将三元组用作不透明的数据结构,并采用主题=源URL,谓词=目标URL和对象=链接文本的约定。那不完全&#34; RDF-ish&#34;,但我认为它会对你有用。这样做的好处是,您可以使用非常简单的RDF序列化,如N-Triples,并轻松生成 very 。 N-Triples语法是每行一个三元组,URI包含在尖括号中,行以#39;终止。&#39;。因此,如果您使用此表示形式,则只需生成纯文本,如:
<http://example.org/page1> <http://example.org/page2> "See page 2 for details." .
<http://example.org/page2> <http://example.org/page3> "See page 3 for even more details." .
这是一份完全合法的N-Triples文件。它并没有比这更容易。
第二种选择是使用更多结构。你想写一些像(在Turtle中)的东西:
@prefix : <http://example.org/your-prefix/>
<http://example.org/page1> :linksTo [ :hasTargetURL <http://example.org/page2> ; :hasLinkText "see page 2" ] .
<http://example.org/page2> :linksTo [ :hasTargetURL <http://example.org/page3> ; :hasLinkText "see page 3" ] .
每个链接使用三个三元组而不是一个。也就是说,用纯文本生成它仍然很容易。它可能只是你想要最小化空间(使用第一个选项)还是使图形在语义上更合理(第二个选项)。一些三重存储将优化对主题和对象的查询而不是谓词,这也有利于第二种选择。
答案 1 :(得分:-1)
由于您的数据非常简单,我会编写一个脚本来将Scrapy生成的json或csv输出转换为RDF。
或者你可以写一个项目导出器: