族谱小知识

栏目:资讯发布:2023-09-27浏览:4收藏

族谱小知识,第1张

                              引言

                            何谓族谱

族谱:又称家谱、宗谱、谱牒等。是一种以图表形式反映家族内部的世代、传承等关系,以及重要人物事迹的书,是一种特殊的具有平民特色的文献。

                          族谱的组成

族谱的编纂是在儒学指导下进行的,从浅层次上看反映了祖宗崇拜,从深层次上看,则是儒学思想的反映。族谱,一般由以下部分组成:谱名、谱序、凡例、姓氏源流、世系考、世系表、人物传记、祠堂、坟莹、家训族规、恩荣录、像赞、艺文、纂修人名、领谱字号等。

                          1谱名

阐明本族的姓氏和堂号、续修次数等问题。以民国版《江津县汉鼓山王氏族谱》为例,在封面上即写明本谱由发源于江津的王氏族人续修,重修时间为乙酉年(民国三十四年,即1945年)。其中,江津是地名,汉鼓山王氏则是堂号。

堂号,实质上是祠堂名号,是家族的标志和代表。汉鼓山王氏祠堂,是太原王氏迁居到江津的始祖——王千一之子在父亲的墓旁不远处所建。

                          2谱序

谱序又叫卷首语,包括新序、旧序、族外人的客序、目录和刻印人名,以及其他关于本族的记述。谱序的内容大多是论述纂修族谱的重要意义、本族历次修谱的情形、本次修谱的缘起和本姓本族的源流等。而外姓名流所作的谱序,则注重儒家道德伦理的宣扬,强调敬祖宗、辨昭穆、孝祖先等。谱序的作者包括各色人等,有的是本族之人,有的是社会名流,也有的是当地的地方官员。

                            3凡例

凡例又称谱例,主要阐述族谱的纂修原则和体例,订出若干条适合社会潮流与需要的规则,作为修谱时所要遵循的原则。例如,1774年在续修《孔子世家谱》时,衍圣公府颁发的谱例共有34条。如入谱规矩,出谱规矩,立传规矩等。

入谱规矩。 一般来说,族谱在收录族人时,并不考虑他的贫富贵贱、社会地位如何。只要是同一祖宗的子孙,只要不违犯国法、家规等硬性要求,都能入谱。

出谱规矩。 主要针对犯罪、出家的族人,要从族谱中移除。

立传规矩。 对于家族重要人物,对其德行、功业、学说等进行记录,供后人学习。

                            4谱论

谱论专收先贤的谱说、谱论、谱议的篇章和古代经典中的有关论述,对修谱的作用、功能、意义、历史、原理和方法等加以发表和阐述。在历史上,有不少皇帝也很关注续修族谱。例如,清代的顺治皇帝指出续谱的目的在于强化孝梯思想,妥善处理长幼、尊卑之间的关系,加强家族内部的联系,教训青年人不要胡作非为,让他们明白礼节,改良社会风气。

                        7姓氏源流

姓氏源流记述的是本族的来源、历史渊源、始祖、世派、迁徙、各支派之间的关系。这是宏观介绍本族的来龙去脉,具有一定的史料价值。但是,由于对始迁祖之前的家族情况的考证,习惯上往往会追溯到黄帝,并且会千方百计和历史名人攀上关系。这样做虽说影响了家史的真实性,但是也说明了后人对于中华民族始祖黄帝的尊崇。

                          6世系考

世系考详细记载了族中所有成员,从第一世到修谱时的最后一代的姓名、字、号、生卒年月日、行次和子女等,记载本族成员的简况、名、讳、排行、字、号、生卒年月日和寿数等。有的也记载本族支系的历史渊源和迁徙情况。这部分是整个族谱中最重要的、篇幅最大的部分。

                          7世系表

世系表用图表形式反映家族内部的世代、传承等关系。有的地方会把世系表画在神轴上,逢年过节时,隆重地进行祭祀。山东高密的李氏家族,还保有这样的习惯。

                    从黄帝到始迁祖

在族谱修纂时,有些家族会把从黄帝到本族始迁祖的世系加以追溯。例如,前述衍庆堂《李氏宗谱》就罗列了从一世祖利贞到65代祖李道的世系。由于唐代之前的族谱大都已经散失,所以,这种追溯往往无法证实。

                          8字辈

字辈起源于宋朝,是专门登载族内姓名排行的字语。字辈一般选择具有美好寓意的文字,在排列时有的是四言、五言或七言,句子可长可短。字辈长则五六十字,短则十多字。据说宋太祖赵匡削曾经给赵家立了14个“范字”——“匡德惟从,世令子伯,师希与孟,由宜”,共14个字。在族谱中,“字派”“班次”“班辈”“班行”等都是字辈的同义词。记载字辈,主要是给族人取名使用,目的是“顾名思义”,了解尊卑和亲疏。

                          9宗祠

祠堂是族人祭祀祖先、处理族内重要事务的场所。在《礼记》一书中,先哲指出君子建立房屋,要先立宗庙,再立马厩和库房,最后才修建家人的住所。

宗祠出现之前,中国已经有了宗庙、石室、家庙等建筑。这些建筑的建造,都是为了表达对祖先的尊重,也是希望子孙后世能够铭记祖先的恩德。

                          10坟莹

古人认为,已经过世的祖先可以庇佑后人,因此要慎择葬地。让死去的祖先入土为安,也是子孙孝梯的表现。此外,古人非常注重对祖坟的保护。在族谱编纂中,坟莹一般包括墓地图、坟向、祖坟及各支派墓地分布等内容。

                          11族规

在中国古代,家族是社会的基本组成部分。个体与家族之间是“一荣俱荣,一损俱损”的依存关系。个体的行为,不仅涉及到自身的利益,而且关系到家庭、家族的兴衰荣辱。所以,有必要用家法族规来规范家族成员的行为,确保家族的长盛不衰。对此,宋代儒学家程颐强调,做父亲的要从严治家,否则就会乱了长幼尊卑之序和男女内外之别。要从严治家,就必须有家法。

族规又叫家范、家规、家训、家法、宗范等,是由家族的尊长或者成员代表共同制定的,带有劝导和惩戒双重特性,用以约束和教化族人的规则。儒家认为“道之以政,齐之以刑,民免而无耻;道之以德,齐之以礼,有耻且格”,意思是伦理劝诫比惩戒更为合理。家法族规深受儒家这一思想的影响,以道德教化为主,以惩戒为辅。

此外,还包括族产、契约、人物传记、迁徙记、恩荣录、像赞、艺文、纂修、捐资人名、领谱字号、续后篇等内容。

              族谱可以回答“灵魂三问”

我是谁?族谱的世系表可以回答。

我从哪里来?从族谱的迁徙记可以得到答案。

我要到哪里去?从族谱中的族规(家训)可以找到做人的目标。

                    千年族谱盼新生

《周易》说:有天地然后有万物,有万物然后有男女,有男女然后有夫妇,有夫妇然后有父子,有父子然后有君臣,有君臣然后有上下,有上下然后礼义有所措。只要有人类的地方,就会有种族传承,就会有族谱。在美国,有十三位总统有爱尔兰血统,包括罗斯福、肯尼迪、尼克松、克林顿等。而爱尔兰斋美国人大约有3700万人,在美国3亿人口中占据1/10。尽管只有大约31%的爱尔兰血统,美国总统奥巴马还是非常珍视它,希望它可以为自己的竞选提供帮助。

在当代,外国也有很多家谱网站。例如,奥巴马的爱尔兰血统就是由英国的家谱网站发现的。1850年,爱尔兰面临着严重的土豆大饥荒。那一年,有个名叫法尔蒙斯·基尔尼的爱尔兰青年和姐姐、姐夫一起逃到美国俄亥俄州,接收了亲戚的房产。后来,他结了婚,并生育了10个儿女。奥巴马的母亲安·杜汉就是基尔尼的后代之一。所以,法尔蒙斯·基尔尼是奥巴马的五世外祖父。奥巴马的父亲是肯尼亚人。2011年5月,奥巴马前往爱尔兰中部奥法利郡的小镇莫尼高尔“寻根”。

而在现代化的中国,也一定会有族谱的一席之地。

                            —end—

PS:除关于汉鼓山王氏的内容及外,本文其余内容大多引用自《家国情怀 儒家与族谱》(岳晗著)一书,笔者在此表示感谢。

完颜氏,伊喇氏,王佳氏,爱新觉罗氏,还有王氏。

满族姓岳大多是用满语老姓改的,比如:西林觉罗氏、鄂济氏、岳察氏、伊拉里氏、鄂俞尔氏、巴雨特氏。还有原本就姓岳的汉军旗岳氏。你单说自己家姓岳这没有用,因为满族取岳姓的有很多,如上。你必须把自己家晚清以后的详细祖籍,以及历史的大致情况都说清楚,这样才能有个范围帮你查。

,山、川、钟

多、俊、秀

http://tiebabaiducom/fkz=698598552

29、湖南省星沙吴祠吴氏一支家谱字派

……同、声、称、德、让、亿、载、仰、高、风、勉、力、恢、先、绪、家、齐、运、自、强。

续:育、才、多、俊、秀、建、业、尽、英、雄、造、福、全、人、类、环、球、颂、大、功。……

注:自吴兴甫21代开始。

30、湖南省茶陵吴氏一支家谱字派

……远、元、发、达、俊,公、正、必、贤、良,应、绍、承、永、荣、昌。大、家、惟、孝、友,光、国、重、文、间,继、起、科、名、盛,祖、泽、定、绵、长。

续:

运、际、熙、朝、日,仁、兴、邦、协、和,功、高、隆、湖、海,祥、衍、庆、幸、福。春、雷、震、环、宇,黎、民、奏、凯、歌,山、川、钟、灵、秀,龙、蟠、虎、踞、时。……

注:自茶陵吴氏开基祖吴远瞻开始。

XMind软件设计工具中有一类图形:树状图,可以展示具有父子关系或有层次级别的图形。树状图根据方向来分,可以分为树状图(向右)和树状图(向左),下面利用树状图(向右)制作家谱图。

第一步,双击打

请下载这个版本使用,装这个程序才是带全功能的。

外加汉化下载地址

xmind 8 win 版 

http://wmmakedingcom/iclk/zoneid=14073

xmind 8mac 版 

http://wmmakedingcom/iclk/zoneid=14074

开XMind设计软件,新建空白图,找到树状图(向右),如下图所示:

第二步,选中“树状图(向右)”点击,弹出选择风格窗口,这里选择“绿茶”风格,如下图所示:

第三步,单击“新建”,创建一个带有绿色填充颜色的中心主题的画布,如下图所示:

第四步,在中心主题后插入三个“主题”,上面的内容显示的是分支主题,如下图所示:

第五步,修改中心主题和主题上的描述,并在主题后插入子主题,相应的修改其内容,如下图所示:

第六步,修改画布的墙纸,并修改画布的背景色,修改完毕后预览,如下图所示:

C++语言: 二叉树实现的简单家谱树

/

File Name: BiTreecpp

Author: Geng Lequn[glq2000@126com]

Thur July 1 2010

Discription: 建立二叉家谱树,实现输入任意两个人的名字,查找得到其关系

/

#include <iostream>

#include <string>

#include <cstring>

#include <cstdlib>

#include <vector>

#include <mathh>

using namespace std;

typedef struct _Node

{

string sex; //性别 m 男; f 女

string name; //此人的姓名

string spause; //配偶的姓名

unsigned short level; //层次 辈分最高一层为1,下一层为为2,以此类推

struct _Node l_child; //指向其第一个孩子的指针

struct _Node r_brother; //指向其某一个兄弟姐妹的指针, 即左孩子为其后代,右孩子为其兄弟姐妹

struct _Node btr; //指向其父亲或者母亲的指针

_Node():level(0),l_child(NULL),r_brother(NULL),btr(NULL){cout<<"constructor"<<endl;}

~_Node(){cout<<name<<" destructor"<<endl;}

}Node, PNode;

void CreateBiTreePreOrder(PNode &pn, PNode pback, unsigned short depth);//建立二叉家谱树,以先序方式

void VisitBiTreePreOrder(PNode root); //前序遍历此二叉树

void TellRelation(PNode root); //判断两人关系

void DestroyBiTreePostOrder(PNode root); //销毁二叉树,释放节点占用的空间

void FindPersonMiddleOrder(PNode root, string name, PNode &presult); //返回家谱中指向某人的指针,找不到返回NULL

Node root=NULL; //全局变量,二叉树的根节点

unsigned findPersonFlag = 0; //标志位,0 没找到; 1 找到,找到后就不再搜索直接返回;利用此flag可避免将整个tree遍历一遍(若该name在tree中存在的话)

int main()

{

cout<<"请按先序遍历的顺序根据提示输入家谱信息,不存在则输入\"#\""<<endl;

CreateBiTreePreOrder(root, NULL, 1);//建立二叉家谱树,以先序方式

VisitBiTreePreOrder(root); //前序遍历此二叉树

TellRelation(root); //判断两人关系

DestroyBiTreePostOrder(root); //销毁二叉树

getchar();getchar();getchar();

return 0;

}

/

function:建立二叉家谱树,以先序方式

argument:

pn: 指向二叉树节点的引用

pback: pn这个节点的btr指针的值,即指向其parent的指针

depth: 该节点的层次,分最高一层为1,下一层为为2,以此类推

/

void CreateBiTreePreOrder(PNode &pn, PNode pback, unsigned short depth)

{

string str;

cin>>str; //输入该人信息,格式是 sex-name-spausename,如不存在则输入#

if(str == "#") //如: M-tom-marry, 表示此人叫tom, 男性, 配偶名字marry

{

pn = NULL;

return;

}

//如果是自定义的struct/class,应该使用构造函数。如果是内建数据类型,

//比如int,应该memset。 当然,更好的建议是使用vector取代new出来的数组

pn = new Node;

//处理输入的字符串

vector<string> v;

for(size_t b=0, e=strfind('-'); ; e=strfind('-', b))

{

if(e == string::npos)

{

vpush_back(strsubstr(b));

break;

}

else

vpush_back(strsubstr(b, e-b));

b = e+1;

}

//初始化该节点

pn->sex = v[0];

pn->name = v[1];

pn->spause = v[2];

pn->btr = pback;

pn->level = depth;

//递归建立左右子树的节点

CreateBiTreePreOrder(pn->l_child, pn, depth+1); //注意后两个参数的值

CreateBiTreePreOrder(pn->r_brother, pback, depth); //注意后两个参数的值

}

/

function: 前序遍历此二叉树

/

void VisitBiTreePreOrder(PNode pn)

{

if(!pn)

return;

cout<<endl<<"sex:"<<pn->sex<<endl;

cout<<"name:"<<pn->name<<endl;

cout<<"spause:"<<pn->spause<<endl;

cout<<"level:"<<pn->level<<endl;

cout<<"father's name:"<<((pn->btr == NULL)"NULL":pn->btr->name)<<endl;

cout<<"======================"<<endl;

VisitBiTreePreOrder(pn->l_child);

VisitBiTreePreOrder(pn->r_brother);

}

/

function: 中序遍历找到家谱中的一个人,返回其指针,若找不到,返回NULL

isSpause 1表示是找到的节点的配偶 0表示不是所找到的节点的配偶

/

void FindPersonMiddleOrder(PNode pn, string name, PNode &presult)

{

if(!pn)

return;

FindPersonMiddleOrder(pn->l_child, name, presult);

if(findPersonFlag) return;

if(name == pn->name || name == pn->spause)

{

presult = pn;

findPersonFlag = 1; //全局标志位,0 没找到; 1 找到,找到后就不再搜索直接返回;利用此全局flag可避免将整个tree遍历一遍(若该name在tree中存在的话)

return; //下次使用前不要忘记置为0

}

FindPersonMiddleOrder(pn->r_brother, name, presult);

}

/

function: 判断两人关系,若两人中至少一人不在树中,则两人无关系

若两人在树中,先判断两人是否同层次,若同层,判断是否是亲兄弟姐妹;

若不同层,设辈分大的人为A,辈分小的人为B,判断A和B是亲的还是表的,

比如,A为男性,且比B大一倍,判断A是否为B的爸爸,或亲叔叔(舅舅),或表叔叔(舅舅)

简单起见,此处没有区分是叔叔还是舅舅

比如,A为男性,且比B大两倍,判断A是否为B的亲爷爷(姥爷),或亲爷爷(姥爷)的亲兄弟

,或亲爷爷(姥爷)的表兄弟

简单起见,此处没有区分是叔叔和舅舅等做进一步区分

简单起见,查询时只输入节点中的name,不查询spause,否则处理起来太麻烦

/

void TellRelation(PNode pn)

{

string name1, name2;

//p1指向name1, p2指向name2, pbig指向辈分大的,psmall指向辈分小的

PNode p1 = NULL, p2 = NULL, pbig = NULL, psmall = NULL;

int differ = 0; //两人辈分数的差别

string title;

Label:

cout<<endl<<"输入想查询关系的两个人的名字,不想查则将两人名字输成#:"<<endl;

while(cin>>name1 && cin>>name2)

{

if(name1=="#" && name2=="#") return;

p1 = NULL; p2 = NULL; //因为程序是循环执行的,需要将上次遗留的值清掉

findPersonFlag = 0;

FindPersonMiddleOrder(root, name1, p1);

findPersonFlag = 0;

FindPersonMiddleOrder(root, name2, p2);

if(!p1 || !p2) //若有一个为空或都为空,说明至少有一个人不在家谱中,故两人无亲缘关系

{

cout<<name1<<((!p1)" 不在":" 在")<<" 家谱树中"<<endl;

cout<<name2<<((!p2)" 不在":" 在")<<" 家谱树中"<<endl;

cout<<name1<<" 和 "<<name2<<" 间没有关系"<<endl<<endl;

goto Label;

}

differ = (int)abs(p1->level - p2->level);

if(!differ) //辈分一样大

{

if(p1->sex == p2->sex)

{

if(p1->sex == "M") title = "兄弟关系";

else title = "姐妹关系";

}

else title = "兄妹(姐弟)关系";

if(p1->btr == p2->btr) //parent相同

cout<<name1<<" 和 "<<name2<<" 间是 "<<" 亲 "<<title<<endl;

else

cout<<name1<<" 和 "<<name2<<" 间是 "<<" 表 "<<title<<endl;

}

else //辈分不一样大

{

if(p1->level < p2->level) {pbig = p1; psmall = p2;}

else {pbig = p2; psmall = p1;}

switch(differ)

{

case 1:

if(psmall->btr == pbig)

title = ((pbig->sex == "M")"爸爸":"妈妈");

else

{

if(psmall->btr->btr == pbig->btr)

title = ((pbig->sex == "M")"亲叔(舅)":"亲姑(姨)");

else

title = ((pbig->sex == "M")"表叔(舅)":"表姑(姨)");

}

break;

case 2:

if(psmall->btr->btr == pbig)

title = ((pbig->sex == "M")"爷爷(姥爷)":"奶奶(姥姥)");

else

{

string tmp = ((pbig->sex == "M")"兄弟":"姐妹");

if(psmall->btr->btr->btr == pbig->btr)

title = ((psmall->btr->btr->sex == "M")"爷爷(姥爷)的亲":"奶奶(姥姥)的亲") + tmp;

else

title = ((psmall->btr->btr->sex == "M")"爷爷(姥爷)的表":"奶奶(姥姥)的表") + tmp;

}

break;

default:

string tmp2;

PNode pt = psmall;

int n = differ-2; //计算"老"字 (即grand这个字) 出现的个数

for(int i=0; i<n; ++i)

tmp2 += "老";

for(int i=0; i<differ; ++i)

pt = pt->btr;

if(pt == pbig)

title = tmp2 + ((pbig->sex == "M")"爷爷(姥爷)":"奶奶(姥姥)");

else

{

string tmp3 = ((pbig->sex == "M")"兄弟":"姐妹");

if(pt->btr == pbig->btr)

{title = tmp2 + ((pt->sex == "M")"爷爷(姥爷)的亲":"奶奶(姥姥)的亲"); title+=tmp3;}

else

{title = tmp2 + ((pt->sex == "M")"爷爷(姥爷)的表":"奶奶(姥姥)的表"); title+=tmp3;}

}

break;

}

cout<<pbig->name<<" 是 "<<psmall->name<<" 的 "<<title<<endl;

}

goto Label;

}

}

/

function: 后序遍历销毁此二叉树,释放节点占用的内存空间

/

void DestroyBiTreePostOrder(PNode pn)

{

if(!pn) return;

DestroyBiTreePostOrder(pn->l_child);

DestroyBiTreePostOrder(pn->r_brother);

delete pn;

}

族谱小知识

                              引言                             何...
点击下载
热门文章
    确认删除?
    回到顶部