Frage

Ich habe einigen benutzerdefinierten Typen:

[RdfSerializable]
public class Item
{
    [RdfProperty(true)]
    public string Name { get; set; }
}

und eine andere Art, die Anordnung von Punkt hat:

[RdfSerializable]
public class Container
{
      // ... some code

      // if this attribute is missing, then this property will not be exported as array
      [CardinalityRestriction(1, 100)]     
      [RdfProperty(false)]
      public Item[] MyArray { get { return mMyArray; } }
}

Und es geschieht, wenn ich CardinalityRestriction Attribut von MyArray entferne sie durch OwlGrinder.exe als einzelnes Element und kann nicht als Array von Elementen exportiert werden.

Gibt es eine andere Möglichkeit, Arrays zu definieren, ohne sie bis zu einem gewissen Bereich von Elementen einschränken?

War es hilfreich?

Lösung

ROWLEX OntologyExtractor korrekt verhält (OwlGrinder liest Ontologien und produzieren Baugruppen. OntologyExtractor liest Baugruppen und ausspuckt Ontologien). Gemäß der OWL Spezifikationen , wenn es keine Kardinalität Beschränkung auf die zugeordnete OWL Eigenschaft, dann wird seine Mächtigkeit angenommen „null oder mehr“. Wenn Sie eine Eigenschaft sein wollen kein „Array-Eigenschaft“, dann müssen Sie die Mächtigkeit Beschränkung anzuwenden. Eine Abkürzung für das macht die OWL Eigenschaft eine funktionelle Eigenschaft , wo die Mächtigkeit 0 oder 1

Also alles, was Sie tun müssen, ist die [CardinalityRestiction (1100)] Dekoration entfernen, und Sie haben, was Sie wollen.

[EDIT: auf dem Kommentar antworten] Ich reproduzierte Ihren Fall, entfernt, um die CardinalityRestriction und OntologyExtractor erzeugt die folgende Ontologie:

<?xml version="1.0"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:owl="http://www.w3.org/2002/07/owl#" xmlns:rdfschema="http://www.w3.org/2000/01/rdf-schema#">
    <owl:Ontology rdf:about="http://www.test.com/MyOntology" />
    <owl:Class rdf:about="http://www.test.com/MyOntology#Item" />
    <owl:DatatypeProperty rdf:about="http://www.test.com/MyOntology#Name">
        <rdfschema:domain rdf:resource="http://www.test.com/MyOntology#Item" />
        <rdfschema:range rdf:resource="http://www.w3.org/2001/XMLSchema#string" />
        <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#FunctionalProperty" />
    </owl:DatatypeProperty>
    <owl:ObjectProperty rdf:about="http://www.test.com/MyOntology#MyArray">
        <rdfschema:domain>
            <owl:Class rdf:about="http://www.test.com/MyOntology#Container" />
        </rdfschema:domain>
        <rdfschema:range rdf:resource="http://www.test.com/MyOntology#Item" />
    </owl:ObjectProperty>
</rdf:RDF>

Diese Ontologie können Sie RDF-Dateien erstellen, in dem Sie Ihre Container-Objekt hat null oder mehr Einzelteile über MyArray OWL Eigenschaft verknüpft.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top