Permalink
Fetching contributors…
Cannot retrieve contributors at this time
125 lines (109 sloc) 4.45 KB
<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns="http://www4.wiwiss.fu-berlin.de/ldif/"
elementFormDefault="qualified"
targetNamespace="http://www4.wiwiss.fu-berlin.de/ldif/">
<!-- root element, the three sub-nodes can appear in any order, but all have to appear nonetheless -->
<xs:element name="Sieve">
<xs:complexType>
<xs:sequence minOccurs="1" maxOccurs="1">
<xs:element ref="Prefixes" />
<xs:element ref="QualityAssessment" minOccurs="0"/>
<xs:element ref="Fusion" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<!-- PREFIXES -->
<!-- group of namespace prefixes -->
<xs:element name="Prefixes">
<xs:complexType>
<xs:sequence minOccurs="0" maxOccurs="unbounded">
<xs:element ref="Prefix" />
</xs:sequence>
</xs:complexType>
</xs:element>
<!-- A single namespace prefix, consists of an identifier and an URI -->
<xs:element name="Prefix">
<xs:complexType>
<xs:attribute name="id" type="xs:string"/>
<xs:attribute name="namespace" type="xs:anyURI"/>
</xs:complexType>
</xs:element>
<!-- QUALITY ASSESSMENT -->
<!-- Quality assessment parent element, contains at least one aggregate metric -->
<xs:element name="QualityAssessment">
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="AggregateMetric" />
<xs:element ref="AssessmentMetric" />
</xs:choice>
<xs:attribute name="name" type="xs:string"/>
<xs:attribute name="description" type="xs:string"/>
</xs:complexType>
</xs:element>
<!-- Aggregate metric, aggregates several single metrics -->
<xs:element name="AggregateMetric">
<xs:complexType>
<xs:sequence minOccurs="0" maxOccurs="unbounded">
<xs:element ref="AssessmentMetric" />
</xs:sequence>
<xs:attribute name="id" type="xs:string"/>
<xs:attribute name="class" type="xs:string"/>
</xs:complexType>
</xs:element>
<!-- Single assessment metric -->
<xs:element name="AssessmentMetric">
<xs:complexType>
<xs:sequence minOccurs="0" maxOccurs="1">
<xs:element ref="ScoringFunction" />
</xs:sequence>
<xs:attribute name="id" type="xs:string"/>
</xs:complexType>
</xs:element>
<!-- Scoring function. Uses the provenance graph to calculate a value, which is aggregated upstream -->
<xs:element name="ScoringFunction">
<xs:complexType>
<xs:sequence minOccurs="0" maxOccurs="unbounded">
<!-- everything in here gets passed to the scoring function class defined in the "class" parameter -->
<xs:any processContents="skip"/>
</xs:sequence>
<xs:attribute name="class" type="xs:string"/>
</xs:complexType>
</xs:element>
<!-- DATA FUSION -->
<!-- Fusion main element, can contain a list of Class definitions -->
<xs:element name="Fusion">
<xs:complexType>
<xs:sequence minOccurs="0" maxOccurs="unbounded">
<xs:element ref="Class" />
</xs:sequence>
<xs:attribute name="name" type="xs:string"/>
<xs:attribute name="description" type="xs:string"/>
</xs:complexType>
</xs:element>
<!-- RDF Class to be fused -->
<xs:element name="Class">
<xs:complexType>
<xs:sequence minOccurs="0" maxOccurs="unbounded">
<xs:element ref="Property" />
</xs:sequence>
<xs:attribute name="name" type="xs:string"/>
</xs:complexType>
</xs:element>
<!-- RDF Property to be fused -->
<xs:element name="Property">
<xs:complexType>
<xs:sequence minOccurs="0" maxOccurs="1">
<xs:element ref="FusionFunction" />
</xs:sequence>
<xs:attribute name="name" type="xs:string"/>
</xs:complexType>
</xs:element>
<!-- Specific fusion function to be used -->
<xs:element name="FusionFunction">
<xs:complexType>
<xs:attribute name="class" type="xs:string"/>
<xs:attribute name="metric" type="xs:string"/>
</xs:complexType>
</xs:element>
</xs:schema>