12

在 meta 上问了这个问题,但我现在意识到它可能更适合主站点,因为它是一个与任何基于标记的系统相关的一般问题(我很高兴根据人们的想法关闭/删除一个问题应该去)


我有一个类似的标记数据系统,我遇到了与 SOF 相同的问题,我有很多标签实际上是相同的东西。我正在尝试创建一个类似于 SOF 的标签同义词页面来支持组织这些信息。

关于标签同义词的关系和“数据模型”的几个问题:

我假设一个主标签可以有多个同义词标签,但一个同义词标签只能是一个主标签的同义词。那是对的吗?

另外,主标签也可以是同义词标签吗?例如,假设您有一个名为 javascript 的标签,并且您有:

大师:js
同义词:java-script、js-web

你也可以拥有:

大师:javascript
同义词:js

因此,在上面的示例中,您将继续解决最终将js-web解析为javascript的问题,因为 master 标签:js本身就是同义词标签。

另外,这让我觉得你也可能遇到一个循环引用,你有一个

大师:js
同义词:java-script

大师:javascript
同义词:js

系统如何处理循环引用?

4

1 回答 1

16

很想给你一个关于民俗学、多义词等元的更理论的答案!由于我在 StackOverflow 方面进行回答,我将尝试给出一个稍微技术性的答案。使用StackOverflow 数据资源管理器运行查询将允许我尝试回答您的问题(我不隶属于 StackOverflow,所以我不能确定)。

在 StackOverflow 上,主/同义词标签关系经过精心管理和培养。在 Data Explorer 撰写本文时:

  • 标签有 29488 行
  • TagSynonyms 有 1916 行

将其与其他民间分类法进行对比很有趣,一篇文章“ Technorati 标签:好主意,糟糕的实现”指出。

“Technorati 宣称他们现在正在跟踪 466,951 个不同的标签,当你考虑到一本典型的字典有大约 75,000 个条目时,这真是令人印象深刻”

快速警告一下,我通常编写 Oracle SQL,并且我假设 Data Explorer 正在使用 SQLServer,因此我的查询可能有点业余。首先我对数据的假设:

  • 标签表中列出的任何内容都是“主标签”。
  • 在 TagSynonyms 表中,TargetTagName 是“主标签”,SourceTagName 是“同义词标签”。

现在到您的具体查询:

“我假设一个主标签可以有多个同义词标签,但一个同义词标签只能是一个主标签的同义词。对吗?”

select * from TagSynonyms where TargetTagName = 'javascript'

结果:是的。一个主标签可以有多个同义词标签。

select SourceTagName, count(*) from TagSynonyms group by SourceTagName having count(*) > 1

结果:是的。同义词标签只能是一个主标签的同义词。

“另外,主标签也可以是同义词标签吗?”

select TagName from Tags
intersect
select SourceTagName from TagSynonyms

结果:是的。主标签也可以是同义词标签。当我运行这个查询时,有 465 个标签既是同义词又是主标签

“系统如何处理循环引用?”

这是我的逻辑/SQL 可能让我失望的地方。问题是我能找到任何循环引用吗?为此,我认为我需要解决:

  • 设置一组既是主标签又是同义词的标签
  • Set b - set a 中标签的同义词的同义词
  • 设置 c - 一个交点 b

集合 c 中的任何内容都是循环引用。

我们已经计算了上面的集合 a(它有 465 行)。

Set b - set a 的同义词的同义词

select SourceTagName from TagSynonyms where TargetTagName in (
select SourceTagName from TagSynonyms where TargetTagName in (
select TagName from Tags
intersect
select SourceTagName from TagSynonyms
))

结果: 0 行

我们可以在这里停下来,因为我们已经知道集合 b 是空的,所以计算集合 c 是没有意义的。

除非我的逻辑或 SQL 错误(这很有可能),否则 StackOverflow 中似乎没有循环引用。我想有一些技术流程可以防止循环引用的发生(否则 StackOverflow 可能会遭受 StackOverflow 的影响!)。

于 2011-09-17T20:24:38.680 回答