2

我有一行文本要转换为 N3 格式,因此我最终可以将它们更改为 RDF。文本文件的每一行都有这样的条目:

09827177 18 n 03贵族0蓝色_blood 0 013 @ 09646208 N 0000 #M 08404938 N 0000 + 01594891 A 0306 A + 01594891 A 0102〜09860027 N 004440019898989898989898989898989898922年〜198989898989898989899224000000000000000号〜19898989898989898992922.98989898000000000000号〜198989898989899224.98989989899899922号n 0000 ~ 10493649 n 0000 ~ 10525325 n 0000 ~ 10526235 n 0000 | 贵族的一员

我试图从上面的语句中制作三元组,所以它们看起来如下表所示。

  Subject        Predicate           Object
(synset_offset)  

  09807754       lex_filenum           18
  09807754       ss_type               n
  09807754       lexical_entry     aristocrat
  09807754       lexical_entry     blue_blood
  09807754       lexical_entry     patrician
  09807754       has_pointer       09623038
  09623038       ss_type               n
  09623038       source_target        0000
  09807754       description    a member of aristocracy

我已经能够使用以下方法从文本的每一行中读取大部分变量:

f = open("wordnetSample.txt", "r")
for line in f:
    L = line.split()
    L2 = line.split('|')
    synset_offset = L[0]
    lex_filenum = L[1]
    ss_type = L[2]
    word = (L[4:4 + 2 * int(L[3]):2])
    gloss = (L2[1].split('\n')[0])

我遇到的问题是我不知道要使用什么命名空间或类似的东西。我对这种格式格式和一般的 python 都不熟悉。我一直在研究,觉得应该是这样的:

'''<http://example.org/#'''+synset_offset+'''> <http://xmlns.com/foaf/0.1/lex_filenum> '''+lex_filenum+''' .

我还被告知海龟符号可能是一个更好的选择,但我就是无法理解它。

4

1 回答 1

1

在 RDF 中,资源和属性由 IRI 标识。如何选择资源和属性 IRI 完全取决于您。如果您拥有自己的域名,您可能会选择使用基于此的 IRI。如果您从其他地方提取数据,并且基于此使用名称是有意义的,您可能会选择基于此使用 IRI。如果某些资源或属性已经被 IRI 标识在某个地方,那么尝试重用它们总是好的,但找到它们并不总是那么容易。

在您的情况下,数据来自 WordNet,您可能应该对 W3C 工作草案RDF/OWL Representation of WordNet非常感兴趣。我不知道其中的方法和名称空间是否已被广泛采用,但这种方法肯定是您可以从中学到的东西。例如

Synset、WordSense 和 Word 的每个实例都有自己的 URI。URI 有一个模式,因此 (a) 很容易从 URI 中确定实例所属的类;(b) URI 提供了一些关于它所代表的实体含义的信息。例如,以下 URI

http://www.w3.org/2006/03/wn/wn20/instances/synset-bank-noun-2

是一个名词同义词。这个 NounSynset 包含一个 WordSense,它是“bank”这个词的第一个意义。Synset 实例的模式是:wn20instances: + synset- + %lexform%- + %type%- + %sensenr%。%lexform% 是 Synset 的第一个 WordSense 的词汇形式(Princeton 源中的第一个 WordSense 由它的“wordnumber”表示,请参阅 WordNet Prolog 分布概述)。%type% 是名词、动词、形容词、形容词卫星和副词之一。%sensenr% 是包含在同义词集中的 WordSense 的编号。此模式生成唯一的 URI,因为 WordSense 唯一标识同义词集(一个 WordSense 恰好属于一个同义词集)。

该模式还为 WordNet 模式定义了许多属性。您应该尽可能重用这些 IRI。

于 2013-06-11T17:23:31.300 回答