105 lines
4.6 KiB
Plaintext
105 lines
4.6 KiB
Plaintext
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>
|