Announcement

Collapse
No announcement yet.

OWL/RDFS: Coding

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • OWL/RDFS: Coding

    Hallo,

    ich "bastel" grad eine Ontologie in OWL-DL und hab ein paar Fragen dazu. Ich verwende RDF/XML Syntax und momentan kein Entwicklungswerkzeug (mal abgesehen von einem Editor mit XML highlighting).

    1. Frage
    Kann man die rdfs:domain und rdfs:range restrictions eines ObjectProperty noch spezifizieren? Wenn mehrere z.B. mehrere rdfs:ranges angegeben werden, wird dies ja als owl:intersectionOf ausgewertet. Beispiel:
    Code:
    <owl:Class rdf:ID="Class1" />
    <owl:Class rdf:ID="Class2" />
    <owl:Class rdf:ID="Class3" />
    <owl:ObjectProperty rdf:ID="oP1">
       <rdfs:domain rdf:resource="#Class1" />
       <rdfs:range rdf:resource="#Class2" />
       <rdfs:range rdf:resource="#Class3" />
    </owl:ObjectProperty>
    Beschreibt das Tripel mit
    • Subjekt = Class1
    • Prädikat = oP1
    • Objekt = Schnittmenge aus Class2 und Class3


    Ich möchte nun aber erreichen, dass das Objekt aus der Menge "Class2 ODER Class3" besteht. Kann ich also rdfs:range noch wie folgt "verschachteln"?
    Code:
    <owl:ObjectProperty rdf:ID="oP2">
       <rdfs:domain rdf:resource="#Class1" />
       <rdfs:range>
          <owl:Class>
             <owl:unionOf rdf:parseType="Collection">
                <owl:Class rdf:about="#Class2" />
                <owl:Class rdf:about="#Class3" />
             </owl:unionOf>
          </owl:Class>
       </rdfs:range>
    </owl:ObjectProperty>
    2. Frage
    Kann ich den Datentyp einer Klasse auch direkt festlegen, oder muss ich da immer erst den Umweg über ein owl: DatatypeProperty gehen? Ich würde gern so abkürzen:
    <owl:Class rdf:ID="Class4">
    <owl:hasValue rdf:datatype="&xsd;sting" />
    <!-- Es sei das XML Entity xsd "http://www.w3.org/2001/XMLSchema#" deklariert. -->
    </owl:Class>
    Leider ist owl:hasValue meines Wissens nur für owl:Restricton definiert, einer Spezialisierung der owl:Class. Auf der anderen Seite fände ich das schon ziemlich bescheuert, wenn ich für sowas erst ein eigenes owl: DatatypeProperty definieren müsste ...
    Code:
    <owl:DatatypeProperty rdf:ID="hatDatentypString">
       <rdfs:range rdf:resource="&xsd;String" />
    </owl:DatatypeProperty>
    <owl:Class rdf:ID="Class5">
       <hatStringDatentyp rdf:datatype="&xsd;string" />
    </owl:Class>
Working...
X