I believe that with 3.0 (and in particular SPIN) the user community has now many more possibilities to enhance the tools, and to contribute some of this back to the community. The new constraint checking button (and Problems View) can be used to run arbitrary SPARQL queries, either globally or in the scope of certain classes only. Most of the ontology clean-up and best practices tests sound global. I had started a small "seed" project to collect some of those patterns, and it even made it into the beta1 release as spinowl.owl. This file defines closed-world constraint checks such as testing min/max cardinality constraints. Anyone interested in how this would work should have a look at this file (also attached). This is very much untested but it would be easy to add tests for patterns such as untyped properties. For example:

CONSTRUCT {
    _:b0 a spin:ConstraintViolation .
    _:b0 rdfs:label ?label .
    _:b0 spin:violationRoot ?s .
    _:b0 spin:violationPath ?p .
}
WHERE {
?s ?p ?o .
FILTER (isURI(?s)) .
OPTIONAL { ?p a ?type } .
FILTER (!bound(?type)) .
LET (?label := smf:buildString("Untyped property in triple {?s}, {?p}, {?o}")) .
}

creates constraint violations for each triple in which the predicate ?p has no rdf:type triple.

Being based on SPARQL such an approach will most likely have better performance than running DL inference engines, and it can be fine tuned to the right (closed world) semantics.

I have no time for such a project at this stage but I would appreciate contributions. I will certainly add more convenient support for using such libraries even without importing them, but in the meantime the Problems View can be used to run such constraint tests if a file such as spinowl.owl is imported.

Holger

Attachment: spinowl.owl
Description: Binary data


On Jan 26, 2009, at 7:07 PM, James A Miller wrote:


Scott,

That would be a really nice feature.  I wouldn't necessarily stop doing the OWL-DL check, but this would be another good tool for validation.

I wasn't aware of the "Add all unreferenced resources" feature; thanks for the pointer.

Jim




Scott Henninger <[email protected]>
Sent by: [email protected]

01/26/2009 06:04 PM

Please respond to
[email protected]

To
TopBraid Composer Users <[email protected]>
cc
Subject
[tbc-users] Re: Annotation Properties






I'm wondering whether some of these checks should/could be basket
operations.  Composer has a way to find all unreferenced resources
("Add all unreferenced resources" to basket).  A "find untyped
resources" would be a way to look at any (non-literal) resource
missing a type statement - or that the object of the type statement is
missing (in the closed world).  Putting it in the basket does no harm
and allows one to review the contents for possible errors.

It wouldn't be 100% accurate, but perhaps more so than using OWL-DL
vs. OWL-Full.
-- Scott


>         - With OWL-DL ontology/data, as our ontology changes, and
> affects the pre-existing data, OWL-Full data usually indicates some
> inconsistences--sometimes I have outdated references to
> classes/properties that no longer exist, for example.
>
> This is an interesting point. Using a DL reasoner for this type of
> checking is certainly an option. Another option would be to use some
> kind of a rule and pattern based approach that detects such "errors" in
> your model. For example, the eyeball tool from the HP Labs (Jena group)
> might help. Or, a collection of SPIN rules encoding best practices might
> be helpful. We are actually working on such a rule set. It would be
> great to get some details on which things should be checked.
>
> - untyped resources as predicates
> - untyped resources as rdf:type object
> - what else?





--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "TopBraid Composer Users" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [email protected]
For more options, visit this group at http://groups.google.com/group/topbraid-composer-users?hl=en
-~----------~----~----~----~------~----~------~--~---


Reply via email to