commerce-canon/research/social-community-graphs/foaf-agent-person-group-onlineaccount.md

113 lines
4.4 KiB
Markdown
Raw Normal View History

# 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/