Domanda

ho qualche tipo personalizzato:

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

e qualche altro tipo che ha array di elementi:

[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; } }
}

E sta succedendo che se tolgo attributo CardinalityRestriction da MyArray sarà esportato da OwlGrinder.exe come singolo elemento e non come serie di elementi.

C'è qualche altro modo per definire le matrici senza costringere ad alcune serie di elementi?

È stato utile?

Soluzione

ROWLEX OntologyExtractor si comporta in modo corretto (OwlGrinder legge ontologie e produrre assemblaggi. OntologyExtractor legge assiemi e sputa ontologie). Secondo il specifiche OWL , se non v'è alcuna restrizione cardinalità associato alla proprietà OWL, allora la sua cardinalità è assunto "zero o più". Se si desidera una proprietà non sia una "proprietà di matrice", allora avete bisogno di applicare la limitazione di cardinalità. Una notazione breve per che sta facendo la proprietà OWL un proprietà funzionale , dove la cardinalità è 0 o 1.

Quindi, tutto quello che dovete fare è rimuovere la decorazione [CardinalityRestiction (1.100)] e si ha ciò che si desidera.

[EDIT: rispondere sul commento] Ho riprodotto il tuo caso, rimosso il CardinalityRestriction, e OntologyExtractor produce i seguenti dell'ontologia:

<?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>

Questa ontologia permette di creare file RDF in cui l'oggetto contenitore ha zero o più elementi collegati tramite proprietà OWL MyArray.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top