Taxonomies and categories are essential tools for efficiently organizing and categorizing content items, making them easier to search and discover. This document describes the features of Oracle WebCenter Content, offering a detailed overview of how to create, manage, and use taxonomies and categories to enhance content organization and improve discoverability.

Overview

WebCenter Content (on Marketplace) supports Taxonomies feature via a new component called Taxonomies.

Manage Taxonomies

A taxonomy is a hierarchy of categories, mapped to your business structure, used to organize the content items and to help users find items by drilling down into the area they’re working on.

There are REST APIs to perform the following management operations:

Manage Taxonomy and Security Group Mappings

To support content item categorization, we need to map taxonomies to content items’ security groups.

There are REST APIs to perform the mapping:

Note: this is only supported for WCC instances configured with OracleTextSearch or OpenSearch search engines.

Item categorization will help organising the items. If a taxonomy has been mapped with security groups that content items belong to, user can add and remove categories of that taxonomy to the content items. User can search content items categorized to a specific category (or categories) or their descendant categories.

There are REST APIs to perform the item categorization operations:

About Lifecycle of Item Categorization

Create taxonomy and its categories using WebCenter Content REST API

You need to assign a taxonomy to a security group during creation. Once the taxonomy is successfully created, you can create categories at the top-level (direct children of taxonomy). Multiple categories can be created thereafter either at the top level as siblings or under a specific category (sub-categories) forming a hierarchy.

Examples

Example 1

Create Taxonomy BookGenres with Security Group AudioBooks.

POST https://{host}:{port}/documents/wcc/api/v1.1/taxonomies

Request Body

{

    "dTaxonomyName": "BookGenres",

    "dDescription": "Book Genres",

    "dTaxonomySecurityGroup": "AudioBooks"

}
Example 2

Create Category Fiction under the BookGenres Taxonomy (use the taxonomy GUID created in Example 1 in the path parameter and the dParentGUID).

POST https://{host}:{port}/documents/wcc/api/v1.1/taxonomies/B6A08AFFFFE797345C6DD64BC30AEAF9/categories

Request Body
{

    "dCategoryName": "Fiction",

    "dParentGUID": "B6A08AFFFFE797345C6DD64BC30AEAF9"

}

Create child category Fantasy under the Fiction category under the BookGenres Taxonomy (use the taxonomy GUID created in Example 1 in the path parameter and the Fiction category GUID created above as dParentGUID):

POST https://{host}:{port}/documents/wcc/api/v1.1/taxonomies/B6A08AFFFFE797345C6DD64BC30AEAF9/categories

Request Body
{

    "dCategoryName": "Fantasy",
    
    "dParentGUID": "F08E631C39EC3839268C6D87A307721D"
    
}
Example 3

Search categories in BookGenres Taxonomy with name having substring Fan and with parent as Fiction and API name as ebo-f-f.

GET https://{host}:{port}/documents/wcc/api/v1.1/taxonomies/B6A08AFFFFE797345C6DD64BC30AEAF9/categories

Query Parameters

QueryText=(dCategoryName <substring> `Fan` <AND> dParentGUID <matches> `F08E631C39EC3839268C6D87A307721D` <AND> dAPIName <matches> `ebo-f-f`)

Categorize items with taxonomy categories Using WebCenter Content REST API

You can categorize or de-categorize items either during check-in or during updates. If a content item belongs to a different security group than the one mapped to the taxonomy, you need to first map the taxonomy to the content item’s security group and then add and remove categories of that taxonomy to the content item.

Examples

Example 1

Content Item Document1 is being uploaded to security group EBooks which is currently not mapped to BookGenres taxonomy.

Map the BookGenres taxonomy to the EBooks security group:

POST https://{host}:{port}/documents/wcc/api/v1.1/taxonomies/B6A08AFFFFE797345C6DD64BC30AEAF9/securityGroups/.add

Request Body
{

    "dSecurityGroup": "EBooks"
    
}
Example 2

Upload a file Document1.txt in security group EBooks and categorize it with Fantasy category of the BookGenres taxonomy (use the taxonomy GUID created in Example 1 and the Fantasy category GUID created in Example 2 under the create taxonomies and categories section):

POST https://{host}:{port}/documents/wcc/api/v1.1/files/data`

Request Body

FormData Parameters

primaryFile = path to the local Document1.txt file

metadataValues = { “dDocTitle”: “Document1”, “dDocType”: “Document”, “dSecurityGroup”: “EBooks”, “addCategories”: “taxonomyGUID:B6A08AFFFFE797345C6DD64BC30AEAF9,categoryGUIDs:F409A046F4574F7B3269496FD5ED6805” }

Example 3

Update an existing file Document1.txt with dDocName WCCDoc-1318489 in security group EBooks and de-categorize it with Fantasy category of the BookGenres taxonomy (use the taxonomy GUID created in Example 1 and the Fantasy category GUID created in Example 2 under the create taxonomies and categories section):

PUT https://{host}:{port}/documents/wcc/api/v1.1/files/WCCDOC-1318489

Request Body

FormData Parameters

metadataValues = { “dDocTitle”: “Document1”, “dDocType”: “Document”, “dSecurityGroup”: “EBooks”, “removeCategories”:“taxonomyGUID:B6A08AFFFFE797345C6DD64BC30AEAF9,categoryGUIDs:F409A046F4574F7B3269496FD5ED6805” }

Example 4

Read content item (with dDocName WCCDoc-1318489) taxonomy categories information:

GET https://{host}:{port}/documents/wcc/api/v1.1/files/WCCDoc-1318489/taxonomies

Search content items by taxonomy categories Using WebCenter Content REST API

Example 1

Search items that are in EBooks group and categorized with category Fantasy.

GET https://{host}:{port}/documents/wcc/api/v1.1/files/search/items

Query Parameters

fields=dDocName,dID,dDocTitle,dRevLabel,dSecurityGroup,dDocAuthor

q=(dSecurityGroup <matches> `EBooks` <AND> xTaxonomyCategories <matches> `F409A046F4574F7B3269496FD5ED6805`)

Example 2

Search items that are in EBooks group and categorized with category Fiction or any of its descendants.

GET https://{host}:{port}/documents/wcc/api/v1.1/files/search/items

Query Parameters

fields=dDocName,dID,dDocTitle,dRevLabel,dSecurityGroup,dDocAuthor

q=(dSecurityGroup <matches> `EBooks` <AND> xTaxonomyCategories <contains> `F08E631C39EC3839268C6D87A307721D`)