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

Adds the inverse abstract operator and the inverse-predicate attribute to triples #56

Merged
merged 6 commits into from
Feb 17, 2015

Conversation

Tpt
Copy link
Member

@Tpt Tpt commented Feb 16, 2015

Does not add any additional power to the DataModel but allows to significantly reduce the tree size.

The name "inverse" is taken from the owl:inverseOf property of OWL.

Closes #52

…e to triples

Does not add any additional power to the DataModel but allows to significantly reduce the tree size.

The name "inverse" is taken from the owl:inverseOf property of OWL.
@progval
Copy link
Member

progval commented Feb 16, 2015

Is inverse-predicate mandatory?

@Tpt
Copy link
Member Author

Tpt commented Feb 16, 2015

No, I've just updated the PR to reflect this.

@Ezibenroc
Copy link
Member

We should not consider the inverse-predicate as optional: it has exactly the same importance as the predicate.

@yhamoudi
Copy link
Member

We should not consider the inverse-predicate as optional: it has exactly the same importance as the predicate.

+1 But how can we do if there is no inverse predicate ?

@Ezibenroc
Copy link
Member

+1 But how can we do if there is no inverse predicate ?

And if there is no predicate? (this can also happen)

→We allow empty lists for predicate or reverse-predicate.

@yhamoudi
Copy link
Member

And if there is no predicate? (this can also happen)

We could reverse the triple (the inverse predicate becomes the predicate), but it would be better to avoid this (otherwise people may think that predicate is enough and inverse-predicate is totally optional).

@yhamoudi
Copy link
Member

Can we add the following text at the end of https://github.com/ProjetPP/Documentation/blob/revers/data-model.md#triple ?

Please note that the previous triple is equivalent to:

{
    "type": "triple",
    "subject": {"type": "missing"},
    "predicate": {"type": "resource", "value": "inhabitant"},
    "inverse-predicate": {"type": "resource", "value": "residence"},
    "object": {"type": "resource", "value": "Barack Obama"}
}

@Tpt
Copy link
Member Author

Tpt commented Feb 16, 2015

My own thought is that inverse predicate is a hack done in order to reduce the query tree size when we build them using nounification technique. So, yes, when they are present, they are as "important" as regular predicates but I don't see why it is a reason to make this parameter mandatory as it'll have often an empty value. For example, if I write requests by hand, I don't think I'll often use reverse predicates.

More, I think that simple modules (like OEIS) should be able to answer to most of questions without having to deal with inverse predicates that is more an "advanced feature" for big modules like the Wikidata one.

With the risk of repeating myself: the data model is not only there to be a nice output of NLP-grammatical but is a shared languages for our platform modules and so we shouldn't make there life harder only to simplify the job of NLP-grammatical.


Can we add the following text at the end of https://github.com/ProjetPP/Documentation/blob/revers/data-model.md#triple ?

Yes. But we should maybe add a paragraph after the definition of inverse to give an example of use and explain this equality that is, I think, more readable when explained with the abstract notation than with the serialization.

@progval
Copy link
Member

progval commented Feb 16, 2015

👍 @Tpt

@yhamoudi
Copy link
Member

With the risk of repeating myself: the data model is not only there to be a nice output of NLP-grammatical but is a shared languages for our platform modules and so we shouldn't make there life harder only to simplify the job of NLP-grammatical.

If doesn't change anything for the question parsing (we always have something to put into predicate). See ProjetPP/PPP-QuestionParsing-Grammatical#106 (comment) for the reasons why i think we shouldn't depict inverse-predicate as optional.

But leave it at it is (optional), developers will just have to be aware of the importance of inverse-predicate.

(for me, you can merge 👍)

@Ezibenroc
Copy link
Member

But leave it at it is (optional), developers will just have to be aware of the importance of inverse-predicate.

This does not make sense: if the inverse-predicate is important then it should not be optionnal.

@yhamoudi
Copy link
Member

This does not make sense: if the inverse-predicate is important then it should not be optionnal.

We could consider that it is optional because sometimes it doesn't exist, not because it is less useful than predicate.

@Ezibenroc
Copy link
Member

Alright.

@Tpt
Copy link
Member Author

Tpt commented Feb 16, 2015

@s-i-newton Do you have any concerns about this addition to the data model?

@yhamoudi
Copy link
Member

Silence is consent. I think we can merge now...

@progval
Copy link
Member

progval commented Feb 17, 2015

I think @s-i-newton just has no Internet connection.

@yhamoudi
Copy link
Member

How did he registred on the forum?

@progval
Copy link
Member

progval commented Feb 17, 2015

Hmm, indeed

On 17/02/2015 17:53, Yassine wrote:

How did he registred on the forum?


Reply to this email directly or view it on GitHub:
#56 (comment)

Tpt added a commit that referenced this pull request Feb 17, 2015
Adds the inverse abstract operator and the inverse-predicate attribute to triples
@Tpt Tpt merged commit f62d123 into master Feb 17, 2015
@Tpt Tpt deleted the revers branch February 17, 2015 17:00
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.

Reverse predicates
4 participants