Pregunta

Tengo algún tipo de encargo:

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

y algún otro tipo que tiene variedad de artículo:

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

Y está sucediendo que si se quita el atributo de CardinalityRestriction MiMatriz será exportado por OwlGrinder.exe tan solo artículo y no como serie de artículos.

¿Hay alguna otra manera de definir matrices sin limitar a un rango de elementos?

¿Fue útil?

Solución

ROWLEX OntologyExtractor comporta correctamente (OwlGrinder lee ontologías y producir conjuntos. OntologyExtractor lee asambleas y escupe ontologías). De acuerdo con la especificaciones OWL , si no hay ninguna restricción de cardinalidad asociada a la OWL propiedad, entonces su cardinalidad se asume "cero o más". En caso de que desee ser una propiedad no es una "propiedad de matriz", entonces es necesario aplicar la restricción de cardinalidad. Una forma abreviada de que está haciendo la propiedad OWL una propiedad funcional , donde la cardinalidad es 0 o 1.

Así que todo lo que necesita hacer es quitar la decoración [CardinalityRestiction (1100)] y tienes lo que quieres.

[EDIT: respondiendo sobre el comentario] Reproduje su caso, se quitó la CardinalityRestriction y OntologyExtractor produce los siguientes ontología:

<?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 ontología le permite crear archivos RDF donde su objeto contenedor tiene cero o más elementos vinculados a través de la propiedad OWL MiMatriz.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top