or run

npx @tessl/cli init
Log in

Version

Tile

Overview

Evals

Files

Files

docs

core-types.mdcreative-work.mdevents.mdindex.mdperson-organization.mdplace-location.mdproducts-commerce.mdroles-relationships.mdschema-generation.md

person-organization.mddocs/

0

# Person and Organization Types

1

2

Schema.org types representing people and organizations with their properties, relationships, and roles within various contexts.

3

4

## Capabilities

5

6

### Person Type

7

8

Represents a person, including fictional characters and historical figures.

9

10

```typescript { .api }

11

/**

12

* A person, including fictional characters, deceased people, and living people

13

*/

14

type Person = PersonLeaf | Patient | string;

15

16

interface PersonBase extends ThingBase {

17

/** An additional name for a Person, can be used for a middle name */

18

additionalName?: SchemaValue<Text, "additionalName">;

19

/** A postal address for the person */

20

address?: SchemaValue<PostalAddress | Text, "address">;

21

/** An organization that this person is affiliated with */

22

affiliation?: SchemaValue<Organization, "affiliation">;

23

/** An alumni of an educational organization */

24

alumniOf?: SchemaValue<EducationalOrganization | Organization, "alumniOf">;

25

/** An award won by or for this item */

26

award?: SchemaValue<Text, "award">;

27

/** Date of birth */

28

birthDate?: SchemaValue<Date, "birthDate">;

29

/** The place where the person was born */

30

birthPlace?: SchemaValue<Place, "birthPlace">;

31

/** Date of death */

32

deathDate?: SchemaValue<Date, "deathDate">;

33

/** The place where the person died */

34

deathPlace?: SchemaValue<Place, "deathPlace">;

35

/** Email address */

36

email?: SchemaValue<Text, "email">;

37

/** Family name. In the U.S., the last name of a person */

38

familyName?: SchemaValue<Text, "familyName">;

39

/** Given name. In the U.S., the first name of a person */

40

givenName?: SchemaValue<Text, "givenName">;

41

/** A person's most significant accomplishment */

42

hasOccupation?: SchemaValue<Occupation, "hasOccupation">;

43

/** The person's job title */

44

jobTitle?: SchemaValue<DefinedTerm | Text, "jobTitle">;

45

/** Of a Person, and less typically of an Organization, to indicate a topic that is known about */

46

knowsAbout?: SchemaValue<Text | Thing | URL, "knowsAbout">;

47

/** The most generic uni-directional social relation */

48

knows?: SchemaValue<Person, "knows">;

49

/** A pointer to products or services offered by the organization or person */

50

makesOffer?: SchemaValue<Offer, "makesOffer">;

51

/** An Organization (or ProgramMembership) to which this Person or Organization belongs */

52

memberOf?: SchemaValue<Organization | ProgramMembership, "memberOf">;

53

/** Nationality of the person */

54

nationality?: SchemaValue<Country, "nationality">;

55

/** The telephone number */

56

telephone?: SchemaValue<Text, "telephone">;

57

/** Organizations that the person works for */

58

worksFor?: SchemaValue<Organization, "worksFor">;

59

}

60

```

61

62

**Usage Examples:**

63

64

```typescript

65

import type { Person } from "schema-dts";

66

67

// Basic person information

68

const author: Person = {

69

"@type": "Person",

70

name: "Jane Smith",

71

givenName: "Jane",

72

familyName: "Smith",

73

jobTitle: "Software Engineer",

74

email: "jane.smith@example.com",

75

telephone: "+1-555-0123"

76

};

77

78

// Detailed person with affiliations and background

79

const scientist: Person = {

80

"@type": "Person",

81

name: "Dr. Marie Curie",

82

givenName: "Marie",

83

familyName: "Curie",

84

additionalName: "Salomea",

85

birthDate: "1867-11-07",

86

deathDate: "1934-07-04",

87

birthPlace: {

88

"@type": "Place",

89

name: "Warsaw, Poland"

90

},

91

nationality: {

92

"@type": "Country",

93

name: "France"

94

},

95

hasOccupation: {

96

"@type": "Occupation",

97

name: "Physicist and Chemist"

98

},

99

knowsAbout: ["Physics", "Chemistry", "Radioactivity"],

100

award: [

101

"Nobel Prize in Physics (1903)",

102

"Nobel Prize in Chemistry (1911)"

103

],

104

affiliation: [

105

{

106

"@type": "Organization",

107

name: "University of Paris"

108

}

109

]

110

};

111

112

// Person with work relationships

113

const employee: Person = {

114

"@type": "Person",

115

name: "John Doe",

116

jobTitle: "Senior Developer",

117

worksFor: {

118

"@type": "Organization",

119

name: "Tech Innovations Inc.",

120

url: "https://techinnovations.com"

121

},

122

memberOf: [

123

{

124

"@type": "Organization",

125

name: "IEEE Computer Society"

126

},

127

{

128

"@type": "Organization",

129

name: "Association for Computing Machinery"

130

}

131

]

132

};

133

```

134

135

### Organization Type

136

137

Represents an organization such as a school, NGO, corporation, club, etc.

138

139

```typescript { .api }

140

/**

141

* An organization such as a school, NGO, corporation, club, etc.

142

*/

143

type Organization = OrganizationLeaf | Airline | Consortium | Cooperative |

144

Corporation | EducationalOrganization | FundingScheme | GovernmentOrganization |

145

LibrarySystem | LocalBusiness | MedicalOrganization | NewsMediaOrganization |

146

NGO | OnlineBusiness | PerformingGroup | PoliticalParty | Project |

147

ResearchOrganization | SearchRescueOrganization | SportsOrganization |

148

WorkersUnion | string;

149

150

interface OrganizationBase extends ThingBase {

151

/** A postal address for the organization */

152

address?: SchemaValue<PostalAddress | Text, "address">;

153

/** Alumni of an organization */

154

alumni?: SchemaValue<Person, "alumni">;

155

/** An award won by or for this item */

156

award?: SchemaValue<Text, "award">;

157

/** The brand(s) associated with a product or service */

158

brand?: SchemaValue<Brand | Organization, "brand">;

159

/** A contact point for a person or organization */

160

contactPoint?: SchemaValue<ContactPoint, "contactPoint">;

161

/** The date that this organization was dissolved */

162

dissolutionDate?: SchemaValue<Date, "dissolutionDate">;

163

/** Email address */

164

email?: SchemaValue<Text, "email">;

165

/** Someone working for this organization */

166

employee?: SchemaValue<Person, "employee">;

167

/** The date that this organization was founded */

168

foundingDate?: SchemaValue<Date, "foundingDate">;

169

/** The location where the organization was founded */

170

foundingLocation?: SchemaValue<Place, "foundingLocation">;

171

/** A person who founded this organization */

172

founder?: SchemaValue<Person, "founder">;

173

/** The official name of the organization */

174

legalName?: SchemaValue<Text, "legalName">;

175

/** The location of, for example, where an event is happening */

176

location?: SchemaValue<Place | PostalAddress | Text | VirtualLocation, "location">;

177

/** An organization identifier as defined in ISO 6523 */

178

leiCode?: SchemaValue<Text, "leiCode">;

179

/** A logo associated with an organization */

180

logo?: SchemaValue<ImageObject | URL, "logo">;

181

/** A pointer to products or services offered by the organization or person */

182

makesOffer?: SchemaValue<Offer, "makesOffer">;

183

/** A member of an Organization or a ProgramMembership */

184

member?: SchemaValue<Organization | Person, "member">;

185

/** An Organization (or ProgramMembership) to which this Person or Organization belongs */

186

memberOf?: SchemaValue<Organization | ProgramMembership, "memberOf">;

187

/** The number of employees in an organization, including part-time employees */

188

numberOfEmployees?: SchemaValue<QuantitativeValue, "numberOfEmployees">;

189

/** A relationship between an organization and a department of that organization */

190

parentOrganization?: SchemaValue<Organization, "parentOrganization">;

191

/** A relationship between two organizations where the first includes the second */

192

subOrganization?: SchemaValue<Organization, "subOrganization">;

193

/** The Tax / Fiscal ID of the organization */

194

taxID?: SchemaValue<Text, "taxID">;

195

/** The telephone number */

196

telephone?: SchemaValue<Text, "telephone">;

197

/** The Value-added Tax ID of the organization */

198

vatID?: SchemaValue<Text, "vatID">;

199

}

200

```

201

202

**Usage Examples:**

203

204

```typescript

205

import type { Organization, EducationalOrganization, Corporation } from "schema-dts";

206

207

// Basic organization

208

const company: Organization = {

209

"@type": "Organization",

210

name: "Acme Corporation",

211

legalName: "Acme Corporation Ltd.",

212

url: "https://acme.com",

213

logo: "https://acme.com/logo.png",

214

address: {

215

"@type": "PostalAddress",

216

streetAddress: "123 Business Ave",

217

addressLocality: "New York",

218

addressRegion: "NY",

219

postalCode: "10001",

220

addressCountry: "US"

221

},

222

telephone: "+1-555-0100",

223

email: "info@acme.com"

224

};

225

226

// Educational organization

227

const university: EducationalOrganization = {

228

"@type": "CollegeOrUniversity",

229

name: "Massachusetts Institute of Technology",

230

alternateName: "MIT",

231

foundingDate: "1861-04-10",

232

address: {

233

"@type": "PostalAddress",

234

streetAddress: "77 Massachusetts Avenue",

235

addressLocality: "Cambridge",

236

addressRegion: "MA",

237

postalCode: "02139",

238

addressCountry: "US"

239

},

240

url: "https://mit.edu",

241

alumni: [

242

{

243

"@type": "Person",

244

name: "Tim Berners-Lee"

245

}

246

]

247

};

248

249

// Corporation with detailed information

250

const techCorp: Corporation = {

251

"@type": "Corporation",

252

name: "Tech Solutions Inc.",

253

foundingDate: "2010-03-15",

254

founder: [

255

{

256

"@type": "Person",

257

name: "Alice Johnson",

258

jobTitle: "CEO"

259

},

260

{

261

"@type": "Person",

262

name: "Bob Wilson",

263

jobTitle: "CTO"

264

}

265

],

266

employee: [

267

{

268

"@type": "Person",

269

name: "Carol Smith",

270

jobTitle: "Senior Developer"

271

}

272

],

273

numberOfEmployees: {

274

"@type": "QuantitativeValue",

275

value: 150

276

},

277

subOrganization: [

278

{

279

"@type": "Organization",

280

name: "R&D Department"

281

},

282

{

283

"@type": "Organization",

284

name: "Sales Department"

285

}

286

]

287

};

288

```

289

290

### Local Business Type

291

292

A particular physical business or branch of an organization.

293

294

```typescript { .api }

295

/**

296

* A particular physical business or branch of an organization

297

*/

298

type LocalBusiness = LocalBusinessLeaf | AnimalShelter | ArchiveOrganization |

299

AutomotiveBusiness | ChildCare | Dentist | DryCleaningOrLaundry |

300

EmergencyService | EmploymentAgency | EntertainmentBusiness |

301

FinancialService | FoodEstablishment | GovernmentOffice |

302

HealthAndBeautyBusiness | HomeAndConstructionBusiness | InternetCafe |

303

LegalService | Library | LodgingBusiness | MedicalBusiness |

304

ProfessionalService | RadioStation | RealEstateAgent | RecyclingCenter |

305

SelfStorage | ShoppingCenter | SportsActivityLocation | Store |

306

TelevisionStation | TouristInformationCenter | TravelAgency | string;

307

308

interface LocalBusinessBase extends OrganizationBase, PlaceBase {

309

/** The currency accepted */

310

currenciesAccepted?: SchemaValue<Text, "currenciesAccepted">;

311

/** The opening hours of a certain place */

312

openingHours?: SchemaValue<Text, "openingHours">;

313

/** Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc. */

314

paymentAccepted?: SchemaValue<Text, "paymentAccepted">;

315

/** The price range of the business */

316

priceRange?: SchemaValue<Text, "priceRange">;

317

}

318

```

319

320

**Usage Examples:**

321

322

```typescript

323

import type { LocalBusiness, Restaurant, Store } from "schema-dts";

324

325

// Local restaurant

326

const restaurant: Restaurant = {

327

"@type": "Restaurant",

328

name: "Mario's Italian Kitchen",

329

address: {

330

"@type": "PostalAddress",

331

streetAddress: "456 Main Street",

332

addressLocality: "Springfield",

333

addressRegion: "IL",

334

postalCode: "62701",

335

addressCountry: "US"

336

},

337

telephone: "+1-555-0200",

338

openingHours: [

339

"Mo-Th 11:00-22:00",

340

"Fr-Sa 11:00-23:00",

341

"Su 12:00-21:00"

342

],

343

priceRange: "$$",

344

paymentAccepted: "Cash, Credit Card",

345

currenciesAccepted: "USD",

346

servesCuisine: "Italian"

347

};

348

349

// Retail store

350

const bookstore: Store = {

351

"@type": "BookStore",

352

name: "Pages & More Bookstore",

353

address: {

354

"@type": "PostalAddress",

355

streetAddress: "789 Literary Lane",

356

addressLocality: "Boston",

357

addressRegion: "MA",

358

postalCode: "02101",

359

addressCountry: "US"

360

},

361

openingHours: [

362

"Mo-Sa 09:00-21:00",

363

"Su 10:00-18:00"

364

],

365

paymentAccepted: "Cash, Credit Card, Digital Wallet",

366

telephone: "+1-555-0300"

367

};

368

```

369

370

### Organization Role Types

371

372

Specialized role types for describing relationships within organizations.

373

374

```typescript { .api }

375

/**

376

* A subclass of Role used to describe roles within organizations

377

*/

378

type OrganizationRole<TContent = never, TProperty extends string = never> =

379

OrganizationRoleLeaf<TContent, TProperty> | EmployeeRole<TContent, TProperty>;

380

381

interface OrganizationRoleBase extends RoleBase {

382

/** A number associated with a role in an organization */

383

numberedPosition?: SchemaValue<Number, "numberedPosition">;

384

}

385

386

/**

387

* A subclass of OrganizationRole used to describe employee relationships

388

*/

389

type EmployeeRole<TContent = never, TProperty extends string = never> =

390

EmployeeRoleLeaf<TContent, TProperty>;

391

392

interface EmployeeRoleBase extends OrganizationRoleBase {

393

/** The base salary of the job or of an employee in an EmployeeRole */

394

baseSalary?: SchemaValue<MonetaryAmount | Number | PriceSpecification, "baseSalary">;

395

/** The currency used for the main salary information */

396

salaryCurrency?: SchemaValue<Text, "salaryCurrency">;

397

}

398

```

399

400

**Usage Examples:**

401

402

```typescript

403

// Employee with role details

404

const employeeRole: Person = {

405

"@type": "Person",

406

name: "Sarah Connor",

407

worksFor: {

408

"@type": "Role",

409

"@id": "employee-role-123",

410

worksFor: {

411

"@type": "Organization",

412

name: "Cyberdyne Systems"

413

},

414

roleName: "Senior Software Engineer",

415

startDate: "2020-01-15",

416

baseSalary: {

417

"@type": "MonetaryAmount",

418

currency: "USD",

419

value: 120000

420

},

421

numberedPosition: 001

422

}

423

};

424

```