Ответ 1
Заманчиво дать вам более теоретический ответ на мета в отношении фольклонов, многозначности и тому подобного! Поскольку я отвечаю на стороне StackOverflow, я попытаюсь дать немного более технический ответ. Выполнение запросов с помощью StackOverflow Data Explorer позволит мне попытаться ответить на ваши вопросы (я не связан с StackOverflow, поэтому я не могу знать конечно).
В StackOverflow отношение тэга master/synonym тщательно stewarded и культивируется. Во время записи из проводника данных:
- Тэги имеют 29488 строк
- TagSynonyms имеет 1916 строк
Интересно сравнить это с другими folksonomies, в одной из статей "" Теги 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 тегов, которые были как синонимами, так и master
"Как система справляется с круговыми ссылками?"
Здесь моя логика /SQL может подвести меня. Вопрос в том, можно ли найти любые циркулярные ссылки? Для этого я думаю, что мне нужно разобраться:
- Установить a - набор тегов, которые являются как основным, так и синонимом
- Установить b - синонимы синонимов тегов в наборе a
- Установить c - пересечение b
Все, что в наборе c будет круговой ссылкой.
Мы уже рассчитали множество выше (оно имеет 465 строк).
Установите 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 строк
Мы можем остановиться здесь, нет смысла разрабатывать набор c, поскольку мы уже знаем, что set b пуст.
Если я не ошибаюсь в своей логике или SQL (что очень возможно), похоже, что в StackOverflow нет круговых ссылок. Я бы предположил, что существуют технические процессы для предотвращения циклических ссылок (иначе StackOverflow может пострадать от StackOverflow!).