Вычисление значений самоцитации в DBLP с использованием neo4j

В Ruby вы можете использовать опцию 'm' (многострочный):

/YOUR_REGEXP/m

См. Regexp документацию на ruby-doc.org для получения дополнительной информации.

1
задан cybersam 13 July 2018 в 19:26
поделиться

1 ответ

В предложении WITH используется author как единственная функция агрегации «группа группировки», так как это единственный член в этом разделе, не использующий функцию агрегации. Таким образом, все функции агрегации в этом разделе агрегируются только с одним термином.

Чтобы получить «счет самоцитации» для публикации (этим автором), вам нужно сделать что-то вроде следующего (для простоты этот запрос игнорирует все остальные подсчеты и коллекции). author и publ вместе образуют «ключ группировки» в этом запросе.

MATCH (author:Author{name:"Danielle S. Bassett"})-[:WROTE]->
  (publ:Publication)-[r:REFERENCES]->(p2:Publication)<-[:WROTE]-(a)
RETURN author, publ, COUNT(p2) as self_citation_count;

[Кроме того, в вашем исходном запросе есть и другие проблемы. Например, вы должны использовать COUNT(DISTINCT p1) as main_publ_count, чтобы множественные самопричисления к одному экземпляру p1 не раздували количество «основных» публикаций.]

2
ответ дан cybersam 17 August 2018 в 12:30
поделиться
  • 1
    Привет. Спасибо, да, это прекрасно работает! Теперь я хотел бы написать это значение для всех авторов в main_publ. Поэтому я просто делаю что-то вроде: match (a: Author) - [: WROTE] - & gt; (p1: публикация) - [r: ССЫЛКИ] - & gt; (p2: публикация) & lt; - [: WROTE] - (a ) с именем автора, p1 как main_publ, count (отдельный p2) как self_citation_count set main_publ.ssq = SIZE (self_citations) Все значения self_citation_counts верны, но неправильно записаны в параметр ?! Это не имеет для меня никакого смысла o.O – Tony Dorfmeister 18 July 2018 в 11:58
  • 2
    Кажется, что что-то пропало. self_citations не указан в предыдущем запросе. – cybersam 18 July 2018 в 15:50
Другие вопросы по тегам:

Похожие вопросы: