-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Create animal RDF Model #23
Comments
Dimitris noted today that this example, while interesting as a thought experiment in terms of the capabilities of RDFS+OWL vs those of MOF, would not clearly map to something that came from EMF/MOF so it should not impact our approach around supporting the MOF2RDF conventions in #15. If we think in terms of Ecore metamodels written in Emfatic, Option 1 would be this:
In Option 1, you'd have to enforce the right number of legs via other constraints (e.g. an EVL script). MOF2RDF would therefore not produce maxCardinality constraints for the Animal subclasses, and we'd always return collections for the legs of any Option 2 would be this, which would allow EMF to enforce the cardinality constraints:
For Option 2, MOF2RDF would give you the maximum cardinality of 1 on the Note that we could also have written this:
This is equivalent to Option 2 from the point of view of Ecore, though. |
I'd try what happens in the example Gian gave of an RDF model where
Animal
s havelegs
, and we classifyAnimal
s into Monoped, Biped and Quadruped based on the number of legs they have. Try doing this:(If you need an example of a Monoped, we could try limpets.)
This actually creates an interesting scenario, where we may be getting a single value from
Monoped
(since there will be a restriction that they have one leg), but in theory we'd still want a list. It does mean that while MOF2RDF-based RDF graphs would work with our idea of seeing if a restriction was imposed (in terms of producing equivalent query results), in the general case of RDF graphs you may not always want this behaviour.If the Monoped example turns out to work in that way, we should create a backlog item to split things into two:
We would expose MOF2RDFModel as a separate "MOF2RDF Model" type, so the user would explicitly say if they want to apply the MOF2RDF encoding or not.
Originally posted by @agarciadom in #22 (comment)
The text was updated successfully, but these errors were encountered: