# pub.chive.discovery.settings

> Published by [chive.pub](https://lexicon.garden/identity/did:plc:7natp5xae72bddaqlkef2t4e)

✓ This is the authoritative definition for this NSID.

## Links

- [View on Lexicon Garden](https://lexicon.garden/lexicon/did:plc:7natp5xae72bddaqlkef2t4e/pub.chive.discovery.settings)
- [Documentation](https://lexicon.garden/lexicon/did:plc:7natp5xae72bddaqlkef2t4e/pub.chive.discovery.settings/docs)
- [Examples](https://lexicon.garden/lexicon/did:plc:7natp5xae72bddaqlkef2t4e/pub.chive.discovery.settings/examples)

## Definitions

### `pub.chive.discovery.settings`

**Type**: `record`

User discovery preferences for personalized recommendations

**Key**: `self`

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `schemaRevision` | `integer` | No | Schema revision this record was created with. Absent means revision 1. |
| `followedFieldUris` | `array` | No | Field URIs the user follows for discovery (distinct from work fields in profile) |
| `trendingPreferences` | `ref` → `#trendingPreferences` | No | Preferences for the trending feed |
| `relatedPapersSignals` | `ref` → `#relatedPapersSignals` | No | Signals to use for related papers |
| `relatedPapersWeights` | `ref` → `#relatedPapersWeights` | No | Relative weights for related papers signals |
| `enablePersonalization` | `boolean` | No | Enable personalized recommendations based on profile |
| `citationNetworkDisplay` | `string` | No | How to display citation network |
| `recommendationDiversity` | `string` | No | How diverse recommendations should be relative to user's fields |
| `relatedPapersThresholds` | `ref` → `#relatedPapersThresholds` | No | Thresholds for related papers filtering |
| `showRecommendationReasons` | `boolean` | No | Show explanations for why papers are recommended |
| `minimumEndorsementThreshold` | `integer` | No | Minimum number of endorsements for a paper to appear in recommendations |
| `followingTabIncludesWorkFields` | `boolean` | No | Whether the Following tab also includes the user's work fields |

### `pub.chive.discovery.settings#trendingPreferences`

**Type**: `object`

Preferences for the trending feed

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `defaultLimit` | `integer` | No | Default number of trending results to show |
| `defaultWindow` | `string` | No | Default time window for trending |

### `pub.chive.discovery.settings#relatedPapersSignals`

**Type**: `object`

Configuration for related papers panel signals

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `topics` | `boolean` | No | Show topic/concept-based relationships |
| `authors` | `boolean` | No | Show papers by overlapping authors |
| `semantic` | `boolean` | No | Show semantically similar papers (SPECTER2 / MLT) |
| `citations` | `boolean` | No | Show citation-based relationships |
| `coCitation` | `boolean` | No | Show papers frequently cited together |
| `collaborative` | `boolean` | No | Show collaborative filtering recommendations |
| `bibliographicCoupling` | `boolean` | No | Show papers that cite the same references |

### `pub.chive.discovery.settings#relatedPapersWeights`

**Type**: `object`

Relative importance of each related papers signal (0-100, auto-normalized)

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `semantic` | `integer` | No | Weight for SPECTER2 / MLT semantic similarity |
| `coCitation` | `integer` | No | Weight for co-citation and bibliographic coupling |
| `authorNetwork` | `integer` | No | Weight for co-author network proximity |
| `collaborative` | `integer` | No | Weight for collaborative filtering signal |
| `conceptOverlap` | `integer` | No | Weight for OpenAlex concept/topic overlap |

### `pub.chive.discovery.settings#relatedPapersThresholds`

**Type**: `object`

Thresholds for related papers filtering

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `minScore` | `integer` | No | Minimum combined score to include a paper (0-100, maps to 0.0-1.0) |
| `maxResults` | `integer` | No | Maximum number of related papers to show |

## Raw Schema

```json
{
  "id": "pub.chive.discovery.settings",
  "defs": {
    "main": {
      "key": "self",
      "type": "record",
      "record": {
        "type": "object",
        "properties": {
          "schemaRevision": {
            "type": "integer",
            "minimum": 1,
            "description": "Schema revision this record was created with. Absent means revision 1."
          },
          "followedFieldUris": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "at-uri"
            },
            "maxLength": 50,
            "description": "Field URIs the user follows for discovery (distinct from work fields in profile)"
          },
          "trendingPreferences": {
            "ref": "#trendingPreferences",
            "type": "ref",
            "description": "Preferences for the trending feed"
          },
          "relatedPapersSignals": {
            "ref": "#relatedPapersSignals",
            "type": "ref",
            "description": "Signals to use for related papers"
          },
          "relatedPapersWeights": {
            "ref": "#relatedPapersWeights",
            "type": "ref",
            "description": "Relative weights for related papers signals"
          },
          "enablePersonalization": {
            "type": "boolean",
            "default": true,
            "description": "Enable personalized recommendations based on profile"
          },
          "citationNetworkDisplay": {
            "type": "string",
            "default": "preview",
            "description": "How to display citation network",
            "knownValues": [
              "hidden",
              "preview",
              "expanded"
            ]
          },
          "recommendationDiversity": {
            "type": "string",
            "default": "medium",
            "description": "How diverse recommendations should be relative to user's fields",
            "knownValues": [
              "low",
              "medium",
              "high"
            ]
          },
          "relatedPapersThresholds": {
            "ref": "#relatedPapersThresholds",
            "type": "ref",
            "description": "Thresholds for related papers filtering"
          },
          "showRecommendationReasons": {
            "type": "boolean",
            "default": true,
            "description": "Show explanations for why papers are recommended"
          },
          "minimumEndorsementThreshold": {
            "type": "integer",
            "default": 0,
            "maximum": 10,
            "minimum": 0,
            "description": "Minimum number of endorsements for a paper to appear in recommendations"
          },
          "followingTabIncludesWorkFields": {
            "type": "boolean",
            "default": false,
            "description": "Whether the Following tab also includes the user's work fields"
          }
        }
      },
      "description": "User discovery preferences for personalized recommendations"
    },
    "trendingPreferences": {
      "type": "object",
      "properties": {
        "defaultLimit": {
          "type": "integer",
          "default": 20,
          "maximum": 100,
          "minimum": 5,
          "description": "Default number of trending results to show"
        },
        "defaultWindow": {
          "type": "string",
          "default": "7d",
          "description": "Default time window for trending",
          "knownValues": [
            "24h",
            "7d",
            "30d"
          ]
        }
      },
      "description": "Preferences for the trending feed"
    },
    "relatedPapersSignals": {
      "type": "object",
      "properties": {
        "topics": {
          "type": "boolean",
          "default": true,
          "description": "Show topic/concept-based relationships"
        },
        "authors": {
          "type": "boolean",
          "default": true,
          "description": "Show papers by overlapping authors"
        },
        "semantic": {
          "type": "boolean",
          "default": true,
          "description": "Show semantically similar papers (SPECTER2 / MLT)"
        },
        "citations": {
          "type": "boolean",
          "default": true,
          "description": "Show citation-based relationships"
        },
        "coCitation": {
          "type": "boolean",
          "default": false,
          "description": "Show papers frequently cited together"
        },
        "collaborative": {
          "type": "boolean",
          "default": false,
          "description": "Show collaborative filtering recommendations"
        },
        "bibliographicCoupling": {
          "type": "boolean",
          "default": false,
          "description": "Show papers that cite the same references"
        }
      },
      "description": "Configuration for related papers panel signals"
    },
    "relatedPapersWeights": {
      "type": "object",
      "properties": {
        "semantic": {
          "type": "integer",
          "default": 30,
          "maximum": 100,
          "minimum": 0,
          "description": "Weight for SPECTER2 / MLT semantic similarity"
        },
        "coCitation": {
          "type": "integer",
          "default": 25,
          "maximum": 100,
          "minimum": 0,
          "description": "Weight for co-citation and bibliographic coupling"
        },
        "authorNetwork": {
          "type": "integer",
          "default": 15,
          "maximum": 100,
          "minimum": 0,
          "description": "Weight for co-author network proximity"
        },
        "collaborative": {
          "type": "integer",
          "default": 10,
          "maximum": 100,
          "minimum": 0,
          "description": "Weight for collaborative filtering signal"
        },
        "conceptOverlap": {
          "type": "integer",
          "default": 20,
          "maximum": 100,
          "minimum": 0,
          "description": "Weight for OpenAlex concept/topic overlap"
        }
      },
      "description": "Relative importance of each related papers signal (0-100, auto-normalized)"
    },
    "relatedPapersThresholds": {
      "type": "object",
      "properties": {
        "minScore": {
          "type": "integer",
          "default": 5,
          "maximum": 100,
          "minimum": 0,
          "description": "Minimum combined score to include a paper (0-100, maps to 0.0-1.0)"
        },
        "maxResults": {
          "type": "integer",
          "default": 10,
          "maximum": 50,
          "minimum": 1,
          "description": "Maximum number of related papers to show"
        }
      },
      "description": "Thresholds for related papers filtering"
    }
  },
  "$type": "com.atproto.lexicon.schema",
  "lexicon": 1,
  "revision": 1
}
```
