wiki-archive/twiki/data/TAPIR/ProposedChangesToAdvertiseM...

105 lines
4.6 KiB
Plaintext
Raw Normal View History

The current protocol schema advertises mapped concepts as part of the capabilities response. Here's the related part in the XML Schema:
<verbatim>
<xsd:element name="concepts">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="conceptNameServers">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="server" type="externalResourceType" maxOccurs="unbounded">
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="schema" maxOccurs="unbounded">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="mappedConcept" maxOccurs="unbounded">
<xsd:complexType>
<xsd:complexContent>
<xsd:extension base="qualifiedConceptReferenceType">
<xsd:attribute name="searchable" type="xsd:boolean" use="optional" default="true"/>
<xsd:attribute name="mandatory" type="xsd:boolean" use="optional" default="false"/>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
<xsd:attribute name="namespace" type="xsd:anyURI" use="required"/>
<xsd:attribute name="location" type="xsd:anyURI" use="required"/>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</verbatim>
The suggested changes to support semantic mapping are:
* Concepts are now classes, properties or relationships.
* Properties and relationships (associations) are defined inside classes.
* All types of concepts are defined under a single <mapping> element.
* The <schema> element (unbounded) was replaced by a <source> element, specifying only namespace and location for each ontology referenced by concepts in the <mapping>.
* Any mapped class, property or relationship must be defined in one of the source ontologies.
<verbatim>
<xsd:element name="concepts">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="conceptNameServers">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="server" type="externalResourceType" maxOccurs="unbounded">
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="source" maxOccurs="unbounded">
<xsd:complexType>
<xsd:attribute name="namespace" type="xsd:anyURI" use="required"/>
<xsd:attribute name="location" type="xsd:anyURI" use="required"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="mapping">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="class" maxOccurs="unbounded">
<xsd:complexType>
<xsd:complexContent>
<xsd:extension base="qualifiedConceptReferenceType">
<xsd:sequence>
<xsd:element name="property" maxOccurs="unbounded">
<xsd:complexType>
<xsd:complexContent>
<xsd:extension base="qualifiedConceptReferenceType">
<xsd:attribute name="searchable" type="xsd:boolean" use="optional" default="true"/>
<xsd:attribute name="mandatory" type="xsd:boolean" use="optional" default="false"/>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
</xsd:element>
<xsd:element name="relationship" maxOccurs="unbounded">
<xsd:complexType>
<xsd:complexContent>
<xsd:extension base="qualifiedConceptReferenceType">
<xsd:attribute name="myRole" type="xsd:string" use="required"/>
<xsd:attribute name="withClass" type="xsd:qualifiedConceptIdType" use="required"/>
<xsd:attribute name="othersRole" type="xsd:string" use="required"/>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</verbatim>