Source identity
| Field | Recorded value |
|---|---|
| Source type | GitHub source |
| Original record | Janady13/feedthejoe / build/identity.mjs |
| Date | Not specified in source |
| Repository | Janady13/feedthejoe |
| Revision | 0e608a2b515a959bf35d2783428766624400ca3c |
| Branch | main |
| Path or archive member | build/identity.mjs |
| Original SHA-256 | a27d6e4cd44468b4e9f176da07dc6f6d571b7311894eb9bdd63dd14845ccf776 |
| Git blob SHA | 9d627846d271a4efb5ea3621037163ac51cb8caf |
| Reading-copy SHA-256 | a27d6e4cd44468b4e9f176da07dc6f6d571b7311894eb9bdd63dd14845ccf776 |
Recovered source transcript
Download complete source text ↓145 lines · 4.9 KB
/**
* The identity graph.
*
* This file is the reason the site exists. Everything else is a way of getting
* someone to read it.
*
* One rule governs every entry below, and it is the rule most identity markup
* gets wrong: `sameAs` means "this IS the same entity". It is not a place for
* backlinks, citations, press, employers, or anything merely *related*. A
* polluted sameAs tells a search engine that this person IS a GitHub pull
* request, or IS a county tax page, and entity trust collapses. So:
*
* sameAs -> first-party identity profiles of THIS person, nothing else.
* subjectOf -> records ABOUT him (the DoD footage).
* identifier -> registry numbers that belong to the entity that holds them.
*
* The federal identifiers (UEI, EIN) belong to the ORGANISATION, not the man,
* and are placed accordingly. Every URL here was verified to resolve 200.
*/
export const SITE = 'https://feedthejoe.com';
export const PERSON_ID = `${SITE}/#joseph`;
export const ORG_ID = `${SITE}/#thatdeveloperguy`;
export const SITE_ID = `${SITE}/#website`;
export const person = {
'@type': 'Person',
'@id': PERSON_ID,
name: 'Joseph W. Anady',
givenName: 'Joseph',
familyName: 'Anady',
url: `${SITE}/`,
jobTitle: 'Software Engineer',
description:
'Software engineer and retired U.S. Army Sergeant First Class. Founder of ThatDeveloperGuy, '
+ 'a service-disabled veteran-owned software firm.',
hasOccupation: {
'@type': 'Occupation',
name: 'Software Engineer',
occupationalCategory: '15-1252.00',
},
alumniOf: {
'@type': 'CollegeOrUniversity',
name: 'Colorado State University',
sameAs: 'https://www.wikidata.org/wiki/Q1111640',
},
memberOf: {
'@type': 'Organization',
name: 'United States Army',
sameAs: 'https://www.wikidata.org/wiki/Q9212',
},
knowsAbout: [
'Software engineering',
'Web performance',
'Search engine optimization',
'Information retrieval',
'Recommender systems',
'Distributed systems',
'Federal contracting',
],
// Identity profiles only. Verified 200.
sameAs: [
'https://www.wikidata.org/wiki/Q139901957',
'https://orcid.org/0009-0008-8625-949X',
'https://github.com/Janady13',
],
identifier: [
{ '@type': 'PropertyValue', propertyID: 'ORCID', value: '0009-0008-8625-949X' },
{ '@type': 'PropertyValue', propertyID: 'Wikidata', value: 'Q139901957' },
],
// Records ABOUT him — U.S. Department of Defense footage, independently
// hosted and independently verifiable. These are citations, not identities.
subjectOf: [
{ '@type': 'VideoObject', name: 'Spc. Joseph Anady', url: 'https://www.dvidshub.net/video/236271/spc-joseph-anady', publisher: { '@type': 'Organization', name: 'DVIDS' } },
{ '@type': 'VideoObject', name: 'Spc. Joseph Anady', url: 'https://www.dvidshub.net/video/234687/spc-joseph-anady', publisher: { '@type': 'Organization', name: 'DVIDS' } },
{ '@type': 'VideoObject', name: 'Spc. Joseph Anady', url: 'https://www.dvidshub.net/video/234688/spc-joseph-anady', publisher: { '@type': 'Organization', name: 'DVIDS' } },
],
mainEntityOfPage: { '@id': `${SITE}/#webpage` },
};
export const organization = {
'@type': 'Organization',
'@id': ORG_ID,
name: 'ThatDeveloperGuy',
url: 'https://thatdeveloperguy.com',
foundingDate: '2017',
founder: { '@id': PERSON_ID },
owns: { '@id': SITE_ID },
description: 'Service-disabled veteran-owned software and web engineering firm.',
sameAs: ['https://www.wikidata.org/wiki/Q139709771'],
// Federal registry identifiers belong to the company, never to the person.
identifier: [
{ '@type': 'PropertyValue', propertyID: 'SAM.gov UEI', value: 'FFG3A4SK9HY6' },
{ '@type': 'PropertyValue', propertyID: 'Wikidata', value: 'Q139709771' },
],
naics: ['541511', '541512', '541519'],
};
/**
* Build the full JSON-LD graph for the home page.
* @param {object} corpus
*/
export function homeGraph(corpus) {
return {
'@context': 'https://schema.org',
'@graph': [
person,
organization,
{
'@type': 'WebSite',
'@id': SITE_ID,
url: `${SITE}/`,
name: 'feedthejoe.com',
inLanguage: 'en-US',
publisher: { '@id': PERSON_ID },
about: { '@id': PERSON_ID },
},
{
'@type': 'ProfilePage',
'@id': `${SITE}/#webpage`,
url: `${SITE}/`,
name: 'Joseph W. Anady',
isPartOf: { '@id': SITE_ID },
about: { '@id': PERSON_ID },
mainEntity: { '@id': PERSON_ID },
inLanguage: 'en-US',
},
{
'@type': 'ItemList',
'@id': `${SITE}/#work`,
name: 'Body of work',
numberOfItems: corpus.items.length,
itemListOrder: 'https://schema.org/ItemListUnordered',
itemListElement: corpus.items.map((item, i) => ({
'@type': 'ListItem',
position: i + 1,
url: `${SITE}${item.url}`,
name: item.title,
})),
},
],
};
}