# FOAF Agent Person Group OnlineAccount ## Source Type Semantic vocabulary. FOAF (Friend of a Friend) RDF vocabulary for persons, agents, groups, and online accounts. ## Domain Semantic web social identity, person/agent distinction, and account representation. ## Why This Source Matters FOAF distinguishes persons, agents, organizations, groups, accounts, and membership-like properties — an early explicit separation of actor, account, and online presence. ## Key Concepts - **foaf:Person**: a person (human); may have name, homepage, depiction. - **foaf:Agent**: anything that can do things; superclass of Person, Organization, Group. - **foaf:Organization**: collective agent with members and name. - **foaf:Group**: collective agent with `member` property linking to agents. - **foaf:OnlineAccount**: account on a service; links via `accountServiceHomepage` and `accountName`. - **foaf:OnlineChatAccount / OnlineGamingAccount**: specialized account types. - **foaf:member**: agent belongs to group (inverse of Group membership). - **foaf:knows**: social acquaintance link between agents (not authorization). - **foaf:mbox / mbox_sha1sum**: email or hashed email identifiers. - **foaf:openid**: OpenID identifier for agent. - **foaf:Document / Image**: non-agent resources. ## Relevant Terminology | Term | Source meaning | | --- | --- | | Person | Human being in FOAF sense. | | Agent | Anything capable of action; includes persons and collectives. | | Organization | Named collective agent. | | Group | Collective agent with explicit members. | | OnlineAccount | Presence on a service with account name. | | member | Membership link from group to agent. | | knows | Social network acquaintance between agents. | | accountName | Handle on a service. | | accountServiceHomepage | Service URL defining account namespace. | | mbox | Email identifier (often `mailto:` URI). | ## Modeling Assumptions - **Agent is the root actionable type**; Person is a specialization. - **Person is explicitly human**, separate from accounts. - **OnlineAccount is not the person**; it is an account on a service linked to an agent. - **Groups and Organizations are agents** with member properties. - **Social knows is weak affiliation**, not trust or authorization. - **Identifiers (mbox, openid) are properties**, not first-class scoped objects. - **RDF graph allows multiple incomplete assertions** about same agents. ## Identity-Canon Implications - FOAF **Person** maps closely to **Natural Person**. - FOAF **Agent** maps to **Actor**. - FOAF **Organization** / **Group** map to **Organization** / **Group** collective actors. - FOAF **OnlineAccount** maps to **Account** with service **Scope** defined by `accountServiceHomepage`. - **accountName** maps to **Identifier**. - **member** maps to **Membership Relationship**. - **knows** maps to **Affiliation Relationship** (social, weak). - FOAF is strong evidence for **P1** (actor root) and **P2** (person ≠ account). - Supports S01, S08, S09 with explicit person/account split. ## Terminology Conflicts - **Agent vs. Artificial Agent**: FOAF Agent includes humans; canon Artificial Agent is non-human only. - **Group vs. Community**: FOAF Group is generic collective; community implies participation norms. - **OnlineAccount vs. Profile**: FOAF account is service presence; profile is broader presentation surface. - **knows vs. Following**: knows is bidirectional acquaintance; ActivityPub Follow is directed. - **mbox vs. Identifier**: mbox is contact + identifier; conflation risk. ## Candidate Canonical Mappings | FOAF concept | Candidate canonical concept | | --- | --- | | Person | Natural Person | | Agent | Actor | | Organization | Organization | | Group | Group | | OnlineAccount | Account | | accountName | Identifier | | accountServiceHomepage | Scope (service namespace) | | member | Membership Relationship | | knows | Affiliation Relationship | | mbox / openid | Identifier | | depiction / name | Profile attributes | ## Open Questions - Should FOAF OnlineAccount always imply Account, or sometimes Profile only? - How should `mbox_sha1sum` map for privacy-preserving synonymity (weak match)? - Does FOAF Group map to Group only, or also Community when informal? - Should knows remain Affiliation, or split into Following vs. acquaintance? ## References - FOAF vocabulary specification — http://xmlns.com/foaf/spec/ - FOAF 0.99 RDF schema — http://xmlns.com/foaf/0.1/