Pergunta

Eu tenho algum tipo personalizado:

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

e algum outro tipo que tem variedade de Item:

[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 isso está acontecendo que se eu remover atributo CardinalityRestriction de MyArray ele será exportado por OwlGrinder.exe como único item e não como variedade de itens.

Existe alguma outra maneira de definir matrizes sem restringir-los para alguma variedade de elementos?

Foi útil?

Solução

ROWLEX OntologyExtractor se comporta corretamente (OwlGrinder lê ontologias e montagens produzir. OntologyExtractor lê conjuntos e expelir ontologias). De acordo com os OWL especificações , se não há nenhuma restrição de cardinalidade associado ao OWL propriedade, então sua cardinalidade é assumido "zero ou mais". Se você quiser uma propriedade não ser uma "propriedade de matriz", então você precisa aplicar a restrição de cardinalidade. A abreviação de que está fazendo a propriedade OWL um propriedade funcional , onde a cardinalidade é 0 ou 1.

Então tudo que você precisa fazer é remover a decoração [CardinalityRestiction (1100)] e você tem o que você quer.

[EDIT: responder sobre o comentário] I reproduzida seu caso, removido o CardinalityRestriction e OntologyExtractor produz o seguinte 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>

Esta ontologia permite criar arquivos RDF onde seu objeto recipiente tem zero ou mais itens ligados através MyArray OWL propriedade.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top