Skip to content
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

OWL literal values #20

Draft
wants to merge 1 commit into
base: main
Choose a base branch
from
Draft

OWL literal values #20

wants to merge 1 commit into from

Conversation

timothee-haudebourg
Copy link
Collaborator

This branch introduces a better support for OWL (and XSD) literal values, which means:

  • Undestanding the semantics and relations of/between each OWL datatypes (which include XSD datatypes).
  • Adding a syntax for literal values.

This will allow TreeLDR to:

  • Define enumeration types (owl::oneOf) which enumerates all the instances of a type (that's why we need to be able to express values).
  • Define value restrictions both in the compiler (already partially implemented) and using the TreeLDR syntax (not implemented yet).

Todo

  • Add a Value type.
  • Add an Enumeration type
  • Allow attaching a value to an enumeration layout variant (so we can represent an enum type with an enum layout)
  • Add a singleton layout (so that in the special case of a enum layout with a single variant, the name of the variant may be omited)
  • Support every XSD lexical representations for the values (implemented in the xsd-types crate).
  • Syntax for literal values
  • Syntax for enumeration type/layout
  • Syntax for datatype restrictions

Enumeration type follows the `owl::oneOf` semantics.
The `singleton` layout is a special case of the enum layout,
with a single, unnamed variant.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

1 participant