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

Multi-instantiation #158

Open
pablo-de-andres opened this issue Jun 22, 2020 · 6 comments
Open

Multi-instantiation #158

pablo-de-andres opened this issue Jun 22, 2020 · 6 comments
Assignees
Labels
API details 🧠 reasoning 💬 discussion The idea is not mature enough to result in an implementation, and needs further discussion.

Comments

@pablo-de-andres
Copy link
Member

In GitLab by @urbanmatthias on Nov 12, 2019, 11:50

Should we allow multi-instantiation?
I.e. a cuds object is an instance of multiple classes.

In other words:
A cuds object is in the intersection of the set of individuals that are represented by the classes.

For example:

  • cuds_object.is_a.append(NAMESPACE.CLASS(**kwargs))

I think it depends on the ontology, if this is helpful.

@pablo-de-andres pablo-de-andres added API details 💬 discussion The idea is not mature enough to result in an implementation, and needs further discussion. 🧠 reasoning labels Jun 22, 2020
@pablo-de-andres
Copy link
Member Author

In GitLab by @yoavnash on Nov 21, 2019, 10:50

Notes:

  • Easy to implement with OSP core v3.2.
  • Reasoners might deduce that an object is an instance of multiple classes, therefore we should support this.

@ahashibon what do you think?

@urbanmatthias
Copy link
Member

urbanmatthias commented Aug 19, 2020

Example:

Assume the following statements are in the ontology:

An Adult is a Person that is older than 18 years.
A Father is a Person that is male and has a child.

--> It is possible to be an adult and a father simultaneously.

Currently, the Cuds.oclass property only returns one ontology class. In this case it should be possible to return multiple.
This is especially important now that we support a reasoner. It is expected that the reasoner will produce multiple RDF.type statements per individual.

API-wise I would suggest to deprecate the Cuds.oclass property and replace it with Cuds.oclasses.

What do you think?

@yoavnash
Copy link
Member

For me it looks fine. Do you know if Owlready also supports multi-instantiation?

@urbanmatthias
Copy link
Member

owlready supports it of course. They have a is_a property that is a list.

@urbanmatthias
Copy link
Member

At the moment it is possible to have multiple oclasses for one CUDS objects, e,g, when the user infers it.

See Cuds.oclasses. Unfortunatly still much of the cuds assumes there is only one oclass.

@urbanmatthias
Copy link
Member

Also there is no proper way to add oclasses etc.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
API details 🧠 reasoning 💬 discussion The idea is not mature enough to result in an implementation, and needs further discussion.
Projects
None yet
Development

No branches or pull requests

3 participants