Hi Asger
 
Thanks for the clarification on these.  I thought there would be issues with
Fedora's notion of "type" - so just wanted to clarify.  And I hadn't spotted
that owl:hasValue wasn't in OWL Lite.  Thanks for the suggestion on the XSD
alternative, that might just work!

Regards
Steve

-----Original Message-----
From: Asger Askov Blekinge [mailto:a...@statsbiblioteket.dk] 
Sent: 13 December 2011 14:21
To: fedora-commons-users@lists.sourceforge.net
Subject: Re: [fcrepo-user] ECM - validating the "type" of an object


On 12/13/2011 01:51 PM, Stephen Bayliss wrote: 

In ECM, the type of an object is defined effectively from its CModel.  One
can validate the type of the target of a relationship, the typing being
specified by the hasModel relationship.
 
Is it possible to do any additional type validation; eg if I want to enforce
that all objects "belonging" to the CModel must assert an rdf:type
relationship?

Sure, specify the minCardinality for the rdf:type relation. That way, all
subscribing objects must have an rdf:type relationship.



 
I've tried adding an owl:Restriction on the rdf:type relationship using
owl:hasValue to specify the value of the target (rather than its class) -
but this doesn't look as if it is implemented.

http://www.w3.org/TR/owl-ref/#hasValue-def
NOTE: the value constraint owl:hasValue is not included in OWL Lite.




 
I've also tried using an owl:Restriction on a hasMember relationship;
instead of specifying the target's CModel class I used a value that the
target is itself asserting using rdf:type, but it doesn't lok like this is
tested for.

rdf:type is a sore point for OWL. Fedora CMA does not concern itself with
rdf:type. A fedora object is NOT "of a type" just because it subscribe to a
content model.
Now, one could define 
fedora:hasModel isSubtypeOf rdf:type
The problem here is that, to owl, fedora:hasModel is an owl:ObjectProperty
and rdf:type is a rdf:Property. To make the above statement understandable
to a reasoner, you would need owl full.

For the purpose of ECM, i defined that 
object fedora:hasModel contentmodel creates a phony rdf property

object rdf:type contentmodel#class

This property is, of course, not added to the triple store.

Remember that it does require owl full, if a content model should be both an
object and a class. That is why we use contentmodel#class for the rdf:type
information.
 


So a question, is ECM relationships validation restricted to:
 
1) checking the cardinality of a relationship
2) checking the type of the target of a relationship where the type is
specified using hasModel
 
Is there anything one can do for enforcing rdf:type assertions?

writing a schema for the RELS-EXT datastream?

<xsd:schema

        attributeFormDefault="qualified"

        elementFormDefault="qualified"

        targetNamespace="http://www.w3.org/1999/02/22-rdf-syntax-ns#";
<http://www.w3.org/1999/02/22-rdf-syntax-ns#> 

        xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#";
<http://www.w3.org/1999/02/22-rdf-syntax-ns#> 

        xmlns:xsd="http://www.w3.org/2001/XMLSchema";
<http://www.w3.org/2001/XMLSchema> >

    <xsd:element name="RDF">

        <xsd:complexType>

            <xsd:sequence>

                <xsd:element minOccurs="1" maxOccurs="1" name="Description">

                    <xsd:complexType mixed="true">

                        <xsd:sequence minOccurs="0" maxOccurs="unbounded">

                            <xsd:any processContents="lax"/>

                                <!-- Insert required element here...-->
                        </xsd:sequence>

                        <xsd:attribute name="about" type="xsd:anyURI"/>

                    </xsd:complexType>

                </xsd:element>

            </xsd:sequence>

        </xsd:complexType>

    </xsd:element>

</xsd:schema>

But on a more serious note, no, there isn't. To do this right, we need

1. To define the implied relation between fedora:hasModel and rdf:type
2a. Find an apache-licensed reasoner, that support more than owl-lite (or
switch fedora to gpl3, and use pellet)
2b/ Or: choose to support some subset of owl full/DL specification, and thus
in effect, make our own dialect of owl.

Regards



 
(Though I realise in practice, with reasoning support, one would make a
statement about the CModel#class that it is eg a subtype, or owl:sameAs
etc).
 
Thanks
Seve


------------------------------------------------------------------------------
Systems Optimization Self Assessment
Improve efficiency and utilization of IT resources. Drive out cost and 
improve service delivery. Take 5 minutes to use this Systems Optimization 
Self Assessment. http://www.accelacomm.com/jaw/sdnl/114/51450054/
_______________________________________________
Fedora-commons-users mailing list
Fedora-commons-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/fedora-commons-users

Reply via email to