<?xml version="1.0"?>
<!--
   Licensed to the Apache Software Foundation (ASF) under one or more
   contributor license agreements.  See the NOTICE file distributed with
   this work for additional information regarding copyright ownership.
   The ASF licenses this file to You under the Apache License, Version 2.0
   (the "License"); you may not use this file except in compliance with
   the License.  You may obtain a copy of the License at

        http://www.apache.org/licenses/LICENSE-2.0

   Unless required by applicable law or agreed to in writing, software
   distributed under the License is distributed on an "AS IS" BASIS,
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   See the License for the specific language governing permissions and
   limitations under the License.
-->
<rdf:RDF
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:protege="http://protege.stanford.edu/plugins/owl/protege#"
    xmlns:owl="http://www.w3.org/2002/07/owl#"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema#"
    xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
    xmlns="http://fise.iks-project.eu/ontology/"
  xml:base="http://fise.iks-project.eu/ontology/">
  <owl:Ontology rdf:about="">
    <rdfs:comment xml:lang="en">The FISE Enhancement Structure</rdfs:comment>
  </owl:Ontology>
  <owl:Class rdf:about="http://fise.iks-project.eu/ontology/TextAnnotation">
    <rdfs:subClassOf>
      <owl:Class rdf:about="http://fise.iks-project.eu/ontology/Enhancement"/>
    </rdfs:subClassOf>
    <rdfs:label xml:lang="en">Text Annotation</rdfs:label>
    <rdfs:comment xml:lang="en">A TextAnnotation</rdfs:comment>
  </owl:Class>
  <owl:Class rdf:about="http://fise.iks-project.eu/ontology/TopicAnnotation">
    <rdfs:comment xml:lang="en">A Topic Annotation</rdfs:comment>
    <rdfs:label xml:lang="en">Topic Annotation</rdfs:label>
    <rdfs:subClassOf>
      <owl:Class rdf:about="http://fise.iks-project.eu/ontology/Enhancement"/>
    </rdfs:subClassOf>
  </owl:Class>
  <owl:Class rdf:about="http://fise.iks-project.eu/ontology/ConfidenceLevel">
    <rdfs:comment xml:lang="en">Class for the four different confidence levels defined by this ontology (introduced with STANBOL-631)</rdfs:comment>
    <rdfs:label xml:lang="en">Confidence Level</rdfs:label>
  </owl:Class>
  <owl:Class rdf:about="http://fise.iks-project.eu/ontology/EntityAnnotation">
    <rdfs:label xml:lang="en">Entity Annotation</rdfs:label>
    <rdfs:comment xml:lang="en">An Entity Annotation</rdfs:comment>
    <rdfs:subClassOf>
      <owl:Class rdf:about="http://fise.iks-project.eu/ontology/Enhancement"/>
    </rdfs:subClassOf>
  </owl:Class>
  <owl:Class rdf:about="http://fise.iks-project.eu/ontology/Enhancement">
    <rdfs:comment xml:lang="en">An Enhancement</rdfs:comment>
    <rdfs:label xml:lang="en">Enhancement</rdfs:label>
  </owl:Class>
  <owl:ObjectProperty rdf:about="http://fise.iks-project.eu/ontology/entity-type">
    <rdfs:comment xml:lang="en">the types of the referenced entity</rdfs:comment>
    <rdfs:domain rdf:resource="http://fise.iks-project.eu/ontology/EntityAnnotation"/>
    <rdfs:range rdf:resource="http://www.w3.org/2000/01/rdf-schema#Class"/>
  </owl:ObjectProperty>
  <owl:DatatypeProperty rdf:about="http://fise.iks-project.eu/ontology/entity-label">
    <rdfs:domain rdf:resource="http://fise.iks-project.eu/ontology/EntityAnnotation"/>
    <rdfs:comment xml:lang="en">the label(s) of the referenced Entity</rdfs:comment>
  </owl:DatatypeProperty>
  <owl:FunctionalProperty rdf:about="http://fise.iks-project.eu/ontology/end">
    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
    <rdfs:comment xml:lang="en">The end char position of a selection within the text</rdfs:comment>
    <rdfs:label xml:lang="en">end</rdfs:label>
    <rdfs:domain rdf:resource="http://fise.iks-project.eu/ontology/TextAnnotation"/>
    <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#int"/>
  </owl:FunctionalProperty>
  <owl:FunctionalProperty rdf:about="http://fise.iks-project.eu/ontology/start">
    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
    <rdfs:comment xml:lang="en">The start char position of a selection within the text</rdfs:comment>
    <rdfs:label xml:lang="en">start</rdfs:label>
    <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#int"/>
    <rdfs:domain rdf:resource="http://fise.iks-project.eu/ontology/TextAnnotation"/>
  </owl:FunctionalProperty>
  <owl:FunctionalProperty rdf:about="http://fise.iks-project.eu/ontology/confidence-level">
    <rdfs:domain rdf:resource="http://fise.iks-project.eu/ontology/Enhancement"/>
    <rdfs:range rdf:resource="http://fise.iks-project.eu/ontology/ConfidenceLevel"/>
    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#ObjectProperty"/>
    <rdfs:label xml:lang="en">confidence level</rdfs:label>
    <rdfs:comment xml:lang="en">the level of confidence for this enhancement (introduced by STANBOL-631).</rdfs:comment>
  </owl:FunctionalProperty>
  <owl:FunctionalProperty rdf:about="http://fise.iks-project.eu/ontology/extracted-from">
    <rdfs:comment xml:lang="en">refers to the ContentItem this Enhancement was extracted from</rdfs:comment>
    <rdfs:label xml:lang="en">extracted from</rdfs:label>
    <rdfs:domain rdf:resource="http://fise.iks-project.eu/ontology/Enhancement"/>
    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#ObjectProperty"/>
  </owl:FunctionalProperty>
  <owl:FunctionalProperty rdf:about="http://fise.iks-project.eu/ontology/selected-text">
    <rdfs:domain rdf:resource="http://fise.iks-project.eu/ontology/TextAnnotation"/>
    <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
    <rdfs:label xml:lang="en">selected text</rdfs:label>
    <rdfs:comment xml:lang="en">the selected text</rdfs:comment>
    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
  </owl:FunctionalProperty>
  <owl:FunctionalProperty rdf:about="http://fise.iks-project.eu/ontology/entity-reference">
    <rdfs:domain rdf:resource="http://fise.iks-project.eu/ontology/EntityAnnotation"/>
    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#ObjectProperty"/>
    <rdfs:comment xml:lang="en">links to the URI of the referenced Entity</rdfs:comment>
    <rdfs:label xml:lang="en">entity reference</rdfs:label>
  </owl:FunctionalProperty>
  <owl:FunctionalProperty rdf:about="http://fise.iks-project.eu/ontology/confidence">
    <rdfs:label xml:lang="en">confidence</rdfs:label>
    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
    <rdfs:domain rdf:resource="http://fise.iks-project.eu/ontology/Enhancement"/>
    <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#float"/>
    <rdfs:comment xml:lang="en">The confidence of the enhancement</rdfs:comment>
  </owl:FunctionalProperty>
  <owl:FunctionalProperty rdf:about="http://fise.iks-project.eu/ontology/selection-context">
    <rdfs:comment xml:lang="en">The context of the selected text.</rdfs:comment>
    <rdfs:label xml:lang="en">selection context</rdfs:label>
    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
    <rdfs:domain rdf:resource="http://fise.iks-project.eu/ontology/TextAnnotation"/>
    <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
  </owl:FunctionalProperty>
  <ConfidenceLevel rdf:about="http://fise.iks-project.eu/ontology/cl-suggestion">
    <rdfs:comment xml:lang="en">Indicates that an Enhancement is not completly certain but there are not several options (e.g. Germans -&gt; Germany). Enhancements with this confidence level might or might not be used for automatic tagging workflows. However they can be typically suggested to users (introduced by STANBOL-631)</rdfs:comment>
    <rdfs:label xml:lang="en">suggestion</rdfs:label>
  </ConfidenceLevel>
  <ConfidenceLevel rdf:about="http://fise.iks-project.eu/ontology/cl-uncertain">
    <rdfs:label xml:lang="en">uncertain</rdfs:label>
    <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
    >Indicating that an Enhancement is rather speculative. Enhancements with this confidence level can be ignored by most usecases. However they might be processed by other Enhancements Engines (introduced by STANBOL-631)</rdfs:comment>
  </ConfidenceLevel>
  <ConfidenceLevel rdf:about="http://fise.iks-project.eu/ontology/cl-ambiguous">
    <rdfs:comment xml:lang="en">Indicates that an Enhancement is ambiguous with an other one. To be used in cases where there are several possibilities but it is likelly that one of those is the correct one (e.g. Paris, Paris (Texas)).
Enhancements with this confidence value typically need some kind of manual disambiguation step (introduced by STANBOL-631)</rdfs:comment>
    <rdfs:label xml:lang="en">ambiguous</rdfs:label>
  </ConfidenceLevel>
  <ConfidenceLevel rdf:about="http://fise.iks-project.eu/ontology/cl-certain">
    <rdfs:comment xml:lang="en">Indicates that an enhancement is very certain AND also not ambiguous. Enhancements with this confidence level can be usually accepped by annotation workfolws without manuall validation of resutls (introduced by STANBOL-631)</rdfs:comment>
    <rdfs:label xml:lang="en">Certain</rdfs:label>
  </ConfidenceLevel>
</rdf:RDF>

<!-- Created with Protege (with OWL Plugin 3.4, Build 128)  http://protege.stanford.edu -->
