언어학에서 **동계어** (同系語, cognates 라틴어: cognatus *co-*+gnatus, 예) **nasci** '태어나다')는 어느 한 단어가, 다른 한개의 언어와 일치하는 기원이 있는 단어로서, 이는 이 단어가 다른 언어의 단어들과 함께 (아마도 공통조상어의) 원래의 어느 단어에서 변화되었음을 의미한다. 예를 들자면, 영어 단어 **night**(밤)는 다른 언어에 있는 단어들(예) 프랑스어 **nuit**, 독일어 **Nacht**, 산스크리트어의 **nakti-**)과 같은 어원을 가진다, 일상적으로 사용할 때는, 단순히 단어간의 동의어 관계를 가지고 있다는 의미로 사용된다.

동계어는 굳이 같은 의미를 가질 필요는 없다. **dish** (접시, 영어)나 **Tisch** (탁자, 독일어), **starve**(굶주리다, 영어)나 **sterben**(죽다, 독일어), **head** (머리, 영어)나 **chef** (우두머리/머리, 프랑스어)의 경우는, 동계어라는 용어가 의미 분화가 일어나 결국 전혀 다른 단어가 된 경우에도 적용할 수 있음을 보여준다.

게다가 다른 의미를 지니고 있는, 언어적인 변화를 거친 동계어는 아예 발음상으로도 닮아 있지 않을 수 있다. **cow** (소)와 **beef**(소고기)는 둘다 똑같은 인도-유럽어족적인 루트 **\*g**ʷ**ou**- 를 가지고 있다. 이 경우, **cow**의 경우에는 독일어족을 통해 발달되었지만, **beef**의 경우에는 이탈리아어파와 로망스어군을 거쳐 영어에 편입되었다.

또한, 동계어는 다른 언어에서 가져온 외래어에도 적용될 수 있다. 따라서 영어의 **To pay** (돈을 내다)와 프랑스어의 **payer**가 유사한 것은 영어가 프랑스와 같이 갈리아-로망스어에서 분화된 노르웨이어의 단어에서 이를 빌려 온 데에서 기인한다.

언어들 간의 동계어
----------

인도-유럽어족에서의 좋은 동계어의 경우는 '밤'이다. 예를 들어, **night** (영어), **nuit** (프랑스어), **Nacht** (독일어), **Nacht** (네덜란드어), **nicht** (스코트어), **nat** (덴마크어), **noc** (체코어/폴란드어), **noch** (러시아어), **nich** (우크라이나어), **noć** (세르비아어), **nox** (라틴어), **nakti-** (산스크리트어), **natë** (알바니아어), **noche** (스페인어), **nos** (웨일스어), **noite** (포르투갈어), **notte** (이탈리아어), **nit** (카탈루냐어), **noapte** (루마니아어), **nótt** (아이슬란드어), **naktis** (리투아니아어)는 모두 **밤**을 의미하고, 모두 인도유럽조어인 **\*nekwt-**에서 유래했다.

또다른 좋은 예는 '별'이다. **star** (영어), **str** (산스크리트어), **aster** (그리스어), **astre**나 **étoile** (프랑스어), **star** (신할라어), **stella** (라틴어, 이탈리아어), **stea** (루마니아어/베네티아어), **stairno** (고트어), **Stern** (독일어), **ster** (네덜란드어와 아프리칸스어), **starn** (스코트어), **stjerne** (노르웨이어), **stjarna** (아이슬란드어), **setare** (페르시아어), **seren** (웨일스어), **steren** (콘월어), **estel** (카탈루냐어), **estrella** (스페인어), **estrela** (포르투갈어), 그리고 **estêre** (쿠르드어) 모두는, 인도유럽조어 **\*ster-** (별)에서 변화되었다.

히브리어의 **shalom**(샬롬)과 아랍어의 **salaam** (둘다 뜻은 '평화')도 같은 의미의 계보에서 분리되어 있는 동계어이다.

동일한 언어 내의 동계어
-------------

동계어는 동일한 언어내에서도 존재할 수 있다, 예를 들어 영어 단어 **ward**(막다,보호하다)와 **guard**(보호하다) (<인도유럽조어 **\*wer-**, '-를 인지하다, 보호하다')나, shirt (셔츠)와 **skirt** (스커트)(<인도유럽조어 **\*sker-**, '자르다')의 경우를 들 수 있다. 이러한 동계어는 몇몇 경우에 하나는 영어와 밀접하게 관련된 어원을 가지기도 하는데, 이들 중 하나는 영어 본래에 있던 것인 반면 다른 하나는 바이킹족이 영국을 정복했을 때 (사실상 고대 영어와 거의 서로 알아볼 수 있었던) 고대 노르드어에서 차용한 것인 경우도 있다. 때로는 두 동계어가 다른 언어(보통, 같은 언어이나 시대가 다른)에서 오는 경우도 있다. 그 예로, **chief**(대장,추장)이라는 단어는 중세 프랑스어 **chef**에서 왔고, 이 단어의 현대 발음([치프])은 그 당시의 중세 프랑스어의 자음 발음을 보전하고 있다. 단어 **chef**(요리사,[셰프])는 몇세기 후의 프랑스에서 온 것이고, 그 때에는 ch의 발음이 sh-로 바뀌어 있었다. 이러한 단어들을 어원적 쌍둥이라고 한다.

  

동계어는 위의 예들의 경우에서 보다 덜 불분명하게 파악될 수 있으며, 이 분야의 전문가들도 여러 증빙 자료를 해석하는 데 있어서 견해 차이를 낳기도 한다. 영어 단어 **milk**(젖, 우유)는 분명히 독일어의 **Milch**나 러시아어 **moloko**의 동계어이다. (<인구어 **\*melg-**, '젖을 짜다') 반면에, 동일한 의미의 프랑스어 단어 **lait**와 스페인어 **leche**의 경우에는, 덜 분명하지만, 그리스어 **galaktos**(**gala**, '젖, 우유'의 속격)의 동계어이다 (<인구어 **\*g(a)lag-**, **galakt-**).

가짜동족어
-----

 이 부분의 본문은 가짜동족어입니다.
가짜동족어는 어떠한 단어들이, 일반적으로 동일한 기원을 가지고 관련되어 있는 것으로 생각되나, 실제로 언어학의 조사에 의해 관련이 없는 것으로 판단되는 단어들이다. 따라서 예로, 표면적인 유사성에 기초해서, 누군가가 라틴어의 **habare**와 독일어의 **haben** (둘다 '가지다'의 의미)을 동계어로 가정할 수 있다. 그러나, 단어의 인도유럽조어의 어원을 이해하면, 이 둘은 동계어가 될 수 없다는 사실을 알게 된다 (예로 그림의 법칙을 참조하라.) 실제로 독일어 **haben**(영어의 **have**와 비슷하다)은 인구어 **\*kap**에서 변화된 것으로서, '잡다'의 뜻을 가지고 있으며, 이 단어에 맞는 실제 동계어는 **capere**, '보다, 쥐다, 잡다(to seize, grasp, capture)'이다. 반면, 라틴어 단어 **habare**는 인구어 **\*ghabh**, '주다, 받다'에서 나온 것이고, 결론적으로, 영어 단어 **give**와 독일어 **geben**의 동계어이다.

비슷한 두 사람이 실제 유전학적으로 닮았다는 것을 결정하지 못하듯이, 언어 간에 있는 단어가 비슷하다는 사실은 그 단어가 서로 연관이 되어 있다는 것을 충분히 증빙하지 **못한다**. 또한, 수백, 수천년동안 언어가 사용되는 동안, 단어들의 발음은 완전히 바뀔수 있다. 따라서 예로, 영어의 **five**와 산스크리트 **pança**는 동계어이지만, 영어 단어 **over**(-를 넘어)와 히브리어 **a'var**, 또한 영어 **dog**(개)와 므바바람어의 **dog**는 동계어가 아니다.

흔히 동계어로 취급되는 것에 대해서는 가짜동족어를 참고하는 것이 좋다.