valueflows / agent

agent has moved to https://lab.allmende.io/valueflows/agent
10 stars 4 forks source link

split Relationship and RelationshipType into separate repo #27

Closed ahdinosaur closed 8 years ago

ahdinosaur commented 8 years ago

i'm enjoying having a repo per vocab (e.g. resource, process, exchange), i propose we split relationship away from agent.

how do we feel about this?

fosterlynn commented 8 years ago

@ahdinosaur Clearly we have different intuitions about this. :smile: (All the better for good discussions!)

I'm not sure how to define the way I think about it, but to me there are logical groupings where things are coupled more tightly than other places, and there is some kind of optimal size too. When I think of Agent, I definitely include the relationships. If we do personas, I would include that too; and probably the credential side even. Or maybe not that, I don't know. But it is stuff that a person needs to think about together in some way.

So I would put Resources and Resource Types together.

Exchanges and Processes seem good to separate, although both will include events. I could think about Event and Event Type as a separate repo, since you can have events without a process and without an exchange.

There are still lots of edge things, like agent resource relationships for example.

But a question: what do you like about smaller and more repos? Since this won't affect the final vocab, it is more about how we as a team want to think about it and manage it.....

ahdinosaur commented 8 years ago

what do you like about smaller and more repos? Since this won't affect the final vocab, it is more about how we as a team want to think about it and manage it.....

i like small modules that do one thing and do it well. lately i've been working with folks at Enspiral Dev Academy about what we're doing here, sharing my vision of making apps easier to design, build, and maintain by providing common abstractions you can easy install and plug together. the way i see this happening is by each "module" being a small single-purpose chunk of vocabulary (each instance and respective type definition), which can easily be used to automatically generate database models, an api interface, a cli interface, an html interface, etc. this is at least where i'm heading in the long-term, a lot of small steps still to go. :cat:

bhaugen commented 8 years ago

@ahdinosaur - I like your vision, and liked it the first time I saw it. I think it follows Conway's Law in being the fitting system architecture for the evolving human organization. The questions remain of the fitting size, scope, boundaries, for each module, and more importantly (I think) how they fit and work together.

See also visual explorer pipe dream. Continue to the slide about traversals.

What's happening with this vision at Enspiral? The last signals we saw were skeptical at best.

ahdinosaur commented 8 years ago

The questions remain of the fitting size, scope, boundaries, for each module, and more importantly (I think) how they fit and work together.

agreed, and i don't have an answer other than to do more learning experiments. :smiley:

See also visual explorer pipe dream

makes me happy every time i see it, keen to merge the visions somehow. :fireworks:

What's happening with this vision at Enspiral? The last signals we saw were skeptical at best.

eh, Enspiral's an amorphous gooey network of autonomous agents all with their own visions. there's some that share our vision and some that are skeptical, i've learned to collaborate with the former and not bother with the latter. there's a lot of energy for collaboration, most folks just need a straightforward path to start contributing that a) isn't confusing, and b) helps them achieve their own goals. it's a long marathon with a lot of small steps towards this end, i'm happy with the journey.

i think it'd be good to figure out what the smallest achievable deliverable towards the visual explorer vision would be, probably best in another issue in the home repo. otherwise i'm using Holodex as a excuse to build tooling that gives the vocabs some arms and legs you could say.


back on this topic, i think the most compelling case for splitting out relationship is what @fosterlynn mentions about agent resource relationships. splitting out relationship would help us clarify that it's not only between agents, it also should be possible between agents and resources. unless we want them coupled, but i think for the sake of minimalism we want as much de-coupled to be re-used in other parts of the overall vocab, maybe?

bhaugen commented 8 years ago

@ahdinosaur @elf-pavlik - re visual explorer.

When we get some real LOD published that could be linked (and I get a bit more educated on how it is supposed to work), I want to find some existing tools that will let me walk the links. Doesn't need to be visual to begin with, just needs to support walking. That will help me a lot in figuring out what is a module, what are its arms and legs, and what do they have in their hands and prehensile feet.

Shakti

elf-pavlik commented 8 years ago

I would suggest not creating to many repositories to early! We will need to also look at various types of relationships

etc.

BTW I just added placeholder for https://w3id.org/role where I plan to experiment with

Some examples in https://github.com/hackers4peace/plp-test-data/blob/master/w3c-social.jsonld

bhaugen commented 8 years ago

I agree about not creating too many repositories too early. Do you think any of those that have been separated out so far were created too early? (So far, I don't. But then, I have not tackled a README for the resource repo yet...)

Agent <-> Process Agent <-> Exchange Agent <-> Resource Process <-> Resource Exchange <-> Resource

Each of those relationships has particularities, and few of them are simple:

I'm not necessarily disagreeing here, but those thoughts come to mind immediately. And need to be detailed out. We've been detailing out the Agent <-> Agent relationships so far.

elf-pavlik commented 8 years ago

Some examples of relationships (direct/unqualified) from schema.org

To get qualified version we could use patter I describe in https://github.com/w3c-social/social-vocab/wiki/Verbs---owl:Class-vs.-rdf:Property#qualified-relations

IMO we should also take a closer look at http://www.gs1.org/gtin-plus eg. search for 'OrganizationRole' in http://www.gs1.org/sites/default/files/docs/gtin_plus/gs1Voc_v1.ttl

fosterlynn commented 8 years ago

back on this topic, i think the most compelling case for splitting out relationship is what @fosterlynn mentions about agent resource relationships. splitting out relationship would help us clarify that it's not only between agents,

Actually, I don't think that the same Relationship we use for agent to agent relationships will be used for relationships between agents and resources. I understood the definition in AS to be between agents. Although they use the term "individual", which may be broader than I think, who knows.

Even besides that, I think defining Relationship so you can use it as a relationship between anything and anything else is over-generalization - can be done but is not helpful. But I could be wrong, might be a bit different in LOD.

But in any case, even if we do use Relationship to mean lots of different kinds of relationships, I still think we should take them one at a time within the vocab we are thinking about, so we can finish each area (repo). If we re-use things from something we already finished, all well and good, it's already in the context.

ahdinosaur commented 8 years ago

great feedback by all, i'm gonna close this issue for now, we can always revisit it later if we feel we should.