REST in the Web3 Platform
One of the goals of the Web3 Platform was to adhere to as many of the architectural principles of REST that was possible. In our minds the key things were that:
1) Given a start URI and a description of all the content types and valid transitions a client could interact with the topic map store.
Yep, there is only that one point.
Given the URI of a topic map a client that is aware of the different content types that can be returned can interact with the entire topic map without guessing at, or constructing URIs.
For the Web3 Platform we introduced a new syntactic representation for Topic Maps because XTM is an interchange syntax for Topic Maps and not an effective Hypertext representation for the TMDM.
I'll walk through some interactions starting from a topicmap URL to demonstrate why we introduced the new syntax and how a client behaves.
Starting with the topicmap URL:
GET http://localhost/web3/topicmaps/e518129d-b458-4171-99cc-5e4941dafc7b?format=xml
When addressing Web3 Resources content negotiation can be done through accept headers or via a format parameter. The above GET returns the following representation.
<?xml version="1.0" encoding="utf-8"?>
<TopicMap xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
Id="e518129d-b458-4171-99cc-5e4941dafc7b"
Version="49"
LastModified="2010-09-22T08:44:56.65"
Address="http://localhost/web3/topicmaps/e518129d-b458-4171-99cc-5e4941dafc7b"
WebLabel="myfilms"
Reifier="http://localhost/web3/topicmaps/e518129d-b458-4171-99cc-5e4941dafc7b/topics/75746aa2-61a1-4303-9d4e-d9832e366e82"
Schema="http://localhost/web3/schemas/0df562f3-f86b-4fbb-a4d3-66679f2df0fa"
Associations="http://localhost/web3/topicmaps/e518129d-b458-4171-99cc-5e4941dafc7b/associations"
Topics="http://localhost/web3/topicmaps/e518129d-b458-4171-99cc-5e4941dafc7b/topics">
<Labels>
<Label Lang="en-gb">Films</Label>
</Labels>
</TopicMap>
There are a couple of things to notice in this representation.
- We use full URLs for everything, no Ids that need turning into URLs based on some defined URL space.
- We are exposing the collections of Topics and Associations as resources in their own right. This allows clients to POST to these collections to create new Topics and Associations and also to fetch these collections. (The full representation documentation also specifies the allowed query parameters for these resources).
Now a client can navigate the topic collection using:
GET http://localhost/web3/topicmaps/e518129d-b458-4171-99cc-5e4941dafc7b/topics?format=xml
This returns the following collection:
<?xml version="1.0" encoding="utf-8"?>
<TopicRefList xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
Start="0" Count="29" Length="25"
ListUrl="http://localhost/web3/topicmaps/e518129d-b458-4171-99cc-5e4941dafc7b/topics"
Next="http://localhost/web3/topicmaps/e518129d-b458-4171-99cc-5e4941dafc7b/topics?skip=25&take=25"
Previous="http://localhost/web3/topicmaps/e518129d-b458-4171-99cc-5e4941dafc7b/topics?skip=-25take=25">
<Items>
<TopicRef Address="http://localhost/web3/topicmaps/e518129d-b458-4171-99cc-5e4941dafc7b/topics/2a8a2182-f8b7-427a-9f7f-ef206b775606">
<Labels>
<Label Lang="en-gb">Harrison Ford</Label>
</Labels>
<Identifiers />
</TopicRef>
<TopicRef Address="http://localhost/web3/topicmaps/e518129d-b458-4171-99cc-5e4941dafc7b/topics/dee5c82f-a6ab-4dcc-9e2b-4fbfcaefdc41">
<Labels>
<Label Lang="en-gb">Witness</Label>
</Labels>
<Identifiers />
</TopicRef>
<TopicRef Address="http://localhost/web3/topicmaps/e518129d-b458-4171-99cc-5e4941dafc7b/topics/fc914a45-915c-49b1-baa8-8cf523de3425">
<Labels>
<Label Lang="en-gb">Star Wars</Label>
</Labels>
<Identifiers />
</TopicRef>
</Items>
</TopicRefList>
The interesting things in the snippet above are:
- We have introduced a generic list container for topics, in fact topic refs. This gives us control over thing like collection size and paging.
- We have introduced a lightweight topic reference structure for use in listing topics. This is a subset of the full topic representation and is used in many places.
- We are explicit about the topic's web address.
- We provided explicit links to navigate through the collection
All of the above means that a client who understands this content type can navigate to a topic, and find more results or the previous page of results.
Following a link to a topic using:
GET http://localhost/web3/topicmaps/e518129d-b458-4171-99cc-5e4941dafc7b/topics/2a8a2182-f8b7-427a-9f7f-ef206b775606?format=xml
Returns the following XML
<?xml version="1.0" encoding="utf-8"?>
<Topic xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
Id="2a8a2182-f8b7-427a-9f7f-ef206b775606" Version="54" LastModified="2010-09-22T08:46:34.36"
Address="http://localhost/web3/topicmaps/e518129d-b458-4171-99cc-5e4941dafc7b/topics/2a8a2182-f8b7-427a-9f7f-ef206b775606"
TopicMapAddress="http://localhost/web3/topicmaps/e518129d-b458-4171-99cc-5e4941dafc7b"
TopicAssociations="http://localhost/web3/topicmaps/e518129d-b458-4171-99cc-5e4941dafc7b/topics/2a8a2182-f8b7-427a-9f7f-ef206b775606/associations">
<Labels>
<Label Lang="en-gb">Harrison Ford</Label>
</Labels>
<Identifiers />
<Types>
<Type Address="http://localhost/web3/topicmaps/e518129d-b458-4171-99cc-5e4941dafc7b/topics/5c3c037f-0c13-457e-b177-fa3328d13370">
<Labels>
<Label Lang="en-gb">Person</Label>
</Labels>
<Identifiers>
<Identifier Address="http://localhost/web3/topicmaps/e518129d-b458-4171-99cc-5e4941dafc7b/topics/5c3c037f-0c13-457e-b177-fa3328d13370/identifiers/32fafe54-0363-4e3a-bb3b-f8a565fc7e26" IdentifierType="ii">
http://localhost/web3/schemas/0df562f3-f86b-4fbb-a4d3-66679f2df0fa/types/16f22191-5fd7-4f15-8014-f4fc28b1563e
</Identifier>
<Identifier Address="http://localhost/web3/topicmaps/e518129d-b458-4171-99cc-5e4941dafc7b/topics/5c3c037f-0c13-457e-b177-fa3328d13370/identifiers/5ab286fc-3e7b-43bd-949f-1766860fb2f3" IdentifierType="si">
http://www.myfilms.com/types/person
</Identifier>
</Identifiers>
</Type>
</Types>
<Properties>
<Property Id="526c5a91-302c-4138-b8cb-35e5b7b19d2e" Version="54" LastModified="2010-09-22T08:46:34.36" Address="http://localhost/web3/topicmaps/e518129d-b458-4171-99cc-5e4941dafc7b/topics/2a8a2182-f8b7-427a-9f7f-ef206b775606/properties/526c5a91-302c-4138-b8cb-35e5b7b19d2e" TopicAddress="http://localhost/web3/topicmaps/e518129d-b458-4171-99cc-5e4941dafc7b/topics/2a8a2182-f8b7-427a-9f7f-ef206b775606">
<Type Address="http://localhost/web3/topicmaps/e518129d-b458-4171-99cc-5e4941dafc7b/topics/cb3832ab-7c9b-4ec7-a20e-112dd9b133c3">
<Labels>
<Label Lang="en-gb">Biography</Label>
</Labels>
<Identifiers>
<Identifier Address="http://localhost/web3/topicmaps/e518129d-b458-4171-99cc-5e4941dafc7b/topics/cb3832ab-7c9b-4ec7-a20e-112dd9b133c3/identifiers/a2b3bb57-3313-4432-b485-bd08703f1495" IdentifierType="si">
http://www.myfilms.com/types/biography
</Identifier>
<Identifier Address="http://localhost/web3/topicmaps/e518129d-b458-4171-99cc-5e4941dafc7b/topics/cb3832ab-7c9b-4ec7-a20e-112dd9b133c3/identifiers/a314af53-a940-4b7a-a92b-ad2d761ef2c7" IdentifierType="ii">
http://localhost/web3/schemas/0df562f3-f86b-4fbb-a4d3-66679f2df0fa/types/45ba8b1a-a80c-40c6-8fb6-7d1692c0da7b
</Identifier>
</Identifiers>
</Type>
<Value xsi:type="xsd:string">Born in the 1940's</Value>
<Scope />
</Property>
</Properties>
</Topic>
Points of interest in the above snippet are:
- The link to the associations for the topic. With this we have created a resource that can be navigated to return the associations in which the topic plays a role. (There are optional query parameters on this as well.)
- We use inline topic ref elements to minimise round trips for common things, such as property types and topic types.
- All contained resources, property (is name or occurrence) and identity expose their web address.
- We have also included version information to help with ETag processing.
Finally, following the associations link using:
http://localhost/web3/topicmaps/e518129d-b458-4171-99cc-5e4941dafc7b/topics/2a8a2182-f8b7-427a-9f7f-ef206b775606/associations?format=xml
We get back the following XML structure:
<?xml version="1.0" encoding="utf-8"?>
<AssociationList xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
Start="0" Count="0" Length="3"
ListUrl="http://localhost/web3/topicmaps/e518129d-b458-4171-99cc-5e4941dafc7b/topics/2a8a2182-f8b7-427a-9f7f-ef206b775606/associations?type="
Next="http://localhost/web3/topicmaps/e518129d-b458-4171-99cc-5e4941dafc7b/topics/2a8a2182-f8b7-427a-9f7f-ef206b775606/associations?type=&skip=3&take=3"
Previous="http://localhost/web3/topicmaps/e518129d-b458-4171-99cc-5e4941dafc7b/topics/2a8a2182-f8b7-427a-9f7f-ef206b775606/associations?type=&skip=-3take=3">
<Items>
<Association Id="033426d3-90fb-4501-9372-cafa7e46cc53" Version="53" LastModified="2010-09-22T08:45:44.507"
Address="http://localhost/web3/topicmaps/e518129d-b458-4171-99cc-5e4941dafc7b/associations/033426d3-90fb-4501-9372-cafa7e46cc53"
TopicMapAddress="http://localhost/web3/topicmaps/e518129d-b458-4171-99cc-5e4941dafc7b">
<Type Address="http://localhost/web3/topicmaps/e518129d-b458-4171-99cc-5e4941dafc7b/topics/042c8aad-1d32-48d8-9d71-2ed5a9a30b04">
<Labels />
<Identifiers>
<Identifier Address="http://localhost/web3/topicmaps/e518129d-b458-4171-99cc-5e4941dafc7b/topics/042c8aad-1d32-48d8-9d71-2ed5a9a30b04/identifiers/be689f59-e07a-4594-abd1-6d4d0457ee1d" IdentifierType="si">http://psi.topicmaps.org/iso13250/model/type-instance</Identifier>
</Identifiers>
</Type>
<Scope />
<Roles>
<Role Id="6bb8e97c-ad0a-469f-8578-e77e2b383e27">
<Player Address="http://localhost/web3/topicmaps/e518129d-b458-4171-99cc-5e4941dafc7b/topics/2a8a2182-f8b7-427a-9f7f-ef206b775606">
<Labels>
<Label Lang="en-gb">Harrison Ford</Label>
</Labels>
<Identifiers />
</Player>
<Type Address="http://localhost/web3/topicmaps/e518129d-b458-4171-99cc-5e4941dafc7b/topics/65239824-ebdb-4f14-bd10-7bc66ffb772e">
<Labels />
<Identifiers>
<Identifier Address="http://localhost/web3/topicmaps/e518129d-b458-4171-99cc-5e4941dafc7b/topics/65239824-ebdb-4f14-bd10-7bc66ffb772e/identifiers/a9cbb6c7-7729-4834-bc0d-cba517ad4672" IdentifierType="si">http://psi.topicmaps.org/iso13250/model/instance</Identifier>
</Identifiers>
</Type>
</Role>
<Role Id="82cf9263-4951-4c0f-a536-e940ce9f17f0">
<Player Address="http://localhost/web3/topicmaps/e518129d-b458-4171-99cc-5e4941dafc7b/topics/5c3c037f-0c13-457e-b177-fa3328d13370">
<Labels>
<Label Lang="en-gb">Person</Label>
</Labels>
<Identifiers>
<Identifier Address="http://localhost/web3/topicmaps/e518129d-b458-4171-99cc-5e4941dafc7b/topics/5c3c037f-0c13-457e-b177-fa3328d13370/identifiers/32fafe54-0363-4e3a-bb3b-f8a565fc7e26" IdentifierType="ii">http://localhost/web3/schemas/0df562f3-f86b-4fbb-a4d3-66679f2df0fa/types/16f22191-5fd7-4f15-8014-f4fc28b1563e</Identifier>
<Identifier Address="http://localhost/web3/topicmaps/e518129d-b458-4171-99cc-5e4941dafc7b/topics/5c3c037f-0c13-457e-b177-fa3328d13370/identifiers/5ab286fc-3e7b-43bd-949f-1766860fb2f3" IdentifierType="si">http://www.myfilms.com/types/person</Identifier>
</Identifiers>
</Player>
<Type Address="http://localhost/web3/topicmaps/e518129d-b458-4171-99cc-5e4941dafc7b/topics/e3746d43-ce02-45c5-9d2d-c244fcbbd9e3">
<Labels />
<Identifiers>
<Identifier Address="http://localhost/web3/topicmaps/e518129d-b458-4171-99cc-5e4941dafc7b/topics/e3746d43-ce02-45c5-9d2d-c244fcbbd9e3/identifiers/d3d79a3b-84fc-433a-8251-306a8bcc3e74" IdentifierType="si">http://psi.topicmaps.org/iso13250/model/type</Identifier>
</Identifiers>
</Type>
</Role>
</Roles>
<Identifiers />
</Association>
</Items>
</AssociationList>
So the key things we wanted to do was to create a set of content types that along with a description allowed a client to interact with a Topic Map without the need to refer to or know how to generate ANY URIs.
The examples above have shown how we have updated the core TMDM items, topic, association, occurrence etc to be better REST citizens, and we have also introduced new resources for collections of things in the topic map model. These collections are key to connecting together the basic topic map building blocks.
The full content type descriptions, including update semantics, are available as part of the Web3 Documentation which can be downloaded from http://www.networkedplanet.com/Products/Web3/
We also recently posted about how we support transactions in a RESTful way. This can be seen here.
Web3 Platform Video – Getting Started No 1.
We are putting together a series of short videos that show how to do different things with the Web3 Platform and Concepts for SharePoint. The first of these videos, Web3 Platform Getting Started No 1. is now available.
The Web3 Platform is a complete data driven environment. This means that with no code you can create a data model and immediately begin to add data either through the generated UI or via the RESTful interface. The first video shows how to create a simple schema using the Silverlight editor and then create topics and associations through the schema driven editor.
Concepts for SharePoint 1.1 now available
Version 1.1 of Concepts for SharePoint is now available. This package addresses a small number of bugs and enhancements. The full change list and upgrade instructions can be found below.
The Concepts for SharePoint package can be downloaded from the NetworkedPlanet download page.
Upgrading from 1.0
------------------
To upgrade from 1.0, unzip the download package and run the STSADM -upgradesolution command. The exact command-line you use will depend on how you want to schedule the upgrade, but will be similar to:
stsadm -o upgradesolution -name ConceptsForSharePoint.wsp -filename ConceptsForSharePoint.wsp -allowgacdeployment -local
Restart IIS and the SharePoint 2010 Timer Service
If running CfS on a separate server to that of the Web3 Platform, you will also need to upgrade the additional web3.wsp file contained in the upgrade package and restart the services.
Change Log
----------
BUGFIX: Query amended to ensure sure that deleted associations whose roles still exist do not get returned in the results of the One Hop Web Part.
FEATURE: New Topic List Web Part renders gridview of topics of type, with custom propertie to show occurrences and/or identifiers in the results set.
DOCS: Amended documentation error that specified the wrong format for message
queues on remote machines.
LOGGING: Additional logging added to make it clear if there has been a security problem when activating the feature through the GUI.
BUGFIX: Documents were not being returned in the content query web parts along with list items.
ENHANCEMENT: Allowed sparql results to be picked up and used by classes which inherit from web parts doing SPARQL queries.
BUGFIX: Null reference exception for starting topic when first adding a TopicInformationWebPart to a page
DOCS: Added full documentation of the NetworkedPlanet.Web3.SharePoint.WebParts class
BUGFIX: Fixed error that was reported about thread aborted after setting topic map in CfS site settings
BUGFIX: template mapping bug fix
BUGFIX: Privileges error fixed when deriving from the BaseTopicWebPart
BUGFIX: adding a second label for a newly installed language pack had a bug which was causing the additional label(s) not to be added to the topic term
BUGFIX: Fixed bug that was causing the SPARQL web part not to render any content in certain situations
BUGFIX: content query web parts were displaying unhelpful error if the topic map had not yet been synchronised with the term store
SharePoint Module 3.2 Hotfix 2 now available
A new hotfix package is available for version 3.2 of the TMCore SharePoint Module. This package addresses a single referencing error in Hotfix 1.
Systems Affected
This hotfix should be applied to any installation of the TMCore SharePoint Module 3.2 downloaded before 1st September 2010. If you downloaded your copy of the software from our site on or after this date, the hotfix is included in the package and you do not need to apply it again.
To determine if your system is affected, check the File Version property of the assembly NetworkedPlanet.SharePoint in the GAC (browse to C:\Windows\ASSEMBLY, locate the NetworkedPlanet.SharePoint assembly, right-click and choose Properties. The File Version can be found on the Version tab above Description and Copyright). This hotfix updates the File Version of the NetworkedPlanet.SharePoint assembly to 2.2.2.0 - if the file version shown is greater than or equal to 2.2.2.0, then you do not need to apply this hotfix.
Upgrade Instructions
1. Download the hotfix 2 package for SharePoint 2007 or SharePoint 2010.
2. The package is provided in a compressed ZIP file. Unzip the package on a machine in the server farm.
3. Upgrade the NPSharePoint.wsp solution. The exact command-line you use will depend on how you want to schedule the upgrade, but will be similar to:
stsadm -o upgradesolution -name NPSharePoint.wsp -filename NPSharePoint.wsp -allowgacdeployment -allowcaspolicies -local
4. Upgrade the NPOfficeServer.wsp solution. Use the following STSADM command:
stsadm -o upgradesolution -name NPOfficeServer.wsp -filename NPOfficeServer.wsp -allowgacdeployment -allowcaspolicies -local
5. Restart IIS and Windows SharePoint Services Timer
Change Log
BUGFIX: Error in version numbers of referenced assemblies
SharePoint Module 3.2 Hotfix 1 now available
A new hotfix package is available for version 3.2 of the TMCore SharePoint Module. This package addresses a small number of bugs and enhancements. The full change list can be found below.
Systems Affected
This hotfix should be applied to any installation of the TMCore SharePoint Module 3.2 downloaded before 20th August 2010. If you downloaded your copy of the software from our site on or after this date, the hotfix is included in the package and you do not need to apply it again.
To determine if your system is affected, check the File Version property of the assembly NetworkedPlanet.SharePoint in the GAC (browse to C:\Windows\ASSEMBLY, locate the NetworkedPlanet.SharePoint assembly, right-click and choose Properties. The File Version can be found on the Version tab above Description and Copyright). This hotfix updates the File Version of the NetworkedPlanet.SharePoint assembly to 2.2.1.0 - if the file version shown is greater than or equal to 2.2.1.0, then you do not need to apply this hotfix.
Upgrade Instructions
1. Download the hotfix 1 package for SharePoint 2007 or SharePoint 2010.
2. The package is provided in a compressed ZIP file. Unzip the package on a machine in the server farm.
3. Upgrade the NPSharePoint.wsp solution. The exact command-line you use will depend on how you want to schedule the upgrade, but will be similar to:
stsadm -o upgradesolution -name NPSharePoint.wsp -filename NPSharePoint.wsp -allowgacdeployment -allowcaspolicies -local
4. Upgrade the NPOfficeServer.wsp solution. Use the following STSADM command:
stsadm -o upgradesolution -name NPOfficeServer.wsp -filename NPOfficeServer.wsp -allowgacdeployment -allowcaspolicies -local
5. Restart IIS and Windows SharePoint Services Timer
Change Log
ENHANCEMENT: Stored procedures for OneHop and TwoHop Query Web Parts were updated toimprove concurrency. There was no change to the interfaces for these stored procedures.
ENHANCEMENT: An optional property can now be used to delay processing of the profilescraper. The property sets a sleep period in milliseconds between each profile changebeing processed.
BUGFIX: Reduced the amount of SharePOint ItemUpdated events that are fired when an itemis deleted which is associated to other SharePoint items.
ENHANCEMENT: Optimised code to ensure references to the NPCL schema are usingcached schema whenever needed.
BUGFIX: Associated Topic Field Control was disposing of an active Web object
ENHANCEMENT: The profile scraper has been optimised to avoid unnecessary lookups ofuser topics in order to pass these topic ids to any custom profile scraper plug-ins.
Using PowerShell To POST Data to Web3
Sometimes it is useful to be able to use PowerShell to manipulate a Web3 instance - either because you are scripting a set of batch operations or because you are just in PS at the time and it saves swapping contexts.
POSTing data to a REST service with PS is really easy, the only small wrinkle with Web3 is the need to authenticate with the server. Assuming you are using the default Windows Authentication setup for your Web3 server, the following set of commands should get the job done:
$wc=New-Object System.Net.WebClient
$cred=Get-Credential
$wc.Credentials=$cred
$wc.UploadString($URI, $CONTENT)
The Get-Credential cmdlet will pop-up a dialog prompting for your username and password - if anyone knows of a way to avoid that please let me know! If you need to load the content from a file, use the Get-Content cmdlet.
Web3 and Concepts for SharePoint 1.0 Releases Now Available
We are very pleased to announce the immediate availability of the 1.0 release of our Web3 Platform and Concepts for SharePoint products.
The Web3 Platform is our "next-generation" structured information server built on the foundation of topic maps but with support for Linked Data standards including RDF and the SPARQL query language. The Web3 Platform provides a fully-featured REST API making it possible to create applications in almost any programming language and to quickly and easily integrate structured information into existing applications and websites. The Web3 service provides full support for the topic maps data model and support for browsing content as Linked Data RDF as well as providing a SPARQL endpoint that implements support for querying topic map data as RDF as well as querying at the detailed topic map data model level.
Concepts for SharePoint is simply the best way to organise, search for and find content on a SharePoint 2010 server. It integrates with and extends the taxonomy features of SharePoint 2010, allowing users to create richly interconnected data models that reflect the business in which they work. Unlike the tags in a standard SharePoint 2010 taxonomy, the concepts in Concepts for SharePoint can be made available as published pages complete with links to other concepts and to related content across the whole SharePoint server.
Both products are available for evaluation. Download them now!
Using HTTP Verbs to describe Server Side Transactions
One of the challenges of putting together a REST service is how to let clients make transactional updates that involve two or more resources. One approach to this problem is to create a resource that is 'a collection of transactions'. A client can post a representation of a new transaction to this resource. The transaction becomes a 'child' of the 'transactions' resource and can be accessed via a returned URL.
Making the transaction explicit is good as it allows the transaction to be addressed and its status checked, it also allows for the service to return immediately and process the transaction in the background.
This basic pattern is good but it has a drawback in that for each different system you build you need to define the transaction language.
Our solution to this is to use HTTP verbs, URIs and resource representations as the building blocks of our transaction language. A transaction representation contains a number of operations. Each operation contains information about its Method, e.g. POST, PUT, DELETE, the resource URI to operate on and the request body.
<transaction>
<operation id="a1" method="POST" Resource="http://...../somecollection">
<body><!-- resource representation --></body>
</operation>
.. more operations
</transaction>
The server processes a transaction by looking at each operation construct and operating on it as though the request has come from a client. The only difference is that all of the operations listed occur in a single transaction.
Each operation has a local id. When an operation completes the return URL from the operation is bound to that identifier. The identifier can then be used later in the transaction. This is especially useful when you want to create two new resources and then associate them together all in the same transaction.
After a transaction is processed the representation can be retrieved. The representation contains the URLs of newly created resources, as well as an errors information that occurred when processing the transaction.
This is a very powerful model that removes the need to create a domain specific transaction language for different applications, can reuse existing resource processing code and is very descriptive.
For more information about this approach, download and review the REST service documentation for the Web3 Platform
New NetworkedPlanet Support Forums
We have added new discussion forums for support questions about NetworkedPlanet products. We hope that by having more questions answered on these discussion groups we can help our customers find the answers to common issues more quickly. The old route for support (email to support@networkedplanet.com) also still works but we would encourage people to post questions to the forum wherever possible.
The forums are available at http://support.networkedplanet.com/
SharePoint Module 3.2 now available
NetworkedPlanet are pleased to annouce the release of version 3.2 of the TMCore SharePoint Module.
The TMCore SharePoint Module is a tight integration between Microsoft SharePoint and the TMCore information management server that greatly improves the way information is organised, classified and located with Microsoft SharePoint solutions.
This new release includes all the features and enhancements of the SharePoint Module 3.1 hotfix 6, and is packaged to be installed on either SharePoint 2007 or SharePoint 2010.
Any future hotfixes to the module will be released for version 3.2 and no further codebase changes will be made on version 3.1.
The new version is available as an upgrade for all customers with a current maintenance contract. For more information and download details please email us specifying the version of SharePoint that you will be installing the SharePoint Module on.