Strand Map Service

Concept Space Interchange Protocol Documentation

Faisal Ahmad - Boulder Learning Technologies Lab (BoLT), University of Colorado at Boulder.

The Concept Space Interchange Protocol (CSIP) provides programmatic access to the concept map repository. The service provides a rich search API and gives full access to the concept map metadata. Developers can use the CSIP to dynamically generate concept maps, fragment of concept maps and search digital library resources supporting concept maps. The service supports textual as well as navigational searching over the concept maps. Developers can use features of textual search to search appropriate concepts, list of concepts, concept maps and concept maps fragments. The navigational search allows for searching using relationships between concepts e.g. what is the pre-requisite to a given concept. The concept maps can be access in a number of formats e.g. XML, OWLLite, SVG, PDF, PNG, TIFF, and JPEG.

Currently, the service contains maps from the Atlas of Science Literacy published by the American Association for the Advencement of Science (AAAS), Project 2061. You can browse these concept maps, or benchmarks, here. Additional concept maps will be added to the service in the future.

The Web service requests and responses are described in detail below and examples are provided for reference by developers.

Thanks to Tammy Sumner, Greg Janee, Mike Wright, John Weatherley, Sonal Bhushan, Sebastian de la Chica, Qianyi Gu and other BoLT, DLESE, AAAS Project 2061 and ADEPT collaborators who contributed directly or indirectly to the design and testing of this service. The design of this service was greatly informed by the work of the Alexandria Digital Library Gazetteet Protocol and DLESE Search Web Service.


Definitions and concepts

CSIP is a REpresentational State Transfer (REST) style Web service. In REST style Web service architectures, requests are typically encoded as a URL and responses are returned as XML. This is the case with CSIP.

More formally: CSIP requests are expressed as HTTP argument/value pairs. These requests must be in either GET or POST format. Responses are returned in XML format, which varies in structure and content depending on the request.

  • Base URL - the base URL used to access the Web service. This is the portion of the request that precedes the request arguments. For example http://strandmaps.dls.ucar.edu/cms1-2.
  • Request arguments - the argument=value pairs that make up the request and follow the base URL.
  • CSIP response envelope - the XML container used to return data. This container returns different types of data depending on the request made.

HTTP request formats


CSIP request can be made by using three different HTTP formats:

  • HTTP GET Method - This request format consists of the base URL followed by the one of the service requests literal. Some of the service request literals are followed by ? character which is appended with key=value pairs. If more than one key value pairs are required by the service request then the key=value pairs are concatenated by an & symbol.
  • HTTP POST Method 1 - This request format consists of the base URL followed by the one of the service requests literal. The key=value pairs are embedded in the body of the request
  • HTTP POST Method 2 - This request format consists of the base URL followed by the one of the service requests literal. No key=value pair is used in this kind of request but the value is directly embedded in the request.

CSIP requests and responses

This section defines the available requests.


The HTTP request format has the following canonical structure: [base URL]/request.


For example:

    http://strandmaps.dls.ucar.edu/cms1-2/ServiceDescription

Summary of available requests:

ServiceDescription - Retrieves the capabilities of CSIP server and along with the version number.

SubmitResource - Allow clients to submit a examplary resources useful for teaching and learning a concept in the concept map repository.

RegisterQuery - Enable clients to associate search query strings with concepts.

Query - Allows a client to search through concept maps and reterieve the matching concept maps in a number of formats.



ServiceDescription

Sample request

The following request get the CSIP server capabalities and version information:

http://strandmaps.dls.ucar.edu/cms1-2/ServiceDescription

Summary and usage

This request allows a clinet to determine the capabilities of the CSIP server. Clients can dynamic discovery available features of a CSIP server and tailor their behavior accordingly. This service request is also useful in a client is dealing with multiple CSIP servers which have varying capabilities.

Arguments

This service request does not take any arguments.

Errors and exceptions

Error will only be reported if the literal is not spelled correctly.

Examples

Request

Get the CSIP server capabilities

    http://strandmaps.dls.ucar.edu/cms1-2/ServiceDescription

Response

			
<SMS-CSIP>
 <ServiceDescriptionResponse>

  <Version majorNo="1" minorNo="0">Concept Map Service Server</Version>
		
  <SupportedConfigurations>
   <Configuration>Skeleton</Configuration>
   <Configuration>Detailed</Configuration>
  </SupportedConfigurations>
	
  <SupportedQueryTypes>
   <Query>Content-Query</Query>
   <Query>Navigational-Query</Query>
   <Query>ASNLookup-Query</Query>
  </SupportedQueryTypes>

  <SupportedOperators>
   <Operator>Logical</Operator>
   <Operator>Relational</Operator>
  </SupportedOperators>
	
  <SupportedReplyFormats>
   <Format>SMS</Format>
   <Format>SMS-JSON</Format>
   <Format>SVG</Format>
   <Format>SVG-JSON</Format>   
   <Format>JPEG</Format>
   <Format>PNG</Format>
   <Format>TIFF</Format>
   <Format>PDF</Format>
   <Format>OWLLite</Format>
  </SupportedReplyFormats>
	
  <SupportedLibrarySearch>
   <Library>Google XML</Library>
   <Library>DLESE</Library>
   <Library>NSDL XML</Library>
   <Library>Harvard Smithsonian</Library>
   <Library>DLESE XML</Library>
  </SupportedLibrarySearch>
		
  <SupportedExtensions/>
		
 </ServiceDescriptionResponse>
	
</SMS-CSIP>


SubmitResource

Sample request

The following request sends an email to the AAAS personnel suggesting an examplary resource for teaching a concept:

http://strandmaps.dls.ucar.edu/cms1-2/SubmitResource?ObjectID=SMS-BMK-1201&Resource=http://www.usd.edu/esci/exams/earthquakes.html&email=fahmad@colorado.edu

Summary and usage

The SubmitResource request can be used by clients to contribute examplary resources. These examplary resources will become available to a wide range of digital libraries using the CSIP web-service.

Arguments

  • ObjectID - A mandatory argument that should contain the value of CSIP identifier in appropriate format.
  • Resource - A mandatory argument that should contain the URL of the web-resource.
  • email - A mandatory argument that specifies clients email address.

Errors and exceptions

Error is indicted if the request does not have the mandatory arguments or ObjectID does not follow the CSIP format.

Examples

Request

Submit an examplary resource for ingestion into CSIP

    http://strandmaps.dls.ucar.edu/cms1-2/SubmitResource?ObjectID=SMS-MAP-1200&Resource=http://soils.ag.uidaho.edu/soilorders/index.htm&email=fahmad@colorado.edu

Response

A confirmation email is sent to the client.


RegisterQuery

Sample request

The following request registers a digital library query with CSIP using HTTP GET method:

http://strandmaps.dls.ucar.edu/cms1-2/RegisterQuery?RegisterQuery=<SMS-CSIP xmlns="http://sms.dlese.org" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <RegisterQuery CharacterEncoding="UTF-8"> <Functional> <Operation>Add Query String</Operation> <PublishName>SAMPLE-TEST</PublishName> <AuthenticationCode>Hello World</AuthenticationCode> <QueryString>s<Group Repeat=" OR ">\"<Subjects Delimiter=" " Paran="false"></Subjects>\"</Group> <Group Repeat=" ">\"<Keywords Delimiter=" " Paran="false"></Keywords>\"</Group></QueryString> <ObjectType>Benchmark</ObjectType> </Functional> </RegisterQuery> </SMS-CSIP>

The above mentioned request can also be made using HTTP POST method in two ways:


  • Using a key=value pair - The key should be RegisterQuery and value will be the above mentioned XML fragment.
  • Without using a key=value pair - In this senario the above mentioned XML fragment can be directly included in the body of post method request.

Summary and usage

The RegisterQuery request can be used by clients to register custom queries to a concept, lookup already registered queries, update an already registered query, and search for registered queries. When registering a query the client specifies a meta-query which get expanded when the concept map is returned to the client. The meta-query specifies query expansion rules using data from the concept map metadata.

Schema

The schema gives the rules for constructing the RegisterQuery request. Click here to see RegisterQuery schema type

Arguments

  • RegisterQuery - If using HTTP GET this key is mandatory. For HTTP POST method this key is optional.

Register Query Options

  • SeeAllQueries - A client can get the list of registered queries using this option
  • Lookup - A clinet can search for a query already registered
  • Functional - This operation can be used by a client to add a new query string or update a previsouly added query string.
  • Authentication - This operation is used to change password of a registered query.
  • Admin - A client can use this option to delete, enable and disable a registered query

Examples

1.
SeeAllQueries - Gets the list of registered queries
Request
<SMS-CSIP xmlns="http://sms.dlese.org" xmlns:xsi=
"http://www.w3.org/2001/XMLSchema-instance"> <RegisterQuery CharacterEncoding="UTF-8"> <SeeAllQueries> <Operation>List</Operation> </SeeAllQueries> </RegisterQuery> </SMS-CSIP>
Response
<?xml version="1.0"?>
<SMS-CSIP xmlns="http://sms.dlese.org">
 <QueryRegistrationResponse>
  <Result>Success</Result>
  <Messege>Found DL queries</Messege>
  <DLQuery>
   <PublishedName>DLESE</PublishedName>
   <QueryHost/>
   <QueryString>start?query=(<Group Repeat="+OR+"
>contentStandard:"<StandardName></StandardName> ... <Status>Enable</Status> <ObjectType>Benchmark</ObjectType> </DLQuery> <DLQuery> <PublishedName>DLESE XML</PublishedName> <QueryHost>http://www.dlese.org
</QueryHost> <QueryString>/dds/services/ddsws1-0?verb=Search
&q=(<Group Repeat="+OR+">contentStandard:"<StandardName> ... <Status>Enable</Status> <ObjectType>Benchmark</ObjectType> </DLQuery> <DLQuery> <PublishedName>Google XML</PublishedName> <QueryHost/> <QueryString><Group Repeat
=" OR ">"<
Subjects Delimiter=" " Paran="false"></Subjects>"</Group> ... <Status>Enable</Status> <ObjectType>Benchmark</ObjectType> </DLQuery> ... </SMS-CSIP>

2.
Lookup - Search for a registered Query
Request
<SMS-CSIP xmlns="http://sms.dlese.org" xmlns:xsi=
"http://www.w3.org/2001/XMLSchema-instance"> <RegisterQuery CharacterEncoding="UTF-8"> <Lookup> <Operation>Find</Operation> <Term>NSDL</Term> </Lookup> </RegisterQuery> </SMS-CSIP>
Response
<?xml version="1.0"?>
<SMS-CSIP xmlns="http://sms.dlese.org">
 <QueryRegistrationResponse>
  <Result>Success</Result>
  <Messege>Found DL queries</Messege> 
  <DLQuery>
   <PublishedName>NSDL XML</PublishedName>
   <QueryHost/>
   <QueryString>require(and(and(<GradeRanges 
Delimiter=" "
Paran="false"></GradeRanges>
" " " ") and ... <Status>Enable</Status> <ObjectType>Benchmark</ObjectType> </DLQuery> </QueryRegistrationResponse> </SMS-CSIP>
  • Term - The content of the this element can be changed for searching registered queries.

3.
Functional - This operation can be used to add a new query string or update a previsouly added query string.
Request
<SMS-CSIP xmlns="http://sms.dlese.org" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <RegisterQuery CharacterEncoding="UTF-8"> <Functional> <Operation>Add Query String</Operation> <PublishName>HS</PublishName> <AuthenticationCode>HSDVL
</AuthenticationCode> <QueryString>/results.php?smsid=<IDNumber>
</IDNumber></QueryString> <ObjectType>ALL</ObjectType> <QueryHost>www.hsdvl.org</QueryHost> </Functional> </RegisterQuery> </SMS-CSIP>
Response
<?xml version="1.0"?>
<SMS-CSIP xmlns="http://sms.dlese.org">
 <QueryRegistrationResponse>
  <Result>Success</Result>
  <Messege>Query Registered successfully
</Messege> </QueryRegistrationResponse> </SMS-CSIP>
  • Operation - Defines what this request is going to achieve. I can take two values:
    • Add Query String - this option addes a new query string to CSIP registered query database.
    • Update Query String - this options is used to modify an already registered query string.
  • PublishName - This is the name through which a registered query can be accessed.
  • AuthenticationCode - The password that can be used later on to update or remove a registered query.
  • QueryString - The meta-query string that defines template for instentiating an actual query string.
    The syntax of the query string is given in the schema section.
  • ObjectType - The object type to which the query string is bound. Following object types are possible:
    • ALL
    • Atlas
    • Benchmark
    • Chapter
    • Cluster
    • Grade group
    • Map
    • Science for all americans paragraph
    • Section
    • Strand
  • QueryHost - An optional element used to define the query host

4.
Authentication - This operation is used to change password of a registered query.
Request
<?xml version="1.0"?>
<SMS-CSIP xmlns="http://sms.dlese.org">							
 <RegisterQuery CharacterEncoding="UTF-8">
  <Authentication>
  <Operation>Change Authentication Code
</Operation> <PublishName>HS</PublishName> <AuthenticationCode>HSDVL
</AuthenticationCode> <NewAuthenticationCode>DLB
</NewAuthenticationCode> </Authentication> </RegisterQuery> </SMS-CSIP>
Response
<?xml version="1.0"?>
<SMS-CSIP xmlns="http://sms.dlese.org">
 <QueryRegistrationResponse>
  <Result>Success</Result>
  <Messege>Authentication code changed successfully
</Messege> </QueryRegistrationResponse> </SMS-CSIP>
  • Operation - Defines what this request is going to achieve.
  • PublishName - Name of the registered query.
  • AuthenticationCode - Old password for the registered query.
  • NewAuthenticationCode - New password for the registered query.

5.
Admin - This operation is used to remove or change status of a registered query.
Request
<SMS-CSIP xmlns="http://sms.dlese.org" xmlns:xsi=
"http://www.w3.org/2001/XMLSchema-instance"> <RegisterQuery CharacterEncoding="UTF-8"> <Admin> <Operation>Disable</Operation> <PublishName>HS</PublishName> <AuthenticationCode>HSDVL
</AuthenticationCode> </Admin> </RegisterQuery> </SMS-CSIP>
Response
<?xml version="1.0"?>
<SMS-CSIP xmlns="http://sms.dlese.org">
 <QueryRegistrationResponse>
  <Result>Success</Result>
  <Messege>HS Query Disabled</Messege>
 </QueryRegistrationResponse>
</SMS-CSIP>
  • Operation - Defines what this request is going to achieve. Possible operations are:
    • Enable
    • Disable
    • Remove


Errors and exceptions

Error is indicted if the request does not conform to RegisterQuery schema.

Query

Sample request

The following request send a query to searh for concept maps in the repository:

http://strandmaps.dls.ucar.edu/cms1-2/Query?Query=<SMS-CSIP xmlns="http://sms.dlese.org" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><Query><Content-Query><Term>Ocean floor</Term></Content-Query></Query></SMS-CSIP>


The above mentioned request can also be made using HTTP POST method in two ways:

  • Using a key=value pair - The key should be Query and value will be the above mentioned XML fragment.
  • Without using a key=value pair - In this senario the above mentioned XML fragment can be directly included in the body of post method request.

Summary and usage

The Query request can be used by clients to search through concept maps and retrieve concept maps in different formats.

Schema

The schema gives the rules for constructing the Query request. Click here to see Query schema type

Arguments

  • Query - If using HTTP GET this key is mandatory. For HTTP POST method this key is optional.

Query Options

  • Content-Query - A client can use this query type to search through the concept map metadata.
  • Navigational-Query - A client can use this query type to look for concepts that are related to other concepts.
  • ASNLookup-Query - A client can use this query type to look for the SMS Benchmark ID that corresponds to a provided ASN ID, if available.

Query Element Attributes

  • Color - Color of the concept nodes in graphical representation of concept map. The default value is skyblue. This attribute is only useful when the response format request is SVG, PNG, TIFF, or JPEG.
  • DetailLevel - Using this attribute a client can decide on amount of metadata retrieved for a concept. This attribute is only useful if the response type is either SMS or OWLLite. This attribute can take two values:
    • Skeleton (default)
    • Detailed
  • Format - The response format for concept maps. It can take following values:
    • SMS (Default)
    • SMS-JSON
    • SVG
    • SVG-JSON
    • PDF
    • JPEG
    • TIFF
    • PNG
    • OWLLite
    The response format values can also be combined to set a preference order. For example, the response format might look like: PDF+SMS. In this case the server will attempt to return a PDF representation of the concept map, but if it fails to do so it will return the concept map data in SMS format.
  • Scope - It can be used to optimize the query search performance. Given an object type in scope, the search will restrict itself to just that object type and will not look into other object types. Following scope values are possible:
    • ALL (Default)
    • Atlas
    • Benchmark
    • Chapter
    • Cluster
    • Grade group
    • Map
    • Science for all americans paragraph
    • Section
    • Strand
    A combination of these values are possible e.g, Chapter+Map
  • ThirdPartyQuery - Using this attribute a client can get a query string for some digital library for a concept. To get a query string the value must match some registered query published name.
  • ImageScale - Scale of the returned map image if graphical format other than SVG is used. Its value can range between 1-200 (1 percent to 200 percent)
  • ConceptSize - Size of the concept boxes. Its value can range between 1-6, i being the smallest and 6 being the largest.

Examples

1.
This query looks for all the concepts that have Ocean floor in their full text component of the metadate record.
Request
<SMS-CSIP xmlns="http://sms.dlese.org">
 <Query Color="skyblue" DetailLevel="Skeleton" 
Format="SMS" Scope="ALL" ThirdPartyQuery="DLESE"> <Content-Query> <FullText MatchType="Contains-all-words">
Ocean floor</FullText> </Content-Query> </Query> </SMS-CSIP>
Response
<?xml version="1.0" encoding="UTF-8"?>
<SMS-CSIP xmlns="http://sms.dlese.org">
 <QueryResponse>
  <SMS Number="4">
   <Record>
    <itemRecord xmlns="http://sms.dlese.org" xmlns:xsi=
"http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://sms.dlese.org
http://www.dlese.org/Metadata/strandmaps/0.1.01/
Record.xsd"> <Data> <Name>Earthquakes
often occur along the
boundaries</Name> <ObjectType>benchmark</ObjectType> <AAASCode>4C/H5</AAASCode> <InternalRelationship> <CatalogID CatalogNumber=
"SMS-BMK-0027"
RelationType="Contributes to achieving"/> <CatalogID CatalogNumber=
"SMS-BMK-0034"
RelationType="Contributes to achieving"/> <CatalogID CatalogNumber=
"SMS-GRD-0045"
RelationType="Is Part Of"/> <CatalogID CatalogNumber=
"SMS-GRD-0047"
RelationType="Is Part Of"/> <CatalogID CatalogNumber=
"SMS-STD-0036"
RelationType="Is Part Of"/> <CatalogID CatalogNumber=
"SMS-STD-0041"
RelationType="Is Part Of"/> <CatalogID CatalogNumber=
"SMS-STD-0055"
RelationType="Is Part Of"/> </InternalRelationship> </Data> <Admin> <IDNumber>SMS-BMK-0025</IDNumber> </Admin> <DLQueries> <Query DLName="DLESE">start?query=(
contentStandard:%22nses:5-8:Content%20Standard%20D%20Earth%20and%20... </DLQueries> </itemRecord> </Record> <Record> ...
  • The MatchType attribute can have four values:
    • Contains-all-words
    • Contains-any-word
    • Contains-phrase
    • Equals
  • Elements other than FullText can also be used to searching. For other possible elements please see the query schema.

2.
This query looks for all the concepts that have any of the following words wind, energy or waves. This
Term elements searches for the text in every element of the metadata record.
Request
<SMS-CSIP xmlns="http://sms.dlese.org">
 <Query Color="skyblue" DetailLevel="Skeleton" 
Format="SMS" Scope="ALL"> <Content-Query> <Term MatchType="Contains-any-word">Wind energy waves
</Term> </Content-Query> </Query> </SMS-CSIP>
Response
<SMS-CSIP xmlns="http://sms.dlese.org">
 <QueryResponse>
  <SMS Number="4">
   <Record>
    <itemRecord xmlns="http://sms.dlese.org" xmlns:xsi=
"http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://sms.dlese.org http:
//www.dlese.org/Metadata/strandmaps/0.1.01/
Record.xsd"> <Data> <Name>Earthquakes often occur along the
boundaries</Name> <ObjectType>benchmark</ObjectType> <AAASCode>4C/H5</AAASCode> <InternalRelationship> <CatalogID CatalogNumber="SMS-BMK-0027"
RelationType="Contributes to achieving"/> <CatalogID CatalogNumber="SMS-BMK-0034"
RelationType="Contributes to achieving"/> <CatalogID CatalogNumber="SMS-GRD-0045"
RelationType="Is Part Of"/> <CatalogID CatalogNumber="SMS-GRD-0047"
RelationType="Is Part Of"/> <CatalogID CatalogNumber="SMS-STD-0036"
RelationType="Is Part Of"/> <CatalogID CatalogNumber="SMS-STD-0041"
RelationType="Is Part Of"/> <CatalogID CatalogNumber="SMS-STD-0055"
RelationType="Is Part Of"/> </InternalRelationship> </Data> <Admin> <IDNumber>SMS-BMK-0025</IDNumber> </Admin> </itemRecord> </Record> <Record> <itemRecord xmlns="http://sms.dlese.org"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" ...

3.
This query looks for all the concepts that has the word earthquakes in its name and has Contributes to
achieving
a relationship to another concept i.e. SMS-BMK-0009.
Request
<SMS-CSIP xmlns="http://sms.dlese.org" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" > <Query> <Content-Query> <AND> <Name MatchType="Contains-phrase">Earthquakes
</Name> <InternalRelationships> <InternalRelationship Relation="Contributes to
achieving" Object="SMS-BMK-0009"/> </InternalRelationships> </AND> </Content-Query> </Query> </SMS-CSIP>
Response
<?xml version="1.0" encoding="UTF-8"?>
<SMS-CSIP xmlns="http://sms.dlese.org">
 <QueryResponse>
  <SMS Number="1">
   <Record>
    <itemRecord xmlns="http://sms.dlese.org" xmlns:xsi=
"http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://sms.dlese.org http:
//www.dlese.org/Metadata/strandmaps/0.1.01/
Record.xsd"> <Data> <Name>Earthquakes often occur along the
boundaries</Name> <ObjectType>benchmark</ObjectType> <AAASCode>4C/H5</AAASCode> <InternalRelationship> <CatalogID CatalogNumber="SMS-BMK-0027"
RelationType="Contributes to achieving"/> <CatalogID CatalogNumber="SMS-BMK-0034"
RelationType="Contributes to achieving"/> <CatalogID CatalogNumber="SMS-GRD-0045"
RelationType="Is Part Of"/> <CatalogID CatalogNumber="SMS-GRD-0047"
RelationType="Is Part Of"/> <CatalogID CatalogNumber="SMS-STD-0036"
RelationType="Is Part Of"/> <CatalogID CatalogNumber="SMS-STD-0041"
RelationType="Is Part Of"/> <CatalogID CatalogNumber="SMS-STD-0055"
RelationType="Is Part Of"/> </InternalRelationship> </Data> <Admin> <IDNumber>SMS-BMK-0025</IDNumber> </Admin> </itemRecord> </Record> </SMS> </QueryResponse> </SMS-CSIP>

4.
This query looks for all the concepts that has any relationship to another concept identified by SMS-BMK-0027
and any relationship to strand identfied by SMS-STD-0109.
Request
<SMS-CSIP xmlns="http://sms.dlese.org">
 <Query DetailLevel="Skeleton" Color="skyblue" 
Format="SMS" Scope="ALL" ThirdPartyQuery=""> <Content-Query> <InternalRelationships> <InternalRelationship Relation="Any" Object=
"SMS-BMK-0027"></InternalRelationship> <InternalRelationship Relation="Any" Object=
"SMS-STD-0109"></InternalRelationship> </InternalRelationships> </Content-Query> </Query> </SMS-CSIP>
Response
<SMS-CSIP xmlns="http://sms.dlese.org">
 <QueryResponse>
  <SMS Number="0"/>
 </QueryResponse>
</SMS-CSIP>
In this case it shows a not match => empty response

5.
This query retrieves a map and identified by SMS-MAP-1200, along with strands , grade groups and concepts that are part of the map.
Request
<SMS-CSIP xmlns="http://sms.dlese.org">
 <Query DetailLevel="Skeleton" Color="skyblue" 
Format="SMS" Scope="ALL" ThirdPartyQuery=""> <Content-Query> <ObjectID Depth="2">SMS-MAP-1200</ObjectID> </Content-Query> </Query> </SMS-CSIP>
Response
<SMS-CSIP xmlns="http://sms.dlese.org">
 <QueryResponse>
  <SMS Number="30">
   <Record>
    <itemRecord xmlns="http://sms.dlese.org" xmlns:xsi=
"http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http:
//sms.dlese.org http://www.dlese.org/Metadata/strandmaps/0.1.01/
Record.xsd"> <Data> <Name>People are more likely to believe your ideas</Name> <ObjectType>Benchmark</ObjectType> <AAASCode>9E/P1</AAASCode> <InternalRelationship> <CatalogID CatalogNumber="SMS-BMK-0652"
RelationType="Contributes to achieving"/> <CatalogID CatalogNumber="SMS-BMK-0772"
RelationType="Contributes to achieving"/> <CatalogID CatalogNumber="SMS-BMK-0845"
RelationType="Contributes to achieving"/> <CatalogID CatalogNumber="SMS-GRD-1203"
RelationType="is part of"/> ...

6.
This query finds all the concepts that are prerequisite for the concept identified by SMS-BMK-1235.
Request
<SMS-CSIP xmlns="http://sms.dlese.org">
 <Query DetailLevel="Skeleton" Color="skyblue" 
Format="SMS" Scope="ALL" ThirdPartyQuery=""> <Navigational-Query> <ObjectID>SMS-BMK-1235</ObjectID> <Relation> <Prerequisite/> </Relation> </Navigational-Query> </Query> </SMS-CSIP>
Response
<SMS-CSIP xmlns="http://sms.dlese.org">
 <QueryResponse>
  <SMS Number="4">
   <Record>
    <itemRecord xmlns="http://sms.dlese.org" xmlns:xsi=
"http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http:
//sms.dlese.org http://www.dlese.org/Metadata/strandmaps
/0.1.01/Record.xsd"> <Data> <Name>People are more likely to believe your ideas</Name> <ObjectType>Benchmark</ObjectType> <AAASCode>9E/P1</AAASCode> <InternalRelationship> <CatalogID CatalogNumber="SMS-BMK-0652"
RelationType="Contributes to achieving"/> <CatalogID CatalogNumber="SMS-BMK-0772"
RelationType="Contributes to achieving"/> <CatalogID CatalogNumber="SMS-BMK-0845"
RelationType="Contributes to achieving"/> <CatalogID CatalogNumber="SMS-GRD-1203"
RelationType="is part of"/> ...
Depth - This attribute is optional and default value is 0. The value of this attribute determines the deep of the
retrieval operation. The depth can be positive as well as negative. Please refer to CSIP object hierarchy for depth details.

7.
This query finds all the concepts that are post-requisite, contributes to achieving or contains the the concept
identified by SMS-BMK-1235.
Request
<SMS-CSIP xmlns="http://sms.dlese.org">
 <Query DetailLevel="Skeleton" Color="skyblue" 
Format="SMS" Scope="ALL" ThirdPartyQuery=""> <Navigational-Query> <ObjectID>SMS-BMK-1235</ObjectID> <Relation> <OR> <Contains/> <Post-Requisite/> <Contributes-to-achieving/> </OR> </Relation> </Navigational-Query> </Query> </SMS-CSIP>
Response
<SMS-CSIP xmlns="http://sms.dlese.org">
 <QueryResponse>
  <SMS Number="2">
   <Record>
    <itemRecord xmlns="http://sms.dlese.org" xmlns:xsi=
"http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http:
//sms.dlese.org http://www.dlese.org/Metadata/strandmaps/0.1.01/
Record.xsd"> <Data> <Name>Some changes are very slow</Name> <ObjectType>Benchmark</ObjectType> <AAASCode>9E/P1</AAASCode> <InternalRelationship> <CatalogID CatalogNumber="SMS-BMK-1235" RelationType="Contributes to achieving"/> <CatalogID CatalogNumber="SMS-GRD-1203" RelationType="is part of"/> ...

For detials about how to formulate queries please refer to Concept Space Interchange Protocol schema.

CSIP identifier format

According to Concept Space Interchange Protocol the CSIP identifier should followinw the following pattern: [Three letters]-[three letters]-[4 digits] e.g. SMS-CHP-1526

CSIP Object Hierarchy