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

What can a :ResourceProfile or a :Signifier describe ? #13

Closed
maximelefrancois86 opened this issue Nov 29, 2021 · 12 comments
Closed

What can a :ResourceProfile or a :Signifier describe ? #13

maximelefrancois86 opened this issue Nov 29, 2021 · 12 comments
Labels
documentation Improvements or additions to documentation question Further information is requested
Milestone

Comments

@maximelefrancois86
Copy link
Contributor

Currently the :describes property range is unspecified. What can a :ResourceProfile or a :Signifier describe ?

https://github.com/HyperAgents/ns.hyperagents.org/blob/284eda7341ec64f20cce7d5c8c4a6fd425c9e771/src/core.ttl#L129

Can this be an Agent ? an Artifact ? something that is of none of the classes in the ontology ?

@DrLeturc
Copy link
Contributor

DrLeturc commented Jan 10, 2022

Since we do not precise the range for :describes, everything that is a rdf:Resource can be associated to a :ResourceProfile.
So it can be :Agent :Artifact :Platform or :Workspace.

Then, a :ResourceProfile may be associated to one or several :Signifier and :Signifier are affordances exposed by an artifact to agents.

@andreiciortea
Copy link
Contributor

@maximelefrancois86 yes, the intention here would be to use :ResourceProfile as a superclass to describe any Web resource that is relevant in a Hypermedia MAS and could potentially expose affordances. E.g., a TD document, a Hydra document, or an STN platform description would all fit the definition of :ResourceProfile.

That said, what resources expose affordances (and signifiers describing those affordances) is less obvious. Affordances can only be provided by the environment and resources in the environment. E.g., an :Agent is an abstract concept and does not directly expose affordances, but the agent's body, which is an :Artifact, can expose affordances.

cc @danaivach to take over this discussion

@danaivach
Copy link
Contributor

danaivach commented Feb 3, 2022

Thanks @andreiciortea
@maximelefrancois86, yes, a :Signifier associates a :ResourceProfile with the affordances for interacting (interaction controls + additional metadata) with the :Resource described by the :ResourceProfile (for JaCa agents this would be through the body of an :Agent. I do not see how a JADE agent would have an agent body, except if it is both an :Agent and an :AgentBody, @andreiciortea right?).

E.g. :Signifier would fit as a superclass of td:InteractionAffordance and fipa:ServiceDescription.

:Signifier works as a bridge between the Core and the Interaction Vocabularies. I'm currently writing down a draft for the Interaction vocab + motivating scenarios, so these will be discussed in the very near future.

@FabienGandon
Copy link
Contributor

just to be sure I follow you: can a jade:Agent or even a hmas:agent in general have a hmas:ResourceProfile to which I associate one or more hmas:Signifier ?

@danaivach
Copy link
Contributor

Yes, with the current definitions a hmas:Agent can have one or more hmas:Signifier on its hmas:ResourceProfile.
Though, a signifier is described as "Structured data describing (one or multiple) affordances exposed by an artifact to agents."

To be valid we should change the description of hmas:hasSignifier to "A relation between a resource profile and a signifier describing an affordance associated to the resource.", or something similar. (I believe @andreiciortea suggested so - Andrei correct me if I'm wrong): https://github.com/HyperAgents/ns.hyperagents.org/blob/116c4fe7291a00b09829e51e41b20c718589110a/src/core.ttl#L157-L160

This will also cover the cases where a hmas:Platform or a hmas:Workspace are described by a profile with one or more hmas:Signifier, although they are not (at least right now) types of hmas:Artifact.

@andreiciortea
Copy link
Contributor

To be valid we should change the description of hmas:hasSignifier to "A relation between a resource profile and a signifier describing an affordance associated to the resource.", or something similar. (I believe @andreiciortea suggested so - Andrei correct me if I'm wrong):

Yes, I've just pushed this definition as a working definition.

To make the discussion more concrete, I'm adding here two examples of preliminary :ResourceProfile descriptions used in the current jade-hypermedia extension.

Note: the current representations of :Signifier are just illustrations of what very simple signifiers could look like. They represent hypermedia controls that can be used to exploit the affordances (by agents implementing the FIPA standards).

  1. A fipa:AgentPlatformDescription, which is a :ResourceProfile for a fipa:AgentPlatform that includes a :Signifier for an affordance exposed by the platform (in this case, an affordance to send messages to other agents via a FIPA Message Transport Service).
@prefix fipa: <http://ns.hyperagents.org/fipa#> .
@prefix hmas: <http://ns.hyperagents.org/core#> .
@prefix jade: <http://ns.hyperagents.org/jade#> .

<http://localhost:3000/ap-description> a fipa:AgentPlatformDescription;
  hmas:describes <http://localhost:3000/ap-description#platform>;
  hmas:hasSignifier [ a hmas:Signifier;
      hmas:describes [ a fipa:APService;
          fipa:name "fipa.mts.mtp.http.std";
          fipa:serviceType fipa:HTTPMessageTransportService;
          fipa:address <http://localhost:7778/acc>
        ]
    ] .

<http://localhost:3000/ap-description#platform> a fipa:AgentPlatform;
  fipa:name "192.168.1.23:1099/JADE";
  jade:hostsMainContainer <http://localhost:3000/containers/Main-Container/> .
  1. A fipa:AgentIdentifierDescription, which is a :ResourceProfile for an hmas:Agent that includes a :Signifier describing an affordance for sending a message to the agent via a FIPA Message Transport Service; here the affordance is not exposed by the agent itself, but by the platform hosting the agent:
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix fipa: <http://ns.hyperagents.org/fipa#> .
@prefix hmas: <http://ns.hyperagents.org/core#> .
@prefix jade: <http://ns.hyperagents.org/jade#> .

<http://localhost:3000/containers/Main-Container/agents/ams> a fipa:AgentIdentifierDescription;
  hmas:describes <http://localhost:3000/containers/Main-Container/agents/ams#agent>;
  hmas:hasSignifier [ a hmas:Signifier;
      hmas:describes [ a fipa:APService;
          fipa:name "fipa.mts.mtp.http.std";
          fipa:serviceType fipa:HTTPMessageTransportService;
          fipa:address <http://localhost:7778/acc>
        ]
    ] .

<http://localhost:3000/containers/Main-Container/agents/ams#agent> a hmas:Agent;
  fipa:name "ams@192.168.1.23:1099/JADE";
  jade:hasLocalName "ams";
  fipa:hostedBy <http://localhost:3000/ap-description#platform>;
  fipa:homeAgentPlatform "192.168.1.23:1099/JADE";
  fipa:homeContainer <http://localhost:3000/containers/Main-Container/#container> .

@andreiciortea
Copy link
Contributor

Some thoughts on how to better model artifacts, signifiers, and resource profiles:

  • we could rename the property :hasSignifier with domain :ResourceProfile and range :Signifier to :exposesSignifier or :includesSignifier; such property names seem better suited to describe a :ResourceProfile that exposes signifiers for affordances provided by other resources than the resource being described by the :ResourceProfile
    • e.g., in the second example from above, the fipa:AgentIdentifierDescription (which is a :ResourceProfile that describes an hmas:Agent) would use :exposesSignifier to expose a :Signifier that describes an affordance for sending a message to the described agent, where the affordance is provided by the agent's hosting platform and not by the agent itself
  • the representation of the signifier could then also describe the artifact that provides the affordance (cc @danaivach)
  • only environmental resources can provide affordances (e.g., abstract concepts cannot), so :Platform is then necessarily an :Artifact; this is not yet modeled

@smnmyr
Copy link
Contributor

smnmyr commented Feb 4, 2022 via email

@FabienGandon
Copy link
Contributor

I like the hmas:exposesSignifier relation also has it clearly captures the relation between the profile and the signifier.

@smnmyr
Copy link
Contributor

smnmyr commented Feb 4, 2022 via email

@maximelefrancois86
Copy link
Contributor Author

+1 for renaming :hasSignifier to :exposesSignifier .

Meta: This issue was originally about the range of :describes, and neither the definition of :Signifier nor the naming of :hasSignifier.. Shall I retitle the issue ?

@FabienGandon
Copy link
Contributor

yes please separate, rename and close the issues to clean the discussion ; it is also good to do this cleaning if we intend to document the classes and properties of the ontology using rdfs:seeAlso to point to the issues relevant to their definition which would be nice:

hmas:describes a owl:ObjectProperty ;
   rdfs:label "describes"@en ;
   rdfs:comment "final bla bla bla"@en ;
   rdfs:seeAlso <https://github.com/HyperAgents/ns.hyperagents.org/issues/XXXX> .

DrLeturc added a commit that referenced this issue Feb 23, 2022
renamed :hasSignifier to :exposesSignifier, closes #13
@DrLeturc DrLeturc added documentation Improvements or additions to documentation question Further information is requested labels Mar 25, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
documentation Improvements or additions to documentation question Further information is requested
Projects
None yet
Development

No branches or pull requests

6 participants