cancel
Showing results for 
Search instead for 
Did you mean: 

Combining taxonomies + TREX API

Former Member
0 Kudos

Hi,

Is it possible to combine two or more taxonomies? To start of with two: can a taxonomy "tree" [a] be added as nodes/leafs [ b] and [c] in another taxonomy? The reason for this to minimise maintainance. We would like to ba able to change a node in [a], and the changes will be reflected under the nodes [ b] and [c].

Also; is there any news when/if TREX API will be released?

Are there any good comments on how to maintain taxonomies? Is there a way to centally update queries or create nodes with queries?

Message was edited by: Bjorn Bjornstad

Accepted Solutions (0)

Answers (1)

Answers (1)

0 Kudos

Hello Bjorn,

the TREX API is not planned to be released. You will have to continue to access TREX indirectly through KM Index Management or other released APIs.

The ability to add nodes from taxonomy 1 into taxonomy 2 will be enhanced with the next major NetWeaver release after 2004s.

Regards,

Karsten

Former Member
0 Kudos

Thanks,

Exactly what other APIs are there?

bjorn

0 Kudos

Hi Bjorn,

please check the KM section of the NetWeaver developer guide (here in SDN) for details.

Most important KM APIs are:

- KM API to use KM services and controls in own portal apps

- Repository Framework API to build own repository managers to connect document repositories

- Flex UI API to extend the UI configurability

- Reporting API to develop own reports over KM resources

Regards,

Karsten

Former Member
0 Kudos

In looking at the services available in the Index Management, classification and search functionality I do not see any classess or methods available that allow you to do either of the following -

- Create a Taxonomy node.

- Create query rules on a node.

Can an expert out there please validate that this is a correct assumption?

Bjorn,

At current a possible work around is to copy a node from one taxonomy to another or one branch to another. I have tested this and it does copy over the queries defined on the nodes as well. The only problem here is that if you change your "template" (the one you copied), the previous copies of it will not reflect that change. So you would need to do this for each copy that you had created.

I also tested creating a query based taxonomy on an index from an existing hierarchy. This copy works as well, but doesn't copy over the queries. So I do not recommend this for your purposes.

HelgeSt
Participant
0 Kudos

We had a similar problem:

- Information about structure and documents in R/3 (read with RFC)

- Documents in FSDB-Repository and IXOS-Repository

- Taxonomy to combine both repositories in one sight

As documents and structure is growing dynamical, we had to implement a scheduler task which updates the taxonomy automatical.

There are several APIs to do that in KM:

- First you have to create the taxonomyfolder =>

// create the folder

parent =

(ICollection) ResourceFactory.getInstance().getResource(

RID.getRID(parentFolder),

resourceContext);

parent.createCollection(folder, null);

- Second you have to set the query

// Get the global service IIndexService

indexService =

(IIndexService) ResourceFactory

.getInstance()

.getServiceFactory()

.getService(

IServiceTypesConst.INDEX_SERVICE);

// This kind of classification index offers functionality working with query based taxonomies

qbcIndex = (IQBClassificationIndex) indexService.getIndex(indexId);

// Get a query folder - a query folder is a representation of a query based taxonomies category

queryFolder = qbcIndex.getQueryFolder(RID.getRID(folder));

// List of IQueryEntry objects for the query folder

queryEntryList = queryFolder.getQuery(resourceContext);

// Run only if no entry is in the query list

if (queryEntryList.size() == 0) {

// Cast the IQBClassificationIndex into a ISearchIndex object

searchIndex = (ISearchIndex) qbcIndex;

// Get an IQueryEntry object

queryEntry = searchIndex.getNewQueryEntry();

// Set attribute + operator + value

queryEntry.setRowType(IQueryEntry.ROW_TYPE_ATTRIBUTE);

queryEntry.setPropertyName(propertyName);

queryEntry.setPropertyOperator(

IQueryEntry.PROPERTY_OPERATOR_EQUAL);

queryEntry.setValue(propertyValue);

// Adds the query entry to the query entry list

queryEntryList.add(queryEntry);

// Set the query for the query folder

queryFolder.setQueryFast(queryEntryList, resourceContext);

But be aware of problems, when the taxonomy gets to big!

We ran into performance issues.

Best Regards,

Helge Stührmann

Former Member
0 Kudos

Scott and Helge,

Thank you for very good answers.

Helge, I think this will get us started

bjorn