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

Discovery of (Qualified/N-ary) Relations #22

Closed
elf-pavlik opened this issue Oct 11, 2015 · 6 comments
Closed

Discovery of (Qualified/N-ary) Relations #22

elf-pavlik opened this issue Oct 11, 2015 · 6 comments

Comments

@elf-pavlik
Copy link
Member

Given as starting point URI denoting an agent or even any resource, how do we find information about various relations which involve this agent (or resource)? We shouldn't assume that making HTTP GET request to this URI will include in response *all those realtions(ips), especially if we just want to get the name and avatar ...

TODO add few possible solutions to that problem

@bhaugen
Copy link

bhaugen commented Oct 11, 2015

I am really interested in this issue. I listed some possible traversal requirements here.

@ahdinosaur
Copy link
Member

great issue, thanks. prior work off the top of my head:

@elf-pavlik
Copy link
Member Author

@ahdinosaur I worked a bit with Levelgraph and I don't see it addressing this issue here. We talk about situation where interlinked data stays distributed over any number of domains. At this moment Levelgraph needs to have all the data loaded locally before it can search/query it. In our case as we 'follow our noses' we need to make HTTP GET requests to fetch more and more relevant data.

Scenario:

  1. On my homepage I have button Open With, after clicking it one can select http://holodex.org , http://metamaps.cc and other apps which offer reach interaction experience when navigating socioeconomic graph.
  2. Person chooses Open with holodex.org, which redirects to something like https://holodex.org?id=https://graph.wwelves.org/ef093385-8906-4c78-9a69-9217c76013a8 It should also work with https://holodex.org?url=https://wwelves.org/perpetual-tripper if inside responses from both URLs they link to each other (with something like describes link relation)
  3. If you go to my current homepage https://wwelves.org/perpetual-tripper/ you will see small fraction of information about my relationships to various other people, groups, events, places, resources. Soon it will become a whole lot more of information! For now holodex just wants my name, avatar and for example information about my membership in various groups. I will include first two in each response, but later will just provide links to collections with various relevant data as I currently experiment with. This way app can 'follow its nose' and load only relevant collections eg. by following member edge in reverse direction which should return collection (possibly paged) of all the groups which I have member relation with.
  4. Now each of those groups will have @id/url hosted on some independent domain. I could embed (pre cache) basic information about them in my data set (eg. name and link to logo) but for all the relations, holodex needs to make HTTP GET requests to URLs from their @ids and keep discovering more knowledge there.

In many ways it again goes back to Open World Assumption - we can not assume that at any point we have all the data available, instead we need to anticipate that we will need to continuously discover more information as we navigate through the distributed data space. IMO HTTP protocol and Linked Data principles and technologies which implement them, give us very elegant pattern to interact with such information space. With shared understanding (semantics) supported by use of common vocabularies, I also see us moving from data to information or even knowledge

DIKW_Pyramid

One of more promising technology which I plan to deploy for dataspaces which i manage very soon: http://linkeddatafragments.org/

@fosterlynn
Copy link
Contributor

@elf-pavlik

TODO add few possible solutions to that problem

Hey elf, do you think you could write an "ugly" little web page to walk the links as part of exploring this, just in the context of agent and agent relationships? Or if that doesn't make sense as a step, please ignore!

@elf-pavlik
Copy link
Member Author

@fosterlynn the two simplest approaches I can think of right away:

  1. since our generic qualified relation link to entities, from which we start discovery, via edges labeled with vf:subject or vf:object, we could simply include in our HTTP response 'back links'. For example in JSON-LD use { "@reverse": { "subject": [ ], "object": [] }
  2. if we want to use a single property, we can add very generic edges between entity and qualified/n-ary relationships, in which it participates e.g rdfs:seeAlso. I just added it in an example of online meeting (described as a Process)

In general, as long as we have edges in a graph which connect relevant nodes, we can follow our 👃

I should also add here at some point how we could use indirection of Collection/Container (even paged ones!) if we have a lot of such qualified/n-ary relations which involve certain entity.

@elf-pavlik elf-pavlik transferred this issue from valueflows/valueflows Jan 30, 2019
@almereyda
Copy link
Member

We have moved the ValueFlows organization from GitHub to https://lab.allmende.io/valueflows.

This issue has been closed here, and all further discussion on this issue can be done at

https://lab.allmende.io/valueflows/forum-valueflo-ws/-/issues/22.

If you have not done so, you are very welcome to register at https://lab.allmende.io and join the ValueFlows organization there.

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

No branches or pull requests

5 participants